diff --git a/web/cashtab/src/hooks/__mocks__/createToken.js b/web/cashtab/src/hooks/__mocks__/createToken.js --- a/web/cashtab/src/hooks/__mocks__/createToken.js +++ b/web/cashtab/src/hooks/__mocks__/createToken.js @@ -49,8 +49,8 @@ mintBatonVout: null, }, expectedTxId: - '9e9738e9ac3ff202736bf7775f875ebae6f812650df577a947c20c52475e43da', + '5d3450458ada611c4171afbcd3acfa6d3b3885c30edd75a8812c147e6d410765', expectedHex: [ - '02000000011e50dce78f97b8401bee3d25b830cad7c62392ca7a2a51a4aac65f6dd4d7d6e0000000006a4730440220150c19f4274b30415174c7517ff5e3e79c224ac6aff6967537a8e1ab71880bbb0220537a8c7a91672fe3dc2f703dcb319c94a1717e220b52111f406f0d80adeb4c15412102322fe90c5255fe37ab321c386f9446a86e80c3940701d430f22325094fdcec60ffffffff030000000000000000546a04534c500001010747454e455349530443555454174361736874616220556e6974205465737420546f6b656e1768747470733a2f2f636173687461626170702e636f6d2f4c0001024c0008000000000000271022020000000000001976a91478c97fdf8e06b8f438d291b5a6a50a61fe73d02a88ac283d0f00000000001976a91478c97fdf8e06b8f438d291b5a6a50a61fe73d02a88ac00000000', + '02000000011e50dce78f97b8401bee3d25b830cad7c62392ca7a2a51a4aac65f6dd4d7d6e0000000006a4730440220776cbcaaf918e1924f60ee650143de82d6ae02cd3def3897bf763f00ec7dacff02204b918ca0bce2c3c601bc3ebff7175889f28934405f06728451e48ad0d908a8e1412102322fe90c5255fe37ab321c386f9446a86e80c3940701d430f22325094fdcec60ffffffff030000000000000000546a04534c500001010747454e455349530443555454174361736874616220556e6974205465737420546f6b656e1768747470733a2f2f636173687461626170702e636f6d2f4c0001024c0008000000000000271022020000000000001976a91478c97fdf8e06b8f438d291b5a6a50a61fe73d02a88ac073b0f00000000001976a91478c97fdf8e06b8f438d291b5a6a50a61fe73d02a88ac00000000', ], }; diff --git a/web/cashtab/src/hooks/useBCH.js b/web/cashtab/src/hooks/useBCH.js --- a/web/cashtab/src/hooks/useBCH.js +++ b/web/cashtab/src/hooks/useBCH.js @@ -519,13 +519,11 @@ else transactionBuilder = new BCH.TransactionBuilder('testnet'); let originalAmount = new BigNumber(0); - const tokenOutputDust = new BigNumber( - fromSmallestDenomination(currency.dustSats).toString(), - ); + let txFee = 0; for (let i = 0; i < utxos.length; i++) { const utxo = utxos[i]; - originalAmount = originalAmount.plus(utxo.value); + originalAmount = originalAmount.plus(new BigNumber(utxo.value)); const vout = utxo.vout; const txid = utxo.txid; // add input with txid and index of vout @@ -534,15 +532,20 @@ inputUtxos.push(utxo); txFee = calcFee(BCH, inputUtxos, 3, feeInSatsPerByte); - if (originalAmount.minus(tokenOutputDust).minus(txFee).gte(0)) { + if ( + originalAmount + .minus(new BigNumber(currency.dustSats)) + .minus(new BigNumber(txFee)) + .gte(0) + ) { break; } } // amount to send back to the remainder address. const remainder = originalAmount - .minus(tokenOutputDust) - .minus(txFee); + .minus(new BigNumber(currency.dustSats)) + .minus(new BigNumber(txFee)); if (remainder.lt(0)) { const error = new Error(`Insufficient funds`); @@ -558,10 +561,7 @@ transactionBuilder.addOutput(script, 0); // add output w/ address and amount to send - transactionBuilder.addOutput( - CREATION_ADDR, - parseInt(toSmallestDenomination(tokenOutputDust)), - ); + transactionBuilder.addOutput(CREATION_ADDR, currency.dustSats); // Send change to own address if (remainder.gte(new BigNumber(currency.dustSats))) {