mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Use network specific swaps contract address when checking swap contract token approval (#10774)
This commit is contained in:
parent
f7a328a9d9
commit
2dadf4374a
@ -12,6 +12,7 @@ import {
|
|||||||
QUOTES_EXPIRED_ERROR,
|
QUOTES_EXPIRED_ERROR,
|
||||||
QUOTES_NOT_AVAILABLE_ERROR,
|
QUOTES_NOT_AVAILABLE_ERROR,
|
||||||
SWAPS_FETCH_ORDER_CONFLICT,
|
SWAPS_FETCH_ORDER_CONFLICT,
|
||||||
|
SWAPS_CHAINID_CONTRACT_ADDRESS_MAP,
|
||||||
} from '../../../shared/constants/swaps';
|
} from '../../../shared/constants/swaps';
|
||||||
import { isSwapsDefaultTokenAddress } from '../../../shared/modules/swaps.utils';
|
import { isSwapsDefaultTokenAddress } from '../../../shared/modules/swaps.utils';
|
||||||
|
|
||||||
@ -22,8 +23,6 @@ import {
|
|||||||
} from '../../../ui/app/pages/swaps/swaps.util';
|
} from '../../../ui/app/pages/swaps/swaps.util';
|
||||||
import { NETWORK_EVENTS } from './network';
|
import { NETWORK_EVENTS } from './network';
|
||||||
|
|
||||||
const METASWAP_ADDRESS = '0x881d40237659c251811cec9c364ef91dc08d300c';
|
|
||||||
|
|
||||||
// The MAX_GAS_LIMIT is a number that is higher than the maximum gas costs we have observed on any aggregator
|
// The MAX_GAS_LIMIT is a number that is higher than the maximum gas costs we have observed on any aggregator
|
||||||
const MAX_GAS_LIMIT = 2500000;
|
const MAX_GAS_LIMIT = 2500000;
|
||||||
|
|
||||||
@ -203,6 +202,7 @@ export default class SwapsController {
|
|||||||
const allowance = await this._getERC20Allowance(
|
const allowance = await this._getERC20Allowance(
|
||||||
fetchParams.sourceToken,
|
fetchParams.sourceToken,
|
||||||
fetchParams.fromAddress,
|
fetchParams.fromAddress,
|
||||||
|
chainId,
|
||||||
);
|
);
|
||||||
|
|
||||||
// For a user to be able to swap a token, they need to have approved the MetaSwap contract to withdraw that token.
|
// For a user to be able to swap a token, they need to have approved the MetaSwap contract to withdraw that token.
|
||||||
@ -675,13 +675,16 @@ export default class SwapsController {
|
|||||||
return [topAggId, newQuotes];
|
return [topAggId, newQuotes];
|
||||||
}
|
}
|
||||||
|
|
||||||
async _getERC20Allowance(contractAddress, walletAddress) {
|
async _getERC20Allowance(contractAddress, walletAddress, chainId) {
|
||||||
const contract = new ethers.Contract(
|
const contract = new ethers.Contract(
|
||||||
contractAddress,
|
contractAddress,
|
||||||
abi,
|
abi,
|
||||||
this.ethersProvider,
|
this.ethersProvider,
|
||||||
);
|
);
|
||||||
return await contract.allowance(walletAddress, METASWAP_ADDRESS);
|
return await contract.allowance(
|
||||||
|
walletAddress,
|
||||||
|
SWAPS_CHAINID_CONTRACT_ADDRESS_MAP[chainId],
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -719,6 +719,7 @@ describe('SwapsController', function () {
|
|||||||
allowanceStub.calledOnceWithExactly(
|
allowanceStub.calledOnceWithExactly(
|
||||||
MOCK_FETCH_PARAMS.sourceToken,
|
MOCK_FETCH_PARAMS.sourceToken,
|
||||||
MOCK_FETCH_PARAMS.fromAddress,
|
MOCK_FETCH_PARAMS.fromAddress,
|
||||||
|
MAINNET_CHAIN_ID,
|
||||||
),
|
),
|
||||||
true,
|
true,
|
||||||
);
|
);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user