diff --git a/web/cashtab/src/components/Home/Tx.js b/web/cashtab/src/components/Home/Tx.js --- a/web/cashtab/src/components/Home/Tx.js +++ b/web/cashtab/src/components/Home/Tx.js @@ -10,7 +10,6 @@ ThemedContactsOutlined, } from 'components/Common/CustomIcons'; import { currency } from 'components/Common/Ticker'; -import { fromLegacyDecimals } from 'utils/cashMethods'; import { formatBalance, formatDate } from 'utils/formatting'; import TokenIcon from 'components/Tokens/TokenIcon'; import { Collapse } from 'antd'; @@ -404,14 +403,11 @@ const handleShowMessage = () => { setDisplayedMessage(!displayedMessage); }; - const txDate = - typeof data.blocktime === 'undefined' - ? formatDate() - : formatDate(data.blocktime, navigator.language); - // if data only includes height and txid, then the tx could not be parsed by cashtab - // render as such but keep link to block explorer + const txDate = formatDate(data.timeFirstSeen, navigator.language); + + // A wallet migrating from bch-api tx history to chronik will get caught here for one update cycle let unparsedTx = false; - if (!Object.keys(data).includes('outgoingTx')) { + if (!Object.keys(data).includes('parsed')) { unparsedTx = true; } return ( @@ -437,12 +433,11 @@ header={ <> - {data.outgoingTx ? ( + {data.parsed.legacy.outgoingTx ? ( <> - {data.tokenTx && - data.tokenInfo - .transactionType === - 'GENESIS' ? ( + {data.parsed.legacy.tokenTx && + data.slpTxData.slpMeta + .txType === 'GENESIS' ? ( @@ -459,11 +454,12 @@ )} - {data.outgoingTx ? ( + {data.parsed.legacy.outgoingTx ? ( <> - {data.tokenTx && - data.tokenInfo - .transactionType === + {data.parsed.legacy + .tokenTx && + data.slpTxData.slpMeta + .txType === 'GENESIS' ? ( Genesis @@ -479,7 +475,8 @@ {addressesInContactList.includes( - data.replyAddress, + data.parsed.legacy + .replyAddress, ) && ( <>

from

@@ -492,7 +489,10 @@ const contactAddress = contact.address; const dataAddress = - data.replyAddress; + data + .parsed + .legacy + .replyAddress; if ( contactAddress === dataAddress @@ -520,43 +520,50 @@ )}

{txDate}

