Skip to content
Merged
Show file tree
Hide file tree
Changes from 17 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 2 additions & 11 deletions app/scripts/metamask-controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -165,11 +165,7 @@ import {
TokenStandard,
SIGNING_METHODS,
} from '../../shared/constants/transaction';
import {
GAS_API_BASE_URL,
GAS_DEV_API_BASE_URL,
SWAPS_CLIENT_ID,
} from '../../shared/constants/swaps';
import { SWAPS_CLIENT_ID } from '../../shared/constants/swaps';
import {
CHAIN_IDS,
NETWORK_TYPES,
Expand Down Expand Up @@ -741,10 +737,6 @@ export default class MetamaskController extends EventEmitter {
allowedEvents: ['NetworkController:stateChange'],
});

const gasApiBaseUrl = process.env.SWAPS_USE_DEV_APIS
? GAS_DEV_API_BASE_URL
: GAS_API_BASE_URL;

this.gasFeeController = new GasFeeController({
state: initState.GasFeeController,
interval: 10000,
Expand All @@ -764,13 +756,12 @@ export default class MetamaskController extends EventEmitter {
),
getCurrentAccountEIP1559Compatibility:
this.getCurrentAccountEIP1559Compatibility.bind(this),
legacyAPIEndpoint: `${gasApiBaseUrl}/networks/<chain_id>/gasPrices`,
EIP1559APIEndpoint: `${gasApiBaseUrl}/networks/<chain_id>/suggestedGasFees`,
getCurrentNetworkLegacyGasAPICompatibility: () => {
const { chainId } = this.networkController.state.providerConfig;
return chainId === CHAIN_IDS.BSC;
},
getChainId: () => this.networkController.state.providerConfig.chainId,
infuraAPIKey: opts.infuraProjectId,
});

this.appStateController = new AppStateController({
Expand Down
1 change: 1 addition & 0 deletions lavamoat/browserify/beta/policy.json
Original file line number Diff line number Diff line change
Expand Up @@ -1415,6 +1415,7 @@
"@metamask/ethjs>@metamask/ethjs-unit": true,
"@metamask/gas-fee-controller>@metamask/polling-controller": true,
"bn.js": true,
"browserify>buffer": true,
"uuid": true
}
},
Expand Down
1 change: 1 addition & 0 deletions lavamoat/browserify/desktop/policy.json
Original file line number Diff line number Diff line change
Expand Up @@ -1500,6 +1500,7 @@
"@metamask/ethjs>@metamask/ethjs-unit": true,
"@metamask/gas-fee-controller>@metamask/polling-controller": true,
"bn.js": true,
"browserify>buffer": true,
"uuid": true
}
},
Expand Down
1 change: 1 addition & 0 deletions lavamoat/browserify/flask/policy.json
Original file line number Diff line number Diff line change
Expand Up @@ -1500,6 +1500,7 @@
"@metamask/ethjs>@metamask/ethjs-unit": true,
"@metamask/gas-fee-controller>@metamask/polling-controller": true,
"bn.js": true,
"browserify>buffer": true,
"uuid": true
}
},
Expand Down
1 change: 1 addition & 0 deletions lavamoat/browserify/main/policy.json
Original file line number Diff line number Diff line change
Expand Up @@ -1415,6 +1415,7 @@
"@metamask/ethjs>@metamask/ethjs-unit": true,
"@metamask/gas-fee-controller>@metamask/polling-controller": true,
"bn.js": true,
"browserify>buffer": true,
"uuid": true
}
},
Expand Down
1 change: 1 addition & 0 deletions lavamoat/browserify/mmi/policy.json
Original file line number Diff line number Diff line change
Expand Up @@ -1554,6 +1554,7 @@
"@metamask/ethjs>@metamask/ethjs-unit": true,
"@metamask/gas-fee-controller>@metamask/polling-controller": true,
"bn.js": true,
"browserify>buffer": true,
"uuid": true
}
},
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@
"@metamask/ethjs": "^0.6.0",
"@metamask/ethjs-contract": "^0.4.1",
"@metamask/ethjs-query": "^0.7.1",
"@metamask/gas-fee-controller": "^14.0.0",
"@metamask/gas-fee-controller": "^15.0.0",
"@metamask/jazzicon": "^2.0.0",
"@metamask/keyring-api": "^3.0.0",
"@metamask/keyring-controller": "patch:@metamask/keyring-controller@npm%3A13.0.0#~/.yarn/patches/@metamask-keyring-controller-npm-13.0.0-d94816a680.patch",
Expand Down
2 changes: 1 addition & 1 deletion privacy-snapshot.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"etherscan.io",
"execution.metamask.io",
"fonts.gstatic.com",
"gas.api.cx.metamask.io",
"gas.api.infura.io",
"github.com",
"goerli.infura.io",
"localhost:8000",
Expand Down
2 changes: 1 addition & 1 deletion shared/constants/swaps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ const SWAPS_TESTNET_CHAIN_ID = '0x539';

export const SWAPS_API_V2_BASE_URL = 'https://swap.metaswap.codefi.network';
export const SWAPS_DEV_API_V2_BASE_URL = 'https://swap.dev-api.cx.metamask.io';
export const GAS_API_BASE_URL = 'https://gas.api.cx.metamask.io';
export const GAS_API_BASE_URL = 'https://gas.api.infura.io';
export const GAS_DEV_API_BASE_URL = 'https://gas.uat-api.cx.metamask.io';

