Skip to content

Commit

Permalink
Ref: Sardine local data management
Browse files Browse the repository at this point in the history
  • Loading branch information
Gamboster committed Nov 8, 2023
1 parent fc3401d commit 42dbc3d
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 55 deletions.
41 changes: 19 additions & 22 deletions src/navigation/services/buy-crypto/screens/BuyCryptoOffers.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ import {
RampQuoteResultForPaymentMethod,
SardineGetAuthTokenRequestData,
SardineGetQuoteRequestData,
SardinePaymentData,
SardinePaymentUrlConfigParams,
SimplexGetQuoteRequestData,
SimplexPaymentData,
Expand Down Expand Up @@ -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', {
Expand All @@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
90 changes: 58 additions & 32 deletions src/store/scan/scan.effects.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ import {
MoonpayIncomingData,
RampIncomingData,
SardineIncomingData,
SardinePaymentData,
SimplexIncomingData,
} from '../buy-crypto/buy-crypto.models';
import {LogActions} from '../log';
Expand Down Expand Up @@ -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 =
Expand Down

0 comments on commit 42dbc3d

Please sign in to comment.