- {data.tokenTx ? ( + {data.parsed.legacy.tokenTx ? ( - {data.tokenTx && - data.tokenInfo ? ( + {data.parsed.legacy.tokenTx && + data.parsed.genesisInfo ? ( <> - {data.outgoingTx ? ( + {data.parsed.legacy + .outgoingTx ? ( - {data.tokenInfo - .transactionType === + {data.slpTxData + .slpMeta + .txType === 'GENESIS' ? ( <> +{' '} - {data.tokenInfo.qtyReceived.toString()} + {data.parsed.etokenAmount.toString()}   { data - .tokenInfo + .parsed + .genesisInfo .tokenTicker } { data - .tokenInfo + .parsed + .genesisInfo .tokenName } @@ -565,18 +572,20 @@ <> -{' '} - {data.tokenInfo.qtySent.toString()} + {data.parsed.etokenAmount.toString()}   { data - .tokenInfo + .parsed + .genesisInfo .tokenTicker } { data - .tokenInfo + .parsed + .genesisInfo .tokenName } @@ -587,18 +596,20 @@ +{' '} - {data.tokenInfo.qtyReceived.toString()} + {data.parsed.etokenAmount.toString()}   { data - .tokenInfo + .parsed + .genesisInfo .tokenTicker } { data - .tokenInfo + .parsed + .genesisInfo .tokenName } @@ -612,16 +623,20 @@ ) : ( <> - {data.outgoingTx ? ( + {data.parsed.legacy + .outgoingTx ? ( <>

- {formatBalance( - fromLegacyDecimals( - data.amountSent, - ), + data.parsed + .legacy + .amountSent, )}{' '} { currency.ticker @@ -630,7 +645,9 @@ {fiatPrice !== null && !isNaN( - data.amountSent, + data.parsed + .legacy + .amountSent, ) && (

- @@ -642,9 +659,10 @@ .symbol } {( - fromLegacyDecimals( - data.amountSent, - ) * + data + .parsed + .legacy + .amountSent * fiatPrice ).toFixed( 2, @@ -662,9 +680,9 @@ + {formatBalance( - fromLegacyDecimals( - data.amountReceived, - ), + data.parsed + .legacy + .amountReceived, )}{' '} { currency.ticker @@ -673,7 +691,9 @@ {fiatPrice !== null && !isNaN( - data.amountReceived, + data.parsed + .legacy + .amountReceived, ) && (

+ @@ -685,9 +705,10 @@ .symbol } {( - fromLegacyDecimals( - data.amountReceived, - ) * + data + .parsed + .legacy + .amountReceived * fiatPrice ).toFixed( 2, @@ -704,19 +725,24 @@ )} - {data.opReturnMessage && ( + {data.parsed.legacy.opReturnMessage && ( <> - {!data.outgoingTx && + {!data.parsed.legacy + .outgoingTx && !addressesInContactList.includes( - data.replyAddress, + data.parsed.legacy + .replyAddress, ) && ( Warning: This @@ -726,7 +752,8 @@ scams. )} - {data.isCashtabMessage ? ( + {data.parsed.legacy + .isCashtabMessage ? (

Cashtab Message{' '}

@@ -735,7 +762,8 @@ External Message

)} - {data.isEncryptedMessage ? ( + {data.parsed.legacy + .isEncryptedMessage ? (  - Encrypted @@ -746,13 +774,22 @@ {cashtabSettings.hideMessagesFromUnknownSenders ? ( <> {/*unencrypted OP_RETURN Message*/} - {data.opReturnMessage && - !data.isEncryptedMessage && ( + {data.parsed.legacy + .opReturnMessage && + !data.parsed + .legacy + .isEncryptedMessage && ( <> {!displayedMessage && - !data.outgoingTx && + !data + .parsed + .legacy + .outgoingTx && !addressesInContactList.includes( - data.replyAddress, + data + .parsed + .legacy + .replyAddress, ) ? ( { @@ -767,13 +804,22 @@

{' '} { - data.opReturnMessage + data + .parsed + .legacy + .opReturnMessage }

{!addressesInContactList.includes( - data.replyAddress, + data + .parsed + .legacy + .replyAddress, ) && - !data.outgoingTx && ( + !data + .parsed + .legacy + .outgoingTx && ( { e.stopPropagation(); @@ -787,13 +833,22 @@ )} )} - {data.opReturnMessage && - data.isEncryptedMessage && ( + {data.parsed.legacy + .opReturnMessage && + data.parsed + .legacy + .isEncryptedMessage && ( <> {!displayedMessage && - !data.outgoingTx && + !data + .parsed + .legacy + .outgoingTx && !addressesInContactList.includes( - data.replyAddress, + data + .parsed + .legacy + .replyAddress, ) ? ( { @@ -807,18 +862,30 @@ <> { - data.opReturnMessage + data + .parsed + .legacy + .opReturnMessage } {!addressesInContactList.includes( - data.replyAddress, + data + .parsed + .legacy + .replyAddress, ) && // do not render 'Hide' button if msg cannot be decrypted - data.decryptionSuccess && ( + data + .parsed + .legacy + .decryptionSuccess && ( { e.stopPropagation(); @@ -836,35 +903,52 @@ ) : ( <> {/*unencrypted OP_RETURN Message*/} - {data.opReturnMessage && - !data.isEncryptedMessage ? ( + {data.parsed.legacy + .opReturnMessage && + !data.parsed.legacy + .isEncryptedMessage ? (

{ - data.opReturnMessage + data + .parsed + .legacy + .opReturnMessage }

) : ( '' )} {/*encrypted and wallet is authorized to view OP_RETURN Message*/} - {data.opReturnMessage && - data.isEncryptedMessage && - data.decryptionSuccess ? ( + {data.parsed.legacy + .opReturnMessage && + data.parsed.legacy + .isEncryptedMessage && + data.parsed.legacy + .decryptionSuccess ? (

{ - data.opReturnMessage + data + .parsed + .legacy + .opReturnMessage }

) : ( '' )} {/*encrypted but wallet is not authorized to view OP_RETURN Message*/} - {data.opReturnMessage && - data.isEncryptedMessage && - !data.decryptionSuccess ? ( + {data.parsed.legacy + .opReturnMessage && + data.parsed.legacy + .isEncryptedMessage && + !data.parsed.legacy + .decryptionSuccess ? ( { - data.opReturnMessage + data + .parsed + .legacy + .opReturnMessage } ) : ( @@ -872,21 +956,29 @@ )} )} - {(!data.outgoingTx && - data.replyAddress && + {(!data.parsed.legacy + .outgoingTx && + data.parsed.legacy + .replyAddress && addressesInContactList.includes( - data.replyAddress, + data.parsed.legacy + .replyAddress, )) || (!cashtabSettings.hideMessagesFromUnknownSenders && - !data.outgoingTx && - data.replyAddress && + !data.parsed.legacy + .outgoingTx && + data.parsed.legacy + .replyAddress && displayedMessage) ? ( @@ -918,12 +1010,14 @@ - {data.opReturnMessage && ( + {data.parsed.legacy.opReturnMessage && ( @@ -962,10 +1056,10 @@ - {!data.outgoingTx && - data.replyAddress && + {!data.parsed.legacy.outgoingTx && + data.parsed.legacy.replyAddress && !addressesInContactList.includes( - data.replyAddress, + data.parsed.legacy.replyAddress, ) && ( @@ -974,7 +1068,9 @@ pathname: `/configure`, state: { contactToAdd: - data.replyAddress, + data.parsed + .legacy + .replyAddress, }, }} > 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 @@ -258,7 +258,7 @@ nonSlpUtxos, tokens, }, - parsedTxHistory: parsedWithTokens, + parsedTxHistory: chronikTxHistory, utxos: chronikUtxos, };