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 @@ -226,6 +226,9 @@ // instance of transaction builder let txBuilder = new BCH.TransactionBuilder(); + // for temporary comparison + let localTxBuilder = new TransactionBuilder(); + let tokenTxInputObj = generateTokenTxInput( BCH, 'BURN', @@ -239,6 +242,22 @@ // update txBuilder object with inputs txBuilder = tokenTxInputObj.txBuilder; + // for temporary comparison + let localTokenTxInputObj = generateTokenTxInput( + BCH, + 'BURN', + xecUtxos, + tokenUtxos, + tokenId, + amount, + currency.defaultFee, + localTxBuilder, + ); + localTxBuilder = localTokenTxInputObj.txBuilder; + if (JSON.stringify(txBuilder) === JSON.stringify(localTxBuilder)) { + console.log('post-generateTokenTxInput() output matches'); + } + let tokenTxOutputObj = generateTokenTxOutput( BCH, txBuilder, @@ -253,6 +272,23 @@ // update txBuilder object with outputs txBuilder = tokenTxOutputObj; + // for temporary comparison + let localTokenTxOutputObj = generateTokenTxOutput( + BCH, + localTxBuilder, + 'BURN', + CREATION_ADDR, + localTokenTxInputObj.inputTokenUtxos, + localTokenTxInputObj.remainderXecValue, + null, // token config object - for GENESIS tx only + null, // token receiver address - for SEND tx only + amount, + ); + localTxBuilder = localTokenTxOutputObj; + if (JSON.stringify(txBuilder) === JSON.stringify(localTxBuilder)) { + console.log('post-generateTokenTxOutput() output matches'); + } + // append the token input UTXOs to the array of XEC input UTXOs for signing const combinedInputUtxos = tokenTxInputObj.inputXecUtxos.concat( tokenTxInputObj.inputTokenUtxos, @@ -267,6 +303,21 @@ wallet, ); + // for temporary comparison + const localCombinedInputUtxos = + localTokenTxInputObj.inputXecUtxos.concat( + localTokenTxInputObj.inputTokenUtxos, + ); + const localRawTxHex = signAndBuildTx( + BCH, + localCombinedInputUtxos, + localTxBuilder, + wallet, + ); + if (JSON.stringify(rawTxHex) === JSON.stringify(localRawTxHex)) { + console.log('post-signAndBuildTx() output matches'); + } + // Broadcast transaction to the network via the chronik client // sample chronik.broadcastTx() response: // {"txid":"0075130c9ecb342b5162bb1a8a870e69c935ea0c9b2353a967cda404401acf19"}