const BSC_DEFAULT_BLOCK_EXPLORER_URL = 'https://bscscan.com/';
Expand Down
3 changes: 1 addition & 2 deletions shared/lib/swaps-utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import log from 'loglevel';
import { CHAIN_IDS } from '../constants/network';
import {
GAS_API_BASE_URL,
GAS_DEV_API_BASE_URL,
SWAPS_API_V2_BASE_URL,
SWAPS_CHAINID_DEFAULT_TOKEN_MAP,
SWAPS_CLIENT_ID,
Expand Down Expand Up @@ -130,7 +129,7 @@ const getBaseUrlForNewSwapsApi = (type, chainId) => {
const v2ApiBaseUrl = useDevApis
? SWAPS_DEV_API_V2_BASE_URL
: SWAPS_API_V2_BASE_URL;
const gasApiBaseUrl = useDevApis ? GAS_DEV_API_BASE_URL : GAS_API_BASE_URL;
const gasApiBaseUrl = GAS_API_BASE_URL;
const noNetworkSpecificTypes = ['refreshTime']; // These types don't need network info in the URL.
if (noNetworkSpecificTypes.includes(type)) {
return v2ApiBaseUrl;
Expand Down
97 changes: 52 additions & 45 deletions test/e2e/mock-e2e.js
Original file line number Diff line number Diff line change
Expand Up @@ -177,18 +177,60 @@ async function setupMocking(server, testSpecificMock, { chainId }) {
};
});

const gasPricesCallbackMock = () => ({
statusCode: 200,
json: {
SafeGasPrice: '1',
ProposeGasPrice: '2',
FastGasPrice: '3',
},
});
const suggestedGasFeesCallbackMock = () => ({
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(`${GAS_API_BASE_URL}/networks/${chainId}/gasPrices`)
.thenCallback(() => {
return {
statusCode: 200,
json: {
SafeGasPrice: '1',
ProposeGasPrice: '2',
FastGasPrice: '3',
},
};
});
.thenCallback(gasPricesCallbackMock);

await server
.forGet(`${GAS_API_BASE_URL}/networks/1/gasPrices`)
.thenCallback(gasPricesCallbackMock);

await server
.forGet(`${GAS_API_BASE_URL}/networks/1/suggestedGasFees`)
.thenCallback(suggestedGasFeesCallbackMock);

await server
.forGet(`${GAS_API_BASE_URL}/networks/${chainId}/suggestedGasFees`)
.thenCallback(suggestedGasFeesCallbackMock);

await server
.forGet('https://swap.metaswap.codefi.network/networks/1/token')
Expand All @@ -207,41 +249,6 @@ async function setupMocking(server, testSpecificMock, { chainId }) {
};
});

await server
.forGet(`${GAS_API_BASE_URL}/networks/${chainId}/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(() => {
Expand Down
2 changes: 1 addition & 1 deletion test/jest/constants.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
export const METASWAP_BASE_URL = 'https://swap.metaswap.codefi.network';
export const GAS_API_URL = 'https://gas.api.cx.metamask.io';
export const GAS_API_URL = 'https://gas.api.infura.io';
13 changes: 12 additions & 1 deletion ui/pages/swaps/swaps.util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,11 @@ const CACHE_REFRESH_FIVE_MINUTES = 300000;
const USD_CURRENCY_CODE = 'usd';

const clientIdHeader = { 'X-Client-Id': SWAPS_CLIENT_ID };
const infuraAuthHeader = {
Authorization: `Basic ${Buffer.from(
`${process.env.INFURA_PROJECT_ID}:`,
).toString('base64')}`,
};

type Validator = {
property: string;
Expand Down Expand Up @@ -258,7 +263,13 @@ export async function fetchSwapsGasPrices(chainId: any): Promise<
const gasPricesUrl = getBaseApi('gasPrices', chainId);
const response = await fetchWithCache({
url: gasPricesUrl,
fetchOptions: { method: 'GET', headers: clientIdHeader },
fetchOptions: {
method: 'GET',
headers: {
...clientIdHeader,
...infuraAuthHeader,
},
},
cacheOptions: { cacheRefreshTime: 30000 },
functionName: 'fetchSwapsGasPrices',
});
Expand Down
4 changes: 2 additions & 2 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4643,7 +4643,7 @@ __metadata:
languageName: node
linkType: hard

"@metamask/gas-fee-controller@npm:^14.0.0, @metamask/gas-fee-controller@npm:^14.0.1":
"@metamask/gas-fee-controller@npm:^14.0.1":
version: 14.0.1
resolution: "@metamask/gas-fee-controller@npm:14.0.1"
dependencies:
Expand Down Expand Up @@ -24740,7 +24740,7 @@ __metadata:
"@metamask/ethjs-contract": "npm:^0.4.1"
"@metamask/ethjs-query": "npm:^0.7.1"
"@metamask/forwarder": "npm:^1.1.0"
"@metamask/gas-fee-controller": "npm:^14.0.0"
"@metamask/gas-fee-controller": "npm:^15.0.0"
"@metamask/jazzicon": "npm:^2.0.0"
"@metamask/keyring-api": "npm:^3.0.0"
"@metamask/keyring-controller": "patch:@metamask/keyring-controller@npm%3A13.0.0#~/.yarn/patches/@metamask-keyring-controller-npm-13.0.0-d94816a680.patch"
Expand Down