Skip to content

Commit 55ad017

Browse files
committed
Use request address for fiat rate
1 parent fb199f3 commit 55ad017

File tree

3 files changed

+52
-41
lines changed

3 files changed

+52
-41
lines changed

packages/transaction-pay-controller/src/strategy/bridge/bridge-quotes.ts

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,17 +59,22 @@ export async function getBridgeQuotes(
5959

6060
const { requests, messenger, transaction } = request;
6161

62-
const finalRequests = getFinalRequests(requests, messenger);
62+
try {
63+
const finalRequests = getFinalRequests(requests, messenger);
6364

64-
const quotes = await Promise.all(
65-
finalRequests.map((r, index) =>
66-
getSufficientSingleBridgeQuote(r, index, request),
67-
),
68-
);
65+
const quotes = await Promise.all(
66+
finalRequests.map((r, index) =>
67+
getSufficientSingleBridgeQuote(r, index, request),
68+
),
69+
);
6970

70-
return quotes.map((quote, index) =>
71-
normalizeQuote(quote, finalRequests[index], messenger, transaction),
72-
);
71+
return quotes.map((quote, index) =>
72+
normalizeQuote(quote, finalRequests[index], messenger, transaction),
73+
);
74+
} catch (error) {
75+
log('Error fetching quotes', { error });
76+
throw new Error(`Failed to fetch bridge quotes: ${String(error)}`);
77+
}
7378
}
7479

7580
/**
@@ -470,7 +475,7 @@ function normalizeQuote(
470475

471476
const sourceFiatRate = getTokenFiatRate(
472477
messenger,
473-
quote.quote.srcAsset.address as Hex,
478+
request.sourceTokenAddress,
474479
toHex(quote.quote.srcChainId),
475480
);
476481

packages/transaction-pay-controller/src/strategy/relay/relay-quotes.ts

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -37,21 +37,26 @@ export async function getRelayQuotes(
3737

3838
log('Fetching quotes', requests);
3939

40-
const result = requests
41-
// Ignore gas fee token requests
42-
.filter((r) => r.targetAmountMinimum !== '0')
43-
.map((r) => normalizeRequest(r));
44-
45-
const normalizedRequests = result.map((r) => r.request);
46-
const isSkipTransaction = result.some((r) => r.isSkipTransaction);
47-
48-
log('Normalized requests', { normalizedRequests, isSkipTransaction });
49-
50-
return await Promise.all(
51-
normalizedRequests.map((r) =>
52-
getSingleQuote(r, isSkipTransaction, request),
53-
),
54-
);
40+
try {
41+
const result = requests
42+
// Ignore gas fee token requests
43+
.filter((r) => r.targetAmountMinimum !== '0')
44+
.map((r) => normalizeRequest(r));
45+
46+
const normalizedRequests = result.map((r) => r.request);
47+
const isSkipTransaction = result.some((r) => r.isSkipTransaction);
48+
49+
log('Normalized requests', { normalizedRequests, isSkipTransaction });
50+
51+
return await Promise.all(
52+
normalizedRequests.map((r) =>
53+
getSingleQuote(r, isSkipTransaction, request),
54+
),
55+
);
56+
} catch (error) {
57+
log('Error fetching quotes', { error });
58+
throw new Error(`Failed to fetch Relay quotes: ${String(error)}`);
59+
}
5560
}
5661

5762
/**

packages/transaction-pay-controller/src/utils/quotes.ts

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import type {
1212
TransactionData,
1313
TransactionPayControllerMessenger,
1414
TransactionPayQuote,
15+
TransactionPayRequiredToken,
1516
TransactionPayTotals,
1617
TransactionPaymentToken,
1718
UpdateTransactionDataCallback,
@@ -52,22 +53,22 @@ export async function updateQuotes(request: UpdateQuotesRequest) {
5253
return;
5354
}
5455

55-
const requests: QuoteRequest[] = (sourceAmounts ?? []).map(
56-
(sourceAmount, i) => {
57-
const token = tokens[i];
58-
59-
return {
60-
from: transaction.txParams.from as Hex,
61-
sourceBalanceRaw: paymentToken.balanceRaw,
62-
sourceTokenAmount: sourceAmount.sourceAmountRaw,
63-
sourceChainId: paymentToken.chainId,
64-
sourceTokenAddress: paymentToken.address,
65-
targetAmountMinimum: token.allowUnderMinimum ? '0' : token.amountRaw,
66-
targetChainId: token.chainId,
67-
targetTokenAddress: token.address,
68-
};
69-
},
70-
);
56+
const requests: QuoteRequest[] = (sourceAmounts ?? []).map((sourceAmount) => {
57+
const token = tokens.find(
58+
(t) => t.address === sourceAmount.targetTokenAddress,
59+
) as TransactionPayRequiredToken;
60+
61+
return {
62+
from: transaction.txParams.from as Hex,
63+
sourceBalanceRaw: paymentToken.balanceRaw,
64+
sourceTokenAmount: sourceAmount.sourceAmountRaw,
65+
sourceChainId: paymentToken.chainId,
66+
sourceTokenAddress: paymentToken.address,
67+
targetAmountMinimum: token.allowUnderMinimum ? '0' : token.amountRaw,
68+
targetChainId: token.chainId,
69+
targetTokenAddress: token.address,
70+
};
71+
});
7172

7273
if (!requests?.length) {
7374
log('No quote requests', { transactionId });

0 commit comments

Comments
 (0)