mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Pass correct params to fetchEstimatedL1Fee in the swaps controller (#18634)
This commit is contained in:
parent
66767d981c
commit
e6f73f5fe9
@ -304,6 +304,7 @@ export default class SwapsController {
|
|||||||
Object.values(newQuotes).map(async (quote) => {
|
Object.values(newQuotes).map(async (quote) => {
|
||||||
if (quote.trade) {
|
if (quote.trade) {
|
||||||
const multiLayerL1TradeFeeTotal = await fetchEstimatedL1Fee(
|
const multiLayerL1TradeFeeTotal = await fetchEstimatedL1Fee(
|
||||||
|
chainId,
|
||||||
{
|
{
|
||||||
txParams: quote.trade,
|
txParams: quote.trade,
|
||||||
chainId,
|
chainId,
|
||||||
|
@ -156,12 +156,12 @@ const getEIP1559GasFeeEstimatesStub = sandbox.stub(() => {
|
|||||||
describe('SwapsController', function () {
|
describe('SwapsController', function () {
|
||||||
let provider;
|
let provider;
|
||||||
|
|
||||||
const getSwapsController = () => {
|
const getSwapsController = (_provider = provider) => {
|
||||||
return new SwapsController({
|
return new SwapsController({
|
||||||
getBufferedGasLimit: MOCK_GET_BUFFERED_GAS_LIMIT,
|
getBufferedGasLimit: MOCK_GET_BUFFERED_GAS_LIMIT,
|
||||||
networkController: getMockNetworkController(),
|
networkController: getMockNetworkController(),
|
||||||
onNetworkDidChange: sinon.stub(),
|
onNetworkDidChange: sinon.stub(),
|
||||||
provider,
|
provider: _provider,
|
||||||
getProviderConfig: MOCK_GET_PROVIDER_CONFIG,
|
getProviderConfig: MOCK_GET_PROVIDER_CONFIG,
|
||||||
getTokenRatesState: MOCK_TOKEN_RATES_STORE,
|
getTokenRatesState: MOCK_TOKEN_RATES_STORE,
|
||||||
fetchTradesInfo: fetchTradesInfoStub,
|
fetchTradesInfo: fetchTradesInfoStub,
|
||||||
@ -722,6 +722,72 @@ describe('SwapsController', function () {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('calls returns the correct quotes on the optimism chain', async function () {
|
||||||
|
fetchTradesInfoStub.resetHistory();
|
||||||
|
const OPTIMISM_MOCK_FETCH_METADATA = {
|
||||||
|
...MOCK_FETCH_METADATA,
|
||||||
|
chainId: CHAIN_IDS.OPTIMISM,
|
||||||
|
};
|
||||||
|
const optimismProviderResultStub = {
|
||||||
|
// 1 gwei
|
||||||
|
eth_gasPrice: '0x0de0b6b3a7640000',
|
||||||
|
// by default, all accounts are external accounts (not contracts)
|
||||||
|
eth_getCode: '0x',
|
||||||
|
eth_call:
|
||||||
|
'0x000000000000000000000000000000000000000000000000000103c18816d4e8',
|
||||||
|
};
|
||||||
|
const optimismProvider = createTestProviderTools({
|
||||||
|
scaffold: optimismProviderResultStub,
|
||||||
|
networkId: 10,
|
||||||
|
chainId: 10,
|
||||||
|
}).provider;
|
||||||
|
|
||||||
|
swapsController = getSwapsController(optimismProvider);
|
||||||
|
|
||||||
|
fetchTradesInfoStub.resolves(getMockQuotes());
|
||||||
|
|
||||||
|
// Make it so approval is not required
|
||||||
|
sandbox
|
||||||
|
.stub(swapsController, '_getERC20Allowance')
|
||||||
|
.resolves(BigNumber.from(1));
|
||||||
|
|
||||||
|
const [newQuotes] = await swapsController.fetchAndSetQuotes(
|
||||||
|
MOCK_FETCH_PARAMS,
|
||||||
|
OPTIMISM_MOCK_FETCH_METADATA,
|
||||||
|
);
|
||||||
|
|
||||||
|
assert.deepStrictEqual(newQuotes[TEST_AGG_ID_BEST], {
|
||||||
|
...getMockQuotes()[TEST_AGG_ID_BEST],
|
||||||
|
sourceTokenInfo: undefined,
|
||||||
|
destinationTokenInfo: {
|
||||||
|
symbol: 'FOO',
|
||||||
|
decimals: 18,
|
||||||
|
},
|
||||||
|
isBestQuote: true,
|
||||||
|
// TODO: find a way to calculate these values dynamically
|
||||||
|
gasEstimate: 2000000,
|
||||||
|
gasEstimateWithRefund: '0xb8cae',
|
||||||
|
savings: {
|
||||||
|
fee: '-0.061067',
|
||||||
|
metaMaskFee: '0.5050505050505050505',
|
||||||
|
performance: '6',
|
||||||
|
total: '5.4338824949494949495',
|
||||||
|
medianMetaMaskFee: '0.44444444444444444444',
|
||||||
|
},
|
||||||
|
ethFee: '0.113822',
|
||||||
|
multiLayerL1TradeFeeTotal: '0x0103c18816d4e8',
|
||||||
|
overallValueOfQuote: '49.886178',
|
||||||
|
metaMaskFeeInEth: '0.5050505050505050505',
|
||||||
|
ethValueOfTokens: '50',
|
||||||
|
});
|
||||||
|
assert.strictEqual(
|
||||||
|
fetchTradesInfoStub.calledOnceWithExactly(MOCK_FETCH_PARAMS, {
|
||||||
|
...OPTIMISM_MOCK_FETCH_METADATA,
|
||||||
|
}),
|
||||||
|
true,
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
it('performs the allowance check', async function () {
|
it('performs the allowance check', async function () {
|
||||||
fetchTradesInfoStub.resolves(getMockQuotes());
|
fetchTradesInfoStub.resolves(getMockQuotes());
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user