mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
0992dd5437
add custom network and switch to network lint fix add custom network and not switch the network add wait for selector lint fix fix add waitforselector fix yarn lock added delay added comments lint fix added rpc networks in mock-e2e.js lint fix fix yarn lock alphabetic order of the array in mock-e2e fix lint fix fix removed unnecessary networks changed blacklistedHosts added fixture builder changed to Arbitrum One network
347 lines
8.9 KiB
JavaScript
347 lines
8.9 KiB
JavaScript
const blacklistedHosts = [
|
|
'arbitrum-mainnet.infura.io',
|
|
'goerli.infura.io',
|
|
'mainnet.infura.io',
|
|
'sepolia.infura.io',
|
|
];
|
|
|
|
async function setupMocking(server, testSpecificMock) {
|
|
await server.forAnyRequest().thenPassThrough({
|
|
beforeRequest: (req) => {
|
|
const { host } = req.headers;
|
|
if (blacklistedHosts.includes(host)) {
|
|
return {
|
|
url: 'http://localhost:8545',
|
|
};
|
|
}
|
|
return {};
|
|
},
|
|
});
|
|
|
|
await server.forPost('https://api.segment.io/v1/batch').thenCallback(() => {
|
|
return {
|
|
statusCode: 200,
|
|
};
|
|
});
|
|
|
|
await server
|
|
.forPost('https://sentry.io/api/0000000/envelope/')
|
|
.thenCallback(() => {
|
|
return {
|
|
statusCode: 200,
|
|
json: {},
|
|
};
|
|
});
|
|
|
|
await server
|
|
.forPost('https://sentry.io/api/0000000/store/')
|
|
.thenCallback(() => {
|
|
return {
|
|
statusCode: 200,
|
|
json: {},
|
|
};
|
|
});
|
|
|
|
await server
|
|
.forGet('https://www.4byte.directory/api/v1/signatures/')
|
|
.thenCallback(() => {
|
|
return {
|
|
statusCode: 200,
|
|
json: {
|
|
count: 1,
|
|
next: null,
|
|
previous: null,
|
|
results: [
|
|
{
|
|
id: 1,
|
|
created_at: null,
|
|
text_signature: 'deposit()',
|
|
hex_signature: null,
|
|
bytes_signature: null,
|
|
},
|
|
],
|
|
},
|
|
};
|
|
});
|
|
|
|
await server
|
|
.forGet('https://gas-api.metaswap.codefi.network/networks/1/gasPrices')
|
|
.thenCallback(() => {
|
|
return {
|
|
statusCode: 200,
|
|
json: {
|
|
SafeGasPrice: '1',
|
|
ProposeGasPrice: '2',
|
|
FastGasPrice: '3',
|
|
},
|
|
};
|
|
});
|
|
|
|
await server
|
|
.forGet('https://swap.metaswap.codefi.network/networks/1/token')
|
|
.withQuery({ address: '0x72c9Fb7ED19D3ce51cea5C56B3e023cd918baaDf' })
|
|
.thenCallback(() => {
|
|
return {
|
|
statusCode: 200,
|
|
json: {
|
|
symbol: 'AGLT',
|
|
type: 'erc20',
|
|
decimals: '18',
|
|
address: '0x72c9fb7ed19d3ce51cea5c56b3e023cd918baadf',
|
|
occurences: 1,
|
|
aggregators: ['dynamic'],
|
|
},
|
|
};
|
|
});
|
|
|
|
await server
|
|
.forGet(
|
|
'https://gas-api.metaswap.codefi.network/networks/1/suggestedGasFees',
|
|
)
|
|
.thenCallback(() => {
|
|
return {
|
|
statusCode: 200,
|
|
json: {
|
|
low: {
|
|
suggestedMaxPriorityFeePerGas: '1',
|
|
suggestedMaxFeePerGas: '20.44436136',
|
|
minWaitTimeEstimate: 15000,
|
|
maxWaitTimeEstimate: 30000,
|
|
},
|
|
medium: {
|
|
suggestedMaxPriorityFeePerGas: '1.5',
|
|
suggestedMaxFeePerGas: '25.80554517',
|
|
minWaitTimeEstimate: 15000,
|
|
maxWaitTimeEstimate: 45000,
|
|
},
|
|
high: {
|
|
suggestedMaxPriorityFeePerGas: '2',
|
|
suggestedMaxFeePerGas: '27.277766977',
|
|
minWaitTimeEstimate: 15000,
|
|
maxWaitTimeEstimate: 60000,
|
|
},
|
|
estimatedBaseFee: '19.444436136',
|
|
networkCongestion: 0.14685,
|
|
latestPriorityFeeRange: ['0.378818859', '6.555563864'],
|
|
historicalPriorityFeeRange: ['0.1', '248.262969261'],
|
|
historicalBaseFeeRange: ['14.146999781', '28.825256275'],
|
|
priorityFeeTrend: 'down',
|
|
baseFeeTrend: 'up',
|
|
},
|
|
};
|
|
});
|
|
|
|
await server
|
|
.forGet('https://swap.metaswap.codefi.network/featureFlags')
|
|
.thenCallback(() => {
|
|
return {
|
|
statusCode: 200,
|
|
json: [
|
|
{
|
|
ethereum: {
|
|
fallbackToV1: false,
|
|
mobileActive: true,
|
|
extensionActive: true,
|
|
},
|
|
bsc: {
|
|
fallbackToV1: false,
|
|
mobileActive: true,
|
|
extensionActive: true,
|
|
},
|
|
polygon: {
|
|
fallbackToV1: false,
|
|
mobileActive: true,
|
|
extensionActive: true,
|
|
},
|
|
avalanche: {
|
|
fallbackToV1: false,
|
|
mobileActive: true,
|
|
extensionActive: true,
|
|
},
|
|
smartTransactions: {
|
|
mobileActive: false,
|
|
extensionActive: false,
|
|
},
|
|
updated_at: '2022-03-17T15:54:00.360Z',
|
|
},
|
|
],
|
|
};
|
|
});
|
|
|
|
await server
|
|
.forGet('https://token-api.metaswap.codefi.network/tokens/1337')
|
|
.thenCallback(() => {
|
|
return {
|
|
statusCode: 200,
|
|
json: [
|
|
{
|
|
address: '0x0d8775f648430679a709e98d2b0cb6250d2887ef',
|
|
symbol: 'BAT',
|
|
decimals: 18,
|
|
name: 'Basic Attention Token',
|
|
iconUrl:
|
|
'https://assets.coingecko.com/coins/images/677/thumb/basic-attention-token.png?1547034427',
|
|
aggregators: [
|
|
'aave',
|
|
'bancor',
|
|
'coinGecko',
|
|
'oneInch',
|
|
'paraswap',
|
|
'pmm',
|
|
'zapper',
|
|
'zerion',
|
|
'zeroEx',
|
|
],
|
|
occurrences: 9,
|
|
},
|
|
],
|
|
};
|
|
});
|
|
|
|
await server
|
|
.forGet('https://swap.metaswap.codefi.network/networks/1/tokens')
|
|
.thenCallback(() => {
|
|
return {
|
|
statusCode: 200,
|
|
json: [
|
|
{
|
|
name: 'Ethereum',
|
|
symbol: 'ETH',
|
|
decimals: 18,
|
|
type: 'native',
|
|
iconUrl:
|
|
'https://token.metaswap.codefi.network/assets/nativeCurrencyLogos/ethereum.svg',
|
|
coingeckoId: 'ethereum',
|
|
address: '0x0000000000000000000000000000000000000000',
|
|
occurrences: 100,
|
|
aggregators: [],
|
|
},
|
|
{
|
|
address: '0x6b175474e89094c44da98b954eedeac495271d0f',
|
|
symbol: 'DAI',
|
|
decimals: 18,
|
|
name: 'Dai Stablecoin',
|
|
iconUrl:
|
|
'https://crypto.com/price/coin-data/icon/DAI/color_icon.png',
|
|
type: 'erc20',
|
|
aggregators: [
|
|
'aave',
|
|
'bancor',
|
|
'cmc',
|
|
'cryptocom',
|
|
'coinGecko',
|
|
'oneInch',
|
|
'pmm',
|
|
'zerion',
|
|
'lifi',
|
|
],
|
|
occurrences: 9,
|
|
fees: {
|
|
'0xb0da5965d43369968574d399dbe6374683773a65': 0,
|
|
},
|
|
storage: {
|
|
balance: 2,
|
|
},
|
|
},
|
|
{
|
|
address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
|
|
symbol: 'USDC',
|
|
decimals: 6,
|
|
name: 'USD Coin',
|
|
iconUrl:
|
|
'https://crypto.com/price/coin-data/icon/USDC/color_icon.png',
|
|
type: 'erc20',
|
|
aggregators: [
|
|
'aave',
|
|
'bancor',
|
|
'cryptocom',
|
|
'coinGecko',
|
|
'oneInch',
|
|
'pmm',
|
|
'zerion',
|
|
'lifi',
|
|
],
|
|
occurrences: 8,
|
|
fees: {},
|
|
storage: {
|
|
balance: 9,
|
|
},
|
|
},
|
|
{
|
|
address: '0xc6bdb96e29c38dc43f014eed44de4106a6a8eb5f',
|
|
symbol: 'INUINU',
|
|
decimals: 18,
|
|
name: 'Inu Inu',
|
|
iconUrl:
|
|
'https://assets.coingecko.com/coins/images/26391/thumb/logo_square_200.png?1657752596',
|
|
type: 'erc20',
|
|
aggregators: ['coinGecko'],
|
|
occurrences: 1,
|
|
},
|
|
],
|
|
};
|
|
});
|
|
|
|
await server
|
|
.forGet('https://swap.metaswap.codefi.network/networks/1/topAssets')
|
|
.thenCallback(() => {
|
|
return {
|
|
statusCode: 200,
|
|
json: [
|
|
{
|
|
address: '0x0000000000000000000000000000000000000000',
|
|
symbol: 'ETH',
|
|
},
|
|
{
|
|
address: '0x6b175474e89094c44da98b954eedeac495271d0f',
|
|
symbol: 'DAI',
|
|
},
|
|
{
|
|
address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
|
|
symbol: 'USDC',
|
|
},
|
|
{
|
|
address: '0xdac17f958d2ee523a2206206994597c13d831ec7',
|
|
symbol: 'USDT',
|
|
},
|
|
],
|
|
};
|
|
});
|
|
|
|
await server
|
|
.forGet('https://token-api.metaswap.codefi.network/token/0x539')
|
|
.thenCallback(() => {
|
|
return {
|
|
statusCode: 200,
|
|
json: {},
|
|
};
|
|
});
|
|
|
|
// It disables loading of token icons, e.g. this URL: https://static.metaswap.codefi.network/api/v1/tokenIcons/1337/0x0000000000000000000000000000000000000000.png
|
|
await server
|
|
.forGet(
|
|
/^https:\/\/static\.metaswap\.codefi\.network\/api\/v1\/tokenIcons\/1337\/.*\.png/u,
|
|
)
|
|
.thenCallback(() => {
|
|
return {
|
|
statusCode: 200,
|
|
};
|
|
});
|
|
|
|
await server
|
|
.forGet('https://min-api.cryptocompare.com/data/price')
|
|
.withQuery({ fsym: 'ETH', tsyms: 'USD' })
|
|
.thenCallback(() => {
|
|
return {
|
|
statusCode: 200,
|
|
json: {
|
|
USD: '1700',
|
|
},
|
|
};
|
|
});
|
|
|
|
testSpecificMock(server);
|
|
}
|
|
|
|
module.exports = { setupMocking };
|