diff --git a/web/cashtab/package-lock.json b/web/cashtab/package-lock.json --- a/web/cashtab/package-lock.json +++ b/web/cashtab/package-lock.json @@ -18,6 +18,7 @@ "ethereum-blockies-base64": "^1.0.2", "fbt": "^0.16.4", "localforage": "^1.9.0", + "lodash.differencewith": "^4.5.0", "lodash.isempty": "^4.4.0", "lodash.isequal": "^4.5.0", "qrcode.react": "^1.0.0", @@ -15241,6 +15242,11 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.differencewith": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.differencewith/-/lodash.differencewith-4.5.0.tgz", + "integrity": "sha1-uvr7yRi1UVTheRdqALsK76rIVLc=" + }, "node_modules/lodash.flattendeep": { "version": "4.4.0", "dev": true, @@ -38645,6 +38651,11 @@ "version": "4.0.8", "dev": true }, + "lodash.differencewith": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.differencewith/-/lodash.differencewith-4.5.0.tgz", + "integrity": "sha1-uvr7yRi1UVTheRdqALsK76rIVLc=" + }, "lodash.flattendeep": { "version": "4.4.0", "dev": true diff --git a/web/cashtab/package.json b/web/cashtab/package.json --- a/web/cashtab/package.json +++ b/web/cashtab/package.json @@ -15,6 +15,7 @@ "ethereum-blockies-base64": "^1.0.2", "fbt": "^0.16.4", "localforage": "^1.9.0", + "lodash.differencewith": "^4.5.0", "lodash.isempty": "^4.4.0", "lodash.isequal": "^4.5.0", "qrcode.react": "^1.0.0", 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 @@ -316,6 +316,29 @@ return err; } }; + const hydrateParsedChangedUtxos = async ( + hydratedUtxoDetails, + parsedChangedUtxos, + ) => { + // Accept array of utxos that have changed and must be hydrated from parseChangedUtxos from cashMethods.js and existing hydratedUtxoDetails + // Return updated full hydratedUtxo details + /* + const hydratedUtxoDetails = await getHydratedUtxoDetails( + BCH, + utxos, + ); + + const slpBalancesAndUtxos = await getSlpBalancesAndUtxos( + hydratedUtxoDetails, + ); + */ + // So, first, do a parsed hydrateutxo call on just the changed utxos + // 2) Add these results to the hydratedUtxos result you have in state, then flatten them + // 3) Determine slpBalancesAndUtxos + // Get hydrated utxo details of only this set + // actually this should be done in useWallet + //const hydratedUtxoDetailsOfChangedUtxos = await getHydratedUtxoDetails(BCH, parsedChangedUtxos); + }; const getHydratedUtxoDetails = async (BCH, utxos) => { const hydrateUtxosPromises = []; @@ -330,7 +353,10 @@ // Iterate over each utxo in this address field for (let j = 0; j < batchedUtxos.length; j += 1) { const utxoSetForThisPromise = [ - { utxos: batchedUtxos[j], address: thisAddress }, + { + utxos: batchedUtxos[j], + address: thisAddress, + }, ]; const thisPromise = BCH.SLP.Utils.hydrateUtxos( utxoSetForThisPromise, diff --git a/web/cashtab/src/hooks/useWallet.js b/web/cashtab/src/hooks/useWallet.js --- a/web/cashtab/src/hooks/useWallet.js +++ b/web/cashtab/src/hooks/useWallet.js @@ -11,11 +11,19 @@ fromSmallestDenomination, loadStoredWallet, isValidStoredWallet, + whichUtxosChanged, + whichUtxosWereConsumed, + parseChangedUtxos, + isUtxoArrayEmpty, + organizeHydratedUtxoDetailsByAddress, + addHydratedUtxoDetailsToWalletStateIfNew, + removeConsumedUtxosFromHydratedUtxoDetails, } from '@utils/cashMethods'; import localforage from 'localforage'; import { currency } from '@components/Common/Ticker'; import isEmpty from 'lodash.isempty'; import isEqual from 'lodash.isequal'; +import { utxosConsumedByTransaction } from '../utils/__mocks__/mockChangingUtxos'; const useWallet = () => { const [wallet, setWallet] = useState(false); @@ -145,6 +153,8 @@ // Relevant points for this array comparing exercise // https://stackoverflow.com/questions/13757109/triple-equal-signs-return-false-for-arrays-in-javascript-why // https://stackoverflow.com/questions/7837456/how-to-compare-arrays-in-javascript + console.log(`utxos`, utxos); + console.log(`previousUtxos`, previousUtxos); // If this is initial state if (utxos === null) { @@ -180,6 +190,7 @@ if (isValidStoredWallet(wallet)) { try { utxosToCompare = wallet.state.utxos; + console.log(`utxosToCompare`, utxosToCompare); } catch (err) { console.log(`Error setting utxos to wallet.state.utxos`, err); console.log(`Wallet at err`, wallet); @@ -221,6 +232,18 @@ utxos, previousUtxos, ); + console.log(`wallet`, wallet); + console.log(`isValidStoredWallet`, isValidStoredWallet(wallet)); + console.log(`utxosHaveChanged`, utxosHaveChanged); + + // Dev test case + // If api utxos length does not match hydratedUtxos length, note it + // TODO catch this, probably just rehydrate them all if you see it + if (utxos[2].length !== wallet.state.utxos[2].length) { + console.log( + `Error: ${utxos[2].length} utxos detected at from API, while only ${wallet.state.utxos[2].length} are in wallet`, + ); + } // If the utxo set has not changed, if (!utxosHaveChanged) { @@ -232,12 +255,135 @@ return; } - const hydratedUtxoDetails = await getHydratedUtxoDetails( - BCH, + // Determine if you have unseen utxos that must be hydrated + const changedUtxos = whichUtxosChanged(utxos, previousUtxos); + console.log(`changedUtxos`, changedUtxos); + const { utxosConfirmed, utxosToHydrate } = parseChangedUtxos( + previousUtxos, + changedUtxos, + ); + // See if any utxos were consumed since last tick + const consumedUtxos = whichUtxosWereConsumed( utxos, + previousUtxos, + utxosConfirmed, ); + console.log(`consumedUtxos`, consumedUtxos); + // If so, remove them from utxo set + // TODO function remove(utxos) -- what do you need here? + /* + You would want to remove these utxos from hydatedUtxoDetails + So, you will need yet another function for this + */ + console.log(`utxosConfirmed`, utxosConfirmed); + console.log(`utxosToHydrate`, utxosToHydrate); + + // For now, don't do anything with utxosConfirmed + // Eventually you may want to update txHistory or show this tx confirmed in the UI + // need helper methods to determine if there are utxos in these arrays, as length doesn't help; empty arrays still keep address fields + if (!isUtxoArrayEmpty(utxosConfirmed)) { + console.log(`Transaction confirmed`); + // In the future, this is where you could update the tx history + // Update utxos in wallet.state + } + + // TODO if utxos have confirmed, update the wallet state, but don't make any api calls, just update the utxos + // If utxo change is not a new utxo that needs to be hydrated and you have a valid wallet with a balance, do not perform update functions + if ( + isUtxoArrayEmpty(utxosToHydrate) && + isUtxoArrayEmpty(utxosConsumedByTransaction) && + isValidStoredWallet(wallet) && + isValidStoredWallet(wallet) + ) { + console.log( + `Utxo set has changed but no new utxos need to be hydrated`, + ); + // Update only the utxos in walletState + const confirmedTxStateUpdate = { ...walletState, utxos: utxos }; + console.log(`confirmedTxStateUpdate`, confirmedTxStateUpdate); + setWalletState(confirmedTxStateUpdate); + // Also set this in wallet.state + wallet.state = wallet.confirmedTxStateUpdate; + setWallet(wallet); + + // Write this state to indexedDb using localForage + writeWalletState(wallet, confirmedTxStateUpdate); + + // remove api error here; otherwise it will remain if recovering from a rate + // limit error with an unchanged utxo set + setApiError(false); + // then walletState has not changed and does not need to be updated + //console.timeEnd("update"); + return; + } + + let hydratedUtxoDetails; + // If you have a valid wallet with a balance, only hydrate the new utxos + if ( + isValidStoredWallet(wallet) && + wallet.state.balances.totalBalanceInSatoshis && + wallet.state.balances.totalBalanceInSatoshis !== 0 + ) { + try { + console.log( + `Wallet is valid and has previous hydratedUtxoDetails stored`, + ); + const previousHydratedUtxoDetails = + wallet.state.hydratedUtxoDetails; + console.log( + `previousHydratedUtxoDetails`, + previousHydratedUtxoDetails, + ); + const changedUtxosHydratedUtxoDetails = await getHydratedUtxoDetails( + BCH, + utxosToHydrate, + ); + console.log( + `changedUtxosHydratedUtxoDetails`, + changedUtxosHydratedUtxoDetails, + ); + // Make sure previousHydratedUtxoDetails does not contain duplicate addresses + const organizedPreviousHydratedUtxoDetails = organizeHydratedUtxoDetailsByAddress( + previousHydratedUtxoDetails, + ); + // Remove any consumed utxos + const organizedPreviousHydratedUtxoDetailsWithConsumedUtxosRemoved = removeConsumedUtxosFromHydratedUtxoDetails( + organizedPreviousHydratedUtxoDetails, + consumedUtxos, + ); + // Combine with previousHydratedUtxoDetails to get required input for getSlpBalancesAndUtxos() + hydratedUtxoDetails = addHydratedUtxoDetailsToWalletStateIfNew( + organizedPreviousHydratedUtxoDetailsWithConsumedUtxosRemoved, + changedUtxosHydratedUtxoDetails, + ); + console.log( + `combined hydratedUtxoDetails`, + hydratedUtxoDetails, + ); + } catch (err) { + // Legacy method, hydrates all utxos + console.log( + `Error hydrating only changed utxos, hydrating all`, + ); + console.log(`Error`, err); + hydratedUtxoDetails = await getHydratedUtxoDetails( + BCH, + utxos, + ); + } + } else { + // Legacy method, hydrates all utxos + console.log( + `Invalid wallet or zero balance, hydrating all utxos`, + ); + console.log(`wallet.balances`, wallet.balances); + hydratedUtxoDetails = await getHydratedUtxoDetails(BCH, utxos); + } + + // Calculate these parameters as before + // Opportunity to optimize by only calculating from the changed utxos - const slpBalancesAndUtxos = await getSlpBalancesAndUtxos( + const slpBalancesAndUtxos = getSlpBalancesAndUtxos( hydratedUtxoDetails, ); const txHistory = await getTxHistory(BCH, cashAddresses); @@ -272,6 +418,7 @@ newState.utxos = utxos; newState.hydratedUtxoDetails = hydratedUtxoDetails; + console.log(`Setting newState`, newState); setWalletState(newState); @@ -945,7 +1092,7 @@ }).finally(() => { setLoading(false); }); - }, 10000); + }, 3000); const initializeWebsocket = (cashAddress, slpAddress) => { // console.log(`initializeWebsocket(${cashAddress}, ${slpAddress})`); diff --git a/web/cashtab/src/utils/__mocks__/mockChangingUtxos.js b/web/cashtab/src/utils/__mocks__/mockChangingUtxos.js new file mode 100644 --- /dev/null +++ b/web/cashtab/src/utils/__mocks__/mockChangingUtxos.js @@ -0,0 +1,9288 @@ +// @generated + +// TODO unit test showing that mergeHydratedUtxoDetails will ignore duplicates +export const organizedHydratedUtxoDetails = { + slpUtxos: [ + { + utxos: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], + address: 'addr1', + }, + ], +}; +export const unorganizedHydratedUtxoDetailsWithDuplicateAddresses = { + slpUtxos: [ + { utxos: [1, 2, 3], address: 'addr1' }, + { utxos: [4, 5, 6], address: 'addr1' }, + { utxos: [7, 8, 9], address: 'addr1' }, + { utxos: [10, 11, 12], address: 'addr1' }, + { utxos: [13, 14, 15], address: 'addr1' }, + ], +}; +export const organizedHydratedUtxoDetailsFromTwoDuplicateAddresses = { + slpUtxos: [ + { + utxos: [1, 2, 3, 4, 5, 6, 7, 8, 9], + address: 'addr1', + }, + { + utxos: [10, 11, 12, 13, 14, 15], + address: 'addr2', + }, + ], +}; +export const unorganizedHydratedUtxoDetailsWithTwoDuplicateAddresses = { + slpUtxos: [ + { utxos: [1, 2, 3], address: 'addr1' }, + { utxos: [4, 5, 6], address: 'addr1' }, + { utxos: [7, 8, 9], address: 'addr1' }, + { utxos: [10, 11, 12], address: 'addr2' }, + { utxos: [13, 14, 15], address: 'addr2' }, + ], +}; +export const organizedHydratedUtxoDetailsHdWalletMock = { + slpUtxos: [ + { utxos: [1, 2, 3], address: 'addr1' }, + { utxos: [4, 5, 6], address: 'addr2' }, + { utxos: [7, 8, 9], address: 'addr3' }, + { utxos: [10, 11, 12], address: 'addr4' }, + { utxos: [13, 14, 15], address: 'addr5' }, + ], +}; +export const organizedMergedHydratedUtxoDetails = { + slpUtxos: [ + { + utxos: [ + { + height: 680782, + tx_hash: + '525457276f1b6984170c9b35a8312d4988fce495723eabadd2afcdb3b872b2f1', + tx_pos: 1, + value: 546, + txid: + '525457276f1b6984170c9b35a8312d4988fce495723eabadd2afcdb3b872b2f1', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bf24d955f59351e738ecd905966606a6837e478e1982943d724eab10caad82fd', + tokenTicker: 'ST', + tokenName: 'ST', + tokenDocumentUrl: 'developer.bitcoin.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 680784, + tx_hash: + '28f061fee068d3b9cb578141bac3d4d9ec4eccebec680464bf0aafaac414811f', + tx_pos: 1, + value: 546, + txid: + '28f061fee068d3b9cb578141bac3d4d9ec4eccebec680464bf0aafaac414811f', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bd1acc4c986de57af8d6d2a64aecad8c30ee80f37ae9d066d758923732ddc9ba', + tokenTicker: 'TBS', + tokenName: 'TestBits', + tokenDocumentUrl: 'https://thecryptoguy.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '9897999885.21030105', + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 680784, + tx_hash: + '5fa3ffccea55c968beb7d214c563c92336ce2bbccbb714ba819848a7f7060bdb', + tx_pos: 1, + value: 546, + txid: + '5fa3ffccea55c968beb7d214c563c92336ce2bbccbb714ba819848a7f7060bdb', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bef614aac85c0c866f4d39e4d12a96851267d38d1bca5bdd6488bbd42e28b6b1', + tokenTicker: 'CTP', + tokenName: 'Cash Tab Points', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '308.87654321', + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 680784, + tx_hash: + 'daa98a872b7d88fefd2257b006db001ef82a601f3943b92e0c753076598a7b75', + tx_pos: 1, + value: 546, + txid: + 'daa98a872b7d88fefd2257b006db001ef82a601f3943b92e0c753076598a7b75', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bef614aac85c0c866f4d39e4d12a96851267d38d1bca5bdd6488bbd42e28b6b1', + tokenTicker: 'CTP', + tokenName: 'Cash Tab Points', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '1e-9', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681190, + tx_hash: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + tx_pos: 2, + value: 546, + txid: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1f6a65e7a4bde92c0a012de2bcf4007034504a765377cdf08a3ee01d1eaa6901', + tokenTicker: '🍔', + tokenName: 'Burger', + tokenDocumentUrl: + 'https://c4.wallpaperflare.com/wallpaper/58/564/863/giant-hamburger-wallpaper-preview.jpg', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681191, + tx_hash: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + tx_pos: 2, + value: 546, + txid: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'dd84ca78db4d617221b58eabc6667af8fe2f7eadbfcc213d35be9f1b419beb8d', + tokenTicker: 'TAP', + tokenName: 'Thoughts and Prayers', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681191, + tx_hash: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + tx_pos: 2, + value: 546, + txid: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'df808a41672a0a0ae6475b44f272a107bc9961b90f29dc918d71301f24fe92fb', + tokenTicker: 'NAKAMOTO', + tokenName: 'NAKAMOTO', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '0.99999999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681191, + tx_hash: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + tx_pos: 2, + value: 546, + txid: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7f8889682d57369ed0e32336f8b7e0ffec625a35cca183f4e81fde4e71a538a1', + tokenTicker: 'HONK', + tokenName: 'HONK HONK', + tokenDocumentUrl: 'THE REAL HONK SLP TOKEN', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 684287, + tx_hash: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + tx_pos: 2, + value: 546, + txid: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7443f7c831cdf2b2b04d5f0465ed0bcf348582675b0e4f17906438c232c22f3d', + tokenTicker: 'WDT', + tokenName: + 'Test Token With Exceptionally Long Name For CSS And Style Revisions', + tokenDocumentUrl: + 'https://www.ImpossiblyLongWebsiteDidYouThinkWebDevWouldBeFun.org', + tokenDocumentHash: + '����\\�IS\u001e9�����k+���\u0018���\u001b]�߷2��', + decimals: 7, + tokenType: 1, + tokenQty: '523512276.7961432', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685005, + tx_hash: + 'f5afd3774d11390bcde040f2079bd23edece90ff2b58e453629e6ef2c6b2c513', + tx_pos: 1, + value: 546, + txid: + 'f5afd3774d11390bcde040f2079bd23edece90ff2b58e453629e6ef2c6b2c513', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '9e9738e9ac3ff202736bf7775f875ebae6f812650df577a947c20c52475e43da', + tokenTicker: 'CUTT', + tokenName: 'Cashtab Unit Test Token', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 2, + tokenType: 1, + tokenQty: '100', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685147, + tx_hash: + 'f2d492da069429866c8ed59fd0d5283b8a8da881414633ac35979a2891030c57', + tx_pos: 1, + value: 546, + txid: + 'f2d492da069429866c8ed59fd0d5283b8a8da881414633ac35979a2891030c57', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'ccf5fe5a387559c8ab9efdeb0c0ef1b444e677298cfddf07671245ce3cb3c79f', + tokenTicker: 'XGB', + tokenName: 'Garmonbozia', + tokenDocumentUrl: + 'https://twinpeaks.fandom.com/wiki/Garmonbozia', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '500', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685168, + tx_hash: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + tx_pos: 1, + value: 546, + txid: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + vout: 1, + utxoType: 'token', + tokenQty: '100', + tokenId: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + tokenTicker: 'CLNSP', + tokenName: 'ComponentLongNameSpeedLoad', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685170, + tx_hash: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + tx_pos: 1, + value: 546, + txid: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + vout: 1, + utxoType: 'token', + tokenQty: '55.55555', + tokenId: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + tokenTicker: 'CMA', + tokenName: 'CashtabMintAlpha', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 5, + tokenType: 1, + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685181, + tx_hash: + '7987f68aa70d29ac0e0ac31d74354a8b1cd515c9893f6a5cdc7a3bf505e08b05', + tx_pos: 1, + value: 546, + txid: + '7987f68aa70d29ac0e0ac31d74354a8b1cd515c9893f6a5cdc7a3bf505e08b05', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '50d8292c6255cda7afc6c8566fed3cf42a2794e9619740fe8f4c95431271410e', + tokenTicker: 'TBC', + tokenName: 'tabcash', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685394, + tx_hash: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + tx_pos: 2, + value: 546, + txid: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '999958.999999994', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685518, + tx_hash: + 'e570d62939379de82a5008742136fe43564e45aea3b162bf80078bb9607e10cd', + tx_pos: 2, + value: 546, + txid: + 'e570d62939379de82a5008742136fe43564e45aea3b162bf80078bb9607e10cd', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '4bd147fc5d5ff26249a9299c46b80920c0b81f59a60e05428262160ebee0b0c3', + tokenTicker: 'NOCOVID', + tokenName: 'Covid19 Lifetime Immunity', + tokenDocumentUrl: + 'https://www.who.int/emergencies/diseases/novel-coronavirus-2019/covid-19-vaccines', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '996794', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685877, + tx_hash: + '9f4c66b82f5b41f474f9670311e834667c0207a81f9e31a65731a7731e86c3ee', + tx_pos: 2, + value: 546, + txid: + '9f4c66b82f5b41f474f9670311e834667c0207a81f9e31a65731a7731e86c3ee', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '0916e71779c9de7ee125741d3f5ab01f556356dbc86fd327a24f1e9e22ebc917', + tokenTicker: 'CTL2', + tokenName: 'Cashtab Token Launch Launch Token v2', + tokenDocumentUrl: 'thecryptoguy.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1900', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685888, + tx_hash: + '25f591bcf489dcf5ef1b0a9992ba10a2d49ba8d47ce63fb56340343a4ef91a1b', + tx_pos: 2, + value: 546, + txid: + '25f591bcf489dcf5ef1b0a9992ba10a2d49ba8d47ce63fb56340343a4ef91a1b', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'aa7202397a06097e8ff36855aa72c0ee032659747e5bd7cbcd3099fc3a62b6b6', + tokenTicker: 'CTL', + tokenName: 'Cashtab Token Launch Launch Token', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685889, + tx_hash: + '4f5af8d3dc9d1fb3dc803a80589cab62c78235264aa90e4f8066b7960804cd74', + tx_pos: 2, + value: 546, + txid: + '4f5af8d3dc9d1fb3dc803a80589cab62c78235264aa90e4f8066b7960804cd74', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '16b12bbacdbb8c8a799adbfd782bfff9843c1f9b0be148eaae02a1a7f74f95c4', + tokenTicker: 'CGEN', + tokenName: 'Cashtab Genesis', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '999999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686024, + tx_hash: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + tx_pos: 2, + value: 546, + txid: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '77ec4036ef8546ac46df6d3a5374e961216f92624627eaeef5d2e1a253df9fc6', + tokenTicker: 'CTLv3', + tokenName: 'Cashtab Token Launch Launch Token v3', + tokenDocumentUrl: 'coinex.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '300', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686024, + tx_hash: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + tx_pos: 3, + value: 1482000066, + txid: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + vout: 3, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686164, + tx_hash: + '1c55ae5962baae07638a6818b3f6cc6aeadd2c6f2103f4c425fe0064db600f89', + tx_pos: 1, + value: 3967048, + txid: + '1c55ae5962baae07638a6818b3f6cc6aeadd2c6f2103f4c425fe0064db600f89', + vout: 1, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686277, + tx_hash: + 'aa75d670bba7ebc73249535175ab2d7f7425969b1541c8f40e59161eb9ead039', + tx_pos: 1, + value: 546, + txid: + 'aa75d670bba7ebc73249535175ab2d7f7425969b1541c8f40e59161eb9ead039', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'df808a41672a0a0ae6475b44f272a107bc9961b90f29dc918d71301f24fe92fb', + tokenTicker: 'NAKAMOTO', + tokenName: 'NAKAMOTO', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686277, + tx_hash: + 'c0a59a84e9a6b3c4a4eb146aba17558a4aac4d4717d3123549b0ba197403db69', + tx_pos: 0, + value: 100000, + txid: + 'c0a59a84e9a6b3c4a4eb146aba17558a4aac4d4717d3123549b0ba197403db69', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 0, + tx_hash: + 'c8de9469353774426934a161a2d935a11139a75db012b8b63e8f561972ca00e8', + tx_pos: 0, + value: 10000, + txid: + 'c8de9469353774426934a161a2d935a11139a75db012b8b63e8f561972ca00e8', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 0, + tx_hash: + 'd2b76eea35192769897878dca146b9d7b21566e33a2acdf94719201147bca28e', + tx_pos: 0, + value: 10000, + txid: + 'd2b76eea35192769897878dca146b9d7b21566e33a2acdf94719201147bca28e', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + ], + address: 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + ], +}; +export const legacyMergedHydratedUtxoDetails = { + slpUtxos: [ + { + utxos: [ + { + height: 680782, + tx_hash: + '525457276f1b6984170c9b35a8312d4988fce495723eabadd2afcdb3b872b2f1', + tx_pos: 1, + value: 546, + txid: + '525457276f1b6984170c9b35a8312d4988fce495723eabadd2afcdb3b872b2f1', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bf24d955f59351e738ecd905966606a6837e478e1982943d724eab10caad82fd', + tokenTicker: 'ST', + tokenName: 'ST', + tokenDocumentUrl: 'developer.bitcoin.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 680784, + tx_hash: + '28f061fee068d3b9cb578141bac3d4d9ec4eccebec680464bf0aafaac414811f', + tx_pos: 1, + value: 546, + txid: + '28f061fee068d3b9cb578141bac3d4d9ec4eccebec680464bf0aafaac414811f', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bd1acc4c986de57af8d6d2a64aecad8c30ee80f37ae9d066d758923732ddc9ba', + tokenTicker: 'TBS', + tokenName: 'TestBits', + tokenDocumentUrl: 'https://thecryptoguy.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '9897999885.21030105', + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 680784, + tx_hash: + '5fa3ffccea55c968beb7d214c563c92336ce2bbccbb714ba819848a7f7060bdb', + tx_pos: 1, + value: 546, + txid: + '5fa3ffccea55c968beb7d214c563c92336ce2bbccbb714ba819848a7f7060bdb', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bef614aac85c0c866f4d39e4d12a96851267d38d1bca5bdd6488bbd42e28b6b1', + tokenTicker: 'CTP', + tokenName: 'Cash Tab Points', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '308.87654321', + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 680784, + tx_hash: + 'daa98a872b7d88fefd2257b006db001ef82a601f3943b92e0c753076598a7b75', + tx_pos: 1, + value: 546, + txid: + 'daa98a872b7d88fefd2257b006db001ef82a601f3943b92e0c753076598a7b75', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bef614aac85c0c866f4d39e4d12a96851267d38d1bca5bdd6488bbd42e28b6b1', + tokenTicker: 'CTP', + tokenName: 'Cash Tab Points', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '1e-9', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681190, + tx_hash: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + tx_pos: 2, + value: 546, + txid: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1f6a65e7a4bde92c0a012de2bcf4007034504a765377cdf08a3ee01d1eaa6901', + tokenTicker: '🍔', + tokenName: 'Burger', + tokenDocumentUrl: + 'https://c4.wallpaperflare.com/wallpaper/58/564/863/giant-hamburger-wallpaper-preview.jpg', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681191, + tx_hash: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + tx_pos: 2, + value: 546, + txid: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'dd84ca78db4d617221b58eabc6667af8fe2f7eadbfcc213d35be9f1b419beb8d', + tokenTicker: 'TAP', + tokenName: 'Thoughts and Prayers', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681191, + tx_hash: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + tx_pos: 2, + value: 546, + txid: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'df808a41672a0a0ae6475b44f272a107bc9961b90f29dc918d71301f24fe92fb', + tokenTicker: 'NAKAMOTO', + tokenName: 'NAKAMOTO', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '0.99999999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681191, + tx_hash: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + tx_pos: 2, + value: 546, + txid: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7f8889682d57369ed0e32336f8b7e0ffec625a35cca183f4e81fde4e71a538a1', + tokenTicker: 'HONK', + tokenName: 'HONK HONK', + tokenDocumentUrl: 'THE REAL HONK SLP TOKEN', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 684287, + tx_hash: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + tx_pos: 2, + value: 546, + txid: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7443f7c831cdf2b2b04d5f0465ed0bcf348582675b0e4f17906438c232c22f3d', + tokenTicker: 'WDT', + tokenName: + 'Test Token With Exceptionally Long Name For CSS And Style Revisions', + tokenDocumentUrl: + 'https://www.ImpossiblyLongWebsiteDidYouThinkWebDevWouldBeFun.org', + tokenDocumentHash: + '����\\�IS\u001e9�����k+���\u0018���\u001b]�߷2��', + decimals: 7, + tokenType: 1, + tokenQty: '523512276.7961432', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685005, + tx_hash: + 'f5afd3774d11390bcde040f2079bd23edece90ff2b58e453629e6ef2c6b2c513', + tx_pos: 1, + value: 546, + txid: + 'f5afd3774d11390bcde040f2079bd23edece90ff2b58e453629e6ef2c6b2c513', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '9e9738e9ac3ff202736bf7775f875ebae6f812650df577a947c20c52475e43da', + tokenTicker: 'CUTT', + tokenName: 'Cashtab Unit Test Token', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 2, + tokenType: 1, + tokenQty: '100', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685147, + tx_hash: + 'f2d492da069429866c8ed59fd0d5283b8a8da881414633ac35979a2891030c57', + tx_pos: 1, + value: 546, + txid: + 'f2d492da069429866c8ed59fd0d5283b8a8da881414633ac35979a2891030c57', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'ccf5fe5a387559c8ab9efdeb0c0ef1b444e677298cfddf07671245ce3cb3c79f', + tokenTicker: 'XGB', + tokenName: 'Garmonbozia', + tokenDocumentUrl: + 'https://twinpeaks.fandom.com/wiki/Garmonbozia', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '500', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685168, + tx_hash: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + tx_pos: 1, + value: 546, + txid: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + vout: 1, + utxoType: 'token', + tokenQty: '100', + tokenId: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + tokenTicker: 'CLNSP', + tokenName: 'ComponentLongNameSpeedLoad', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685170, + tx_hash: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + tx_pos: 1, + value: 546, + txid: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + vout: 1, + utxoType: 'token', + tokenQty: '55.55555', + tokenId: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + tokenTicker: 'CMA', + tokenName: 'CashtabMintAlpha', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 5, + tokenType: 1, + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685181, + tx_hash: + '7987f68aa70d29ac0e0ac31d74354a8b1cd515c9893f6a5cdc7a3bf505e08b05', + tx_pos: 1, + value: 546, + txid: + '7987f68aa70d29ac0e0ac31d74354a8b1cd515c9893f6a5cdc7a3bf505e08b05', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '50d8292c6255cda7afc6c8566fed3cf42a2794e9619740fe8f4c95431271410e', + tokenTicker: 'TBC', + tokenName: 'tabcash', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685394, + tx_hash: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + tx_pos: 2, + value: 546, + txid: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '999958.999999994', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685518, + tx_hash: + 'e570d62939379de82a5008742136fe43564e45aea3b162bf80078bb9607e10cd', + tx_pos: 2, + value: 546, + txid: + 'e570d62939379de82a5008742136fe43564e45aea3b162bf80078bb9607e10cd', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '4bd147fc5d5ff26249a9299c46b80920c0b81f59a60e05428262160ebee0b0c3', + tokenTicker: 'NOCOVID', + tokenName: 'Covid19 Lifetime Immunity', + tokenDocumentUrl: + 'https://www.who.int/emergencies/diseases/novel-coronavirus-2019/covid-19-vaccines', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '996794', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685877, + tx_hash: + '9f4c66b82f5b41f474f9670311e834667c0207a81f9e31a65731a7731e86c3ee', + tx_pos: 2, + value: 546, + txid: + '9f4c66b82f5b41f474f9670311e834667c0207a81f9e31a65731a7731e86c3ee', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '0916e71779c9de7ee125741d3f5ab01f556356dbc86fd327a24f1e9e22ebc917', + tokenTicker: 'CTL2', + tokenName: 'Cashtab Token Launch Launch Token v2', + tokenDocumentUrl: 'thecryptoguy.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1900', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685888, + tx_hash: + '25f591bcf489dcf5ef1b0a9992ba10a2d49ba8d47ce63fb56340343a4ef91a1b', + tx_pos: 2, + value: 546, + txid: + '25f591bcf489dcf5ef1b0a9992ba10a2d49ba8d47ce63fb56340343a4ef91a1b', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'aa7202397a06097e8ff36855aa72c0ee032659747e5bd7cbcd3099fc3a62b6b6', + tokenTicker: 'CTL', + tokenName: 'Cashtab Token Launch Launch Token', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685889, + tx_hash: + '4f5af8d3dc9d1fb3dc803a80589cab62c78235264aa90e4f8066b7960804cd74', + tx_pos: 2, + value: 546, + txid: + '4f5af8d3dc9d1fb3dc803a80589cab62c78235264aa90e4f8066b7960804cd74', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '16b12bbacdbb8c8a799adbfd782bfff9843c1f9b0be148eaae02a1a7f74f95c4', + tokenTicker: 'CGEN', + tokenName: 'Cashtab Genesis', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '999999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686024, + tx_hash: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + tx_pos: 2, + value: 546, + txid: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '77ec4036ef8546ac46df6d3a5374e961216f92624627eaeef5d2e1a253df9fc6', + tokenTicker: 'CTLv3', + tokenName: 'Cashtab Token Launch Launch Token v3', + tokenDocumentUrl: 'coinex.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '300', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + ], + address: 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + utxos: [ + { + height: 686024, + tx_hash: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + tx_pos: 3, + value: 1482000066, + txid: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + vout: 3, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686164, + tx_hash: + '1c55ae5962baae07638a6818b3f6cc6aeadd2c6f2103f4c425fe0064db600f89', + tx_pos: 1, + value: 3967048, + txid: + '1c55ae5962baae07638a6818b3f6cc6aeadd2c6f2103f4c425fe0064db600f89', + vout: 1, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686277, + tx_hash: + 'aa75d670bba7ebc73249535175ab2d7f7425969b1541c8f40e59161eb9ead039', + tx_pos: 1, + value: 546, + txid: + 'aa75d670bba7ebc73249535175ab2d7f7425969b1541c8f40e59161eb9ead039', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'df808a41672a0a0ae6475b44f272a107bc9961b90f29dc918d71301f24fe92fb', + tokenTicker: 'NAKAMOTO', + tokenName: 'NAKAMOTO', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686277, + tx_hash: + 'c0a59a84e9a6b3c4a4eb146aba17558a4aac4d4717d3123549b0ba197403db69', + tx_pos: 0, + value: 100000, + txid: + 'c0a59a84e9a6b3c4a4eb146aba17558a4aac4d4717d3123549b0ba197403db69', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + ], + address: 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + utxos: [ + { + height: 0, + tx_hash: + 'c8de9469353774426934a161a2d935a11139a75db012b8b63e8f561972ca00e8', + tx_pos: 0, + value: 10000, + txid: + 'c8de9469353774426934a161a2d935a11139a75db012b8b63e8f561972ca00e8', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + ], + address: 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + utxos: [ + { + height: 0, + tx_hash: + 'd2b76eea35192769897878dca146b9d7b21566e33a2acdf94719201147bca28e', + tx_pos: 0, + value: 10000, + txid: + 'd2b76eea35192769897878dca146b9d7b21566e33a2acdf94719201147bca28e', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + ], + address: 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + ], +}; +export const templatePreviouslyHydratedUtxos = { + slpUtxos: [ + { utxos: [1, 2, 3], address: 'address1' }, + { utxos: [7, 8, 9], address: 'address2' }, + ], +}; +export const templateNewHydratedUtxos = { + slpUtxos: [ + { utxos: [4, 5, 6], address: 'address1' }, + { utxos: [10, 11, 12], address: 'address2' }, + ], +}; +export const templateNewHydratedUtxosWithDuplicates = { + slpUtxos: [ + { utxos: [1, 2, 3, 4, 5, 6], address: 'address1' }, + { utxos: [7, 8, 9, 10, 11, 12], address: 'address2' }, + ], +}; +export const templateAddedHydratedUtxos = { + slpUtxos: [ + { utxos: [1, 2, 3, 4, 5, 6], address: 'address1' }, + { utxos: [7, 8, 9, 10, 11, 12], address: 'address2' }, + ], +}; + +export const templateMergedHydratedUtxos = { + slpUtxos: [ + { utxos: [1, 2, 3], address: 'address1' }, + { utxos: [7, 8, 9], address: 'address2' }, + { utxos: [4, 5, 6], address: 'address1' }, + { utxos: [10, 11, 12], address: 'address2' }, + ], +}; + +export const parsedChangedUtxosBoth = { + utxosConfirmed: [ + { + address: 'bitcoincash:qzqpcnas8wpxzgvg52lcs34fxrfnv4xwwvc8vkd3v4', + utxos: [], + }, + { + address: 'bitcoincash:qpg4sucvkh0gy3fv3yd8fqj7grg6gxwyus753nq8c7', + utxos: [], + }, + { + address: 'bitcoincash:qqartrrq3npyzpcqswq2hcslstzu38mq8gvgtuqfpf', + utxos: [ + { + height: 685393, + tx_hash: + '3f626eb101f33eee4750902634dc18bd82a58200117e05aada27077ef21bbd28', + tx_pos: 0, + value: 800000, + }, + ], + }, + ], + utxosToHydrate: [ + { + address: 'bitcoincash:qzqpcnas8wpxzgvg52lcs34fxrfnv4xwwvc8vkd3v4', + utxos: [], + }, + { + address: 'bitcoincash:qpg4sucvkh0gy3fv3yd8fqj7grg6gxwyus753nq8c7', + utxos: [], + }, + { + address: 'bitcoincash:qqartrrq3npyzpcqswq2hcslstzu38mq8gvgtuqfpf', + utxos: [ + { + height: 0, + tx_hash: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + tx_pos: 1, + value: 546, + }, + ], + }, + ], +}; + +export const parsedChangedUtxosHydrateOnly = { + utxosConfirmed: [ + { + address: 'bitcoincash:qzqpcnas8wpxzgvg52lcs34fxrfnv4xwwvc8vkd3v4', + utxos: [], + }, + { + address: 'bitcoincash:qpg4sucvkh0gy3fv3yd8fqj7grg6gxwyus753nq8c7', + utxos: [], + }, + { + address: 'bitcoincash:qqartrrq3npyzpcqswq2hcslstzu38mq8gvgtuqfpf', + utxos: [], + }, + ], + utxosToHydrate: [ + { + address: 'bitcoincash:qzqpcnas8wpxzgvg52lcs34fxrfnv4xwwvc8vkd3v4', + utxos: [], + }, + { + address: 'bitcoincash:qpg4sucvkh0gy3fv3yd8fqj7grg6gxwyus753nq8c7', + utxos: [], + }, + { + address: 'bitcoincash:qqartrrq3npyzpcqswq2hcslstzu38mq8gvgtuqfpf', + utxos: [ + { + height: 0, + tx_hash: + '3f626eb101f33eee4750902634dc18bd82a58200117e05aada27077ef21bbd28', + tx_pos: 0, + value: 800000, + }, + ], + }, + ], +}; +// The changed utxos from utxosReceivingBcha and utxosReceivingSlpa +// note there are 2 here bc the `height` param of the bcha utxo changed +// in addition to the new slpa utxo +export const unchangedUtxosSameAddresses = [ + { + address: 'bitcoincash:qzqpcnas8wpxzgvg52lcs34fxrfnv4xwwvc8vkd3v4', + utxos: [], + }, + { + address: 'bitcoincash:qpg4sucvkh0gy3fv3yd8fqj7grg6gxwyus753nq8c7', + utxos: [], + }, + { + address: 'bitcoincash:qqartrrq3npyzpcqswq2hcslstzu38mq8gvgtuqfpf', + utxos: [], + }, +]; +export const utxosReceivingSlpaDelta = [ + { + address: 'bitcoincash:qzqpcnas8wpxzgvg52lcs34fxrfnv4xwwvc8vkd3v4', + utxos: [], + }, + { + address: 'bitcoincash:qpg4sucvkh0gy3fv3yd8fqj7grg6gxwyus753nq8c7', + utxos: [], + }, + { + address: 'bitcoincash:qqartrrq3npyzpcqswq2hcslstzu38mq8gvgtuqfpf', + utxos: [ + { + height: 685393, + tx_hash: + '3f626eb101f33eee4750902634dc18bd82a58200117e05aada27077ef21bbd28', + tx_pos: 0, + value: 800000, + }, + { + height: 0, + tx_hash: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + tx_pos: 1, + value: 546, + }, + ], + }, +]; + +// Utxo set after receiving 1 token transaction +export const utxosReceivingSlpa = [ + { + utxos: [], + address: 'bitcoincash:qzqpcnas8wpxzgvg52lcs34fxrfnv4xwwvc8vkd3v4', + }, + { + utxos: [], + address: 'bitcoincash:qpg4sucvkh0gy3fv3yd8fqj7grg6gxwyus753nq8c7', + }, + { + utxos: [ + { + height: 681188, + tx_hash: + '5b74e05ced6b7d862fe9cab94071b2ccfa475c0cef94b90c7edb8a06f90e5ad6', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + '0aacdb7d85c466a7d6d4edf127883da40b05617d9c4ff7493bde3c973f22231d', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + '2cc8f480e9adfb74aff7351bdbbf12ed8972e35fb8bd0f43b9ea5e4aeaec5693', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + '36bdf8461dbc19ff46681e9bcb6d5312c8d276ef17779ff8016d647594c39991', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + '6b1476b65d3e29248c3809e18add16cddfee9e1d9a7060df97b35e517e8b7131', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + '986dc9f9cc91e9976f2a8470805ab3b6bccfd4eaf224cdfa35bb62294bd8aac3', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + 'c4ef58f111ae86c7e1a9be4d5b553de6f6061b4bdca130d360c4e18476679ad7', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + 'c551e9ea96ce844bb1aaee65c99a312bb5fa66f8f822ab45dec63c7c3b77bbe5', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + 'da2af7958ab41e892c63d6a68be0cb4a0fd3315f2d5d5d7c51f92891187b9f1f', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + 'e69c1b507f7ca3dfac790e26fbd132085cf1796648563a5facfe3c82a6401e6c', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + 'f38ccfa615e38f0c871f4eb35db420157808014f1f5743f1522529253c0c4c56', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + 'f3a106c523a1af4c3d68d3c82a015f3d7c890f590b410bde535b5ad392c447a4', + tx_pos: 1, + value: 546, + }, + { + height: 681190, + tx_hash: + 'aa50baef76708fee1f19bd098c0d7407b64b280afd76a450067a89ab2bddd3e8', + tx_pos: 1, + value: 546, + }, + { + height: 681190, + tx_hash: + 'bfc175d1933aed136d7bd887481144ec42112c34e7889cf3f21013409e233e3d', + tx_pos: 1, + value: 546, + }, + { + height: 681190, + tx_hash: + 'c2d2e57203f5d66c3bddd3f4fd5ccb053006588bfa0fec76bdbbfd2169984e9c', + tx_pos: 1, + value: 546, + }, + { + height: 681190, + tx_hash: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + tx_pos: 1, + value: 546, + }, + { + height: 681191, + tx_hash: + '091c9f32deb2f4f3733673803f51acf050b65d8042d1561824c6cd22d14bb43b', + tx_pos: 1, + value: 546, + }, + { + height: 681191, + tx_hash: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + tx_pos: 1, + value: 546, + }, + { + height: 681191, + tx_hash: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + tx_pos: 1, + value: 546, + }, + { + height: 681191, + tx_hash: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + tx_pos: 1, + value: 546, + }, + { + height: 681192, + tx_hash: + '880baf5691c2b4c5a22ae4032e2004c0c54bfabf003468044a2e341846137136', + tx_pos: 1, + value: 546, + }, + { + height: 681192, + tx_hash: + 'b7f8b23f5ce12842eb655239919b6142052a2fa2b2ce974a4baac36b0137f332', + tx_pos: 1, + value: 546, + }, + { + height: 681192, + tx_hash: + 'f27ff24c15b01c30d44218c6dc8706fd33cc7bc9b4b38399075f0f41d8e412af', + tx_pos: 1, + value: 546, + }, + { + height: 681329, + tx_hash: + '08e9a7b9537e60f630eba0f339be6b97e9d8061d5fc0c4d3247226fc86574ce9', + tx_pos: 1, + value: 546, + }, + { + height: 681329, + tx_hash: + '16ccf6a34209b25fe78f6a3cdf685eb89f498a7edf144b9e049958c8eda2b439', + tx_pos: 1, + value: 546, + }, + { + height: 684267, + tx_hash: + '05f40504b5d4ca11c714043010fe9f2f8670cc94d11afd11b759a218b712c14b', + tx_pos: 2, + value: 546, + }, + { + height: 684287, + tx_hash: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + tx_pos: 1, + value: 546, + }, + { + height: 684293, + tx_hash: + '2eeff69fd2338e50e1934e97dae0c841c7b4ef603e800cd06bc47da46e50a3ae', + tx_pos: 1, + value: 546, + }, + { + height: 684293, + tx_hash: + '3f324d982a4cdb650631fda0d9bf8905c593e9483eed7df5d00435afa10bcf59', + tx_pos: 1, + value: 546, + }, + { + height: 684401, + tx_hash: + '2f00292c33f50408c64ab5621069ace65893d342832bde1846e8963217817430', + tx_pos: 1, + value: 546, + }, + { + height: 684795, + tx_hash: + '11ae0a8c62deeadbffe82ddea823e731dba7172a672bd98628bf8bd3c0e15b50', + tx_pos: 1, + value: 546, + }, + { + height: 684796, + tx_hash: + 'fbacf0cf1881fcb0619246dc961d3a617b610b44d39363f762cc0744fd08bf6d', + tx_pos: 2, + value: 546, + }, + { + height: 685078, + tx_hash: + '7bf234bbb7a66869f0e234f22652c1291f3a57380fffe4edf3ef759faccbb365', + tx_pos: 1, + value: 546, + }, + { + height: 685078, + tx_hash: + '7bf234bbb7a66869f0e234f22652c1291f3a57380fffe4edf3ef759faccbb365', + tx_pos: 2, + value: 696, + }, + { + height: 685126, + tx_hash: + '0a083cf9e2b3d4acd2d733877a29db09906550ad6d9aad7534b56f690d3a0cee', + tx_pos: 1, + value: 2247330, + }, + { + height: 685393, + tx_hash: + '3f626eb101f33eee4750902634dc18bd82a58200117e05aada27077ef21bbd28', + tx_pos: 0, + value: 800000, + }, + { + height: 0, + tx_hash: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + tx_pos: 1, + value: 546, + }, + ], + address: 'bitcoincash:qqartrrq3npyzpcqswq2hcslstzu38mq8gvgtuqfpf', + }, +]; +// The utxo of the newly received bcha tx +export const utxosReceivingBchaDelta = [ + { + address: 'bitcoincash:qzqpcnas8wpxzgvg52lcs34fxrfnv4xwwvc8vkd3v4', + utxos: [], + }, + { + address: 'bitcoincash:qpg4sucvkh0gy3fv3yd8fqj7grg6gxwyus753nq8c7', + utxos: [], + }, + { + address: 'bitcoincash:qqartrrq3npyzpcqswq2hcslstzu38mq8gvgtuqfpf', + utxos: [ + { + height: 0, + tx_hash: + '3f626eb101f33eee4750902634dc18bd82a58200117e05aada27077ef21bbd28', + tx_pos: 0, + value: 800000, + }, + ], + }, +]; + +// Utxo set after receiving 1 bcha tx +export const utxosReceivingBcha = [ + { + utxos: [], + address: 'bitcoincash:qzqpcnas8wpxzgvg52lcs34fxrfnv4xwwvc8vkd3v4', + }, + { + utxos: [], + address: 'bitcoincash:qpg4sucvkh0gy3fv3yd8fqj7grg6gxwyus753nq8c7', + }, + { + utxos: [ + { + height: 681188, + tx_hash: + '5b74e05ced6b7d862fe9cab94071b2ccfa475c0cef94b90c7edb8a06f90e5ad6', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + '0aacdb7d85c466a7d6d4edf127883da40b05617d9c4ff7493bde3c973f22231d', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + '2cc8f480e9adfb74aff7351bdbbf12ed8972e35fb8bd0f43b9ea5e4aeaec5693', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + '36bdf8461dbc19ff46681e9bcb6d5312c8d276ef17779ff8016d647594c39991', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + '6b1476b65d3e29248c3809e18add16cddfee9e1d9a7060df97b35e517e8b7131', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + '986dc9f9cc91e9976f2a8470805ab3b6bccfd4eaf224cdfa35bb62294bd8aac3', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + 'c4ef58f111ae86c7e1a9be4d5b553de6f6061b4bdca130d360c4e18476679ad7', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + 'c551e9ea96ce844bb1aaee65c99a312bb5fa66f8f822ab45dec63c7c3b77bbe5', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + 'da2af7958ab41e892c63d6a68be0cb4a0fd3315f2d5d5d7c51f92891187b9f1f', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + 'e69c1b507f7ca3dfac790e26fbd132085cf1796648563a5facfe3c82a6401e6c', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + 'f38ccfa615e38f0c871f4eb35db420157808014f1f5743f1522529253c0c4c56', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + 'f3a106c523a1af4c3d68d3c82a015f3d7c890f590b410bde535b5ad392c447a4', + tx_pos: 1, + value: 546, + }, + { + height: 681190, + tx_hash: + 'aa50baef76708fee1f19bd098c0d7407b64b280afd76a450067a89ab2bddd3e8', + tx_pos: 1, + value: 546, + }, + { + height: 681190, + tx_hash: + 'bfc175d1933aed136d7bd887481144ec42112c34e7889cf3f21013409e233e3d', + tx_pos: 1, + value: 546, + }, + { + height: 681190, + tx_hash: + 'c2d2e57203f5d66c3bddd3f4fd5ccb053006588bfa0fec76bdbbfd2169984e9c', + tx_pos: 1, + value: 546, + }, + { + height: 681190, + tx_hash: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + tx_pos: 1, + value: 546, + }, + { + height: 681191, + tx_hash: + '091c9f32deb2f4f3733673803f51acf050b65d8042d1561824c6cd22d14bb43b', + tx_pos: 1, + value: 546, + }, + { + height: 681191, + tx_hash: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + tx_pos: 1, + value: 546, + }, + { + height: 681191, + tx_hash: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + tx_pos: 1, + value: 546, + }, + { + height: 681191, + tx_hash: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + tx_pos: 1, + value: 546, + }, + { + height: 681192, + tx_hash: + '880baf5691c2b4c5a22ae4032e2004c0c54bfabf003468044a2e341846137136', + tx_pos: 1, + value: 546, + }, + { + height: 681192, + tx_hash: + 'b7f8b23f5ce12842eb655239919b6142052a2fa2b2ce974a4baac36b0137f332', + tx_pos: 1, + value: 546, + }, + { + height: 681192, + tx_hash: + 'f27ff24c15b01c30d44218c6dc8706fd33cc7bc9b4b38399075f0f41d8e412af', + tx_pos: 1, + value: 546, + }, + { + height: 681329, + tx_hash: + '08e9a7b9537e60f630eba0f339be6b97e9d8061d5fc0c4d3247226fc86574ce9', + tx_pos: 1, + value: 546, + }, + { + height: 681329, + tx_hash: + '16ccf6a34209b25fe78f6a3cdf685eb89f498a7edf144b9e049958c8eda2b439', + tx_pos: 1, + value: 546, + }, + { + height: 684267, + tx_hash: + '05f40504b5d4ca11c714043010fe9f2f8670cc94d11afd11b759a218b712c14b', + tx_pos: 2, + value: 546, + }, + { + height: 684287, + tx_hash: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + tx_pos: 1, + value: 546, + }, + { + height: 684293, + tx_hash: + '2eeff69fd2338e50e1934e97dae0c841c7b4ef603e800cd06bc47da46e50a3ae', + tx_pos: 1, + value: 546, + }, + { + height: 684293, + tx_hash: + '3f324d982a4cdb650631fda0d9bf8905c593e9483eed7df5d00435afa10bcf59', + tx_pos: 1, + value: 546, + }, + { + height: 684401, + tx_hash: + '2f00292c33f50408c64ab5621069ace65893d342832bde1846e8963217817430', + tx_pos: 1, + value: 546, + }, + { + height: 684795, + tx_hash: + '11ae0a8c62deeadbffe82ddea823e731dba7172a672bd98628bf8bd3c0e15b50', + tx_pos: 1, + value: 546, + }, + { + height: 684796, + tx_hash: + 'fbacf0cf1881fcb0619246dc961d3a617b610b44d39363f762cc0744fd08bf6d', + tx_pos: 2, + value: 546, + }, + { + height: 685078, + tx_hash: + '7bf234bbb7a66869f0e234f22652c1291f3a57380fffe4edf3ef759faccbb365', + tx_pos: 1, + value: 546, + }, + { + height: 685078, + tx_hash: + '7bf234bbb7a66869f0e234f22652c1291f3a57380fffe4edf3ef759faccbb365', + tx_pos: 2, + value: 696, + }, + { + height: 685126, + tx_hash: + '0a083cf9e2b3d4acd2d733877a29db09906550ad6d9aad7534b56f690d3a0cee', + tx_pos: 1, + value: 2247330, + }, + { + height: 0, + tx_hash: + '3f626eb101f33eee4750902634dc18bd82a58200117e05aada27077ef21bbd28', + tx_pos: 0, + value: 800000, + }, + ], + address: 'bitcoincash:qqartrrq3npyzpcqswq2hcslstzu38mq8gvgtuqfpf', + }, +]; + +// Original utxo set +export const previousUtxos = [ + { + utxos: [], + address: 'bitcoincash:qzqpcnas8wpxzgvg52lcs34fxrfnv4xwwvc8vkd3v4', + }, + { + utxos: [], + address: 'bitcoincash:qpg4sucvkh0gy3fv3yd8fqj7grg6gxwyus753nq8c7', + }, + { + utxos: [ + { + height: 681188, + tx_hash: + '5b74e05ced6b7d862fe9cab94071b2ccfa475c0cef94b90c7edb8a06f90e5ad6', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + '0aacdb7d85c466a7d6d4edf127883da40b05617d9c4ff7493bde3c973f22231d', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + '2cc8f480e9adfb74aff7351bdbbf12ed8972e35fb8bd0f43b9ea5e4aeaec5693', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + '36bdf8461dbc19ff46681e9bcb6d5312c8d276ef17779ff8016d647594c39991', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + '6b1476b65d3e29248c3809e18add16cddfee9e1d9a7060df97b35e517e8b7131', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + '986dc9f9cc91e9976f2a8470805ab3b6bccfd4eaf224cdfa35bb62294bd8aac3', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + 'c4ef58f111ae86c7e1a9be4d5b553de6f6061b4bdca130d360c4e18476679ad7', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + 'c551e9ea96ce844bb1aaee65c99a312bb5fa66f8f822ab45dec63c7c3b77bbe5', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + 'da2af7958ab41e892c63d6a68be0cb4a0fd3315f2d5d5d7c51f92891187b9f1f', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + 'e69c1b507f7ca3dfac790e26fbd132085cf1796648563a5facfe3c82a6401e6c', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + 'f38ccfa615e38f0c871f4eb35db420157808014f1f5743f1522529253c0c4c56', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + 'f3a106c523a1af4c3d68d3c82a015f3d7c890f590b410bde535b5ad392c447a4', + tx_pos: 1, + value: 546, + }, + { + height: 681190, + tx_hash: + 'aa50baef76708fee1f19bd098c0d7407b64b280afd76a450067a89ab2bddd3e8', + tx_pos: 1, + value: 546, + }, + { + height: 681190, + tx_hash: + 'bfc175d1933aed136d7bd887481144ec42112c34e7889cf3f21013409e233e3d', + tx_pos: 1, + value: 546, + }, + { + height: 681190, + tx_hash: + 'c2d2e57203f5d66c3bddd3f4fd5ccb053006588bfa0fec76bdbbfd2169984e9c', + tx_pos: 1, + value: 546, + }, + { + height: 681190, + tx_hash: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + tx_pos: 1, + value: 546, + }, + { + height: 681191, + tx_hash: + '091c9f32deb2f4f3733673803f51acf050b65d8042d1561824c6cd22d14bb43b', + tx_pos: 1, + value: 546, + }, + { + height: 681191, + tx_hash: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + tx_pos: 1, + value: 546, + }, + { + height: 681191, + tx_hash: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + tx_pos: 1, + value: 546, + }, + { + height: 681191, + tx_hash: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + tx_pos: 1, + value: 546, + }, + { + height: 681192, + tx_hash: + '880baf5691c2b4c5a22ae4032e2004c0c54bfabf003468044a2e341846137136', + tx_pos: 1, + value: 546, + }, + { + height: 681192, + tx_hash: + 'b7f8b23f5ce12842eb655239919b6142052a2fa2b2ce974a4baac36b0137f332', + tx_pos: 1, + value: 546, + }, + { + height: 681192, + tx_hash: + 'f27ff24c15b01c30d44218c6dc8706fd33cc7bc9b4b38399075f0f41d8e412af', + tx_pos: 1, + value: 546, + }, + { + height: 681329, + tx_hash: + '08e9a7b9537e60f630eba0f339be6b97e9d8061d5fc0c4d3247226fc86574ce9', + tx_pos: 1, + value: 546, + }, + { + height: 681329, + tx_hash: + '16ccf6a34209b25fe78f6a3cdf685eb89f498a7edf144b9e049958c8eda2b439', + tx_pos: 1, + value: 546, + }, + { + height: 684267, + tx_hash: + '05f40504b5d4ca11c714043010fe9f2f8670cc94d11afd11b759a218b712c14b', + tx_pos: 2, + value: 546, + }, + { + height: 684287, + tx_hash: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + tx_pos: 1, + value: 546, + }, + { + height: 684293, + tx_hash: + '2eeff69fd2338e50e1934e97dae0c841c7b4ef603e800cd06bc47da46e50a3ae', + tx_pos: 1, + value: 546, + }, + { + height: 684293, + tx_hash: + '3f324d982a4cdb650631fda0d9bf8905c593e9483eed7df5d00435afa10bcf59', + tx_pos: 1, + value: 546, + }, + { + height: 684401, + tx_hash: + '2f00292c33f50408c64ab5621069ace65893d342832bde1846e8963217817430', + tx_pos: 1, + value: 546, + }, + { + height: 684795, + tx_hash: + '11ae0a8c62deeadbffe82ddea823e731dba7172a672bd98628bf8bd3c0e15b50', + tx_pos: 1, + value: 546, + }, + { + height: 684796, + tx_hash: + 'fbacf0cf1881fcb0619246dc961d3a617b610b44d39363f762cc0744fd08bf6d', + tx_pos: 2, + value: 546, + }, + { + height: 685078, + tx_hash: + '7bf234bbb7a66869f0e234f22652c1291f3a57380fffe4edf3ef759faccbb365', + tx_pos: 1, + value: 546, + }, + { + height: 685078, + tx_hash: + '7bf234bbb7a66869f0e234f22652c1291f3a57380fffe4edf3ef759faccbb365', + tx_pos: 2, + value: 696, + }, + { + height: 685126, + tx_hash: + '0a083cf9e2b3d4acd2d733877a29db09906550ad6d9aad7534b56f690d3a0cee', + tx_pos: 1, + value: 2247330, + }, + ], + address: 'bitcoincash:qqartrrq3npyzpcqswq2hcslstzu38mq8gvgtuqfpf', + }, +]; + +export const utxosAfterBchaSend = [ + { + utxos: [], + address: 'bitcoincash:qq0mw6nah9huwaxt45qw3fegjpszkjlrqsvttwy36p', + }, + { + utxos: [], + address: 'bitcoincash:qz5lf9pxde9neq3hzte8mmwts03sktl9nuz6m3dynu', + }, + { + utxos: [ + { + height: 680782, + tx_hash: + '525457276f1b6984170c9b35a8312d4988fce495723eabadd2afcdb3b872b2f1', + tx_pos: 1, + value: 546, + }, + { + height: 680784, + tx_hash: + '28f061fee068d3b9cb578141bac3d4d9ec4eccebec680464bf0aafaac414811f', + tx_pos: 1, + value: 546, + }, + { + height: 680784, + tx_hash: + '5fa3ffccea55c968beb7d214c563c92336ce2bbccbb714ba819848a7f7060bdb', + tx_pos: 1, + value: 546, + }, + { + height: 680784, + tx_hash: + 'daa98a872b7d88fefd2257b006db001ef82a601f3943b92e0c753076598a7b75', + tx_pos: 1, + value: 546, + }, + { + height: 681190, + tx_hash: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + tx_pos: 2, + value: 546, + }, + { + height: 681191, + tx_hash: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + tx_pos: 2, + value: 546, + }, + { + height: 681191, + tx_hash: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + tx_pos: 2, + value: 546, + }, + { + height: 681191, + tx_hash: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + tx_pos: 2, + value: 546, + }, + { + height: 684287, + tx_hash: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + tx_pos: 2, + value: 546, + }, + { + height: 685005, + tx_hash: + 'f5afd3774d11390bcde040f2079bd23edece90ff2b58e453629e6ef2c6b2c513', + tx_pos: 1, + value: 546, + }, + { + height: 685147, + tx_hash: + 'f2d492da069429866c8ed59fd0d5283b8a8da881414633ac35979a2891030c57', + tx_pos: 1, + value: 546, + }, + { + height: 685168, + tx_hash: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + tx_pos: 1, + value: 546, + }, + { + height: 685170, + tx_hash: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + tx_pos: 1, + value: 546, + }, + { + height: 685181, + tx_hash: + '7987f68aa70d29ac0e0ac31d74354a8b1cd515c9893f6a5cdc7a3bf505e08b05', + tx_pos: 1, + value: 546, + }, + { + height: 685394, + tx_hash: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + tx_pos: 2, + value: 546, + }, + { + height: 685518, + tx_hash: + 'e570d62939379de82a5008742136fe43564e45aea3b162bf80078bb9607e10cd', + tx_pos: 2, + value: 546, + }, + { + height: 685877, + tx_hash: + '9f4c66b82f5b41f474f9670311e834667c0207a81f9e31a65731a7731e86c3ee', + tx_pos: 2, + value: 546, + }, + { + height: 685888, + tx_hash: + '25f591bcf489dcf5ef1b0a9992ba10a2d49ba8d47ce63fb56340343a4ef91a1b', + tx_pos: 2, + value: 546, + }, + { + height: 685889, + tx_hash: + '4f5af8d3dc9d1fb3dc803a80589cab62c78235264aa90e4f8066b7960804cd74', + tx_pos: 2, + value: 546, + }, + { + height: 686024, + tx_hash: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + tx_pos: 2, + value: 546, + }, + { + height: 686277, + tx_hash: + 'aa75d670bba7ebc73249535175ab2d7f7425969b1541c8f40e59161eb9ead039', + tx_pos: 1, + value: 546, + }, + { + height: 686277, + tx_hash: + 'c0a59a84e9a6b3c4a4eb146aba17558a4aac4d4717d3123549b0ba197403db69', + tx_pos: 0, + value: 100000, + }, + { + height: 686351, + tx_hash: + 'c8de9469353774426934a161a2d935a11139a75db012b8b63e8f561972ca00e8', + tx_pos: 0, + value: 10000, + }, + { + height: 686351, + tx_hash: + 'd2b76eea35192769897878dca146b9d7b21566e33a2acdf94719201147bca28e', + tx_pos: 0, + value: 10000, + }, + { + height: 686352, + tx_hash: + '15b522b0b91876e4d5196bb5c86369142e58f31e68120eee9955c964c2669b6f', + tx_pos: 1, + value: 546, + }, + { + height: 686542, + tx_hash: + '3dd57d367dc61c5e369bbe9b04a5c5c01bb1615877e34a6446833d4b2cb44172', + tx_pos: 0, + value: 10000, + }, + { + height: 686544, + tx_hash: + '3ab1e30aa9bcd2edd157fc141cf83b5739f9b3f22698d86ed8f48a78f71b6fa1', + tx_pos: 0, + value: 10000, + }, + { + height: 686544, + tx_hash: + 'a64b02b2c59c510c31173d433ac20ae8cd40e997a49d3848de3f3edb45f11e43', + tx_pos: 0, + value: 20000, + }, + { + height: 686546, + tx_hash: + '19f09ba38231d895b6b741c7c16a1e5892858d41b9bd2c03744fc7a87285855a', + tx_pos: 1, + value: 546, + }, + { + height: 686546, + tx_hash: + '2eb1241f96ca14fe23c024908c2db6bbbcc58e47caf25a0626686c84b2d8c095', + tx_pos: 0, + value: 2000, + }, + { + height: 686546, + tx_hash: + '410627195eb0a79dca560f05915296b8efaf66ddde01d3095f8bea1d6c329476', + tx_pos: 0, + value: 1000, + }, + { + height: 686546, + tx_hash: + '5427f85198b1ce396742be1516140e8ef7a318d11b267a01f2fe5278a8f9062f', + tx_pos: 1, + value: 546, + }, + { + height: 686546, + tx_hash: + '7df3adba4713eac5f937283a8ddb91c15cf08d06f81f25e60a972c4cc28b0b6f', + tx_pos: 0, + value: 2000, + }, + { + height: 686546, + tx_hash: + '93e6ee69be3221562e7481e5346987178d76536337fd9a9c670895af3dbfe2d3', + tx_pos: 1, + value: 1481988933, + }, + { + height: 686546, + tx_hash: + '9d4585c4009e69ce9c49764c16508adf5deca9d57b4a13690cc6939a1c879b85', + tx_pos: 0, + value: 3000, + }, + { + height: 686546, + tx_hash: + 'a2de4052a85ef62fd0672f34c1d669c9277ffeb0d6e9edeffb31173ec032c0a4', + tx_pos: 0, + value: 33000, + }, + { + height: 686546, + tx_hash: + 'a50d9c3e1ffbbfd914c061765fbe2682e27aa2dbae67f220d532d6c8bca96647', + tx_pos: 0, + value: 3000, + }, + { + height: 686546, + tx_hash: + 'bd84598096c113cd2110bc1748dd0613a933e2ddc440654c12ca4db4659933ed', + tx_pos: 1, + value: 546, + }, + { + height: 686546, + tx_hash: + 'd00cb1a8f1287b2f30d319fa71a038a4e2813892060ecebbd9740ec7179e286b', + tx_pos: 0, + value: 2000, + }, + { + height: 686546, + tx_hash: + 'd0bb2bfcc0f331e1b6d4d0850ad580387086c38b6c0ca9c9f4aa93d8a57de335', + tx_pos: 0, + value: 2000, + }, + { + height: 686546, + tx_hash: + 'd72c163c45772092426921aa682d850d6ec1a0958cb1e842b785783758757e97', + tx_pos: 1, + value: 546, + }, + { + height: 686546, + tx_hash: + 'ea122a8c94d3ffebb657d0db22a79f192afdc2aa3c91a71f1df3cedd15e5b015', + tx_pos: 0, + value: 3000, + }, + { + height: 686672, + tx_hash: + '361b5ea27aa31c8692b817a1b264479a9d7c9836f4f72166c9a1dcd85dd5ec91', + tx_pos: 1, + value: 3731915, + }, + ], + address: 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, +]; + +export const walletStateAfterBotchedUtxoAdd = { + mnemonic: + 'brand solve father anchor derive left poem item junior then swim ritual', + name: 'TripDos', + Path245: { + cashAddress: 'bitcoincash:qq0mw6nah9huwaxt45qw3fegjpszkjlrqsvttwy36p', + slpAddress: 'simpleledger:qq0mw6nah9huwaxt45qw3fegjpszkjlrqsqsq433yl', + fundingAddress: + 'simpleledger:qq0mw6nah9huwaxt45qw3fegjpszkjlrqsqsq433yl', + legacyAddress: '13thfuvhCA1dGE7nVgyU61BZfoD8ApXJsg', + }, + Path145: { + cashAddress: 'bitcoincash:qz5lf9pxde9neq3hzte8mmwts03sktl9nuz6m3dynu', + slpAddress: 'simpleledger:qz5lf9pxde9neq3hzte8mmwts03sktl9nuwps2cydz', + fundingAddress: + 'simpleledger:qz5lf9pxde9neq3hzte8mmwts03sktl9nuwps2cydz', + legacyAddress: '1GVeC3gB6V3EStcQbJiry5BJn4fRdHjKyc', + }, + Path1899: { + cashAddress: 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + slpAddress: 'simpleledger:qz2708636snqhsxu8wnlka78h6fdp77ar5syue64fa', + fundingAddress: + 'simpleledger:qz2708636snqhsxu8wnlka78h6fdp77ar5syue64fa', + legacyAddress: '1Efd9z9GRVJK2r73nUpFmBnsKUmfXNm2y2', + }, + state: { + balances: { + totalBalanceInSatoshis: 2968167047, + totalBalance: 29.68167047, + }, + tokens: [ + { + info: { + height: 680782, + tx_hash: + '525457276f1b6984170c9b35a8312d4988fce495723eabadd2afcdb3b872b2f1', + tx_pos: 1, + value: 546, + txid: + '525457276f1b6984170c9b35a8312d4988fce495723eabadd2afcdb3b872b2f1', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bf24d955f59351e738ecd905966606a6837e478e1982943d724eab10caad82fd', + tokenTicker: 'ST', + tokenName: 'ST', + tokenDocumentUrl: 'developer.bitcoin.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + 'bf24d955f59351e738ecd905966606a6837e478e1982943d724eab10caad82fd', + balance: { + s: 1, + e: 0, + c: [1], + }, + hasBaton: false, + }, + { + info: { + height: 680784, + tx_hash: + 'daa98a872b7d88fefd2257b006db001ef82a601f3943b92e0c753076598a7b75', + tx_pos: 1, + value: 546, + txid: + 'daa98a872b7d88fefd2257b006db001ef82a601f3943b92e0c753076598a7b75', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bef614aac85c0c866f4d39e4d12a96851267d38d1bca5bdd6488bbd42e28b6b1', + tokenTicker: 'CTP', + tokenName: 'Cash Tab Points', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '1e-9', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + 'bef614aac85c0c866f4d39e4d12a96851267d38d1bca5bdd6488bbd42e28b6b1', + balance: { + s: 1, + e: -9, + c: [100000], + }, + hasBaton: false, + }, + { + info: { + height: 681190, + tx_hash: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + tx_pos: 2, + value: 546, + txid: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1f6a65e7a4bde92c0a012de2bcf4007034504a765377cdf08a3ee01d1eaa6901', + tokenTicker: '🍔', + tokenName: 'Burger', + tokenDocumentUrl: + 'https://c4.wallpaperflare.com/wallpaper/58/564/863/giant-hamburger-wallpaper-preview.jpg', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '1f6a65e7a4bde92c0a012de2bcf4007034504a765377cdf08a3ee01d1eaa6901', + balance: { + s: 1, + e: 0, + c: [1], + }, + hasBaton: false, + }, + { + info: { + height: 681191, + tx_hash: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + tx_pos: 2, + value: 546, + txid: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'dd84ca78db4d617221b58eabc6667af8fe2f7eadbfcc213d35be9f1b419beb8d', + tokenTicker: 'TAP', + tokenName: 'Thoughts and Prayers', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + 'dd84ca78db4d617221b58eabc6667af8fe2f7eadbfcc213d35be9f1b419beb8d', + balance: { + s: 1, + e: 0, + c: [1], + }, + hasBaton: false, + }, + { + info: { + height: 681191, + tx_hash: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + tx_pos: 2, + value: 546, + txid: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'df808a41672a0a0ae6475b44f272a107bc9961b90f29dc918d71301f24fe92fb', + tokenTicker: 'NAKAMOTO', + tokenName: 'NAKAMOTO', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '0.99999999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + 'df808a41672a0a0ae6475b44f272a107bc9961b90f29dc918d71301f24fe92fb', + balance: { + s: 1, + e: 0, + c: [1, 99999999000000], + }, + hasBaton: false, + }, + { + info: { + height: 681191, + tx_hash: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + tx_pos: 2, + value: 546, + txid: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7f8889682d57369ed0e32336f8b7e0ffec625a35cca183f4e81fde4e71a538a1', + tokenTicker: 'HONK', + tokenName: 'HONK HONK', + tokenDocumentUrl: 'THE REAL HONK SLP TOKEN', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '7f8889682d57369ed0e32336f8b7e0ffec625a35cca183f4e81fde4e71a538a1', + balance: { + s: 1, + e: 0, + c: [1], + }, + hasBaton: false, + }, + { + info: { + height: 684287, + tx_hash: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + tx_pos: 2, + value: 546, + txid: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7443f7c831cdf2b2b04d5f0465ed0bcf348582675b0e4f17906438c232c22f3d', + tokenTicker: 'WDT', + tokenName: + 'Test Token With Exceptionally Long Name For CSS And Style Revisions', + tokenDocumentUrl: + 'https://www.ImpossiblyLongWebsiteDidYouThinkWebDevWouldBeFun.org', + tokenDocumentHash: + '����\\�IS\u001e9�����k+���\u0018���\u001b]�߷2��', + decimals: 7, + tokenType: 1, + tokenQty: '523512276.7961432', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '7443f7c831cdf2b2b04d5f0465ed0bcf348582675b0e4f17906438c232c22f3d', + balance: { + s: 1, + e: 8, + c: [523512277, 79614320000000], + }, + hasBaton: false, + }, + { + info: { + height: 685005, + tx_hash: + 'f5afd3774d11390bcde040f2079bd23edece90ff2b58e453629e6ef2c6b2c513', + tx_pos: 1, + value: 546, + txid: + 'f5afd3774d11390bcde040f2079bd23edece90ff2b58e453629e6ef2c6b2c513', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '9e9738e9ac3ff202736bf7775f875ebae6f812650df577a947c20c52475e43da', + tokenTicker: 'CUTT', + tokenName: 'Cashtab Unit Test Token', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 2, + tokenType: 1, + tokenQty: '100', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '9e9738e9ac3ff202736bf7775f875ebae6f812650df577a947c20c52475e43da', + balance: { + s: 1, + e: 2, + c: [100], + }, + hasBaton: false, + }, + { + info: { + height: 685147, + tx_hash: + 'f2d492da069429866c8ed59fd0d5283b8a8da881414633ac35979a2891030c57', + tx_pos: 1, + value: 546, + txid: + 'f2d492da069429866c8ed59fd0d5283b8a8da881414633ac35979a2891030c57', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'ccf5fe5a387559c8ab9efdeb0c0ef1b444e677298cfddf07671245ce3cb3c79f', + tokenTicker: 'XGB', + tokenName: 'Garmonbozia', + tokenDocumentUrl: + 'https://twinpeaks.fandom.com/wiki/Garmonbozia', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '500', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + 'ccf5fe5a387559c8ab9efdeb0c0ef1b444e677298cfddf07671245ce3cb3c79f', + balance: { + s: 1, + e: 2, + c: [500], + }, + hasBaton: false, + }, + { + info: { + height: 685168, + tx_hash: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + tx_pos: 1, + value: 546, + txid: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + vout: 1, + utxoType: 'token', + tokenQty: '100', + tokenId: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + tokenTicker: 'CLNSP', + tokenName: 'ComponentLongNameSpeedLoad', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + balance: { + s: 1, + e: 2, + c: [100], + }, + hasBaton: false, + }, + { + info: { + height: 685170, + tx_hash: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + tx_pos: 1, + value: 546, + txid: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + vout: 1, + utxoType: 'token', + tokenQty: '55.55555', + tokenId: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + tokenTicker: 'CMA', + tokenName: 'CashtabMintAlpha', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 5, + tokenType: 1, + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + balance: { + s: 1, + e: 1, + c: [55, 55555000000000], + }, + hasBaton: false, + }, + { + info: { + height: 685181, + tx_hash: + '7987f68aa70d29ac0e0ac31d74354a8b1cd515c9893f6a5cdc7a3bf505e08b05', + tx_pos: 1, + value: 546, + txid: + '7987f68aa70d29ac0e0ac31d74354a8b1cd515c9893f6a5cdc7a3bf505e08b05', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '50d8292c6255cda7afc6c8566fed3cf42a2794e9619740fe8f4c95431271410e', + tokenTicker: 'TBC', + tokenName: 'tabcash', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '50d8292c6255cda7afc6c8566fed3cf42a2794e9619740fe8f4c95431271410e', + balance: { + s: 1, + e: 0, + c: [1], + }, + hasBaton: false, + }, + { + info: { + height: 685394, + tx_hash: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + tx_pos: 2, + value: 546, + txid: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '999958.999999994', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + balance: { + s: 1, + e: 5, + c: [999963, 99999998500000], + }, + hasBaton: false, + }, + { + info: { + height: 685518, + tx_hash: + 'e570d62939379de82a5008742136fe43564e45aea3b162bf80078bb9607e10cd', + tx_pos: 2, + value: 546, + txid: + 'e570d62939379de82a5008742136fe43564e45aea3b162bf80078bb9607e10cd', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '4bd147fc5d5ff26249a9299c46b80920c0b81f59a60e05428262160ebee0b0c3', + tokenTicker: 'NOCOVID', + tokenName: 'Covid19 Lifetime Immunity', + tokenDocumentUrl: + 'https://www.who.int/emergencies/diseases/novel-coronavirus-2019/covid-19-vaccines', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '996794', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '4bd147fc5d5ff26249a9299c46b80920c0b81f59a60e05428262160ebee0b0c3', + balance: { + s: 1, + e: 5, + c: [996794], + }, + hasBaton: false, + }, + { + info: { + height: 685877, + tx_hash: + '9f4c66b82f5b41f474f9670311e834667c0207a81f9e31a65731a7731e86c3ee', + tx_pos: 2, + value: 546, + txid: + '9f4c66b82f5b41f474f9670311e834667c0207a81f9e31a65731a7731e86c3ee', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '0916e71779c9de7ee125741d3f5ab01f556356dbc86fd327a24f1e9e22ebc917', + tokenTicker: 'CTL2', + tokenName: 'Cashtab Token Launch Launch Token v2', + tokenDocumentUrl: 'thecryptoguy.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1900', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '0916e71779c9de7ee125741d3f5ab01f556356dbc86fd327a24f1e9e22ebc917', + balance: { + s: 1, + e: 3, + c: [1900], + }, + hasBaton: false, + }, + { + info: { + height: 685888, + tx_hash: + '25f591bcf489dcf5ef1b0a9992ba10a2d49ba8d47ce63fb56340343a4ef91a1b', + tx_pos: 2, + value: 546, + txid: + '25f591bcf489dcf5ef1b0a9992ba10a2d49ba8d47ce63fb56340343a4ef91a1b', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'aa7202397a06097e8ff36855aa72c0ee032659747e5bd7cbcd3099fc3a62b6b6', + tokenTicker: 'CTL', + tokenName: 'Cashtab Token Launch Launch Token', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + 'aa7202397a06097e8ff36855aa72c0ee032659747e5bd7cbcd3099fc3a62b6b6', + balance: { + s: 1, + e: 2, + c: [999], + }, + hasBaton: false, + }, + { + info: { + height: 685889, + tx_hash: + '4f5af8d3dc9d1fb3dc803a80589cab62c78235264aa90e4f8066b7960804cd74', + tx_pos: 2, + value: 546, + txid: + '4f5af8d3dc9d1fb3dc803a80589cab62c78235264aa90e4f8066b7960804cd74', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '16b12bbacdbb8c8a799adbfd782bfff9843c1f9b0be148eaae02a1a7f74f95c4', + tokenTicker: 'CGEN', + tokenName: 'Cashtab Genesis', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '999999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '16b12bbacdbb8c8a799adbfd782bfff9843c1f9b0be148eaae02a1a7f74f95c4', + balance: { + s: 1, + e: 5, + c: [999999], + }, + hasBaton: false, + }, + { + info: { + height: 686024, + tx_hash: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + tx_pos: 2, + value: 546, + txid: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '77ec4036ef8546ac46df6d3a5374e961216f92624627eaeef5d2e1a253df9fc6', + tokenTicker: 'CTLv3', + tokenName: 'Cashtab Token Launch Launch Token v3', + tokenDocumentUrl: 'coinex.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '300', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '77ec4036ef8546ac46df6d3a5374e961216f92624627eaeef5d2e1a253df9fc6', + balance: { + s: 1, + e: 2, + c: [300], + }, + hasBaton: false, + }, + { + info: { + height: 0, + tx_hash: + 'bd84598096c113cd2110bc1748dd0613a933e2ddc440654c12ca4db4659933ed', + tx_pos: 1, + value: 546, + txid: + 'bd84598096c113cd2110bc1748dd0613a933e2ddc440654c12ca4db4659933ed', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bd1acc4c986de57af8d6d2a64aecad8c30ee80f37ae9d066d758923732ddc9ba', + tokenTicker: 'TBS', + tokenName: 'TestBits', + tokenDocumentUrl: 'https://thecryptoguy.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + 'bd1acc4c986de57af8d6d2a64aecad8c30ee80f37ae9d066d758923732ddc9ba', + balance: { + s: 1, + e: 0, + c: [1], + }, + hasBaton: false, + }, + ], + slpBalancesAndUtxos: { + tokens: [ + { + info: { + height: 680782, + tx_hash: + '525457276f1b6984170c9b35a8312d4988fce495723eabadd2afcdb3b872b2f1', + tx_pos: 1, + value: 546, + txid: + '525457276f1b6984170c9b35a8312d4988fce495723eabadd2afcdb3b872b2f1', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bf24d955f59351e738ecd905966606a6837e478e1982943d724eab10caad82fd', + tokenTicker: 'ST', + tokenName: 'ST', + tokenDocumentUrl: 'developer.bitcoin.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + 'bf24d955f59351e738ecd905966606a6837e478e1982943d724eab10caad82fd', + balance: { + s: 1, + e: 0, + c: [1], + }, + hasBaton: false, + }, + { + info: { + height: 680784, + tx_hash: + 'daa98a872b7d88fefd2257b006db001ef82a601f3943b92e0c753076598a7b75', + tx_pos: 1, + value: 546, + txid: + 'daa98a872b7d88fefd2257b006db001ef82a601f3943b92e0c753076598a7b75', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bef614aac85c0c866f4d39e4d12a96851267d38d1bca5bdd6488bbd42e28b6b1', + tokenTicker: 'CTP', + tokenName: 'Cash Tab Points', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '1e-9', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + 'bef614aac85c0c866f4d39e4d12a96851267d38d1bca5bdd6488bbd42e28b6b1', + balance: { + s: 1, + e: -9, + c: [100000], + }, + hasBaton: false, + }, + { + info: { + height: 681190, + tx_hash: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + tx_pos: 2, + value: 546, + txid: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1f6a65e7a4bde92c0a012de2bcf4007034504a765377cdf08a3ee01d1eaa6901', + tokenTicker: '🍔', + tokenName: 'Burger', + tokenDocumentUrl: + 'https://c4.wallpaperflare.com/wallpaper/58/564/863/giant-hamburger-wallpaper-preview.jpg', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '1f6a65e7a4bde92c0a012de2bcf4007034504a765377cdf08a3ee01d1eaa6901', + balance: { + s: 1, + e: 0, + c: [1], + }, + hasBaton: false, + }, + { + info: { + height: 681191, + tx_hash: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + tx_pos: 2, + value: 546, + txid: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'dd84ca78db4d617221b58eabc6667af8fe2f7eadbfcc213d35be9f1b419beb8d', + tokenTicker: 'TAP', + tokenName: 'Thoughts and Prayers', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + 'dd84ca78db4d617221b58eabc6667af8fe2f7eadbfcc213d35be9f1b419beb8d', + balance: { + s: 1, + e: 0, + c: [1], + }, + hasBaton: false, + }, + { + info: { + height: 681191, + tx_hash: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + tx_pos: 2, + value: 546, + txid: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'df808a41672a0a0ae6475b44f272a107bc9961b90f29dc918d71301f24fe92fb', + tokenTicker: 'NAKAMOTO', + tokenName: 'NAKAMOTO', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '0.99999999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + 'df808a41672a0a0ae6475b44f272a107bc9961b90f29dc918d71301f24fe92fb', + balance: { + s: 1, + e: 0, + c: [1, 99999999000000], + }, + hasBaton: false, + }, + { + info: { + height: 681191, + tx_hash: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + tx_pos: 2, + value: 546, + txid: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7f8889682d57369ed0e32336f8b7e0ffec625a35cca183f4e81fde4e71a538a1', + tokenTicker: 'HONK', + tokenName: 'HONK HONK', + tokenDocumentUrl: 'THE REAL HONK SLP TOKEN', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '7f8889682d57369ed0e32336f8b7e0ffec625a35cca183f4e81fde4e71a538a1', + balance: { + s: 1, + e: 0, + c: [1], + }, + hasBaton: false, + }, + { + info: { + height: 684287, + tx_hash: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + tx_pos: 2, + value: 546, + txid: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7443f7c831cdf2b2b04d5f0465ed0bcf348582675b0e4f17906438c232c22f3d', + tokenTicker: 'WDT', + tokenName: + 'Test Token With Exceptionally Long Name For CSS And Style Revisions', + tokenDocumentUrl: + 'https://www.ImpossiblyLongWebsiteDidYouThinkWebDevWouldBeFun.org', + tokenDocumentHash: + '����\\�IS\u001e9�����k+���\u0018���\u001b]�߷2��', + decimals: 7, + tokenType: 1, + tokenQty: '523512276.7961432', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '7443f7c831cdf2b2b04d5f0465ed0bcf348582675b0e4f17906438c232c22f3d', + balance: { + s: 1, + e: 8, + c: [523512277, 79614320000000], + }, + hasBaton: false, + }, + { + info: { + height: 685005, + tx_hash: + 'f5afd3774d11390bcde040f2079bd23edece90ff2b58e453629e6ef2c6b2c513', + tx_pos: 1, + value: 546, + txid: + 'f5afd3774d11390bcde040f2079bd23edece90ff2b58e453629e6ef2c6b2c513', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '9e9738e9ac3ff202736bf7775f875ebae6f812650df577a947c20c52475e43da', + tokenTicker: 'CUTT', + tokenName: 'Cashtab Unit Test Token', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 2, + tokenType: 1, + tokenQty: '100', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '9e9738e9ac3ff202736bf7775f875ebae6f812650df577a947c20c52475e43da', + balance: { + s: 1, + e: 2, + c: [100], + }, + hasBaton: false, + }, + { + info: { + height: 685147, + tx_hash: + 'f2d492da069429866c8ed59fd0d5283b8a8da881414633ac35979a2891030c57', + tx_pos: 1, + value: 546, + txid: + 'f2d492da069429866c8ed59fd0d5283b8a8da881414633ac35979a2891030c57', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'ccf5fe5a387559c8ab9efdeb0c0ef1b444e677298cfddf07671245ce3cb3c79f', + tokenTicker: 'XGB', + tokenName: 'Garmonbozia', + tokenDocumentUrl: + 'https://twinpeaks.fandom.com/wiki/Garmonbozia', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '500', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + 'ccf5fe5a387559c8ab9efdeb0c0ef1b444e677298cfddf07671245ce3cb3c79f', + balance: { + s: 1, + e: 2, + c: [500], + }, + hasBaton: false, + }, + { + info: { + height: 685168, + tx_hash: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + tx_pos: 1, + value: 546, + txid: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + vout: 1, + utxoType: 'token', + tokenQty: '100', + tokenId: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + tokenTicker: 'CLNSP', + tokenName: 'ComponentLongNameSpeedLoad', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + balance: { + s: 1, + e: 2, + c: [100], + }, + hasBaton: false, + }, + { + info: { + height: 685170, + tx_hash: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + tx_pos: 1, + value: 546, + txid: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + vout: 1, + utxoType: 'token', + tokenQty: '55.55555', + tokenId: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + tokenTicker: 'CMA', + tokenName: 'CashtabMintAlpha', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 5, + tokenType: 1, + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + balance: { + s: 1, + e: 1, + c: [55, 55555000000000], + }, + hasBaton: false, + }, + { + info: { + height: 685181, + tx_hash: + '7987f68aa70d29ac0e0ac31d74354a8b1cd515c9893f6a5cdc7a3bf505e08b05', + tx_pos: 1, + value: 546, + txid: + '7987f68aa70d29ac0e0ac31d74354a8b1cd515c9893f6a5cdc7a3bf505e08b05', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '50d8292c6255cda7afc6c8566fed3cf42a2794e9619740fe8f4c95431271410e', + tokenTicker: 'TBC', + tokenName: 'tabcash', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '50d8292c6255cda7afc6c8566fed3cf42a2794e9619740fe8f4c95431271410e', + balance: { + s: 1, + e: 0, + c: [1], + }, + hasBaton: false, + }, + { + info: { + height: 685394, + tx_hash: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + tx_pos: 2, + value: 546, + txid: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '999958.999999994', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + balance: { + s: 1, + e: 5, + c: [999963, 99999998500000], + }, + hasBaton: false, + }, + { + info: { + height: 685518, + tx_hash: + 'e570d62939379de82a5008742136fe43564e45aea3b162bf80078bb9607e10cd', + tx_pos: 2, + value: 546, + txid: + 'e570d62939379de82a5008742136fe43564e45aea3b162bf80078bb9607e10cd', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '4bd147fc5d5ff26249a9299c46b80920c0b81f59a60e05428262160ebee0b0c3', + tokenTicker: 'NOCOVID', + tokenName: 'Covid19 Lifetime Immunity', + tokenDocumentUrl: + 'https://www.who.int/emergencies/diseases/novel-coronavirus-2019/covid-19-vaccines', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '996794', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '4bd147fc5d5ff26249a9299c46b80920c0b81f59a60e05428262160ebee0b0c3', + balance: { + s: 1, + e: 5, + c: [996794], + }, + hasBaton: false, + }, + { + info: { + height: 685877, + tx_hash: + '9f4c66b82f5b41f474f9670311e834667c0207a81f9e31a65731a7731e86c3ee', + tx_pos: 2, + value: 546, + txid: + '9f4c66b82f5b41f474f9670311e834667c0207a81f9e31a65731a7731e86c3ee', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '0916e71779c9de7ee125741d3f5ab01f556356dbc86fd327a24f1e9e22ebc917', + tokenTicker: 'CTL2', + tokenName: 'Cashtab Token Launch Launch Token v2', + tokenDocumentUrl: 'thecryptoguy.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1900', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '0916e71779c9de7ee125741d3f5ab01f556356dbc86fd327a24f1e9e22ebc917', + balance: { + s: 1, + e: 3, + c: [1900], + }, + hasBaton: false, + }, + { + info: { + height: 685888, + tx_hash: + '25f591bcf489dcf5ef1b0a9992ba10a2d49ba8d47ce63fb56340343a4ef91a1b', + tx_pos: 2, + value: 546, + txid: + '25f591bcf489dcf5ef1b0a9992ba10a2d49ba8d47ce63fb56340343a4ef91a1b', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'aa7202397a06097e8ff36855aa72c0ee032659747e5bd7cbcd3099fc3a62b6b6', + tokenTicker: 'CTL', + tokenName: 'Cashtab Token Launch Launch Token', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + 'aa7202397a06097e8ff36855aa72c0ee032659747e5bd7cbcd3099fc3a62b6b6', + balance: { + s: 1, + e: 2, + c: [999], + }, + hasBaton: false, + }, + { + info: { + height: 685889, + tx_hash: + '4f5af8d3dc9d1fb3dc803a80589cab62c78235264aa90e4f8066b7960804cd74', + tx_pos: 2, + value: 546, + txid: + '4f5af8d3dc9d1fb3dc803a80589cab62c78235264aa90e4f8066b7960804cd74', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '16b12bbacdbb8c8a799adbfd782bfff9843c1f9b0be148eaae02a1a7f74f95c4', + tokenTicker: 'CGEN', + tokenName: 'Cashtab Genesis', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '999999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '16b12bbacdbb8c8a799adbfd782bfff9843c1f9b0be148eaae02a1a7f74f95c4', + balance: { + s: 1, + e: 5, + c: [999999], + }, + hasBaton: false, + }, + { + info: { + height: 686024, + tx_hash: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + tx_pos: 2, + value: 546, + txid: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '77ec4036ef8546ac46df6d3a5374e961216f92624627eaeef5d2e1a253df9fc6', + tokenTicker: 'CTLv3', + tokenName: 'Cashtab Token Launch Launch Token v3', + tokenDocumentUrl: 'coinex.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '300', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + '77ec4036ef8546ac46df6d3a5374e961216f92624627eaeef5d2e1a253df9fc6', + balance: { + s: 1, + e: 2, + c: [300], + }, + hasBaton: false, + }, + { + info: { + height: 0, + tx_hash: + 'bd84598096c113cd2110bc1748dd0613a933e2ddc440654c12ca4db4659933ed', + tx_pos: 1, + value: 546, + txid: + 'bd84598096c113cd2110bc1748dd0613a933e2ddc440654c12ca4db4659933ed', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bd1acc4c986de57af8d6d2a64aecad8c30ee80f37ae9d066d758923732ddc9ba', + tokenTicker: 'TBS', + tokenName: 'TestBits', + tokenDocumentUrl: 'https://thecryptoguy.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + tokenId: + 'bd1acc4c986de57af8d6d2a64aecad8c30ee80f37ae9d066d758923732ddc9ba', + balance: { + s: 1, + e: 0, + c: [1], + }, + hasBaton: false, + }, + ], + nonSlpUtxos: [ + { + height: 686024, + tx_hash: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + tx_pos: 3, + value: 1482000066, + txid: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + vout: 3, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686164, + tx_hash: + '1c55ae5962baae07638a6818b3f6cc6aeadd2c6f2103f4c425fe0064db600f89', + tx_pos: 1, + value: 3967048, + txid: + '1c55ae5962baae07638a6818b3f6cc6aeadd2c6f2103f4c425fe0064db600f89', + vout: 1, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686277, + tx_hash: + 'c0a59a84e9a6b3c4a4eb146aba17558a4aac4d4717d3123549b0ba197403db69', + tx_pos: 0, + value: 100000, + txid: + 'c0a59a84e9a6b3c4a4eb146aba17558a4aac4d4717d3123549b0ba197403db69', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + 'c8de9469353774426934a161a2d935a11139a75db012b8b63e8f561972ca00e8', + tx_pos: 0, + value: 10000, + txid: + 'c8de9469353774426934a161a2d935a11139a75db012b8b63e8f561972ca00e8', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + 'd2b76eea35192769897878dca146b9d7b21566e33a2acdf94719201147bca28e', + tx_pos: 0, + value: 10000, + txid: + 'd2b76eea35192769897878dca146b9d7b21566e33a2acdf94719201147bca28e', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + '3dd57d367dc61c5e369bbe9b04a5c5c01bb1615877e34a6446833d4b2cb44172', + tx_pos: 0, + value: 10000, + txid: + '3dd57d367dc61c5e369bbe9b04a5c5c01bb1615877e34a6446833d4b2cb44172', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + '3ab1e30aa9bcd2edd157fc141cf83b5739f9b3f22698d86ed8f48a78f71b6fa1', + tx_pos: 0, + value: 10000, + txid: + '3ab1e30aa9bcd2edd157fc141cf83b5739f9b3f22698d86ed8f48a78f71b6fa1', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + 'a64b02b2c59c510c31173d433ac20ae8cd40e997a49d3848de3f3edb45f11e43', + tx_pos: 0, + value: 20000, + txid: + 'a64b02b2c59c510c31173d433ac20ae8cd40e997a49d3848de3f3edb45f11e43', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + 'a2de4052a85ef62fd0672f34c1d669c9277ffeb0d6e9edeffb31173ec032c0a4', + tx_pos: 0, + value: 33000, + txid: + 'a2de4052a85ef62fd0672f34c1d669c9277ffeb0d6e9edeffb31173ec032c0a4', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + '410627195eb0a79dca560f05915296b8efaf66ddde01d3095f8bea1d6c329476', + tx_pos: 0, + value: 1000, + txid: + '410627195eb0a79dca560f05915296b8efaf66ddde01d3095f8bea1d6c329476', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + 'd0bb2bfcc0f331e1b6d4d0850ad580387086c38b6c0ca9c9f4aa93d8a57de335', + tx_pos: 0, + value: 2000, + txid: + 'd0bb2bfcc0f331e1b6d4d0850ad580387086c38b6c0ca9c9f4aa93d8a57de335', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + '9d4585c4009e69ce9c49764c16508adf5deca9d57b4a13690cc6939a1c879b85', + tx_pos: 0, + value: 3000, + txid: + '9d4585c4009e69ce9c49764c16508adf5deca9d57b4a13690cc6939a1c879b85', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + '2eb1241f96ca14fe23c024908c2db6bbbcc58e47caf25a0626686c84b2d8c095', + tx_pos: 0, + value: 2000, + txid: + '2eb1241f96ca14fe23c024908c2db6bbbcc58e47caf25a0626686c84b2d8c095', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + 'a50d9c3e1ffbbfd914c061765fbe2682e27aa2dbae67f220d532d6c8bca96647', + tx_pos: 0, + value: 3000, + txid: + 'a50d9c3e1ffbbfd914c061765fbe2682e27aa2dbae67f220d532d6c8bca96647', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + '7df3adba4713eac5f937283a8ddb91c15cf08d06f81f25e60a972c4cc28b0b6f', + tx_pos: 0, + value: 2000, + txid: + '7df3adba4713eac5f937283a8ddb91c15cf08d06f81f25e60a972c4cc28b0b6f', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + 'ea122a8c94d3ffebb657d0db22a79f192afdc2aa3c91a71f1df3cedd15e5b015', + tx_pos: 0, + value: 3000, + txid: + 'ea122a8c94d3ffebb657d0db22a79f192afdc2aa3c91a71f1df3cedd15e5b015', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + 'd00cb1a8f1287b2f30d319fa71a038a4e2813892060ecebbd9740ec7179e286b', + tx_pos: 0, + value: 2000, + txid: + 'd00cb1a8f1287b2f30d319fa71a038a4e2813892060ecebbd9740ec7179e286b', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + '93e6ee69be3221562e7481e5346987178d76536337fd9a9c670895af3dbfe2d3', + tx_pos: 1, + value: 1481988933, + txid: + '93e6ee69be3221562e7481e5346987178d76536337fd9a9c670895af3dbfe2d3', + vout: 1, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + ], + slpUtxos: [ + { + height: 680782, + tx_hash: + '525457276f1b6984170c9b35a8312d4988fce495723eabadd2afcdb3b872b2f1', + tx_pos: 1, + value: 546, + txid: + '525457276f1b6984170c9b35a8312d4988fce495723eabadd2afcdb3b872b2f1', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bf24d955f59351e738ecd905966606a6837e478e1982943d724eab10caad82fd', + tokenTicker: 'ST', + tokenName: 'ST', + tokenDocumentUrl: 'developer.bitcoin.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 680784, + tx_hash: + 'daa98a872b7d88fefd2257b006db001ef82a601f3943b92e0c753076598a7b75', + tx_pos: 1, + value: 546, + txid: + 'daa98a872b7d88fefd2257b006db001ef82a601f3943b92e0c753076598a7b75', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bef614aac85c0c866f4d39e4d12a96851267d38d1bca5bdd6488bbd42e28b6b1', + tokenTicker: 'CTP', + tokenName: 'Cash Tab Points', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '1e-9', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681190, + tx_hash: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + tx_pos: 2, + value: 546, + txid: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1f6a65e7a4bde92c0a012de2bcf4007034504a765377cdf08a3ee01d1eaa6901', + tokenTicker: '🍔', + tokenName: 'Burger', + tokenDocumentUrl: + 'https://c4.wallpaperflare.com/wallpaper/58/564/863/giant-hamburger-wallpaper-preview.jpg', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681191, + tx_hash: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + tx_pos: 2, + value: 546, + txid: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'dd84ca78db4d617221b58eabc6667af8fe2f7eadbfcc213d35be9f1b419beb8d', + tokenTicker: 'TAP', + tokenName: 'Thoughts and Prayers', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681191, + tx_hash: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + tx_pos: 2, + value: 546, + txid: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'df808a41672a0a0ae6475b44f272a107bc9961b90f29dc918d71301f24fe92fb', + tokenTicker: 'NAKAMOTO', + tokenName: 'NAKAMOTO', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '0.99999999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681191, + tx_hash: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + tx_pos: 2, + value: 546, + txid: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7f8889682d57369ed0e32336f8b7e0ffec625a35cca183f4e81fde4e71a538a1', + tokenTicker: 'HONK', + tokenName: 'HONK HONK', + tokenDocumentUrl: 'THE REAL HONK SLP TOKEN', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 684287, + tx_hash: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + tx_pos: 2, + value: 546, + txid: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7443f7c831cdf2b2b04d5f0465ed0bcf348582675b0e4f17906438c232c22f3d', + tokenTicker: 'WDT', + tokenName: + 'Test Token With Exceptionally Long Name For CSS And Style Revisions', + tokenDocumentUrl: + 'https://www.ImpossiblyLongWebsiteDidYouThinkWebDevWouldBeFun.org', + tokenDocumentHash: + '����\\�IS\u001e9�����k+���\u0018���\u001b]�߷2��', + decimals: 7, + tokenType: 1, + tokenQty: '523512276.7961432', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685005, + tx_hash: + 'f5afd3774d11390bcde040f2079bd23edece90ff2b58e453629e6ef2c6b2c513', + tx_pos: 1, + value: 546, + txid: + 'f5afd3774d11390bcde040f2079bd23edece90ff2b58e453629e6ef2c6b2c513', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '9e9738e9ac3ff202736bf7775f875ebae6f812650df577a947c20c52475e43da', + tokenTicker: 'CUTT', + tokenName: 'Cashtab Unit Test Token', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 2, + tokenType: 1, + tokenQty: '100', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685147, + tx_hash: + 'f2d492da069429866c8ed59fd0d5283b8a8da881414633ac35979a2891030c57', + tx_pos: 1, + value: 546, + txid: + 'f2d492da069429866c8ed59fd0d5283b8a8da881414633ac35979a2891030c57', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'ccf5fe5a387559c8ab9efdeb0c0ef1b444e677298cfddf07671245ce3cb3c79f', + tokenTicker: 'XGB', + tokenName: 'Garmonbozia', + tokenDocumentUrl: + 'https://twinpeaks.fandom.com/wiki/Garmonbozia', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '500', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685168, + tx_hash: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + tx_pos: 1, + value: 546, + txid: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + vout: 1, + utxoType: 'token', + tokenQty: '100', + tokenId: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + tokenTicker: 'CLNSP', + tokenName: 'ComponentLongNameSpeedLoad', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685170, + tx_hash: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + tx_pos: 1, + value: 546, + txid: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + vout: 1, + utxoType: 'token', + tokenQty: '55.55555', + tokenId: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + tokenTicker: 'CMA', + tokenName: 'CashtabMintAlpha', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 5, + tokenType: 1, + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685181, + tx_hash: + '7987f68aa70d29ac0e0ac31d74354a8b1cd515c9893f6a5cdc7a3bf505e08b05', + tx_pos: 1, + value: 546, + txid: + '7987f68aa70d29ac0e0ac31d74354a8b1cd515c9893f6a5cdc7a3bf505e08b05', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '50d8292c6255cda7afc6c8566fed3cf42a2794e9619740fe8f4c95431271410e', + tokenTicker: 'TBC', + tokenName: 'tabcash', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685394, + tx_hash: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + tx_pos: 2, + value: 546, + txid: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '999958.999999994', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685518, + tx_hash: + 'e570d62939379de82a5008742136fe43564e45aea3b162bf80078bb9607e10cd', + tx_pos: 2, + value: 546, + txid: + 'e570d62939379de82a5008742136fe43564e45aea3b162bf80078bb9607e10cd', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '4bd147fc5d5ff26249a9299c46b80920c0b81f59a60e05428262160ebee0b0c3', + tokenTicker: 'NOCOVID', + tokenName: 'Covid19 Lifetime Immunity', + tokenDocumentUrl: + 'https://www.who.int/emergencies/diseases/novel-coronavirus-2019/covid-19-vaccines', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '996794', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685877, + tx_hash: + '9f4c66b82f5b41f474f9670311e834667c0207a81f9e31a65731a7731e86c3ee', + tx_pos: 2, + value: 546, + txid: + '9f4c66b82f5b41f474f9670311e834667c0207a81f9e31a65731a7731e86c3ee', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '0916e71779c9de7ee125741d3f5ab01f556356dbc86fd327a24f1e9e22ebc917', + tokenTicker: 'CTL2', + tokenName: 'Cashtab Token Launch Launch Token v2', + tokenDocumentUrl: 'thecryptoguy.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1900', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685888, + tx_hash: + '25f591bcf489dcf5ef1b0a9992ba10a2d49ba8d47ce63fb56340343a4ef91a1b', + tx_pos: 2, + value: 546, + txid: + '25f591bcf489dcf5ef1b0a9992ba10a2d49ba8d47ce63fb56340343a4ef91a1b', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'aa7202397a06097e8ff36855aa72c0ee032659747e5bd7cbcd3099fc3a62b6b6', + tokenTicker: 'CTL', + tokenName: 'Cashtab Token Launch Launch Token', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685889, + tx_hash: + '4f5af8d3dc9d1fb3dc803a80589cab62c78235264aa90e4f8066b7960804cd74', + tx_pos: 2, + value: 546, + txid: + '4f5af8d3dc9d1fb3dc803a80589cab62c78235264aa90e4f8066b7960804cd74', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '16b12bbacdbb8c8a799adbfd782bfff9843c1f9b0be148eaae02a1a7f74f95c4', + tokenTicker: 'CGEN', + tokenName: 'Cashtab Genesis', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '999999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686024, + tx_hash: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + tx_pos: 2, + value: 546, + txid: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '77ec4036ef8546ac46df6d3a5374e961216f92624627eaeef5d2e1a253df9fc6', + tokenTicker: 'CTLv3', + tokenName: 'Cashtab Token Launch Launch Token v3', + tokenDocumentUrl: 'coinex.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '300', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686277, + tx_hash: + 'aa75d670bba7ebc73249535175ab2d7f7425969b1541c8f40e59161eb9ead039', + tx_pos: 1, + value: 546, + txid: + 'aa75d670bba7ebc73249535175ab2d7f7425969b1541c8f40e59161eb9ead039', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'df808a41672a0a0ae6475b44f272a107bc9961b90f29dc918d71301f24fe92fb', + tokenTicker: 'NAKAMOTO', + tokenName: 'NAKAMOTO', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 0, + tx_hash: + '15b522b0b91876e4d5196bb5c86369142e58f31e68120eee9955c964c2669b6f', + tx_pos: 1, + value: 546, + txid: + '15b522b0b91876e4d5196bb5c86369142e58f31e68120eee9955c964c2669b6f', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7443f7c831cdf2b2b04d5f0465ed0bcf348582675b0e4f17906438c232c22f3d', + tokenTicker: 'WDT', + tokenName: + 'Test Token With Exceptionally Long Name For CSS And Style Revisions', + tokenDocumentUrl: + 'https://www.ImpossiblyLongWebsiteDidYouThinkWebDevWouldBeFun.org', + tokenDocumentHash: + '����\\�IS\u001e9�����k+���\u0018���\u001b]�߷2��', + decimals: 7, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 0, + tx_hash: + '5427f85198b1ce396742be1516140e8ef7a318d11b267a01f2fe5278a8f9062f', + tx_pos: 1, + value: 546, + txid: + '5427f85198b1ce396742be1516140e8ef7a318d11b267a01f2fe5278a8f9062f', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '0.999999991', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 0, + tx_hash: + 'd72c163c45772092426921aa682d850d6ec1a0958cb1e842b785783758757e97', + tx_pos: 1, + value: 546, + txid: + 'd72c163c45772092426921aa682d850d6ec1a0958cb1e842b785783758757e97', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 0, + tx_hash: + '19f09ba38231d895b6b741c7c16a1e5892858d41b9bd2c03744fc7a87285855a', + tx_pos: 1, + value: 546, + txid: + '19f09ba38231d895b6b741c7c16a1e5892858d41b9bd2c03744fc7a87285855a', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '3', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 0, + tx_hash: + 'bd84598096c113cd2110bc1748dd0613a933e2ddc440654c12ca4db4659933ed', + tx_pos: 1, + value: 546, + txid: + 'bd84598096c113cd2110bc1748dd0613a933e2ddc440654c12ca4db4659933ed', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bd1acc4c986de57af8d6d2a64aecad8c30ee80f37ae9d066d758923732ddc9ba', + tokenTicker: 'TBS', + tokenName: 'TestBits', + tokenDocumentUrl: 'https://thecryptoguy.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + ], + }, + parsedTxHistory: [ + { + txid: + 'ea122a8c94d3ffebb657d0db22a79f192afdc2aa3c91a71f1df3cedd15e5b015', + height: 10000000, + amountSent: 0, + amountReceived: 0.00003, + tokenTx: false, + outgoingTx: false, + destinationAddress: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + txid: + 'd72c163c45772092426921aa682d850d6ec1a0958cb1e842b785783758757e97', + height: 10000000, + amountSent: 0, + amountReceived: 0.00000546, + tokenTx: true, + outgoingTx: false, + destinationAddress: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + tokenInfo: { + qtySent: '0', + qtyReceived: '1', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenName: 'eBits', + tokenTicker: 'XBIT', + transactionType: 'SEND', + }, + }, + { + txid: + 'd0bb2bfcc0f331e1b6d4d0850ad580387086c38b6c0ca9c9f4aa93d8a57de335', + height: 10000000, + amountSent: 0, + amountReceived: 0.00002, + tokenTx: false, + outgoingTx: false, + destinationAddress: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + txid: + 'bd84598096c113cd2110bc1748dd0613a933e2ddc440654c12ca4db4659933ed', + height: 10000000, + amountSent: 0, + amountReceived: 0.00000546, + tokenTx: true, + outgoingTx: false, + destinationAddress: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + tokenInfo: { + qtySent: '0', + qtyReceived: '1', + tokenId: + 'bd1acc4c986de57af8d6d2a64aecad8c30ee80f37ae9d066d758923732ddc9ba', + tokenName: 'TestBits', + tokenTicker: 'TBS', + transactionType: 'SEND', + }, + }, + { + txid: + 'a50d9c3e1ffbbfd914c061765fbe2682e27aa2dbae67f220d532d6c8bca96647', + height: 10000000, + amountSent: 0, + amountReceived: 0.00003, + tokenTx: false, + outgoingTx: false, + destinationAddress: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + ], + utxos: [ + { + utxos: [], + address: + 'bitcoincash:qq0mw6nah9huwaxt45qw3fegjpszkjlrqsvttwy36p', + }, + { + utxos: [], + address: + 'bitcoincash:qz5lf9pxde9neq3hzte8mmwts03sktl9nuz6m3dynu', + }, + { + utxos: [ + { + height: 680782, + tx_hash: + '525457276f1b6984170c9b35a8312d4988fce495723eabadd2afcdb3b872b2f1', + tx_pos: 1, + value: 546, + }, + { + height: 680784, + tx_hash: + '28f061fee068d3b9cb578141bac3d4d9ec4eccebec680464bf0aafaac414811f', + tx_pos: 1, + value: 546, + }, + { + height: 680784, + tx_hash: + '5fa3ffccea55c968beb7d214c563c92336ce2bbccbb714ba819848a7f7060bdb', + tx_pos: 1, + value: 546, + }, + { + height: 680784, + tx_hash: + 'daa98a872b7d88fefd2257b006db001ef82a601f3943b92e0c753076598a7b75', + tx_pos: 1, + value: 546, + }, + { + height: 681190, + tx_hash: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + tx_pos: 2, + value: 546, + }, + { + height: 681191, + tx_hash: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + tx_pos: 2, + value: 546, + }, + { + height: 681191, + tx_hash: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + tx_pos: 2, + value: 546, + }, + { + height: 681191, + tx_hash: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + tx_pos: 2, + value: 546, + }, + { + height: 684287, + tx_hash: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + tx_pos: 2, + value: 546, + }, + { + height: 685005, + tx_hash: + 'f5afd3774d11390bcde040f2079bd23edece90ff2b58e453629e6ef2c6b2c513', + tx_pos: 1, + value: 546, + }, + { + height: 685147, + tx_hash: + 'f2d492da069429866c8ed59fd0d5283b8a8da881414633ac35979a2891030c57', + tx_pos: 1, + value: 546, + }, + { + height: 685168, + tx_hash: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + tx_pos: 1, + value: 546, + }, + { + height: 685170, + tx_hash: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + tx_pos: 1, + value: 546, + }, + { + height: 685181, + tx_hash: + '7987f68aa70d29ac0e0ac31d74354a8b1cd515c9893f6a5cdc7a3bf505e08b05', + tx_pos: 1, + value: 546, + }, + { + height: 685394, + tx_hash: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + tx_pos: 2, + value: 546, + }, + { + height: 685518, + tx_hash: + 'e570d62939379de82a5008742136fe43564e45aea3b162bf80078bb9607e10cd', + tx_pos: 2, + value: 546, + }, + { + height: 685877, + tx_hash: + '9f4c66b82f5b41f474f9670311e834667c0207a81f9e31a65731a7731e86c3ee', + tx_pos: 2, + value: 546, + }, + { + height: 685888, + tx_hash: + '25f591bcf489dcf5ef1b0a9992ba10a2d49ba8d47ce63fb56340343a4ef91a1b', + tx_pos: 2, + value: 546, + }, + { + height: 685889, + tx_hash: + '4f5af8d3dc9d1fb3dc803a80589cab62c78235264aa90e4f8066b7960804cd74', + tx_pos: 2, + value: 546, + }, + { + height: 686024, + tx_hash: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + tx_pos: 2, + value: 546, + }, + { + height: 686277, + tx_hash: + 'aa75d670bba7ebc73249535175ab2d7f7425969b1541c8f40e59161eb9ead039', + tx_pos: 1, + value: 546, + }, + { + height: 686277, + tx_hash: + 'c0a59a84e9a6b3c4a4eb146aba17558a4aac4d4717d3123549b0ba197403db69', + tx_pos: 0, + value: 100000, + }, + { + height: 686351, + tx_hash: + 'c8de9469353774426934a161a2d935a11139a75db012b8b63e8f561972ca00e8', + tx_pos: 0, + value: 10000, + }, + { + height: 686351, + tx_hash: + 'd2b76eea35192769897878dca146b9d7b21566e33a2acdf94719201147bca28e', + tx_pos: 0, + value: 10000, + }, + { + height: 686352, + tx_hash: + '15b522b0b91876e4d5196bb5c86369142e58f31e68120eee9955c964c2669b6f', + tx_pos: 1, + value: 546, + }, + { + height: 686542, + tx_hash: + '3dd57d367dc61c5e369bbe9b04a5c5c01bb1615877e34a6446833d4b2cb44172', + tx_pos: 0, + value: 10000, + }, + { + height: 686544, + tx_hash: + '3ab1e30aa9bcd2edd157fc141cf83b5739f9b3f22698d86ed8f48a78f71b6fa1', + tx_pos: 0, + value: 10000, + }, + { + height: 686544, + tx_hash: + 'a64b02b2c59c510c31173d433ac20ae8cd40e997a49d3848de3f3edb45f11e43', + tx_pos: 0, + value: 20000, + }, + { + height: 686546, + tx_hash: + '19f09ba38231d895b6b741c7c16a1e5892858d41b9bd2c03744fc7a87285855a', + tx_pos: 1, + value: 546, + }, + { + height: 686546, + tx_hash: + '2eb1241f96ca14fe23c024908c2db6bbbcc58e47caf25a0626686c84b2d8c095', + tx_pos: 0, + value: 2000, + }, + { + height: 686546, + tx_hash: + '410627195eb0a79dca560f05915296b8efaf66ddde01d3095f8bea1d6c329476', + tx_pos: 0, + value: 1000, + }, + { + height: 686546, + tx_hash: + '5427f85198b1ce396742be1516140e8ef7a318d11b267a01f2fe5278a8f9062f', + tx_pos: 1, + value: 546, + }, + { + height: 686546, + tx_hash: + '7df3adba4713eac5f937283a8ddb91c15cf08d06f81f25e60a972c4cc28b0b6f', + tx_pos: 0, + value: 2000, + }, + { + height: 686546, + tx_hash: + '93e6ee69be3221562e7481e5346987178d76536337fd9a9c670895af3dbfe2d3', + tx_pos: 1, + value: 1481988933, + }, + { + height: 686546, + tx_hash: + '9d4585c4009e69ce9c49764c16508adf5deca9d57b4a13690cc6939a1c879b85', + tx_pos: 0, + value: 3000, + }, + { + height: 686546, + tx_hash: + 'a2de4052a85ef62fd0672f34c1d669c9277ffeb0d6e9edeffb31173ec032c0a4', + tx_pos: 0, + value: 33000, + }, + { + height: 686546, + tx_hash: + 'a50d9c3e1ffbbfd914c061765fbe2682e27aa2dbae67f220d532d6c8bca96647', + tx_pos: 0, + value: 3000, + }, + { + height: 686546, + tx_hash: + 'bd84598096c113cd2110bc1748dd0613a933e2ddc440654c12ca4db4659933ed', + tx_pos: 1, + value: 546, + }, + { + height: 686546, + tx_hash: + 'd00cb1a8f1287b2f30d319fa71a038a4e2813892060ecebbd9740ec7179e286b', + tx_pos: 0, + value: 2000, + }, + { + height: 686546, + tx_hash: + 'd0bb2bfcc0f331e1b6d4d0850ad580387086c38b6c0ca9c9f4aa93d8a57de335', + tx_pos: 0, + value: 2000, + }, + { + height: 686546, + tx_hash: + 'd72c163c45772092426921aa682d850d6ec1a0958cb1e842b785783758757e97', + tx_pos: 1, + value: 546, + }, + { + height: 686546, + tx_hash: + 'ea122a8c94d3ffebb657d0db22a79f192afdc2aa3c91a71f1df3cedd15e5b015', + tx_pos: 0, + value: 3000, + }, + { + height: 686672, + tx_hash: + '361b5ea27aa31c8692b817a1b264479a9d7c9836f4f72166c9a1dcd85dd5ec91', + tx_pos: 1, + value: 3731915, + }, + ], + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + ], + hydratedUtxoDetails: { + slpUtxos: [ + { + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + utxos: [ + { + height: 680782, + tx_hash: + '525457276f1b6984170c9b35a8312d4988fce495723eabadd2afcdb3b872b2f1', + tx_pos: 1, + value: 546, + txid: + '525457276f1b6984170c9b35a8312d4988fce495723eabadd2afcdb3b872b2f1', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bf24d955f59351e738ecd905966606a6837e478e1982943d724eab10caad82fd', + tokenTicker: 'ST', + tokenName: 'ST', + tokenDocumentUrl: 'developer.bitcoin.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 680784, + tx_hash: + '28f061fee068d3b9cb578141bac3d4d9ec4eccebec680464bf0aafaac414811f', + tx_pos: 1, + value: 546, + txid: + '28f061fee068d3b9cb578141bac3d4d9ec4eccebec680464bf0aafaac414811f', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bd1acc4c986de57af8d6d2a64aecad8c30ee80f37ae9d066d758923732ddc9ba', + tokenTicker: 'TBS', + tokenName: 'TestBits', + tokenDocumentUrl: 'https://thecryptoguy.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '9897999885.21030105', + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 680784, + tx_hash: + '5fa3ffccea55c968beb7d214c563c92336ce2bbccbb714ba819848a7f7060bdb', + tx_pos: 1, + value: 546, + txid: + '5fa3ffccea55c968beb7d214c563c92336ce2bbccbb714ba819848a7f7060bdb', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bef614aac85c0c866f4d39e4d12a96851267d38d1bca5bdd6488bbd42e28b6b1', + tokenTicker: 'CTP', + tokenName: 'Cash Tab Points', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '308.87654321', + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 680784, + tx_hash: + 'daa98a872b7d88fefd2257b006db001ef82a601f3943b92e0c753076598a7b75', + tx_pos: 1, + value: 546, + txid: + 'daa98a872b7d88fefd2257b006db001ef82a601f3943b92e0c753076598a7b75', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bef614aac85c0c866f4d39e4d12a96851267d38d1bca5bdd6488bbd42e28b6b1', + tokenTicker: 'CTP', + tokenName: 'Cash Tab Points', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '1e-9', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681190, + tx_hash: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + tx_pos: 2, + value: 546, + txid: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1f6a65e7a4bde92c0a012de2bcf4007034504a765377cdf08a3ee01d1eaa6901', + tokenTicker: '🍔', + tokenName: 'Burger', + tokenDocumentUrl: + 'https://c4.wallpaperflare.com/wallpaper/58/564/863/giant-hamburger-wallpaper-preview.jpg', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681191, + tx_hash: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + tx_pos: 2, + value: 546, + txid: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'dd84ca78db4d617221b58eabc6667af8fe2f7eadbfcc213d35be9f1b419beb8d', + tokenTicker: 'TAP', + tokenName: 'Thoughts and Prayers', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681191, + tx_hash: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + tx_pos: 2, + value: 546, + txid: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'df808a41672a0a0ae6475b44f272a107bc9961b90f29dc918d71301f24fe92fb', + tokenTicker: 'NAKAMOTO', + tokenName: 'NAKAMOTO', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '0.99999999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681191, + tx_hash: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + tx_pos: 2, + value: 546, + txid: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7f8889682d57369ed0e32336f8b7e0ffec625a35cca183f4e81fde4e71a538a1', + tokenTicker: 'HONK', + tokenName: 'HONK HONK', + tokenDocumentUrl: 'THE REAL HONK SLP TOKEN', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 684287, + tx_hash: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + tx_pos: 2, + value: 546, + txid: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7443f7c831cdf2b2b04d5f0465ed0bcf348582675b0e4f17906438c232c22f3d', + tokenTicker: 'WDT', + tokenName: + 'Test Token With Exceptionally Long Name For CSS And Style Revisions', + tokenDocumentUrl: + 'https://www.ImpossiblyLongWebsiteDidYouThinkWebDevWouldBeFun.org', + tokenDocumentHash: + '����\\�IS\u001e9�����k+���\u0018���\u001b]�߷2��', + decimals: 7, + tokenType: 1, + tokenQty: '523512276.7961432', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685005, + tx_hash: + 'f5afd3774d11390bcde040f2079bd23edece90ff2b58e453629e6ef2c6b2c513', + tx_pos: 1, + value: 546, + txid: + 'f5afd3774d11390bcde040f2079bd23edece90ff2b58e453629e6ef2c6b2c513', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '9e9738e9ac3ff202736bf7775f875ebae6f812650df577a947c20c52475e43da', + tokenTicker: 'CUTT', + tokenName: 'Cashtab Unit Test Token', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 2, + tokenType: 1, + tokenQty: '100', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685147, + tx_hash: + 'f2d492da069429866c8ed59fd0d5283b8a8da881414633ac35979a2891030c57', + tx_pos: 1, + value: 546, + txid: + 'f2d492da069429866c8ed59fd0d5283b8a8da881414633ac35979a2891030c57', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'ccf5fe5a387559c8ab9efdeb0c0ef1b444e677298cfddf07671245ce3cb3c79f', + tokenTicker: 'XGB', + tokenName: 'Garmonbozia', + tokenDocumentUrl: + 'https://twinpeaks.fandom.com/wiki/Garmonbozia', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '500', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685168, + tx_hash: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + tx_pos: 1, + value: 546, + txid: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + vout: 1, + utxoType: 'token', + tokenQty: '100', + tokenId: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + tokenTicker: 'CLNSP', + tokenName: 'ComponentLongNameSpeedLoad', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685170, + tx_hash: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + tx_pos: 1, + value: 546, + txid: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + vout: 1, + utxoType: 'token', + tokenQty: '55.55555', + tokenId: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + tokenTicker: 'CMA', + tokenName: 'CashtabMintAlpha', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 5, + tokenType: 1, + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685181, + tx_hash: + '7987f68aa70d29ac0e0ac31d74354a8b1cd515c9893f6a5cdc7a3bf505e08b05', + tx_pos: 1, + value: 546, + txid: + '7987f68aa70d29ac0e0ac31d74354a8b1cd515c9893f6a5cdc7a3bf505e08b05', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '50d8292c6255cda7afc6c8566fed3cf42a2794e9619740fe8f4c95431271410e', + tokenTicker: 'TBC', + tokenName: 'tabcash', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685394, + tx_hash: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + tx_pos: 2, + value: 546, + txid: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '999958.999999994', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685518, + tx_hash: + 'e570d62939379de82a5008742136fe43564e45aea3b162bf80078bb9607e10cd', + tx_pos: 2, + value: 546, + txid: + 'e570d62939379de82a5008742136fe43564e45aea3b162bf80078bb9607e10cd', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '4bd147fc5d5ff26249a9299c46b80920c0b81f59a60e05428262160ebee0b0c3', + tokenTicker: 'NOCOVID', + tokenName: 'Covid19 Lifetime Immunity', + tokenDocumentUrl: + 'https://www.who.int/emergencies/diseases/novel-coronavirus-2019/covid-19-vaccines', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '996794', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685877, + tx_hash: + '9f4c66b82f5b41f474f9670311e834667c0207a81f9e31a65731a7731e86c3ee', + tx_pos: 2, + value: 546, + txid: + '9f4c66b82f5b41f474f9670311e834667c0207a81f9e31a65731a7731e86c3ee', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '0916e71779c9de7ee125741d3f5ab01f556356dbc86fd327a24f1e9e22ebc917', + tokenTicker: 'CTL2', + tokenName: 'Cashtab Token Launch Launch Token v2', + tokenDocumentUrl: 'thecryptoguy.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1900', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685888, + tx_hash: + '25f591bcf489dcf5ef1b0a9992ba10a2d49ba8d47ce63fb56340343a4ef91a1b', + tx_pos: 2, + value: 546, + txid: + '25f591bcf489dcf5ef1b0a9992ba10a2d49ba8d47ce63fb56340343a4ef91a1b', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'aa7202397a06097e8ff36855aa72c0ee032659747e5bd7cbcd3099fc3a62b6b6', + tokenTicker: 'CTL', + tokenName: 'Cashtab Token Launch Launch Token', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685889, + tx_hash: + '4f5af8d3dc9d1fb3dc803a80589cab62c78235264aa90e4f8066b7960804cd74', + tx_pos: 2, + value: 546, + txid: + '4f5af8d3dc9d1fb3dc803a80589cab62c78235264aa90e4f8066b7960804cd74', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '16b12bbacdbb8c8a799adbfd782bfff9843c1f9b0be148eaae02a1a7f74f95c4', + tokenTicker: 'CGEN', + tokenName: 'Cashtab Genesis', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '999999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686024, + tx_hash: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + tx_pos: 2, + value: 546, + txid: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '77ec4036ef8546ac46df6d3a5374e961216f92624627eaeef5d2e1a253df9fc6', + tokenTicker: 'CTLv3', + tokenName: 'Cashtab Token Launch Launch Token v3', + tokenDocumentUrl: 'coinex.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '300', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686024, + tx_hash: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + tx_pos: 3, + value: 1482000066, + txid: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + vout: 3, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686164, + tx_hash: + '1c55ae5962baae07638a6818b3f6cc6aeadd2c6f2103f4c425fe0064db600f89', + tx_pos: 1, + value: 3967048, + txid: + '1c55ae5962baae07638a6818b3f6cc6aeadd2c6f2103f4c425fe0064db600f89', + vout: 1, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686277, + tx_hash: + 'aa75d670bba7ebc73249535175ab2d7f7425969b1541c8f40e59161eb9ead039', + tx_pos: 1, + value: 546, + txid: + 'aa75d670bba7ebc73249535175ab2d7f7425969b1541c8f40e59161eb9ead039', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'df808a41672a0a0ae6475b44f272a107bc9961b90f29dc918d71301f24fe92fb', + tokenTicker: 'NAKAMOTO', + tokenName: 'NAKAMOTO', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686277, + tx_hash: + 'c0a59a84e9a6b3c4a4eb146aba17558a4aac4d4717d3123549b0ba197403db69', + tx_pos: 0, + value: 100000, + txid: + 'c0a59a84e9a6b3c4a4eb146aba17558a4aac4d4717d3123549b0ba197403db69', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + 'c8de9469353774426934a161a2d935a11139a75db012b8b63e8f561972ca00e8', + tx_pos: 0, + value: 10000, + txid: + 'c8de9469353774426934a161a2d935a11139a75db012b8b63e8f561972ca00e8', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + 'd2b76eea35192769897878dca146b9d7b21566e33a2acdf94719201147bca28e', + tx_pos: 0, + value: 10000, + txid: + 'd2b76eea35192769897878dca146b9d7b21566e33a2acdf94719201147bca28e', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + '15b522b0b91876e4d5196bb5c86369142e58f31e68120eee9955c964c2669b6f', + tx_pos: 1, + value: 546, + txid: + '15b522b0b91876e4d5196bb5c86369142e58f31e68120eee9955c964c2669b6f', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7443f7c831cdf2b2b04d5f0465ed0bcf348582675b0e4f17906438c232c22f3d', + tokenTicker: 'WDT', + tokenName: + 'Test Token With Exceptionally Long Name For CSS And Style Revisions', + tokenDocumentUrl: + 'https://www.ImpossiblyLongWebsiteDidYouThinkWebDevWouldBeFun.org', + tokenDocumentHash: + '����\\�IS\u001e9�����k+���\u0018���\u001b]�߷2��', + decimals: 7, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 0, + tx_hash: + '3dd57d367dc61c5e369bbe9b04a5c5c01bb1615877e34a6446833d4b2cb44172', + tx_pos: 0, + value: 10000, + txid: + '3dd57d367dc61c5e369bbe9b04a5c5c01bb1615877e34a6446833d4b2cb44172', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + '3ab1e30aa9bcd2edd157fc141cf83b5739f9b3f22698d86ed8f48a78f71b6fa1', + tx_pos: 0, + value: 10000, + txid: + '3ab1e30aa9bcd2edd157fc141cf83b5739f9b3f22698d86ed8f48a78f71b6fa1', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + 'a64b02b2c59c510c31173d433ac20ae8cd40e997a49d3848de3f3edb45f11e43', + tx_pos: 0, + value: 20000, + txid: + 'a64b02b2c59c510c31173d433ac20ae8cd40e997a49d3848de3f3edb45f11e43', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + 'a2de4052a85ef62fd0672f34c1d669c9277ffeb0d6e9edeffb31173ec032c0a4', + tx_pos: 0, + value: 33000, + txid: + 'a2de4052a85ef62fd0672f34c1d669c9277ffeb0d6e9edeffb31173ec032c0a4', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + '5427f85198b1ce396742be1516140e8ef7a318d11b267a01f2fe5278a8f9062f', + tx_pos: 1, + value: 546, + txid: + '5427f85198b1ce396742be1516140e8ef7a318d11b267a01f2fe5278a8f9062f', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '0.999999991', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 0, + tx_hash: + 'd72c163c45772092426921aa682d850d6ec1a0958cb1e842b785783758757e97', + tx_pos: 1, + value: 546, + txid: + 'd72c163c45772092426921aa682d850d6ec1a0958cb1e842b785783758757e97', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 0, + tx_hash: + '19f09ba38231d895b6b741c7c16a1e5892858d41b9bd2c03744fc7a87285855a', + tx_pos: 1, + value: 546, + txid: + '19f09ba38231d895b6b741c7c16a1e5892858d41b9bd2c03744fc7a87285855a', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '3', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 0, + tx_hash: + '410627195eb0a79dca560f05915296b8efaf66ddde01d3095f8bea1d6c329476', + tx_pos: 0, + value: 1000, + txid: + '410627195eb0a79dca560f05915296b8efaf66ddde01d3095f8bea1d6c329476', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + 'd0bb2bfcc0f331e1b6d4d0850ad580387086c38b6c0ca9c9f4aa93d8a57de335', + tx_pos: 0, + value: 2000, + txid: + 'd0bb2bfcc0f331e1b6d4d0850ad580387086c38b6c0ca9c9f4aa93d8a57de335', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + '9d4585c4009e69ce9c49764c16508adf5deca9d57b4a13690cc6939a1c879b85', + tx_pos: 0, + value: 3000, + txid: + '9d4585c4009e69ce9c49764c16508adf5deca9d57b4a13690cc6939a1c879b85', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + '2eb1241f96ca14fe23c024908c2db6bbbcc58e47caf25a0626686c84b2d8c095', + tx_pos: 0, + value: 2000, + txid: + '2eb1241f96ca14fe23c024908c2db6bbbcc58e47caf25a0626686c84b2d8c095', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + 'a50d9c3e1ffbbfd914c061765fbe2682e27aa2dbae67f220d532d6c8bca96647', + tx_pos: 0, + value: 3000, + txid: + 'a50d9c3e1ffbbfd914c061765fbe2682e27aa2dbae67f220d532d6c8bca96647', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + '7df3adba4713eac5f937283a8ddb91c15cf08d06f81f25e60a972c4cc28b0b6f', + tx_pos: 0, + value: 2000, + txid: + '7df3adba4713eac5f937283a8ddb91c15cf08d06f81f25e60a972c4cc28b0b6f', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + 'ea122a8c94d3ffebb657d0db22a79f192afdc2aa3c91a71f1df3cedd15e5b015', + tx_pos: 0, + value: 3000, + txid: + 'ea122a8c94d3ffebb657d0db22a79f192afdc2aa3c91a71f1df3cedd15e5b015', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + 'd00cb1a8f1287b2f30d319fa71a038a4e2813892060ecebbd9740ec7179e286b', + tx_pos: 0, + value: 2000, + txid: + 'd00cb1a8f1287b2f30d319fa71a038a4e2813892060ecebbd9740ec7179e286b', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + 'bd84598096c113cd2110bc1748dd0613a933e2ddc440654c12ca4db4659933ed', + tx_pos: 1, + value: 546, + txid: + 'bd84598096c113cd2110bc1748dd0613a933e2ddc440654c12ca4db4659933ed', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bd1acc4c986de57af8d6d2a64aecad8c30ee80f37ae9d066d758923732ddc9ba', + tokenTicker: 'TBS', + tokenName: 'TestBits', + tokenDocumentUrl: 'https://thecryptoguy.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 0, + tx_hash: + '93e6ee69be3221562e7481e5346987178d76536337fd9a9c670895af3dbfe2d3', + tx_pos: 1, + value: 1481988933, + txid: + '93e6ee69be3221562e7481e5346987178d76536337fd9a9c670895af3dbfe2d3', + vout: 1, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + ], + }, + ], + }, + }, +}; + +export const utxoSetBeforeSendingTx = [ + { + utxos: [], + address: 'bitcoincash:qq0mw6nah9huwaxt45qw3fegjpszkjlrqsvttwy36p', + }, + { + utxos: [], + address: 'bitcoincash:qz5lf9pxde9neq3hzte8mmwts03sktl9nuz6m3dynu', + }, + { + utxos: [ + { + height: 680782, + tx_hash: + '525457276f1b6984170c9b35a8312d4988fce495723eabadd2afcdb3b872b2f1', + tx_pos: 1, + value: 546, + }, + { + height: 680784, + tx_hash: + '28f061fee068d3b9cb578141bac3d4d9ec4eccebec680464bf0aafaac414811f', + tx_pos: 1, + value: 546, + }, + { + height: 680784, + tx_hash: + '5fa3ffccea55c968beb7d214c563c92336ce2bbccbb714ba819848a7f7060bdb', + tx_pos: 1, + value: 546, + }, + { + height: 680784, + tx_hash: + 'daa98a872b7d88fefd2257b006db001ef82a601f3943b92e0c753076598a7b75', + tx_pos: 1, + value: 546, + }, + { + height: 681190, + tx_hash: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + tx_pos: 2, + value: 546, + }, + { + height: 681191, + tx_hash: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + tx_pos: 2, + value: 546, + }, + { + height: 681191, + tx_hash: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + tx_pos: 2, + value: 546, + }, + { + height: 681191, + tx_hash: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + tx_pos: 2, + value: 546, + }, + { + height: 684287, + tx_hash: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + tx_pos: 2, + value: 546, + }, + { + height: 685005, + tx_hash: + 'f5afd3774d11390bcde040f2079bd23edece90ff2b58e453629e6ef2c6b2c513', + tx_pos: 1, + value: 546, + }, + { + height: 685147, + tx_hash: + 'f2d492da069429866c8ed59fd0d5283b8a8da881414633ac35979a2891030c57', + tx_pos: 1, + value: 546, + }, + { + height: 685168, + tx_hash: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + tx_pos: 1, + value: 546, + }, + { + height: 685170, + tx_hash: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + tx_pos: 1, + value: 546, + }, + { + height: 685181, + tx_hash: + '7987f68aa70d29ac0e0ac31d74354a8b1cd515c9893f6a5cdc7a3bf505e08b05', + tx_pos: 1, + value: 546, + }, + { + height: 685394, + tx_hash: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + tx_pos: 2, + value: 546, + }, + { + height: 685518, + tx_hash: + 'e570d62939379de82a5008742136fe43564e45aea3b162bf80078bb9607e10cd', + tx_pos: 2, + value: 546, + }, + { + height: 685877, + tx_hash: + '9f4c66b82f5b41f474f9670311e834667c0207a81f9e31a65731a7731e86c3ee', + tx_pos: 2, + value: 546, + }, + { + height: 685888, + tx_hash: + '25f591bcf489dcf5ef1b0a9992ba10a2d49ba8d47ce63fb56340343a4ef91a1b', + tx_pos: 2, + value: 546, + }, + { + height: 685889, + tx_hash: + '4f5af8d3dc9d1fb3dc803a80589cab62c78235264aa90e4f8066b7960804cd74', + tx_pos: 2, + value: 546, + }, + { + height: 686024, + tx_hash: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + tx_pos: 2, + value: 546, + }, + { + height: 686277, + tx_hash: + 'aa75d670bba7ebc73249535175ab2d7f7425969b1541c8f40e59161eb9ead039', + tx_pos: 1, + value: 546, + }, + { + height: 686277, + tx_hash: + 'c0a59a84e9a6b3c4a4eb146aba17558a4aac4d4717d3123549b0ba197403db69', + tx_pos: 0, + value: 100000, + }, + { + height: 686351, + tx_hash: + 'c8de9469353774426934a161a2d935a11139a75db012b8b63e8f561972ca00e8', + tx_pos: 0, + value: 10000, + }, + { + height: 686351, + tx_hash: + 'd2b76eea35192769897878dca146b9d7b21566e33a2acdf94719201147bca28e', + tx_pos: 0, + value: 10000, + }, + { + height: 686352, + tx_hash: + '15b522b0b91876e4d5196bb5c86369142e58f31e68120eee9955c964c2669b6f', + tx_pos: 1, + value: 546, + }, + { + height: 686542, + tx_hash: + '3dd57d367dc61c5e369bbe9b04a5c5c01bb1615877e34a6446833d4b2cb44172', + tx_pos: 0, + value: 10000, + }, + { + height: 686544, + tx_hash: + '3ab1e30aa9bcd2edd157fc141cf83b5739f9b3f22698d86ed8f48a78f71b6fa1', + tx_pos: 0, + value: 10000, + }, + { + height: 686544, + tx_hash: + 'a64b02b2c59c510c31173d433ac20ae8cd40e997a49d3848de3f3edb45f11e43', + tx_pos: 0, + value: 20000, + }, + { + height: 686546, + tx_hash: + '19f09ba38231d895b6b741c7c16a1e5892858d41b9bd2c03744fc7a87285855a', + tx_pos: 1, + value: 546, + }, + { + height: 686546, + tx_hash: + '2eb1241f96ca14fe23c024908c2db6bbbcc58e47caf25a0626686c84b2d8c095', + tx_pos: 0, + value: 2000, + }, + { + height: 686546, + tx_hash: + '410627195eb0a79dca560f05915296b8efaf66ddde01d3095f8bea1d6c329476', + tx_pos: 0, + value: 1000, + }, + { + height: 686546, + tx_hash: + '5427f85198b1ce396742be1516140e8ef7a318d11b267a01f2fe5278a8f9062f', + tx_pos: 1, + value: 546, + }, + { + height: 686546, + tx_hash: + '7df3adba4713eac5f937283a8ddb91c15cf08d06f81f25e60a972c4cc28b0b6f', + tx_pos: 0, + value: 2000, + }, + { + height: 686546, + tx_hash: + '93e6ee69be3221562e7481e5346987178d76536337fd9a9c670895af3dbfe2d3', + tx_pos: 1, + value: 1481988933, + }, + { + height: 686546, + tx_hash: + '9d4585c4009e69ce9c49764c16508adf5deca9d57b4a13690cc6939a1c879b85', + tx_pos: 0, + value: 3000, + }, + { + height: 686546, + tx_hash: + 'a2de4052a85ef62fd0672f34c1d669c9277ffeb0d6e9edeffb31173ec032c0a4', + tx_pos: 0, + value: 33000, + }, + { + height: 686546, + tx_hash: + 'a50d9c3e1ffbbfd914c061765fbe2682e27aa2dbae67f220d532d6c8bca96647', + tx_pos: 0, + value: 3000, + }, + { + height: 686546, + tx_hash: + 'bd84598096c113cd2110bc1748dd0613a933e2ddc440654c12ca4db4659933ed', + tx_pos: 1, + value: 546, + }, + { + height: 686546, + tx_hash: + 'd00cb1a8f1287b2f30d319fa71a038a4e2813892060ecebbd9740ec7179e286b', + tx_pos: 0, + value: 2000, + }, + { + height: 686546, + tx_hash: + 'd0bb2bfcc0f331e1b6d4d0850ad580387086c38b6c0ca9c9f4aa93d8a57de335', + tx_pos: 0, + value: 2000, + }, + { + height: 686546, + tx_hash: + 'd72c163c45772092426921aa682d850d6ec1a0958cb1e842b785783758757e97', + tx_pos: 1, + value: 546, + }, + { + height: 686546, + tx_hash: + 'ea122a8c94d3ffebb657d0db22a79f192afdc2aa3c91a71f1df3cedd15e5b015', + tx_pos: 0, + value: 3000, + }, + { + height: 686672, + tx_hash: + '361b5ea27aa31c8692b817a1b264479a9d7c9836f4f72166c9a1dcd85dd5ec91', + tx_pos: 1, + value: 3731915, + }, + { + height: 0, + tx_hash: + 'af68913c3c7bf48bcf3159e65bc986f08ad0654baa0e6cce21e397dc8c92ef91', + tx_pos: 0, + value: 1000, + }, + ], + address: 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, +]; +export const hydratedUtxoDetailsBeforeSendingTx = { + slpUtxos: [ + { + address: 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + utxos: [ + { + height: 680782, + tx_hash: + '525457276f1b6984170c9b35a8312d4988fce495723eabadd2afcdb3b872b2f1', + tx_pos: 1, + value: 546, + txid: + '525457276f1b6984170c9b35a8312d4988fce495723eabadd2afcdb3b872b2f1', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bf24d955f59351e738ecd905966606a6837e478e1982943d724eab10caad82fd', + tokenTicker: 'ST', + tokenName: 'ST', + tokenDocumentUrl: 'developer.bitcoin.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 680784, + tx_hash: + '28f061fee068d3b9cb578141bac3d4d9ec4eccebec680464bf0aafaac414811f', + tx_pos: 1, + value: 546, + txid: + '28f061fee068d3b9cb578141bac3d4d9ec4eccebec680464bf0aafaac414811f', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bd1acc4c986de57af8d6d2a64aecad8c30ee80f37ae9d066d758923732ddc9ba', + tokenTicker: 'TBS', + tokenName: 'TestBits', + tokenDocumentUrl: 'https://thecryptoguy.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '9897999885.21030105', + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 680784, + tx_hash: + '5fa3ffccea55c968beb7d214c563c92336ce2bbccbb714ba819848a7f7060bdb', + tx_pos: 1, + value: 546, + txid: + '5fa3ffccea55c968beb7d214c563c92336ce2bbccbb714ba819848a7f7060bdb', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bef614aac85c0c866f4d39e4d12a96851267d38d1bca5bdd6488bbd42e28b6b1', + tokenTicker: 'CTP', + tokenName: 'Cash Tab Points', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '308.87654321', + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 680784, + tx_hash: + 'daa98a872b7d88fefd2257b006db001ef82a601f3943b92e0c753076598a7b75', + tx_pos: 1, + value: 546, + txid: + 'daa98a872b7d88fefd2257b006db001ef82a601f3943b92e0c753076598a7b75', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bef614aac85c0c866f4d39e4d12a96851267d38d1bca5bdd6488bbd42e28b6b1', + tokenTicker: 'CTP', + tokenName: 'Cash Tab Points', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '1e-9', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681190, + tx_hash: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + tx_pos: 2, + value: 546, + txid: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1f6a65e7a4bde92c0a012de2bcf4007034504a765377cdf08a3ee01d1eaa6901', + tokenTicker: '🍔', + tokenName: 'Burger', + tokenDocumentUrl: + 'https://c4.wallpaperflare.com/wallpaper/58/564/863/giant-hamburger-wallpaper-preview.jpg', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681191, + tx_hash: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + tx_pos: 2, + value: 546, + txid: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'dd84ca78db4d617221b58eabc6667af8fe2f7eadbfcc213d35be9f1b419beb8d', + tokenTicker: 'TAP', + tokenName: 'Thoughts and Prayers', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681191, + tx_hash: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + tx_pos: 2, + value: 546, + txid: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'df808a41672a0a0ae6475b44f272a107bc9961b90f29dc918d71301f24fe92fb', + tokenTicker: 'NAKAMOTO', + tokenName: 'NAKAMOTO', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '0.99999999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681191, + tx_hash: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + tx_pos: 2, + value: 546, + txid: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7f8889682d57369ed0e32336f8b7e0ffec625a35cca183f4e81fde4e71a538a1', + tokenTicker: 'HONK', + tokenName: 'HONK HONK', + tokenDocumentUrl: 'THE REAL HONK SLP TOKEN', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 684287, + tx_hash: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + tx_pos: 2, + value: 546, + txid: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7443f7c831cdf2b2b04d5f0465ed0bcf348582675b0e4f17906438c232c22f3d', + tokenTicker: 'WDT', + tokenName: + 'Test Token With Exceptionally Long Name For CSS And Style Revisions', + tokenDocumentUrl: + 'https://www.ImpossiblyLongWebsiteDidYouThinkWebDevWouldBeFun.org', + tokenDocumentHash: + '����\\�IS\u001e9�����k+���\u0018���\u001b]�߷2��', + decimals: 7, + tokenType: 1, + tokenQty: '523512276.7961432', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685005, + tx_hash: + 'f5afd3774d11390bcde040f2079bd23edece90ff2b58e453629e6ef2c6b2c513', + tx_pos: 1, + value: 546, + txid: + 'f5afd3774d11390bcde040f2079bd23edece90ff2b58e453629e6ef2c6b2c513', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '9e9738e9ac3ff202736bf7775f875ebae6f812650df577a947c20c52475e43da', + tokenTicker: 'CUTT', + tokenName: 'Cashtab Unit Test Token', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 2, + tokenType: 1, + tokenQty: '100', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685147, + tx_hash: + 'f2d492da069429866c8ed59fd0d5283b8a8da881414633ac35979a2891030c57', + tx_pos: 1, + value: 546, + txid: + 'f2d492da069429866c8ed59fd0d5283b8a8da881414633ac35979a2891030c57', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'ccf5fe5a387559c8ab9efdeb0c0ef1b444e677298cfddf07671245ce3cb3c79f', + tokenTicker: 'XGB', + tokenName: 'Garmonbozia', + tokenDocumentUrl: + 'https://twinpeaks.fandom.com/wiki/Garmonbozia', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '500', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685168, + tx_hash: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + tx_pos: 1, + value: 546, + txid: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + vout: 1, + utxoType: 'token', + tokenQty: '100', + tokenId: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + tokenTicker: 'CLNSP', + tokenName: 'ComponentLongNameSpeedLoad', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685170, + tx_hash: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + tx_pos: 1, + value: 546, + txid: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + vout: 1, + utxoType: 'token', + tokenQty: '55.55555', + tokenId: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + tokenTicker: 'CMA', + tokenName: 'CashtabMintAlpha', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 5, + tokenType: 1, + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685181, + tx_hash: + '7987f68aa70d29ac0e0ac31d74354a8b1cd515c9893f6a5cdc7a3bf505e08b05', + tx_pos: 1, + value: 546, + txid: + '7987f68aa70d29ac0e0ac31d74354a8b1cd515c9893f6a5cdc7a3bf505e08b05', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '50d8292c6255cda7afc6c8566fed3cf42a2794e9619740fe8f4c95431271410e', + tokenTicker: 'TBC', + tokenName: 'tabcash', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685394, + tx_hash: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + tx_pos: 2, + value: 546, + txid: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '999958.999999994', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685518, + tx_hash: + 'e570d62939379de82a5008742136fe43564e45aea3b162bf80078bb9607e10cd', + tx_pos: 2, + value: 546, + txid: + 'e570d62939379de82a5008742136fe43564e45aea3b162bf80078bb9607e10cd', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '4bd147fc5d5ff26249a9299c46b80920c0b81f59a60e05428262160ebee0b0c3', + tokenTicker: 'NOCOVID', + tokenName: 'Covid19 Lifetime Immunity', + tokenDocumentUrl: + 'https://www.who.int/emergencies/diseases/novel-coronavirus-2019/covid-19-vaccines', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '996794', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685877, + tx_hash: + '9f4c66b82f5b41f474f9670311e834667c0207a81f9e31a65731a7731e86c3ee', + tx_pos: 2, + value: 546, + txid: + '9f4c66b82f5b41f474f9670311e834667c0207a81f9e31a65731a7731e86c3ee', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '0916e71779c9de7ee125741d3f5ab01f556356dbc86fd327a24f1e9e22ebc917', + tokenTicker: 'CTL2', + tokenName: 'Cashtab Token Launch Launch Token v2', + tokenDocumentUrl: 'thecryptoguy.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1900', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685888, + tx_hash: + '25f591bcf489dcf5ef1b0a9992ba10a2d49ba8d47ce63fb56340343a4ef91a1b', + tx_pos: 2, + value: 546, + txid: + '25f591bcf489dcf5ef1b0a9992ba10a2d49ba8d47ce63fb56340343a4ef91a1b', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'aa7202397a06097e8ff36855aa72c0ee032659747e5bd7cbcd3099fc3a62b6b6', + tokenTicker: 'CTL', + tokenName: 'Cashtab Token Launch Launch Token', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685889, + tx_hash: + '4f5af8d3dc9d1fb3dc803a80589cab62c78235264aa90e4f8066b7960804cd74', + tx_pos: 2, + value: 546, + txid: + '4f5af8d3dc9d1fb3dc803a80589cab62c78235264aa90e4f8066b7960804cd74', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '16b12bbacdbb8c8a799adbfd782bfff9843c1f9b0be148eaae02a1a7f74f95c4', + tokenTicker: 'CGEN', + tokenName: 'Cashtab Genesis', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '999999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686024, + tx_hash: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + tx_pos: 2, + value: 546, + txid: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '77ec4036ef8546ac46df6d3a5374e961216f92624627eaeef5d2e1a253df9fc6', + tokenTicker: 'CTLv3', + tokenName: 'Cashtab Token Launch Launch Token v3', + tokenDocumentUrl: 'coinex.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '300', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686277, + tx_hash: + 'aa75d670bba7ebc73249535175ab2d7f7425969b1541c8f40e59161eb9ead039', + tx_pos: 1, + value: 546, + txid: + 'aa75d670bba7ebc73249535175ab2d7f7425969b1541c8f40e59161eb9ead039', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'df808a41672a0a0ae6475b44f272a107bc9961b90f29dc918d71301f24fe92fb', + tokenTicker: 'NAKAMOTO', + tokenName: 'NAKAMOTO', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686277, + tx_hash: + 'c0a59a84e9a6b3c4a4eb146aba17558a4aac4d4717d3123549b0ba197403db69', + tx_pos: 0, + value: 100000, + txid: + 'c0a59a84e9a6b3c4a4eb146aba17558a4aac4d4717d3123549b0ba197403db69', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686351, + tx_hash: + 'c8de9469353774426934a161a2d935a11139a75db012b8b63e8f561972ca00e8', + tx_pos: 0, + value: 10000, + txid: + 'c8de9469353774426934a161a2d935a11139a75db012b8b63e8f561972ca00e8', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686351, + tx_hash: + 'd2b76eea35192769897878dca146b9d7b21566e33a2acdf94719201147bca28e', + tx_pos: 0, + value: 10000, + txid: + 'd2b76eea35192769897878dca146b9d7b21566e33a2acdf94719201147bca28e', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686352, + tx_hash: + '15b522b0b91876e4d5196bb5c86369142e58f31e68120eee9955c964c2669b6f', + tx_pos: 1, + value: 546, + txid: + '15b522b0b91876e4d5196bb5c86369142e58f31e68120eee9955c964c2669b6f', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7443f7c831cdf2b2b04d5f0465ed0bcf348582675b0e4f17906438c232c22f3d', + tokenTicker: 'WDT', + tokenName: + 'Test Token With Exceptionally Long Name For CSS And Style Revisions', + tokenDocumentUrl: + 'https://www.ImpossiblyLongWebsiteDidYouThinkWebDevWouldBeFun.org', + tokenDocumentHash: + '����\\�IS\u001e9�����k+���\u0018���\u001b]�߷2��', + decimals: 7, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686542, + tx_hash: + '3dd57d367dc61c5e369bbe9b04a5c5c01bb1615877e34a6446833d4b2cb44172', + tx_pos: 0, + value: 10000, + txid: + '3dd57d367dc61c5e369bbe9b04a5c5c01bb1615877e34a6446833d4b2cb44172', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686544, + tx_hash: + '3ab1e30aa9bcd2edd157fc141cf83b5739f9b3f22698d86ed8f48a78f71b6fa1', + tx_pos: 0, + value: 10000, + txid: + '3ab1e30aa9bcd2edd157fc141cf83b5739f9b3f22698d86ed8f48a78f71b6fa1', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686544, + tx_hash: + 'a64b02b2c59c510c31173d433ac20ae8cd40e997a49d3848de3f3edb45f11e43', + tx_pos: 0, + value: 20000, + txid: + 'a64b02b2c59c510c31173d433ac20ae8cd40e997a49d3848de3f3edb45f11e43', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + '19f09ba38231d895b6b741c7c16a1e5892858d41b9bd2c03744fc7a87285855a', + tx_pos: 1, + value: 546, + txid: + '19f09ba38231d895b6b741c7c16a1e5892858d41b9bd2c03744fc7a87285855a', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '3', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686546, + tx_hash: + '2eb1241f96ca14fe23c024908c2db6bbbcc58e47caf25a0626686c84b2d8c095', + tx_pos: 0, + value: 2000, + txid: + '2eb1241f96ca14fe23c024908c2db6bbbcc58e47caf25a0626686c84b2d8c095', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + '410627195eb0a79dca560f05915296b8efaf66ddde01d3095f8bea1d6c329476', + tx_pos: 0, + value: 1000, + txid: + '410627195eb0a79dca560f05915296b8efaf66ddde01d3095f8bea1d6c329476', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + '5427f85198b1ce396742be1516140e8ef7a318d11b267a01f2fe5278a8f9062f', + tx_pos: 1, + value: 546, + txid: + '5427f85198b1ce396742be1516140e8ef7a318d11b267a01f2fe5278a8f9062f', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '0.999999991', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686546, + tx_hash: + '7df3adba4713eac5f937283a8ddb91c15cf08d06f81f25e60a972c4cc28b0b6f', + tx_pos: 0, + value: 2000, + txid: + '7df3adba4713eac5f937283a8ddb91c15cf08d06f81f25e60a972c4cc28b0b6f', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + '93e6ee69be3221562e7481e5346987178d76536337fd9a9c670895af3dbfe2d3', + tx_pos: 1, + value: 1481988933, + txid: + '93e6ee69be3221562e7481e5346987178d76536337fd9a9c670895af3dbfe2d3', + vout: 1, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + '9d4585c4009e69ce9c49764c16508adf5deca9d57b4a13690cc6939a1c879b85', + tx_pos: 0, + value: 3000, + txid: + '9d4585c4009e69ce9c49764c16508adf5deca9d57b4a13690cc6939a1c879b85', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + 'a2de4052a85ef62fd0672f34c1d669c9277ffeb0d6e9edeffb31173ec032c0a4', + tx_pos: 0, + value: 33000, + txid: + 'a2de4052a85ef62fd0672f34c1d669c9277ffeb0d6e9edeffb31173ec032c0a4', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + 'a50d9c3e1ffbbfd914c061765fbe2682e27aa2dbae67f220d532d6c8bca96647', + tx_pos: 0, + value: 3000, + txid: + 'a50d9c3e1ffbbfd914c061765fbe2682e27aa2dbae67f220d532d6c8bca96647', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + 'bd84598096c113cd2110bc1748dd0613a933e2ddc440654c12ca4db4659933ed', + tx_pos: 1, + value: 546, + txid: + 'bd84598096c113cd2110bc1748dd0613a933e2ddc440654c12ca4db4659933ed', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bd1acc4c986de57af8d6d2a64aecad8c30ee80f37ae9d066d758923732ddc9ba', + tokenTicker: 'TBS', + tokenName: 'TestBits', + tokenDocumentUrl: 'https://thecryptoguy.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686546, + tx_hash: + 'd00cb1a8f1287b2f30d319fa71a038a4e2813892060ecebbd9740ec7179e286b', + tx_pos: 0, + value: 2000, + txid: + 'd00cb1a8f1287b2f30d319fa71a038a4e2813892060ecebbd9740ec7179e286b', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + 'd0bb2bfcc0f331e1b6d4d0850ad580387086c38b6c0ca9c9f4aa93d8a57de335', + tx_pos: 0, + value: 2000, + txid: + 'd0bb2bfcc0f331e1b6d4d0850ad580387086c38b6c0ca9c9f4aa93d8a57de335', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + 'd72c163c45772092426921aa682d850d6ec1a0958cb1e842b785783758757e97', + tx_pos: 1, + value: 546, + txid: + 'd72c163c45772092426921aa682d850d6ec1a0958cb1e842b785783758757e97', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686546, + tx_hash: + 'ea122a8c94d3ffebb657d0db22a79f192afdc2aa3c91a71f1df3cedd15e5b015', + tx_pos: 0, + value: 3000, + txid: + 'ea122a8c94d3ffebb657d0db22a79f192afdc2aa3c91a71f1df3cedd15e5b015', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686672, + tx_hash: + '361b5ea27aa31c8692b817a1b264479a9d7c9836f4f72166c9a1dcd85dd5ec91', + tx_pos: 1, + value: 3731915, + txid: + '361b5ea27aa31c8692b817a1b264479a9d7c9836f4f72166c9a1dcd85dd5ec91', + vout: 1, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + 'af68913c3c7bf48bcf3159e65bc986f08ad0654baa0e6cce21e397dc8c92ef91', + tx_pos: 0, + value: 1000, + txid: + 'af68913c3c7bf48bcf3159e65bc986f08ad0654baa0e6cce21e397dc8c92ef91', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686962, + tx_hash: + 'af68913c3c7bf48bcf3159e65bc986f08ad0654baa0e6cce21e397dc8c92ef91', + tx_pos: 0, + value: 1000, + txid: + 'af68913c3c7bf48bcf3159e65bc986f08ad0654baa0e6cce21e397dc8c92ef91', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + ], + }, + ], +}; + +// what hydratedUtxoDetails should be after the sent tx +export const hydratedUtxoDetailsAfterConsumedUtxosRemoved = { + slpUtxos: [ + { + address: 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + utxos: [ + { + height: 680782, + tx_hash: + '525457276f1b6984170c9b35a8312d4988fce495723eabadd2afcdb3b872b2f1', + tx_pos: 1, + value: 546, + txid: + '525457276f1b6984170c9b35a8312d4988fce495723eabadd2afcdb3b872b2f1', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bf24d955f59351e738ecd905966606a6837e478e1982943d724eab10caad82fd', + tokenTicker: 'ST', + tokenName: 'ST', + tokenDocumentUrl: 'developer.bitcoin.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 680784, + tx_hash: + '28f061fee068d3b9cb578141bac3d4d9ec4eccebec680464bf0aafaac414811f', + tx_pos: 1, + value: 546, + txid: + '28f061fee068d3b9cb578141bac3d4d9ec4eccebec680464bf0aafaac414811f', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bd1acc4c986de57af8d6d2a64aecad8c30ee80f37ae9d066d758923732ddc9ba', + tokenTicker: 'TBS', + tokenName: 'TestBits', + tokenDocumentUrl: 'https://thecryptoguy.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '9897999885.21030105', + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 680784, + tx_hash: + '5fa3ffccea55c968beb7d214c563c92336ce2bbccbb714ba819848a7f7060bdb', + tx_pos: 1, + value: 546, + txid: + '5fa3ffccea55c968beb7d214c563c92336ce2bbccbb714ba819848a7f7060bdb', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bef614aac85c0c866f4d39e4d12a96851267d38d1bca5bdd6488bbd42e28b6b1', + tokenTicker: 'CTP', + tokenName: 'Cash Tab Points', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '308.87654321', + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 680784, + tx_hash: + 'daa98a872b7d88fefd2257b006db001ef82a601f3943b92e0c753076598a7b75', + tx_pos: 1, + value: 546, + txid: + 'daa98a872b7d88fefd2257b006db001ef82a601f3943b92e0c753076598a7b75', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bef614aac85c0c866f4d39e4d12a96851267d38d1bca5bdd6488bbd42e28b6b1', + tokenTicker: 'CTP', + tokenName: 'Cash Tab Points', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '1e-9', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681190, + tx_hash: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + tx_pos: 2, + value: 546, + txid: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1f6a65e7a4bde92c0a012de2bcf4007034504a765377cdf08a3ee01d1eaa6901', + tokenTicker: '🍔', + tokenName: 'Burger', + tokenDocumentUrl: + 'https://c4.wallpaperflare.com/wallpaper/58/564/863/giant-hamburger-wallpaper-preview.jpg', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681191, + tx_hash: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + tx_pos: 2, + value: 546, + txid: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'dd84ca78db4d617221b58eabc6667af8fe2f7eadbfcc213d35be9f1b419beb8d', + tokenTicker: 'TAP', + tokenName: 'Thoughts and Prayers', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681191, + tx_hash: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + tx_pos: 2, + value: 546, + txid: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'df808a41672a0a0ae6475b44f272a107bc9961b90f29dc918d71301f24fe92fb', + tokenTicker: 'NAKAMOTO', + tokenName: 'NAKAMOTO', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '0.99999999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681191, + tx_hash: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + tx_pos: 2, + value: 546, + txid: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7f8889682d57369ed0e32336f8b7e0ffec625a35cca183f4e81fde4e71a538a1', + tokenTicker: 'HONK', + tokenName: 'HONK HONK', + tokenDocumentUrl: 'THE REAL HONK SLP TOKEN', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 684287, + tx_hash: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + tx_pos: 2, + value: 546, + txid: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7443f7c831cdf2b2b04d5f0465ed0bcf348582675b0e4f17906438c232c22f3d', + tokenTicker: 'WDT', + tokenName: + 'Test Token With Exceptionally Long Name For CSS And Style Revisions', + tokenDocumentUrl: + 'https://www.ImpossiblyLongWebsiteDidYouThinkWebDevWouldBeFun.org', + tokenDocumentHash: + '����\\�IS\u001e9�����k+���\u0018���\u001b]�߷2��', + decimals: 7, + tokenType: 1, + tokenQty: '523512276.7961432', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685005, + tx_hash: + 'f5afd3774d11390bcde040f2079bd23edece90ff2b58e453629e6ef2c6b2c513', + tx_pos: 1, + value: 546, + txid: + 'f5afd3774d11390bcde040f2079bd23edece90ff2b58e453629e6ef2c6b2c513', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '9e9738e9ac3ff202736bf7775f875ebae6f812650df577a947c20c52475e43da', + tokenTicker: 'CUTT', + tokenName: 'Cashtab Unit Test Token', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 2, + tokenType: 1, + tokenQty: '100', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685147, + tx_hash: + 'f2d492da069429866c8ed59fd0d5283b8a8da881414633ac35979a2891030c57', + tx_pos: 1, + value: 546, + txid: + 'f2d492da069429866c8ed59fd0d5283b8a8da881414633ac35979a2891030c57', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'ccf5fe5a387559c8ab9efdeb0c0ef1b444e677298cfddf07671245ce3cb3c79f', + tokenTicker: 'XGB', + tokenName: 'Garmonbozia', + tokenDocumentUrl: + 'https://twinpeaks.fandom.com/wiki/Garmonbozia', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '500', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685168, + tx_hash: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + tx_pos: 1, + value: 546, + txid: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + vout: 1, + utxoType: 'token', + tokenQty: '100', + tokenId: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + tokenTicker: 'CLNSP', + tokenName: 'ComponentLongNameSpeedLoad', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685170, + tx_hash: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + tx_pos: 1, + value: 546, + txid: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + vout: 1, + utxoType: 'token', + tokenQty: '55.55555', + tokenId: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + tokenTicker: 'CMA', + tokenName: 'CashtabMintAlpha', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 5, + tokenType: 1, + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685181, + tx_hash: + '7987f68aa70d29ac0e0ac31d74354a8b1cd515c9893f6a5cdc7a3bf505e08b05', + tx_pos: 1, + value: 546, + txid: + '7987f68aa70d29ac0e0ac31d74354a8b1cd515c9893f6a5cdc7a3bf505e08b05', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '50d8292c6255cda7afc6c8566fed3cf42a2794e9619740fe8f4c95431271410e', + tokenTicker: 'TBC', + tokenName: 'tabcash', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685394, + tx_hash: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + tx_pos: 2, + value: 546, + txid: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '999958.999999994', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685518, + tx_hash: + 'e570d62939379de82a5008742136fe43564e45aea3b162bf80078bb9607e10cd', + tx_pos: 2, + value: 546, + txid: + 'e570d62939379de82a5008742136fe43564e45aea3b162bf80078bb9607e10cd', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '4bd147fc5d5ff26249a9299c46b80920c0b81f59a60e05428262160ebee0b0c3', + tokenTicker: 'NOCOVID', + tokenName: 'Covid19 Lifetime Immunity', + tokenDocumentUrl: + 'https://www.who.int/emergencies/diseases/novel-coronavirus-2019/covid-19-vaccines', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '996794', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685877, + tx_hash: + '9f4c66b82f5b41f474f9670311e834667c0207a81f9e31a65731a7731e86c3ee', + tx_pos: 2, + value: 546, + txid: + '9f4c66b82f5b41f474f9670311e834667c0207a81f9e31a65731a7731e86c3ee', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '0916e71779c9de7ee125741d3f5ab01f556356dbc86fd327a24f1e9e22ebc917', + tokenTicker: 'CTL2', + tokenName: 'Cashtab Token Launch Launch Token v2', + tokenDocumentUrl: 'thecryptoguy.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1900', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685888, + tx_hash: + '25f591bcf489dcf5ef1b0a9992ba10a2d49ba8d47ce63fb56340343a4ef91a1b', + tx_pos: 2, + value: 546, + txid: + '25f591bcf489dcf5ef1b0a9992ba10a2d49ba8d47ce63fb56340343a4ef91a1b', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'aa7202397a06097e8ff36855aa72c0ee032659747e5bd7cbcd3099fc3a62b6b6', + tokenTicker: 'CTL', + tokenName: 'Cashtab Token Launch Launch Token', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685889, + tx_hash: + '4f5af8d3dc9d1fb3dc803a80589cab62c78235264aa90e4f8066b7960804cd74', + tx_pos: 2, + value: 546, + txid: + '4f5af8d3dc9d1fb3dc803a80589cab62c78235264aa90e4f8066b7960804cd74', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '16b12bbacdbb8c8a799adbfd782bfff9843c1f9b0be148eaae02a1a7f74f95c4', + tokenTicker: 'CGEN', + tokenName: 'Cashtab Genesis', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '999999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686024, + tx_hash: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + tx_pos: 2, + value: 546, + txid: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '77ec4036ef8546ac46df6d3a5374e961216f92624627eaeef5d2e1a253df9fc6', + tokenTicker: 'CTLv3', + tokenName: 'Cashtab Token Launch Launch Token v3', + tokenDocumentUrl: 'coinex.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '300', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686277, + tx_hash: + 'aa75d670bba7ebc73249535175ab2d7f7425969b1541c8f40e59161eb9ead039', + tx_pos: 1, + value: 546, + txid: + 'aa75d670bba7ebc73249535175ab2d7f7425969b1541c8f40e59161eb9ead039', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'df808a41672a0a0ae6475b44f272a107bc9961b90f29dc918d71301f24fe92fb', + tokenTicker: 'NAKAMOTO', + tokenName: 'NAKAMOTO', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + + { + height: 686352, + tx_hash: + '15b522b0b91876e4d5196bb5c86369142e58f31e68120eee9955c964c2669b6f', + tx_pos: 1, + value: 546, + txid: + '15b522b0b91876e4d5196bb5c86369142e58f31e68120eee9955c964c2669b6f', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7443f7c831cdf2b2b04d5f0465ed0bcf348582675b0e4f17906438c232c22f3d', + tokenTicker: 'WDT', + tokenName: + 'Test Token With Exceptionally Long Name For CSS And Style Revisions', + tokenDocumentUrl: + 'https://www.ImpossiblyLongWebsiteDidYouThinkWebDevWouldBeFun.org', + tokenDocumentHash: + '����\\�IS\u001e9�����k+���\u0018���\u001b]�߷2��', + decimals: 7, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + + { + height: 686546, + tx_hash: + '19f09ba38231d895b6b741c7c16a1e5892858d41b9bd2c03744fc7a87285855a', + tx_pos: 1, + value: 546, + txid: + '19f09ba38231d895b6b741c7c16a1e5892858d41b9bd2c03744fc7a87285855a', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '3', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + + { + height: 686546, + tx_hash: + '5427f85198b1ce396742be1516140e8ef7a318d11b267a01f2fe5278a8f9062f', + tx_pos: 1, + value: 546, + txid: + '5427f85198b1ce396742be1516140e8ef7a318d11b267a01f2fe5278a8f9062f', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '0.999999991', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686546, + tx_hash: + '9d4585c4009e69ce9c49764c16508adf5deca9d57b4a13690cc6939a1c879b85', + tx_pos: 0, + value: 3000, + txid: + '9d4585c4009e69ce9c49764c16508adf5deca9d57b4a13690cc6939a1c879b85', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + 'a2de4052a85ef62fd0672f34c1d669c9277ffeb0d6e9edeffb31173ec032c0a4', + tx_pos: 0, + value: 33000, + txid: + 'a2de4052a85ef62fd0672f34c1d669c9277ffeb0d6e9edeffb31173ec032c0a4', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + 'a50d9c3e1ffbbfd914c061765fbe2682e27aa2dbae67f220d532d6c8bca96647', + tx_pos: 0, + value: 3000, + txid: + 'a50d9c3e1ffbbfd914c061765fbe2682e27aa2dbae67f220d532d6c8bca96647', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + 'bd84598096c113cd2110bc1748dd0613a933e2ddc440654c12ca4db4659933ed', + tx_pos: 1, + value: 546, + txid: + 'bd84598096c113cd2110bc1748dd0613a933e2ddc440654c12ca4db4659933ed', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bd1acc4c986de57af8d6d2a64aecad8c30ee80f37ae9d066d758923732ddc9ba', + tokenTicker: 'TBS', + tokenName: 'TestBits', + tokenDocumentUrl: 'https://thecryptoguy.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686546, + tx_hash: + 'd00cb1a8f1287b2f30d319fa71a038a4e2813892060ecebbd9740ec7179e286b', + tx_pos: 0, + value: 2000, + txid: + 'd00cb1a8f1287b2f30d319fa71a038a4e2813892060ecebbd9740ec7179e286b', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + 'd0bb2bfcc0f331e1b6d4d0850ad580387086c38b6c0ca9c9f4aa93d8a57de335', + tx_pos: 0, + value: 2000, + txid: + 'd0bb2bfcc0f331e1b6d4d0850ad580387086c38b6c0ca9c9f4aa93d8a57de335', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + 'd72c163c45772092426921aa682d850d6ec1a0958cb1e842b785783758757e97', + tx_pos: 1, + value: 546, + txid: + 'd72c163c45772092426921aa682d850d6ec1a0958cb1e842b785783758757e97', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686546, + tx_hash: + 'ea122a8c94d3ffebb657d0db22a79f192afdc2aa3c91a71f1df3cedd15e5b015', + tx_pos: 0, + value: 3000, + txid: + 'ea122a8c94d3ffebb657d0db22a79f192afdc2aa3c91a71f1df3cedd15e5b015', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686672, + tx_hash: + '361b5ea27aa31c8692b817a1b264479a9d7c9836f4f72166c9a1dcd85dd5ec91', + tx_pos: 1, + value: 3731915, + txid: + '361b5ea27aa31c8692b817a1b264479a9d7c9836f4f72166c9a1dcd85dd5ec91', + vout: 1, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + 'af68913c3c7bf48bcf3159e65bc986f08ad0654baa0e6cce21e397dc8c92ef91', + tx_pos: 0, + value: 1000, + txid: + 'af68913c3c7bf48bcf3159e65bc986f08ad0654baa0e6cce21e397dc8c92ef91', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686962, + tx_hash: + 'af68913c3c7bf48bcf3159e65bc986f08ad0654baa0e6cce21e397dc8c92ef91', + tx_pos: 0, + value: 1000, + txid: + 'af68913c3c7bf48bcf3159e65bc986f08ad0654baa0e6cce21e397dc8c92ef91', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + ], + }, + ], +}; +export const utxoSetAfterSendingTx = [ + { + utxos: [], + address: 'bitcoincash:qq0mw6nah9huwaxt45qw3fegjpszkjlrqsvttwy36p', + }, + { + utxos: [], + address: 'bitcoincash:qz5lf9pxde9neq3hzte8mmwts03sktl9nuz6m3dynu', + }, + { + utxos: [ + { + height: 680782, + tx_hash: + '525457276f1b6984170c9b35a8312d4988fce495723eabadd2afcdb3b872b2f1', + tx_pos: 1, + value: 546, + }, + { + height: 680784, + tx_hash: + '28f061fee068d3b9cb578141bac3d4d9ec4eccebec680464bf0aafaac414811f', + tx_pos: 1, + value: 546, + }, + { + height: 680784, + tx_hash: + '5fa3ffccea55c968beb7d214c563c92336ce2bbccbb714ba819848a7f7060bdb', + tx_pos: 1, + value: 546, + }, + { + height: 680784, + tx_hash: + 'daa98a872b7d88fefd2257b006db001ef82a601f3943b92e0c753076598a7b75', + tx_pos: 1, + value: 546, + }, + { + height: 681190, + tx_hash: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + tx_pos: 2, + value: 546, + }, + { + height: 681191, + tx_hash: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + tx_pos: 2, + value: 546, + }, + { + height: 681191, + tx_hash: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + tx_pos: 2, + value: 546, + }, + { + height: 681191, + tx_hash: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + tx_pos: 2, + value: 546, + }, + { + height: 684287, + tx_hash: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + tx_pos: 2, + value: 546, + }, + { + height: 685005, + tx_hash: + 'f5afd3774d11390bcde040f2079bd23edece90ff2b58e453629e6ef2c6b2c513', + tx_pos: 1, + value: 546, + }, + { + height: 685147, + tx_hash: + 'f2d492da069429866c8ed59fd0d5283b8a8da881414633ac35979a2891030c57', + tx_pos: 1, + value: 546, + }, + { + height: 685168, + tx_hash: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + tx_pos: 1, + value: 546, + }, + { + height: 685170, + tx_hash: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + tx_pos: 1, + value: 546, + }, + { + height: 685181, + tx_hash: + '7987f68aa70d29ac0e0ac31d74354a8b1cd515c9893f6a5cdc7a3bf505e08b05', + tx_pos: 1, + value: 546, + }, + { + height: 685394, + tx_hash: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + tx_pos: 2, + value: 546, + }, + { + height: 685518, + tx_hash: + 'e570d62939379de82a5008742136fe43564e45aea3b162bf80078bb9607e10cd', + tx_pos: 2, + value: 546, + }, + { + height: 685877, + tx_hash: + '9f4c66b82f5b41f474f9670311e834667c0207a81f9e31a65731a7731e86c3ee', + tx_pos: 2, + value: 546, + }, + { + height: 685888, + tx_hash: + '25f591bcf489dcf5ef1b0a9992ba10a2d49ba8d47ce63fb56340343a4ef91a1b', + tx_pos: 2, + value: 546, + }, + { + height: 685889, + tx_hash: + '4f5af8d3dc9d1fb3dc803a80589cab62c78235264aa90e4f8066b7960804cd74', + tx_pos: 2, + value: 546, + }, + { + height: 686024, + tx_hash: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + tx_pos: 2, + value: 546, + }, + { + height: 686277, + tx_hash: + 'aa75d670bba7ebc73249535175ab2d7f7425969b1541c8f40e59161eb9ead039', + tx_pos: 1, + value: 546, + }, + { + height: 686352, + tx_hash: + '15b522b0b91876e4d5196bb5c86369142e58f31e68120eee9955c964c2669b6f', + tx_pos: 1, + value: 546, + }, + { + height: 686546, + tx_hash: + '19f09ba38231d895b6b741c7c16a1e5892858d41b9bd2c03744fc7a87285855a', + tx_pos: 1, + value: 546, + }, + { + height: 686546, + tx_hash: + '5427f85198b1ce396742be1516140e8ef7a318d11b267a01f2fe5278a8f9062f', + tx_pos: 1, + value: 546, + }, + { + height: 686546, + tx_hash: + '9d4585c4009e69ce9c49764c16508adf5deca9d57b4a13690cc6939a1c879b85', + tx_pos: 0, + value: 3000, + }, + { + height: 686546, + tx_hash: + 'a2de4052a85ef62fd0672f34c1d669c9277ffeb0d6e9edeffb31173ec032c0a4', + tx_pos: 0, + value: 33000, + }, + { + height: 686546, + tx_hash: + 'a50d9c3e1ffbbfd914c061765fbe2682e27aa2dbae67f220d532d6c8bca96647', + tx_pos: 0, + value: 3000, + }, + { + height: 686546, + tx_hash: + 'bd84598096c113cd2110bc1748dd0613a933e2ddc440654c12ca4db4659933ed', + tx_pos: 1, + value: 546, + }, + { + height: 686546, + tx_hash: + 'd00cb1a8f1287b2f30d319fa71a038a4e2813892060ecebbd9740ec7179e286b', + tx_pos: 0, + value: 2000, + }, + { + height: 686546, + tx_hash: + 'd0bb2bfcc0f331e1b6d4d0850ad580387086c38b6c0ca9c9f4aa93d8a57de335', + tx_pos: 0, + value: 2000, + }, + { + height: 686546, + tx_hash: + 'd72c163c45772092426921aa682d850d6ec1a0958cb1e842b785783758757e97', + tx_pos: 1, + value: 546, + }, + { + height: 686546, + tx_hash: + 'ea122a8c94d3ffebb657d0db22a79f192afdc2aa3c91a71f1df3cedd15e5b015', + tx_pos: 0, + value: 3000, + }, + { + height: 686672, + tx_hash: + '361b5ea27aa31c8692b817a1b264479a9d7c9836f4f72166c9a1dcd85dd5ec91', + tx_pos: 1, + value: 3731915, + }, + { + height: 686962, + tx_hash: + 'af68913c3c7bf48bcf3159e65bc986f08ad0654baa0e6cce21e397dc8c92ef91', + tx_pos: 0, + value: 1000, + }, + { + height: 0, + tx_hash: + '5a12a1ad0e9c5c91a8d0affaed362b217aada692360e75231e0c7a35b19a8337', + tx_pos: 1, + value: 1469801127, + }, + ], + address: 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, +]; +export const hydratedUtxosAfterSendingTx = { + slpUtxos: [ + { + address: 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + utxos: [ + { + height: 680782, + tx_hash: + '525457276f1b6984170c9b35a8312d4988fce495723eabadd2afcdb3b872b2f1', + tx_pos: 1, + value: 546, + txid: + '525457276f1b6984170c9b35a8312d4988fce495723eabadd2afcdb3b872b2f1', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bf24d955f59351e738ecd905966606a6837e478e1982943d724eab10caad82fd', + tokenTicker: 'ST', + tokenName: 'ST', + tokenDocumentUrl: 'developer.bitcoin.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 680784, + tx_hash: + '28f061fee068d3b9cb578141bac3d4d9ec4eccebec680464bf0aafaac414811f', + tx_pos: 1, + value: 546, + txid: + '28f061fee068d3b9cb578141bac3d4d9ec4eccebec680464bf0aafaac414811f', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bd1acc4c986de57af8d6d2a64aecad8c30ee80f37ae9d066d758923732ddc9ba', + tokenTicker: 'TBS', + tokenName: 'TestBits', + tokenDocumentUrl: 'https://thecryptoguy.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '9897999885.21030105', + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 680784, + tx_hash: + '5fa3ffccea55c968beb7d214c563c92336ce2bbccbb714ba819848a7f7060bdb', + tx_pos: 1, + value: 546, + txid: + '5fa3ffccea55c968beb7d214c563c92336ce2bbccbb714ba819848a7f7060bdb', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bef614aac85c0c866f4d39e4d12a96851267d38d1bca5bdd6488bbd42e28b6b1', + tokenTicker: 'CTP', + tokenName: 'Cash Tab Points', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '308.87654321', + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 680784, + tx_hash: + 'daa98a872b7d88fefd2257b006db001ef82a601f3943b92e0c753076598a7b75', + tx_pos: 1, + value: 546, + txid: + 'daa98a872b7d88fefd2257b006db001ef82a601f3943b92e0c753076598a7b75', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bef614aac85c0c866f4d39e4d12a96851267d38d1bca5bdd6488bbd42e28b6b1', + tokenTicker: 'CTP', + tokenName: 'Cash Tab Points', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '1e-9', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681190, + tx_hash: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + tx_pos: 2, + value: 546, + txid: + 'e9dca9aa954131a0004325fff11dfddcd6e5843c468116cf4d38cb264032cdc0', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1f6a65e7a4bde92c0a012de2bcf4007034504a765377cdf08a3ee01d1eaa6901', + tokenTicker: '🍔', + tokenName: 'Burger', + tokenDocumentUrl: + 'https://c4.wallpaperflare.com/wallpaper/58/564/863/giant-hamburger-wallpaper-preview.jpg', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681191, + tx_hash: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + tx_pos: 2, + value: 546, + txid: + 'b35c502f388cdfbdd6841b7a73e973149b3c8deca76295a3e4665939e0562796', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'dd84ca78db4d617221b58eabc6667af8fe2f7eadbfcc213d35be9f1b419beb8d', + tokenTicker: 'TAP', + tokenName: 'Thoughts and Prayers', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681191, + tx_hash: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + tx_pos: 2, + value: 546, + txid: + 'c70408fca1a5bf48f338f7ef031e586293be6948a5bff1fbbdd4eb923ef11e59', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'df808a41672a0a0ae6475b44f272a107bc9961b90f29dc918d71301f24fe92fb', + tokenTicker: 'NAKAMOTO', + tokenName: 'NAKAMOTO', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '0.99999999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 681191, + tx_hash: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + tx_pos: 2, + value: 546, + txid: + 'e1097932e5a607c100dc73fa18169be2e501e1782c7c94500742974d6353476c', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7f8889682d57369ed0e32336f8b7e0ffec625a35cca183f4e81fde4e71a538a1', + tokenTicker: 'HONK', + tokenName: 'HONK HONK', + tokenDocumentUrl: 'THE REAL HONK SLP TOKEN', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 684287, + tx_hash: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + tx_pos: 2, + value: 546, + txid: + 'e2008b12d2329c02c1990ceee43cd6c7935928ab4e81dfbaec5f698b92dbeab6', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7443f7c831cdf2b2b04d5f0465ed0bcf348582675b0e4f17906438c232c22f3d', + tokenTicker: 'WDT', + tokenName: + 'Test Token With Exceptionally Long Name For CSS And Style Revisions', + tokenDocumentUrl: + 'https://www.ImpossiblyLongWebsiteDidYouThinkWebDevWouldBeFun.org', + tokenDocumentHash: + '����\\�IS\u001e9�����k+���\u0018���\u001b]�߷2��', + decimals: 7, + tokenType: 1, + tokenQty: '523512276.7961432', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685005, + tx_hash: + 'f5afd3774d11390bcde040f2079bd23edece90ff2b58e453629e6ef2c6b2c513', + tx_pos: 1, + value: 546, + txid: + 'f5afd3774d11390bcde040f2079bd23edece90ff2b58e453629e6ef2c6b2c513', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '9e9738e9ac3ff202736bf7775f875ebae6f812650df577a947c20c52475e43da', + tokenTicker: 'CUTT', + tokenName: 'Cashtab Unit Test Token', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 2, + tokenType: 1, + tokenQty: '100', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685147, + tx_hash: + 'f2d492da069429866c8ed59fd0d5283b8a8da881414633ac35979a2891030c57', + tx_pos: 1, + value: 546, + txid: + 'f2d492da069429866c8ed59fd0d5283b8a8da881414633ac35979a2891030c57', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'ccf5fe5a387559c8ab9efdeb0c0ef1b444e677298cfddf07671245ce3cb3c79f', + tokenTicker: 'XGB', + tokenName: 'Garmonbozia', + tokenDocumentUrl: + 'https://twinpeaks.fandom.com/wiki/Garmonbozia', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '500', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685168, + tx_hash: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + tx_pos: 1, + value: 546, + txid: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + vout: 1, + utxoType: 'token', + tokenQty: '100', + tokenId: + '157e0cdef5d5c51bdea00eac9ab821d809bb9d03cf98da85833614bedb129be6', + tokenTicker: 'CLNSP', + tokenName: 'ComponentLongNameSpeedLoad', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685170, + tx_hash: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + tx_pos: 1, + value: 546, + txid: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + vout: 1, + utxoType: 'token', + tokenQty: '55.55555', + tokenId: + '45f0ff5cae7e89da6b96c26c8c48a959214c5f0e983e78d0925f8956ca8848c6', + tokenTicker: 'CMA', + tokenName: 'CashtabMintAlpha', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 5, + tokenType: 1, + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685181, + tx_hash: + '7987f68aa70d29ac0e0ac31d74354a8b1cd515c9893f6a5cdc7a3bf505e08b05', + tx_pos: 1, + value: 546, + txid: + '7987f68aa70d29ac0e0ac31d74354a8b1cd515c9893f6a5cdc7a3bf505e08b05', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '50d8292c6255cda7afc6c8566fed3cf42a2794e9619740fe8f4c95431271410e', + tokenTicker: 'TBC', + tokenName: 'tabcash', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685394, + tx_hash: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + tx_pos: 2, + value: 546, + txid: + '28669d88822a1e0c202fb68d6abc36c3b5acc9f1df3c6990d045b119e4b7cc4d', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '999958.999999994', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685518, + tx_hash: + 'e570d62939379de82a5008742136fe43564e45aea3b162bf80078bb9607e10cd', + tx_pos: 2, + value: 546, + txid: + 'e570d62939379de82a5008742136fe43564e45aea3b162bf80078bb9607e10cd', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '4bd147fc5d5ff26249a9299c46b80920c0b81f59a60e05428262160ebee0b0c3', + tokenTicker: 'NOCOVID', + tokenName: 'Covid19 Lifetime Immunity', + tokenDocumentUrl: + 'https://www.who.int/emergencies/diseases/novel-coronavirus-2019/covid-19-vaccines', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '996794', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685877, + tx_hash: + '9f4c66b82f5b41f474f9670311e834667c0207a81f9e31a65731a7731e86c3ee', + tx_pos: 2, + value: 546, + txid: + '9f4c66b82f5b41f474f9670311e834667c0207a81f9e31a65731a7731e86c3ee', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '0916e71779c9de7ee125741d3f5ab01f556356dbc86fd327a24f1e9e22ebc917', + tokenTicker: 'CTL2', + tokenName: 'Cashtab Token Launch Launch Token v2', + tokenDocumentUrl: 'thecryptoguy.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '1900', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685888, + tx_hash: + '25f591bcf489dcf5ef1b0a9992ba10a2d49ba8d47ce63fb56340343a4ef91a1b', + tx_pos: 2, + value: 546, + txid: + '25f591bcf489dcf5ef1b0a9992ba10a2d49ba8d47ce63fb56340343a4ef91a1b', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'aa7202397a06097e8ff36855aa72c0ee032659747e5bd7cbcd3099fc3a62b6b6', + tokenTicker: 'CTL', + tokenName: 'Cashtab Token Launch Launch Token', + tokenDocumentUrl: 'https://cashtabapp.com/', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 685889, + tx_hash: + '4f5af8d3dc9d1fb3dc803a80589cab62c78235264aa90e4f8066b7960804cd74', + tx_pos: 2, + value: 546, + txid: + '4f5af8d3dc9d1fb3dc803a80589cab62c78235264aa90e4f8066b7960804cd74', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '16b12bbacdbb8c8a799adbfd782bfff9843c1f9b0be148eaae02a1a7f74f95c4', + tokenTicker: 'CGEN', + tokenName: 'Cashtab Genesis', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '999999', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686024, + tx_hash: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + tx_pos: 2, + value: 546, + txid: + '34caddbb70b152f555366d6719d7fcc7c263a2c77b8981819c1a0bfd7cce8e98', + vout: 2, + utxoType: 'token', + transactionType: 'send', + tokenId: + '77ec4036ef8546ac46df6d3a5374e961216f92624627eaeef5d2e1a253df9fc6', + tokenTicker: 'CTLv3', + tokenName: 'Cashtab Token Launch Launch Token v3', + tokenDocumentUrl: 'coinex.com', + tokenDocumentHash: '', + decimals: 0, + tokenType: 1, + tokenQty: '300', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686277, + tx_hash: + 'aa75d670bba7ebc73249535175ab2d7f7425969b1541c8f40e59161eb9ead039', + tx_pos: 1, + value: 546, + txid: + 'aa75d670bba7ebc73249535175ab2d7f7425969b1541c8f40e59161eb9ead039', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'df808a41672a0a0ae6475b44f272a107bc9961b90f29dc918d71301f24fe92fb', + tokenTicker: 'NAKAMOTO', + tokenName: 'NAKAMOTO', + tokenDocumentUrl: '', + tokenDocumentHash: '', + decimals: 8, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686277, + tx_hash: + 'c0a59a84e9a6b3c4a4eb146aba17558a4aac4d4717d3123549b0ba197403db69', + tx_pos: 0, + value: 100000, + txid: + 'c0a59a84e9a6b3c4a4eb146aba17558a4aac4d4717d3123549b0ba197403db69', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686351, + tx_hash: + 'c8de9469353774426934a161a2d935a11139a75db012b8b63e8f561972ca00e8', + tx_pos: 0, + value: 10000, + txid: + 'c8de9469353774426934a161a2d935a11139a75db012b8b63e8f561972ca00e8', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686351, + tx_hash: + 'd2b76eea35192769897878dca146b9d7b21566e33a2acdf94719201147bca28e', + tx_pos: 0, + value: 10000, + txid: + 'd2b76eea35192769897878dca146b9d7b21566e33a2acdf94719201147bca28e', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686352, + tx_hash: + '15b522b0b91876e4d5196bb5c86369142e58f31e68120eee9955c964c2669b6f', + tx_pos: 1, + value: 546, + txid: + '15b522b0b91876e4d5196bb5c86369142e58f31e68120eee9955c964c2669b6f', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '7443f7c831cdf2b2b04d5f0465ed0bcf348582675b0e4f17906438c232c22f3d', + tokenTicker: 'WDT', + tokenName: + 'Test Token With Exceptionally Long Name For CSS And Style Revisions', + tokenDocumentUrl: + 'https://www.ImpossiblyLongWebsiteDidYouThinkWebDevWouldBeFun.org', + tokenDocumentHash: + '����\\�IS\u001e9�����k+���\u0018���\u001b]�߷2��', + decimals: 7, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686542, + tx_hash: + '3dd57d367dc61c5e369bbe9b04a5c5c01bb1615877e34a6446833d4b2cb44172', + tx_pos: 0, + value: 10000, + txid: + '3dd57d367dc61c5e369bbe9b04a5c5c01bb1615877e34a6446833d4b2cb44172', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686544, + tx_hash: + '3ab1e30aa9bcd2edd157fc141cf83b5739f9b3f22698d86ed8f48a78f71b6fa1', + tx_pos: 0, + value: 10000, + txid: + '3ab1e30aa9bcd2edd157fc141cf83b5739f9b3f22698d86ed8f48a78f71b6fa1', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686544, + tx_hash: + 'a64b02b2c59c510c31173d433ac20ae8cd40e997a49d3848de3f3edb45f11e43', + tx_pos: 0, + value: 20000, + txid: + 'a64b02b2c59c510c31173d433ac20ae8cd40e997a49d3848de3f3edb45f11e43', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + '19f09ba38231d895b6b741c7c16a1e5892858d41b9bd2c03744fc7a87285855a', + tx_pos: 1, + value: 546, + txid: + '19f09ba38231d895b6b741c7c16a1e5892858d41b9bd2c03744fc7a87285855a', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '3', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686546, + tx_hash: + '2eb1241f96ca14fe23c024908c2db6bbbcc58e47caf25a0626686c84b2d8c095', + tx_pos: 0, + value: 2000, + txid: + '2eb1241f96ca14fe23c024908c2db6bbbcc58e47caf25a0626686c84b2d8c095', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + '410627195eb0a79dca560f05915296b8efaf66ddde01d3095f8bea1d6c329476', + tx_pos: 0, + value: 1000, + txid: + '410627195eb0a79dca560f05915296b8efaf66ddde01d3095f8bea1d6c329476', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + '5427f85198b1ce396742be1516140e8ef7a318d11b267a01f2fe5278a8f9062f', + tx_pos: 1, + value: 546, + txid: + '5427f85198b1ce396742be1516140e8ef7a318d11b267a01f2fe5278a8f9062f', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '0.999999991', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686546, + tx_hash: + '7df3adba4713eac5f937283a8ddb91c15cf08d06f81f25e60a972c4cc28b0b6f', + tx_pos: 0, + value: 2000, + txid: + '7df3adba4713eac5f937283a8ddb91c15cf08d06f81f25e60a972c4cc28b0b6f', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + '93e6ee69be3221562e7481e5346987178d76536337fd9a9c670895af3dbfe2d3', + tx_pos: 1, + value: 1481988933, + txid: + '93e6ee69be3221562e7481e5346987178d76536337fd9a9c670895af3dbfe2d3', + vout: 1, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + '9d4585c4009e69ce9c49764c16508adf5deca9d57b4a13690cc6939a1c879b85', + tx_pos: 0, + value: 3000, + txid: + '9d4585c4009e69ce9c49764c16508adf5deca9d57b4a13690cc6939a1c879b85', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + 'a2de4052a85ef62fd0672f34c1d669c9277ffeb0d6e9edeffb31173ec032c0a4', + tx_pos: 0, + value: 33000, + txid: + 'a2de4052a85ef62fd0672f34c1d669c9277ffeb0d6e9edeffb31173ec032c0a4', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + 'a50d9c3e1ffbbfd914c061765fbe2682e27aa2dbae67f220d532d6c8bca96647', + tx_pos: 0, + value: 3000, + txid: + 'a50d9c3e1ffbbfd914c061765fbe2682e27aa2dbae67f220d532d6c8bca96647', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + 'bd84598096c113cd2110bc1748dd0613a933e2ddc440654c12ca4db4659933ed', + tx_pos: 1, + value: 546, + txid: + 'bd84598096c113cd2110bc1748dd0613a933e2ddc440654c12ca4db4659933ed', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + 'bd1acc4c986de57af8d6d2a64aecad8c30ee80f37ae9d066d758923732ddc9ba', + tokenTicker: 'TBS', + tokenName: 'TestBits', + tokenDocumentUrl: 'https://thecryptoguy.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686546, + tx_hash: + 'd00cb1a8f1287b2f30d319fa71a038a4e2813892060ecebbd9740ec7179e286b', + tx_pos: 0, + value: 2000, + txid: + 'd00cb1a8f1287b2f30d319fa71a038a4e2813892060ecebbd9740ec7179e286b', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + 'd0bb2bfcc0f331e1b6d4d0850ad580387086c38b6c0ca9c9f4aa93d8a57de335', + tx_pos: 0, + value: 2000, + txid: + 'd0bb2bfcc0f331e1b6d4d0850ad580387086c38b6c0ca9c9f4aa93d8a57de335', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686546, + tx_hash: + 'd72c163c45772092426921aa682d850d6ec1a0958cb1e842b785783758757e97', + tx_pos: 1, + value: 546, + txid: + 'd72c163c45772092426921aa682d850d6ec1a0958cb1e842b785783758757e97', + vout: 1, + utxoType: 'token', + transactionType: 'send', + tokenId: + '1101bd5d7b6bbc3176fb2b93d08e76ab532b04ff731d71502249e3cb9b6fcb1a', + tokenTicker: 'XBIT', + tokenName: 'eBits', + tokenDocumentUrl: 'https://boomertakes.com/', + tokenDocumentHash: '', + decimals: 9, + tokenType: 1, + tokenQty: '1', + isValid: true, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, + { + height: 686546, + tx_hash: + 'ea122a8c94d3ffebb657d0db22a79f192afdc2aa3c91a71f1df3cedd15e5b015', + tx_pos: 0, + value: 3000, + txid: + 'ea122a8c94d3ffebb657d0db22a79f192afdc2aa3c91a71f1df3cedd15e5b015', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686672, + tx_hash: + '361b5ea27aa31c8692b817a1b264479a9d7c9836f4f72166c9a1dcd85dd5ec91', + tx_pos: 1, + value: 3731915, + txid: + '361b5ea27aa31c8692b817a1b264479a9d7c9836f4f72166c9a1dcd85dd5ec91', + vout: 1, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + 'af68913c3c7bf48bcf3159e65bc986f08ad0654baa0e6cce21e397dc8c92ef91', + tx_pos: 0, + value: 1000, + txid: + 'af68913c3c7bf48bcf3159e65bc986f08ad0654baa0e6cce21e397dc8c92ef91', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 686962, + tx_hash: + 'af68913c3c7bf48bcf3159e65bc986f08ad0654baa0e6cce21e397dc8c92ef91', + tx_pos: 0, + value: 1000, + txid: + 'af68913c3c7bf48bcf3159e65bc986f08ad0654baa0e6cce21e397dc8c92ef91', + vout: 0, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + { + height: 0, + tx_hash: + '5a12a1ad0e9c5c91a8d0affaed362b217aada692360e75231e0c7a35b19a8337', + tx_pos: 1, + value: 1469801127, + txid: + '5a12a1ad0e9c5c91a8d0affaed362b217aada692360e75231e0c7a35b19a8337', + vout: 1, + isValid: false, + address: + 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + wif: '', + }, + ], + }, + ], +}; + +export const utxosConsumedByTransaction = [ + { + address: 'bitcoincash:qq0mw6nah9huwaxt45qw3fegjpszkjlrqsvttwy36p', + utxos: [], + }, + { + address: 'bitcoincash:qz5lf9pxde9neq3hzte8mmwts03sktl9nuz6m3dynu', + utxos: [], + }, + { + address: 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + utxos: [ + { + height: 686277, + tx_hash: + 'c0a59a84e9a6b3c4a4eb146aba17558a4aac4d4717d3123549b0ba197403db69', + tx_pos: 0, + value: 100000, + }, + { + height: 686351, + tx_hash: + 'c8de9469353774426934a161a2d935a11139a75db012b8b63e8f561972ca00e8', + tx_pos: 0, + value: 10000, + }, + { + height: 686351, + tx_hash: + 'd2b76eea35192769897878dca146b9d7b21566e33a2acdf94719201147bca28e', + tx_pos: 0, + value: 10000, + }, + { + height: 686542, + tx_hash: + '3dd57d367dc61c5e369bbe9b04a5c5c01bb1615877e34a6446833d4b2cb44172', + tx_pos: 0, + value: 10000, + }, + { + height: 686544, + tx_hash: + '3ab1e30aa9bcd2edd157fc141cf83b5739f9b3f22698d86ed8f48a78f71b6fa1', + tx_pos: 0, + value: 10000, + }, + { + height: 686544, + tx_hash: + 'a64b02b2c59c510c31173d433ac20ae8cd40e997a49d3848de3f3edb45f11e43', + tx_pos: 0, + value: 20000, + }, + { + height: 686546, + tx_hash: + '2eb1241f96ca14fe23c024908c2db6bbbcc58e47caf25a0626686c84b2d8c095', + tx_pos: 0, + value: 2000, + }, + { + height: 686546, + tx_hash: + '410627195eb0a79dca560f05915296b8efaf66ddde01d3095f8bea1d6c329476', + tx_pos: 0, + value: 1000, + }, + { + height: 686546, + tx_hash: + '7df3adba4713eac5f937283a8ddb91c15cf08d06f81f25e60a972c4cc28b0b6f', + tx_pos: 0, + value: 2000, + }, + { + height: 686546, + tx_hash: + '93e6ee69be3221562e7481e5346987178d76536337fd9a9c670895af3dbfe2d3', + tx_pos: 1, + value: 1481988933, + }, + ], + }, +]; + +export const confirmedUtxosFromSentTxDelta = [ + { + utxos: [ + { + height: 686962, + tx_hash: + 'af68913c3c7bf48bcf3159e65bc986f08ad0654baa0e6cce21e397dc8c92ef91', + tx_pos: 0, + value: 1000, + }, + ], + address: 'bitcoincash:qz2708636snqhsxu8wnlka78h6fdp77ar5ulhz04hr', + }, +]; diff --git a/web/cashtab/src/utils/__tests__/cashMethods.test.js b/web/cashtab/src/utils/__tests__/cashMethods.test.js --- a/web/cashtab/src/utils/__tests__/cashMethods.test.js +++ b/web/cashtab/src/utils/__tests__/cashMethods.test.js @@ -1,3 +1,4 @@ +import { currency } from '@components/Common/Ticker'; import { fromSmallestDenomination, formatBalance, @@ -5,11 +6,47 @@ flattenBatchedHydratedUtxos, loadStoredWallet, isValidStoredWallet, + whichUtxosChanged, + parseChangedUtxos, + isUtxoArrayEmpty, + mergeHydratedUtxoDetails, + organizeHydratedUtxoDetailsByAddress, + addHydratedUtxoDetailsToWalletStateIfNew, + whichUtxosWereConsumed, + removeConsumedUtxosFromHydratedUtxoDetails, } from '@utils/cashMethods'; import { unbatchedArray, arrayBatchedByThree, } from '../__mocks__/mockBatchedArrays'; +import { + previousUtxos, + utxosReceivingBcha, + utxosReceivingBchaDelta, + utxosReceivingSlpa, + utxosReceivingSlpaDelta, + parsedChangedUtxosBoth, + parsedChangedUtxosHydrateOnly, + unchangedUtxosSameAddresses, + templatePreviouslyHydratedUtxos, + templateNewHydratedUtxos, + templateMergedHydratedUtxos, + legacyMergedHydratedUtxoDetails, + organizedMergedHydratedUtxoDetails, + unorganizedHydratedUtxoDetailsWithDuplicateAddresses, + organizedHydratedUtxoDetails, + unorganizedHydratedUtxoDetailsWithTwoDuplicateAddresses, + organizedHydratedUtxoDetailsFromTwoDuplicateAddresses, + organizedHydratedUtxoDetailsHdWalletMock, + templateAddedHydratedUtxos, + templateNewHydratedUtxosWithDuplicates, + utxoSetBeforeSendingTx, + utxoSetAfterSendingTx, + utxosConsumedByTransaction, + confirmedUtxosFromSentTxDelta, + hydratedUtxoDetailsBeforeSendingTx, + hydratedUtxoDetailsAfterConsumedUtxosRemoved, +} from '../__mocks__/mockChangingUtxos'; import { unflattenedHydrateUtxosResponse, @@ -85,4 +122,136 @@ it(`Recognizes a stored wallet as invalid if it is missing required fields`, () => { expect(isValidStoredWallet(invalidStoredWallet)).toBe(false); }); + + it(`whichUtxosChanged() returns an empty array if compared utxo sets are identical`, () => { + expect( + whichUtxosChanged(utxosReceivingBcha, utxosReceivingBcha), + ).toStrictEqual(unchangedUtxosSameAddresses); + }); + it(`whichUtxosChanged() returns an empty array if compared utxo sets are identical`, () => { + expect( + whichUtxosChanged(utxosReceivingBchaDelta, utxosReceivingBchaDelta), + ).toStrictEqual(unchangedUtxosSameAddresses); + }); + + it(`whichUtxosChanged identifies new utxo from received ${currency.ticker} transaction`, () => { + expect( + whichUtxosChanged(utxosReceivingBcha, previousUtxos), + ).toStrictEqual(utxosReceivingBchaDelta); + }); + + it(`whichUtxosChanged identifies new utxo from received ${currency.tokenTicker} transaction`, () => { + expect( + whichUtxosChanged(utxosReceivingSlpa, utxosReceivingBcha), + ).toStrictEqual(utxosReceivingSlpaDelta); + }); + + it(`parseChangedUtxos correctly flags a new utxo as hydrationRequired `, () => { + expect( + parseChangedUtxos(previousUtxos, utxosReceivingBchaDelta), + ).toStrictEqual(parsedChangedUtxosHydrateOnly); + }); + + it(`parseChangedUtxos correctly flags a new utxo as hydrationRequired and an existing utxo with new blockheight as txConfirmed`, () => { + expect( + parseChangedUtxos(utxosReceivingBcha, utxosReceivingSlpaDelta), + ).toStrictEqual(parsedChangedUtxosBoth); + }); + it(`Correctly identifies a utxosToBeHydrated array with 1 utxo at 1 address as not empty`, () => { + expect( + isUtxoArrayEmpty(parsedChangedUtxosBoth.utxosToHydrate), + ).toStrictEqual(false); + }); + it(`Correctly identifies a utxosToBeHydrated array with no utxos at any address as empty`, () => { + expect( + isUtxoArrayEmpty(parsedChangedUtxosHydrateOnly.utxosConfirmed), + ).toStrictEqual(true); + }); + it(`Correctly organizes existing hydratedUtxoDetails object with duplicate address entries; template data`, () => { + expect( + organizeHydratedUtxoDetailsByAddress( + unorganizedHydratedUtxoDetailsWithDuplicateAddresses, + ), + ).toStrictEqual(organizedHydratedUtxoDetails); + }); + it(`Correctly organizes existing hydratedUtxoDetails object with duplicate address entries; utxo data`, () => { + expect( + organizeHydratedUtxoDetailsByAddress( + legacyMergedHydratedUtxoDetails, + ), + ).toStrictEqual(organizedMergedHydratedUtxoDetails); + }); + it(`Correctly organizes existing hydratedUtxoDetails object with two duplicate address entries`, () => { + expect( + organizeHydratedUtxoDetailsByAddress( + unorganizedHydratedUtxoDetailsWithTwoDuplicateAddresses, + ), + ).toStrictEqual(organizedHydratedUtxoDetailsFromTwoDuplicateAddresses); + }); + it(`Does nothing with existing hydratedUtxoDetails object with multiple duplicate address entries if none are duplicated`, () => { + expect( + organizeHydratedUtxoDetailsByAddress( + organizedHydratedUtxoDetailsHdWalletMock, + ), + ).toStrictEqual(organizedHydratedUtxoDetailsHdWalletMock); + }); + it(`Correctly combines existing hydratedUtxoDetails object with one of only the changed utxos`, () => { + expect( + mergeHydratedUtxoDetails( + templatePreviouslyHydratedUtxos, + templateNewHydratedUtxos, + ), + ).toStrictEqual(templateMergedHydratedUtxos); + }); + it(`Correctly adds hydratedUtxoDetails of new utxos to existing previousHydratedUtxos object`, () => { + expect( + addHydratedUtxoDetailsToWalletStateIfNew( + templatePreviouslyHydratedUtxos, + templateNewHydratedUtxos, + ), + ).toStrictEqual(templateAddedHydratedUtxos); + }); + it(`Correctly adds hydratedUtxoDetails of new utxos to existing previousHydratedUtxos object without adding duplicates`, () => { + expect( + addHydratedUtxoDetailsToWalletStateIfNew( + templatePreviouslyHydratedUtxos, + templateNewHydratedUtxosWithDuplicates, + ), + ).toStrictEqual(templateAddedHydratedUtxos); + }); + it(`Determines which utxos have been consumed`, () => { + expect( + whichUtxosWereConsumed( + utxoSetAfterSendingTx, + utxoSetBeforeSendingTx, + + confirmedUtxosFromSentTxDelta, + ), + ).toStrictEqual(utxosConsumedByTransaction); + }); + it(`Removes consumed utxos from hydratedUtxoDetails`, () => { + expect( + removeConsumedUtxosFromHydratedUtxoDetails( + hydratedUtxoDetailsBeforeSendingTx, + utxosConsumedByTransaction, + ), + ).toStrictEqual(hydratedUtxoDetailsAfterConsumedUtxosRemoved); + }); + it(`Determines which utxos have been consumed and which utxos are new`, () => { + const changedUtxos = whichUtxosChanged( + utxoSetAfterSendingTx, + utxoSetBeforeSendingTx, + ); + const parsedChangedUtxosResult = parseChangedUtxos( + utxoSetAfterSendingTx, + changedUtxos, + ); + const consumedUtxos = whichUtxosWereConsumed( + utxoSetAfterSendingTx, + utxoSetBeforeSendingTx, + + parsedChangedUtxosResult.utxosConfirmed, + ); + expect(consumedUtxos).toStrictEqual(utxosConsumedByTransaction); + }); }); diff --git a/web/cashtab/src/utils/cashMethods.js b/web/cashtab/src/utils/cashMethods.js --- a/web/cashtab/src/utils/cashMethods.js +++ b/web/cashtab/src/utils/cashMethods.js @@ -1,5 +1,9 @@ import { currency } from '@components/Common/Ticker'; import BigNumber from 'bignumber.js'; +import isEqual from 'lodash.isequal'; +import differenceWith from 'lodash.differencewith'; +import { isEmpty } from 'lodash'; +import { previousUtxos } from './__mocks__/mockChangingUtxos'; export const fromSmallestDenomination = ( amount, @@ -57,6 +61,331 @@ } return batchedArray; }; +export const organizeHydratedUtxoDetailsByAddress = hydratedUtxoDetails => { + /* + Given + { + slpUtxos: [ + { + utxos: [n existing hydrated utxos at address1], + address: 'address1', + } + { + utxos: [k existing hydrated utxos also at address1], + address: 'address1', + } + ], + } + + Return + Given + { + slpUtxos: [ + { + utxos: [n+k existing hydrated utxos at address1], + address: 'address1', + } + ], + } + */ + // First, get all the addresses + const addressesInHydratedUtxoDetails = []; + for (let i = 0; i < hydratedUtxoDetails.slpUtxos.length; i += 1) { + const thisAddress = hydratedUtxoDetails.slpUtxos[i].address; + if (addressesInHydratedUtxoDetails.includes(thisAddress)) { + continue; + } else { + addressesInHydratedUtxoDetails.push(thisAddress); + } + } + // If addressesInHydratedUtxoDetails.length === hydratedUtxoDetails.slpUtxos.length, then you have no duplicate addresses, just return the input + if ( + addressesInHydratedUtxoDetails.length === + hydratedUtxoDetails.slpUtxos.length + ) { + return hydratedUtxoDetails; + } else { + const organizedHydratedUtxoDetails = { slpUtxos: [] }; + // Iterate over all addresses in hydratedUtxoDetails.slpUtxos + for (let j = 0; j < addressesInHydratedUtxoDetails.length; j += 1) { + const thisAddress = addressesInHydratedUtxoDetails[j]; + let utxosAtThisAddress = []; + + // Iterate over hydratedUtxoDetails.slpUtxos and build up a utxos array for this address + for (let k = 0; k < hydratedUtxoDetails.slpUtxos.length; k += 1) { + const thisAddressInHydratedUtxoDetails = + hydratedUtxoDetails.slpUtxos[k].address; + + if (thisAddress === thisAddressInHydratedUtxoDetails) { + const hydratedUtxosAtThisAddress = + hydratedUtxoDetails.slpUtxos[k].utxos; + utxosAtThisAddress = utxosAtThisAddress.concat( + hydratedUtxosAtThisAddress, + ); + } + } + organizedHydratedUtxoDetails.slpUtxos.push({ + address: thisAddress, + utxos: utxosAtThisAddress, + }); + } + return organizedHydratedUtxoDetails; + } +}; + +// TODO unit test the fuck out of this, see if replaces mergeHydratedUtxoDetails +export const addHydratedUtxoDetailsToWalletStateIfNew = ( + previousHydratedUtxoDetails, + newHydratedUtxoDetails, +) => { + let mergedHydratedUtxoDetails = previousHydratedUtxoDetails; + // Accepts the output of organizeHydratedUtxoDetailsByAddress(previousHydratedUtxoDetails) + // For each new utxo in newHydratedUtxoDetails, adds it to previousHydratedUtxoDetails at the correct address (if the utxo does not already exist in previousHydratedUtxoDetails) + // Iterate over your new utxos + // First, iterate over the {address: '', utxos: []} object + for (let i = 0; i < newHydratedUtxoDetails.slpUtxos.length; i += 1) { + const addressOfTheseNewHydratedUtxos = + newHydratedUtxoDetails.slpUtxos[i].address; + const newUtxosAtThisAddress = newHydratedUtxoDetails.slpUtxos[i].utxos; + // For these utxos, see if you can find a matching address in previousHydratedUtxoDetails + let addressExistsInPreviouslyHydratedUtxoDetails = false; + for ( + let j = 0; + j < previousHydratedUtxoDetails.slpUtxos.length; + j += 1 + ) { + const addressOfThesePreviousHydratedUtxoDetailsUtxos = + previousHydratedUtxoDetails.slpUtxos[j].address; + if ( + addressOfTheseNewHydratedUtxos === + addressOfThesePreviousHydratedUtxoDetailsUtxos + ) { + addressExistsInPreviouslyHydratedUtxoDetails = true; + mergedHydratedUtxoDetails.slpUtxos[ + j + ].utxos = mergedHydratedUtxoDetails.slpUtxos[j].utxos.concat( + newUtxosAtThisAddress, + ); + // Only add it if not a duplicate + //array3 = [...new Set([...array1,...array2])] + mergedHydratedUtxoDetails.slpUtxos[j].utxos = [ + ...new Set([ + ...mergedHydratedUtxoDetails.slpUtxos[j].utxos, + ...newUtxosAtThisAddress, + ]), + ]; + } + } + if (!addressExistsInPreviouslyHydratedUtxoDetails) { + // If these utxos exist at a new address, add a new {utxos: [], address: ''} object to mergedHydratedUtxoDetails.slpUtxos + mergedHydratedUtxoDetails.slpUtxos.push({ + address: addressOfTheseNewHydratedUtxos, + utxos: newUtxosAtThisAddress, + }); + } + } + return mergedHydratedUtxoDetails; +}; + +export const mergeHydratedUtxoDetails = ( + previousHydratedUtxoDetails, + newHydratedUtxoDetails, +) => { + // Rev 3 + /* + For each utxo in newHydratedUtxoDetails + - if it exists anywhere in previousHydratedUtxoDetails, do not add it + - if it doesn't exist in previousHydratedUtxoDetails + - if its address exists in previousHydratedUtxoDetails, add it at correct address + - if not, add it as a new {address: '', utxos: [newUtxo]} entry + */ + + // TODO + // if previousHydratedUtxoDetails has duplicate address objs, flatten it + + // NOTE THIS APPROACH ASSUMES previousHydratedUtxoDetails does not have duplicate address objs...which is not true right now + // Iterate over the {address: '', utxos: []} objects in newHydratedUtxoDetails.slpUtxos + for (let i = 0; i < newHydratedUtxoDetails.slpUtxos.length; i += 1) { + // iterate over the utxos in the address group + const addressOfThisNewHydratedUtxo = + newHydratedUtxoDetails.slpUtxos[i].address; + + const newHydratedUtxosAtThisAddress = + newHydratedUtxoDetails.slpUtxos[i].utxos; + // Iterate over the new hydrated utxos at this address + for (let j = 0; j < newHydratedUtxosAtThisAddress.length; j += 1) { + const thisNewHydratedUtxo = newHydratedUtxosAtThisAddress[j]; + // Flag variable to check if this address does not exist in previousHydratedUtxoDetails + let existingWalletAddress = false; + // Iterate over the {address: '', utxos: []} objects in previousHydratedUtxoDetails.slpUtxos to see if utxos already exist at addressOfThisNewHydratedUtxo + for ( + let k = 0; + k < previousHydratedUtxoDetails.slpUtxos.length; + k += 1 + ) { + const addressOfThisPreviousHydratedUtxo = + previousHydratedUtxoDetails.slpUtxos[k].address; + // If the thisNewHydratedUtxo is at the same address, determine if it should be added there + if ( + addressOfThisNewHydratedUtxo === + addressOfThisPreviousHydratedUtxo + ) { + // This is not a new address + existingWalletAddress = true; + // If this utxo does not already exist at this address, then add it + let utxoAlreadyExists = false; + const previousHydratedUtxosAtThisAddress = + previousHydratedUtxoDetails.slpUtxos[k].utxos; + // Iterate over previousHydratedUtxosAtThisAddress to see if there is a utxo with the same tx_hash + for ( + let m = 0; + m < previousHydratedUtxosAtThisAddress.length; + m += 1 + ) { + if ( + previousHydratedUtxosAtThisAddress[m].tx_hash === + thisNewHydratedUtxo.tx_hash + ) { + utxoAlreadyExists = true; + // Do not add it to merged array + } + } + // add thisNewHydratedUtxo if it's not there + if (!utxoAlreadyExists) { + previousHydratedUtxosAtThisAddress.push( + thisNewHydratedUtxo, + ); + } + } + } + // If this address did not exist, add a new address obj for this utxo + if (!existingWalletAddress) { + const newHydratedUtxoObj = { + address: addressOfThisNewHydratedUtxo, + utxos: [thisNewHydratedUtxo], + }; + previousHydratedUtxoDetails.slpUtxos.push(newHydratedUtxoObj); + } + } + } + // TODO : only combine if utxos are not existing + /* + Given + + NB a 'hydrated' utxo is a utxo where token information has been added + + previousHydratedUtxoDetails in format: + { + slpUtxos: [ + { + utxos: [n existing hydrated utxos at address1], + address: 'address1', + } + { + utxos: [k existing hydrated utxos at address2], + address: 'address2', + } + ], + }, + newHydratedUtxoDetails in format: + { + slpUtxos: [ + { + utxos: [x new hydrated utxos at address1], + address: 'address1', + } + { + utxos: [y new hydrated utxos at address2], + address: 'address2', + } + ], + } + Return + mergedHydratedUtxoDetails in format: + { + slpUtxos: [ + { + utxos: [n existing hydrated utxos at address1], + address: 'address1', + } + { + utxos: [k existing hydrated utxos at address2], + address: 'address2', + } + { + utxos: [x new hydrated utxos at address1], + address: 'address1', + } + { + utxos: [y new hydrated utxos at address2], + address: 'address2', + } + ], + } + + */ + let mergedHydratedUtxoDetails = {}; + let mergedSlpUtxos = []; + mergedSlpUtxos = previousHydratedUtxoDetails.slpUtxos.concat( + newHydratedUtxoDetails.slpUtxos, + ); + mergedHydratedUtxoDetails.slpUtxos = mergedSlpUtxos; + return mergedHydratedUtxoDetails; + /* Initial attempt + Return + mergedHydratedUtxoDetails + newHydratedUtxoDetails in format: + { + slpUtxos: [ + { + utxos: [n+x total hydrated utxos at address1], + address: 'address1', + }, + { + utxos: [k+y total hydrated utxos at address2], + address: 'address2', + }, + { + utxos: [any new utxos at a new address (for HD wallet support)], + address: 'address3', + } + + ], + } + // Initialize the merged utxo set with the previous set + const mergedHydratedUtxoDetails = previousHydratedUtxoDetails; + // Iterate over newHydratedUtxoDetails + // It's each one of these utxos that requires action + for (let i = 0; i < newHydratedUtxoDetails.slpUtxos.length; i += 1) { + const thisNewHydratedUtxoDetailsAddress = + newHydratedUtxoDetails.slpUtxos[i].address; + const thisNewHydratedUtxoDetailsUtxos = + newHydratedUtxoDetails.slpUtxos[i].utxos; + + for ( + let j = 0; + j < previousHydratedUtxoDetails.slpUtxos.length; + j += 1 + ) { + const thisPreviouslyHydratedUtxoDetailsAddress = + previousHydratedUtxoDetails.slpUtxos[j].address; + let addressExistsInPreviouslyHydratedUtxoDetails = false; + // look for the matching address + if ( + thisNewHydratedUtxoDetailsAddress === + thisPreviouslyHydratedUtxoDetailsAddress + ) { + // If find matching address, add all utxos from newHydratedUtxoDetail to previous + mergedHydratedUtxoDetails.slpUtxos[j].utxos.concat( + thisNewHydratedUtxoDetailsUtxos, + ); + addressExistsInPreviouslyHydratedUtxoDetails = true; + } + } + // if this is a new address, add them as their own object + } + */ +}; export const flattenBatchedHydratedUtxos = batchedHydratedUtxoDetails => { // Return same result as if only the bulk API call were made @@ -130,3 +459,268 @@ 'tokens' in walletStateFromStorage.state ); }; + +export const whichUtxosWereConsumed = ( + currentUtxos, + previousUtxos, + utxosConfirmed, +) => { + /* + Determine if the utxo set received from the API is missing utxos contained in wallet.state + If so, these utxos have been spent and should be removed from wallet.state + + If currentUtxos.length < previousUtxos.length...then utxos have certainly been spent + But you want a generalized way of doing this. Most of the time, making a transaction involves + sending a utxo and getting one as change; so you cannot rely on length change to solve this problem + + Function is called if haveUtxosChanged is true + */ + // Iterate over previousUtxos + // For each {address: '', utxos: []} object, i.e. the utxo set at each address in the wallet + // Determine if you have previousUtxos that do not exist in currentUtxos + let consumedUtxos = []; + for (let i = 0; i < previousUtxos.length; i += 1) { + const thisAddress = previousUtxos[i].address; + + const consumedUtxosAtThisAddress = {}; + consumedUtxosAtThisAddress.address = thisAddress; + consumedUtxosAtThisAddress.utxos = differenceWith( + previousUtxos[i].utxos, + currentUtxos[i].utxos, + isEqual, + ); + // TODO + // if only the height changed, don't include it here + // we don't want to throw out a utxo because it confirmed + consumedUtxos.push(consumedUtxosAtThisAddress); + } + // Remove any consumedUtxos that are only tx confirmations + for (let i = 0; i < utxosConfirmed.length; i += 1) { + const addressOfTheseConfirmedUtxos = utxosConfirmed[i].address; + for (let j = 0; j < consumedUtxos.length; j += 1) { + const addressOfTheseConsumedUtxos = consumedUtxos[j].address; + if (addressOfTheseConfirmedUtxos === addressOfTheseConsumedUtxos) { + const theseConfirmedUtxos = utxosConfirmed[i].utxos; + const theseConsumedUtxos = consumedUtxos[j].utxos; + for (let k = 0; k < theseConfirmedUtxos.length; k += 1) { + const thisConfirmedUtxo = theseConfirmedUtxos[k]; + for (let z = 0; z < theseConsumedUtxos.length; z += 1) { + const thisConsumedUtxo = theseConsumedUtxos[z]; + // If a consumed utxo has the same txid as a confirmed utxo + if ( + thisConsumedUtxo.tx_hash === + thisConfirmedUtxo.tx_hash + ) { + // Remove it from the set, it was already picked up by parsedChangedUtxos() + consumedUtxos[j].utxos.splice(z, 1); + } + } + } + } + } + } + return consumedUtxos; + // Note that whichUtxosChanged will catch utxos with only a changed height + // So, you should run that first...then run this to see what's duplicated...then filter them out +}; + +export const whichUtxosChanged = (currentUtxos, previousUtxos) => { + /* + Function only compares valid utxos arrays of type expected from + getUtxos function from useBCH.js + + Note, this function is only called if haveUtxosChanged() from useBCH.js returns true + This can happen in two ways: + 1) An existing utxo is confirmed in a block + 2) The user has sent or received utxos + + If we have case (1), then we should update the transaction history to show confirmed + If we have case (2) then we need to return that utxo for additional parsing + + So, this function should return both the changed utxos and whether or not + */ + + // Function to only hydrate changed utxos, instead of entire set + // Helper function to identify which utxos have changed + // This allows faster updates of utxo set + + /* DEV NOTE + + currentUtxos and previousUtxos are arrays of objects (see below) + Hence, to find individual utxos, you need to examine the currentUtxos[i].utxos array + + currentUtxos and previousUtxos will always be the same size, as they are derived from the + same wallet object + + utxos = + [ + { + utxos: [], + address: 'bitcoincash:cashAddress1', + }, + { + utxos: [], + address: 'bitcoincash:cashAddress2', + }, + { + utxos: + [ + { + height: 681188, + tx_hash: + '5b74e05ced6b7d862fe9cab94071b2ccfa475c0cef94b90c7edb8a06f90e5ad6', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + '0aacdb7d85c466a7d6d4edf127883da40b05617d9c4ff7493bde3c973f22231d', + tx_pos: 1, + value: 546, + }, + { + height: 681189, + tx_hash: + '2cc8f480e9adfb74aff7351bdbbf12ed8972e35fb8bd0f43b9ea5e4aeaec5693', + tx_pos: 1, + value: 546, + } + ], + address: 'bitcoincash:cashAddress3', + } + ] + */ + let changedUtxos = []; + for (let i = 0; i < currentUtxos.length; i += 1) { + // Push the it to your changedUtxos array + // You may have more than 1 utxo, so you need to track it this way + // TODO add array to array + const changedUtxosAtThisAddress = {}; + + changedUtxosAtThisAddress.utxos = differenceWith( + currentUtxos[i].utxos, + previousUtxos[i].utxos, + isEqual, + ); + changedUtxosAtThisAddress.address = currentUtxos[i].address; + changedUtxos.push(changedUtxosAtThisAddress); + + // TODO -- you need to know the address param of each changed utxo + } + // Expected behavior: if currentUtxos === previousUtxos, then changedUtxos = [] + // UPDATE not anymore, changedUtxos would be an empty template with all addresses of currentUtxos + return changedUtxos; +}; + +export const parseConsumedUtxos = (currentUtxos, consumedUtxos) => { + // only include utxos where tx_hash is no longer present + // throw out utxos where heigh changed +}; + +export const parseChangedUtxos = (previousUtxos, changedUtxos) => { + // do all of your iteration based on individual changedUtxos + // Start with blank template that includes the addresses of this utxo set + + // Create two distinct arrays on the same template (list of addresses and utxos in wallet based on most recent utxo set) + const utxosConfirmed = whichUtxosChanged(changedUtxos, changedUtxos); + const utxosToHydrate = whichUtxosChanged(changedUtxos, changedUtxos); + + // Iterate over changedUtxo array of objects to find your first changedUtxo + // First, iterate over the {address: 'str', utxos: []} objects + for (let i = 0; i < changedUtxos.length; i += 1) { + // Next, see if there are any changedUtxos at this address + const thisChangedUtxosAddress = changedUtxos[i].address; + const changedUtxosAtThisAddress = changedUtxos[i].utxos; + for (let j = 0; j < changedUtxosAtThisAddress.length; j += 1) { + // If changedUtxosAtThisAddress has any length, there are + const thisChangedUtxo = changedUtxosAtThisAddress[j]; + // Assume it must be hydrated + let utxoToBeHydrated = true; + // Now, start iterating over previousUtxos array to see if there is any utxo at the same address with the same tx_hash + for (let k = 0; k < previousUtxos.length; k += 1) { + const thisPreviousUtxosAddress = previousUtxos[k].address; + const previousUtxosAtThisAddress = previousUtxos[k].utxos; + // If addresses match, iterate over the previousUtxos at this address to find a match + if (thisChangedUtxosAddress === thisPreviousUtxosAddress) { + for ( + let z = 0; + z < previousUtxosAtThisAddress.length; + z += 1 + ) { + const thisPreviousUtxo = previousUtxosAtThisAddress[z]; + // If tx_hash matches thisChangedUtxo tx_hash, then this is a confirmed tx + if ( + thisChangedUtxo.tx_hash === thisPreviousUtxo.tx_hash + ) { + // Add it to the array of confirmed tx utxos at the appropriate address + utxosConfirmed[i].utxos.push(thisChangedUtxo); + // set utxoToBeHydrated to false + utxoToBeHydrated = false; + } + } + } + } + // hydrate it if you couldn't find a utxo with matching tx_hash + if (utxoToBeHydrated) { + utxosToHydrate[i].utxos.push(thisChangedUtxo); + } + } + } + // Return your arrays + return { utxosConfirmed, utxosToHydrate }; +}; + +export const isUtxoArrayEmpty = utxoDeltaArray => { + // Determine if a utxosConfirmed or utxosToHydrate array is empty + // A utxosConfirmed or utxosToHydrate array is empty if every utxos array in its n {address: '', utxos: []} objects is empty + for (let i = 0; i < utxoDeltaArray.length; i += 1) { + const utxosAtThisAddress = utxoDeltaArray[i].utxos; + if (utxosAtThisAddress.length > 0) { + return false; + } + } + return true; +}; + +export const removeConsumedUtxosFromHydratedUtxoDetails = ( + organizedHydratedUtxoDetails, + consumedUtxos, +) => { + // Iterate over organizedHydratedUtxoDetails + // If you find matching utxos, remove them + let organizedHydratedUtxoDetailsWithoutConsumedUtxos = organizedHydratedUtxoDetails; + for (let i = 0; i < consumedUtxos.length; i += 1) { + const addressOfTheseConsumedUtxos = consumedUtxos[i].address; + const theseConsumedUtxos = consumedUtxos[i].utxos; + for ( + let j = 0; + j < organizedHydratedUtxoDetails.slpUtxos.length; + j += 1 + ) { + const addressOfTheseHydratedUtxos = + organizedHydratedUtxoDetails.slpUtxos[j].address; + if (addressOfTheseConsumedUtxos === addressOfTheseHydratedUtxos) { + const theseHydratedUtxos = + organizedHydratedUtxoDetails.slpUtxos[j].utxos; + for (let k = 0; k < theseConsumedUtxos.length; k += 1) { + const thisConsumedUtxo = theseConsumedUtxos[k]; + for (let z = 0; z < theseHydratedUtxos.length; z += 1) { + const thisHydratedUtxo = theseHydratedUtxos[z]; + // If this hydrated utxo exists in consumedUtxos + if ( + thisConsumedUtxo.tx_hash === + thisHydratedUtxo.tx_hash + ) { + // remove it + organizedHydratedUtxoDetailsWithoutConsumedUtxos.slpUtxos[ + j + ].utxos.splice(z, 1); + } + } + } + } + } + } + return organizedHydratedUtxoDetailsWithoutConsumedUtxos; +};