btcOperator v1.1.3a: bug fix
- Fixed: minor syntax errors and typos - Fixed: createTransaction not giving correct fee and output value when dust is ignored
This commit is contained in:
parent
34c30aea05
commit
365d3d4503
@ -1,4 +1,4 @@
|
|||||||
(function (EXPORTS) { //btcOperator v1.1.3
|
(function (EXPORTS) { //btcOperator v1.1.3a
|
||||||
/* BTC Crypto and API Operator */
|
/* BTC Crypto and API Operator */
|
||||||
const btcOperator = EXPORTS;
|
const btcOperator = EXPORTS;
|
||||||
|
|
||||||
@ -402,7 +402,12 @@
|
|||||||
return reject("Send amount is less than fee");
|
return reject("Send amount is less than fee");
|
||||||
|
|
||||||
}
|
}
|
||||||
tx.outs = tx.outs.filter(o => o.value <= DUST_AMT); //remove all output with value less than DUST amount
|
//remove all output with value less than DUST amount
|
||||||
|
let filtered_outputs = [], dust_value = 0;
|
||||||
|
tx.outs.forEach(o => o.value >= DUST_AMT ? filtered_outputs.push(o) : dust_value += o.value);
|
||||||
|
tx.outs = filtered_outputs;
|
||||||
|
//update result values
|
||||||
|
result.fee += util.Sat_to_BTC(dust_value);
|
||||||
result.output_size = output_size;
|
result.output_size = output_size;
|
||||||
result.output_amount = total_amount - (fee_from_receiver ? result.fee : 0);
|
result.output_amount = total_amount - (fee_from_receiver ? result.fee : 0);
|
||||||
result.total_size = BASE_TX_SIZE + output_size + result.input_size;
|
result.total_size = BASE_TX_SIZE + output_size + result.input_size;
|
||||||
@ -578,18 +583,18 @@
|
|||||||
current_value = current_value.intValue();
|
current_value = current_value.intValue();
|
||||||
//edit the value as required
|
//edit the value as required
|
||||||
if (current_value > inc_fee) {
|
if (current_value > inc_fee) {
|
||||||
tx.out[i].value = current_value - inc_fee;
|
tx.outs[i].value = current_value - inc_fee;
|
||||||
inc_fee = 0;
|
inc_fee = 0;
|
||||||
} else {
|
} else {
|
||||||
inc_fee -= current_value;
|
inc_fee -= current_value;
|
||||||
tx.out[i].value = 0;
|
tx.outs[i].value = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (inc_fee > 0) {
|
if (inc_fee > 0) {
|
||||||
let max_possible_fee = util.BTC_to_Sat(new_fee) - inc_fee; //in satoshi
|
let max_possible_fee = util.BTC_to_Sat(new_fee) - inc_fee; //in satoshi
|
||||||
return reject(`Insufficient output values to increase fee. Maximum fee possible: ${util.Sat_to_BTC(max_possible_fee)}`);
|
return reject(`Insufficient output values to increase fee. Maximum fee possible: ${util.Sat_to_BTC(max_possible_fee)}`);
|
||||||
}
|
}
|
||||||
tx.outs = tx.outs.filter(o => o.value <= DUST_AMT); //remove all output with value less than DUST amount
|
tx.outs = tx.outs.filter(o => o.value >= DUST_AMT); //remove all output with value less than DUST amount
|
||||||
|
|
||||||
//remove existing signatures and reset the scripts
|
//remove existing signatures and reset the scripts
|
||||||
let wif_keys = [];
|
let wif_keys = [];
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user