Skip to content
Merged
12 changes: 10 additions & 2 deletions app/scripts/controllers/app-state-controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,12 @@ export type DappSwapComparisonData = {
latency?: number;
commands?: string;
error?: string;
tokenAddresses?: Hex[];
swapInfo?: {
srcTokenAddress: Hex;
destTokenAddress: Hex;
srcTokenAmount: Hex;
destTokenAmountMin: Hex;
};
};

export type AppStateControllerState = {
Expand Down Expand Up @@ -1668,7 +1673,10 @@ export class AppStateController extends BaseController<
this.update((state) => {
state.dappSwapComparisonData = {
...state.dappSwapComparisonData,
[uniqueId]: info,
[uniqueId]: {
...(state.dappSwapComparisonData?.[uniqueId] ?? {}),
...info,
},
};
});
}
Expand Down
12 changes: 10 additions & 2 deletions app/scripts/lib/dapp-swap/dapp-swap-util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ export function getQuotesForConfirmation({
if (data && securityAlertId && chainId) {
const parsedTransactionData = parseTransactionData(data);
commands = parsedTransactionData.commands;
const { quotesInput, tokenAddresses } = getDataFromSwap(
const { quotesInput, amountMin } = getDataFromSwap(
chainId as Hex,
parsedTransactionData.commandBytes,
parsedTransactionData.inputs,
Expand All @@ -114,6 +114,15 @@ export function getQuotesForConfirmation({
params[0].calls as NestedTransactionMetadata[],
quotesInput?.srcTokenAddress as Hex,
);
setDappSwapComparisonData(securityAlertId, {
commands,
swapInfo: {
srcTokenAddress: quotesInput?.srcTokenAddress as Hex,
destTokenAddress: quotesInput?.destTokenAddress as Hex,
srcTokenAmount: quotesInput?.srcTokenAmount as Hex,
destTokenAmountMin: amountMin as Hex,
},
});
const startTime = new Date().getTime();
fetchQuotes({
...quotesInput,
Expand All @@ -127,7 +136,6 @@ export function getQuotesForConfirmation({
setDappSwapComparisonData(securityAlertId, {
quotes,
latency,
tokenAddresses: tokenAddresses as Hex[],
});
}
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,10 +86,6 @@ describe('dapp-swap utils', () => {
);
expect(result).toStrictEqual({
amountMin: '0x060147',
tokenAddresses: [
'0xaf88d065e77c8cc2239327c5edb3a432268e5831',
'0x0000000000000000000000000000000000000000',
],
quotesInput: {
destChainId: '0xa4b1',
destTokenAddress: '0xaf88d065e77c8cc2239327c5edb3a432268e5831',
Expand All @@ -111,10 +107,6 @@ describe('dapp-swap utils', () => {
);
expect(result).toStrictEqual({
amountMin: '0x5f',
tokenAddresses: [
'0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9',
'0xaf88d065e77c8cc2239327c5edb3a432268e5831',
],
quotesInput: {
destChainId: '0xa4b1',
destTokenAddress: '0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,20 +75,7 @@ export function getDataFromSwap(
commandBytes: string[],
inputs: string[],
) {
const { amountMin, quotesInput } = getCommandValues(
commandBytes,
inputs,
chainId,
);

return {
amountMin,
quotesInput,
tokenAddresses: [
quotesInput?.destTokenAddress,
quotesInput?.srcTokenAddress,
],
};
return getCommandValues(commandBytes, inputs, chainId);
}

export function getBestQuote(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jest.mock('./useDappSwapComparisonLatencyMetrics', () => ({
mockUseDappSwapComparisonLatencyMetricsResponse,
}));

async function runHook() {
async function runHook(args: Record<string, unknown> = {}) {
const response = renderHookWithConfirmContextProvider(
() => useDappSwapComparisonInfo(),
getMockConfirmStateForTransaction(mockSwapConfirmation as Confirmation, {
Expand All @@ -49,6 +49,14 @@ async function runHook() {
'f8172040-b3d0-11f0-a882-3f99aa2e9f0c': {
quotes: mockBridgeQuotes,
latency: 3600,
commands: '0x0a100604',
swapInfo: {
srcTokenAddress: '0xfdcc3dd6671eab0709a4c0f3f53de9a333d80798',
destTokenAddress: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913',
srcTokenAmount: '0x0de0b6b3a7640000',
destTokenAmountMin: '0x0de0b6b3a7640000',
},
...args,
},
},
},
Expand Down Expand Up @@ -102,9 +110,8 @@ describe('useDappSwapComparisonInfo', () => {
swap_dapp_commands: '0x0a100604',
swap_comparison_total_latency_ms: '1500',
swap_dapp_from_token_simulated_value_usd: '1',
swap_dapp_minimum_received_value_usd: '0.000000000000972677317872',
swap_dapp_minimum_received_value_usd: '0.999804',
swap_dapp_network_fee_usd: '0.01119466650091628514',
swap_dapp_request_detection_latency_ms: '1200',
swap_dapp_to_token_simulated_value_usd: '0.000000000000996995550564',
swap_mm_from_token_simulated_value_usd: '1',
swap_mm_minimum_received_value_usd: '0.00000000000097267931748',
Expand Down Expand Up @@ -151,7 +158,14 @@ describe('useDappSwapComparisonInfo', () => {
sourceTokenAmount,
tokenAmountDifference,
tokenDetails,
} = await runHook();
} = await runHook({
swapInfo: {
srcTokenAddress: '0xfdcc3dd6671eab0709a4c0f3f53de9a333d80798',
destTokenAddress: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913',
srcTokenAmount: '0x0de0b6b3a7640000',
destTokenAmountMin: '0x0',
},
});
expect(selectedQuote).toEqual(mockBridgeQuotes[3]);
expect(selectedQuoteValueDifference).toBe(0.012494042894187605);
expect(gasDifference).toBe(0.005686377458187605);
Expand Down
Loading
Loading