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 @@ -145,6 +145,9 @@ // instance of transaction builder let txBuilder = new BCH.TransactionBuilder(); + // for temporary comparison + let localTxBuilder = new TransactionBuilder(); + let tokenTxInputObj = generateTokenTxInput( BCH, 'SEND', @@ -158,6 +161,22 @@ // update txBuilder object with inputs txBuilder = tokenTxInputObj.txBuilder; + // for temporary comparison + let localTokenTxInputObj = generateTokenTxInput( + BCH, + 'SEND', + 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, @@ -172,6 +191,23 @@ // update txBuilder object with outputs txBuilder = tokenTxOutputObj; + // for temporary comparison + let localTokenTxOutputObj = generateTokenTxOutput( + BCH, + localTxBuilder, + 'SEND', + CREATION_ADDR, + localTokenTxInputObj.inputTokenUtxos, + localTokenTxInputObj.remainderXecValue, + null, // token config object - for GENESIS tx only + tokenReceiverAddress, + 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, @@ -186,6 +222,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"}