diff --git a/src/navigation/services/buy-crypto/screens/BuyCryptoOffers.tsx b/src/navigation/services/buy-crypto/screens/BuyCryptoOffers.tsx index ff04ffa18..bd456152f 100644 --- a/src/navigation/services/buy-crypto/screens/BuyCryptoOffers.tsx +++ b/src/navigation/services/buy-crypto/screens/BuyCryptoOffers.tsx @@ -50,7 +50,6 @@ import { RampQuoteResultForPaymentMethod, SardineGetAuthTokenRequestData, SardineGetQuoteRequestData, - SardinePaymentData, SardinePaymentUrlConfigParams, SimplexGetQuoteRequestData, SimplexPaymentData, @@ -1715,26 +1714,6 @@ const BuyCryptoOffers: React.FC = () => { return; } - const newData: SardinePaymentData = { - address, - chain: destinationChain, - created_on: Date.now(), - crypto_amount: Number(offers.sardine.amountReceiving), - coin: coin.toUpperCase(), - env: __DEV__ ? 'dev' : 'prod', - fiat_base_amount: offers.sardine.buyAmount!, - fiat_total_amount: offers.sardine.amountCost!, - fiat_total_amount_currency: offers.sardine.fiatCurrency, - external_id: sardineExternalId, - status: 'paymentRequestSent', - user_id: selectedWallet.id, - }; - - dispatch( - BuyCryptoActions.successPaymentRequestSardine({ - sardinePaymentData: newData, - }), - ); dispatch( Analytics.track('Requested Crypto Purchase', { @@ -1753,7 +1732,25 @@ const BuyCryptoOffers: React.FC = () => { sardineExternalId + '&walletId=' + selectedWallet.id + - '&status=pending'; + '&status=pending' + + '&address=' + + address + + '&chain=' + + destinationChain + + '&createdOn=' + + Date.now() + + '&cryptoAmount=' + + Number(offers.sardine.amountReceiving) + + '&coin=' + + coin.toUpperCase() + + '&env=' + + (__DEV__ ? 'dev' : 'prod') + + '&fiatBaseAmount=' + + offers.sardine.buyAmount + + '&fiatTotalAmount=' + + offers.sardine.amountCost + + '&fiatTotalAmountCurrency=' + + offers.sardine.fiatCurrency; const quoteData: SardinePaymentUrlConfigParams = { env: sardineEnv, diff --git a/src/navigation/tabs/settings/external-services/screens/SardineSettings.tsx b/src/navigation/tabs/settings/external-services/screens/SardineSettings.tsx index 92f1ddd0f..1c0353adf 100644 --- a/src/navigation/tabs/settings/external-services/screens/SardineSettings.tsx +++ b/src/navigation/tabs/settings/external-services/screens/SardineSettings.tsx @@ -65,7 +65,7 @@ const SardineSettings: React.FC = () => { useEffect(() => { if (isFocused) { const sardinePaymentRequests = Object.values(sardineHistory).filter( - pr => pr.env === (__DEV__ ? 'dev' : 'prod'), + pr => pr.env === (__DEV__ ? 'dev' : 'prod') && !!pr.order_id, ); setTransactions(sardinePaymentRequests); } diff --git a/src/store/scan/scan.effects.ts b/src/store/scan/scan.effects.ts index 5ca8cb050..614b63467 100644 --- a/src/store/scan/scan.effects.ts +++ b/src/store/scan/scan.effects.ts @@ -44,6 +44,7 @@ import { MoonpayIncomingData, RampIncomingData, SardineIncomingData, + SardinePaymentData, SimplexIncomingData, } from '../buy-crypto/buy-crypto.models'; import {LogActions} from '../log'; @@ -1244,53 +1245,78 @@ const handleSardineUri = } const order_id = getParameterByName('order_id', res); - const walletId = getParameterByName('walletId', res); - const status = getParameterByName('status', res); - - const stateParams: SardineIncomingData = { - sardineExternalId, - walletId, - status, + const walletId = getParameterByName('walletId', res)!; + const status = getParameterByName('status', res)!; + const chain = getParameterByName('chain', res)!; + const address = getParameterByName('address', res)!; + const createdOn = getParameterByName('createdOn', res); + const cryptoAmount = getParameterByName('cryptoAmount', res); + const coin = getParameterByName('coin', res)!; + const env = (getParameterByName('env', res) as 'dev' | 'prod')!; + const fiatBaseAmount = getParameterByName('fiatBaseAmount', res)!; + const fiatTotalAmount = getParameterByName('fiatTotalAmount', res)!; + const fiatTotalAmountCurrency = getParameterByName( + 'fiatTotalAmountCurrency', + res, + )!; + + const newData: SardinePaymentData = { + address, + chain, + created_on: Number(createdOn), + crypto_amount: Number(cryptoAmount), + coin, + env, + external_id: sardineExternalId, + fiat_base_amount: Number(fiatBaseAmount), + fiat_total_amount: Number(fiatTotalAmount), + fiat_total_amount_currency: fiatTotalAmountCurrency, order_id, + status, + user_id: walletId, }; dispatch( - BuyCryptoActions.updatePaymentRequestSardine({ - sardineIncomingData: stateParams, + BuyCryptoActions.successPaymentRequestSardine({ + sardinePaymentData: newData, }), ); if (order_id) { - const {BUY_CRYPTO} = getState(); - const order = BUY_CRYPTO.sardine[sardineExternalId]; - dispatch( Analytics.track('Purchased Buy Crypto', { exchange: 'sardine', - fiatAmount: order?.fiat_total_amount || '', - fiatCurrency: order?.fiat_total_amount_currency || '', - coin: order?.coin?.toLowerCase() || '', - chain: order?.chain?.toLowerCase() || '', + fiatAmount: Number(fiatTotalAmount) || '', + fiatCurrency: fiatTotalAmountCurrency || '', + coin: coin?.toLowerCase() || '', + chain: chain?.toLowerCase() || '', }), ); - } - navigationRef.reset({ - index: 2, - routes: [ - { - name: 'Tabs', - params: {screen: 'Home'}, - }, - { - name: 'ExternalServicesSettings', - params: { - screen: 'SardineSettings', - params: {incomingPaymentRequest: stateParams}, + const stateParams: SardineIncomingData = { + sardineExternalId, + walletId, + status, + order_id, + }; + + navigationRef.reset({ + index: 2, + routes: [ + { + name: 'Tabs', + params: {screen: 'Home'}, }, - }, - ], - }); + { + name: 'ExternalServicesSettings', + params: { + screen: 'SardineSettings', + params: {incomingPaymentRequest: stateParams}, + }, + }, + ], + }); + } }; const handleSimplexUri =