Skip to content

Commit

Permalink
cherry-pick chore: revert recent gas api endpoint changes (#25230) in…
Browse files Browse the repository at this point in the history
…to Version v11.16.11 (#25304)

cherry-pick chore: revert recent gas api endpoint changes
04642d2 (#25230) into Version v11.16.11

Merge conflicts were resolved by comparing this PR diff with the
[intended
diff](https://github.com/MetaMask/metamask-extension/pull/25230/files).

```bash
CONFLICT (content): Merge conflict in app/scripts/metamask-controller.js
CONFLICT (content): Merge conflict in package.json
CONFLICT (content): Merge conflict in shared/constants/swaps.ts
CONFLICT (content): Merge conflict in shared/lib/swaps-utils.js
CONFLICT (content): Merge conflict in test/e2e/mock-e2e.js
CONFLICT (content): Merge conflict in test/jest/constants.js
CONFLICT (content): Merge conflict in yarn.lock
```

---------

Co-authored-by: MetaMask Bot <[email protected]>
  • Loading branch information
dbrans and metamaskbot authored Jun 14, 2024
1 parent 1c99860 commit 51daf28
Show file tree
Hide file tree
Showing 15 changed files with 2,733 additions and 94 deletions.
2,630 changes: 2,630 additions & 0 deletions .yarn/patches/@metamask-gas-fee-controller-npm-15.1.2-db4d2976aa.patch

Large diffs are not rendered by default.

13 changes: 11 additions & 2 deletions app/scripts/metamask-controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,11 @@ import {
TokenStandard,
SIGNING_METHODS,
} from '../../shared/constants/transaction';
import { SWAPS_CLIENT_ID } from '../../shared/constants/swaps';
import {
GAS_API_BASE_URL,
GAS_DEV_API_BASE_URL,
SWAPS_CLIENT_ID,
} from '../../shared/constants/swaps';
import {
CHAIN_IDS,
NETWORK_TYPES,
Expand Down Expand Up @@ -747,6 +751,10 @@ 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 @@ -766,12 +774,13 @@ 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: 0 additions & 1 deletion lavamoat/browserify/beta/policy.json
Original file line number Diff line number Diff line change
Expand Up @@ -1450,7 +1450,6 @@
"@metamask/eth-query": true,
"@metamask/gas-fee-controller>@metamask/polling-controller": true,
"bn.js": true,
"browserify>buffer": true,
"uuid": true
}
},
Expand Down
1 change: 0 additions & 1 deletion lavamoat/browserify/desktop/policy.json
Original file line number Diff line number Diff line change
Expand Up @@ -1535,7 +1535,6 @@
"@metamask/eth-query": true,
"@metamask/gas-fee-controller>@metamask/polling-controller": true,
"bn.js": true,
"browserify>buffer": true,
"uuid": true
}
},
Expand Down
1 change: 0 additions & 1 deletion lavamoat/browserify/flask/policy.json
Original file line number Diff line number Diff line change
Expand Up @@ -1535,7 +1535,6 @@
"@metamask/eth-query": true,
"@metamask/gas-fee-controller>@metamask/polling-controller": true,
"bn.js": true,
"browserify>buffer": true,
"uuid": true
}
},
Expand Down
1 change: 0 additions & 1 deletion lavamoat/browserify/main/policy.json
Original file line number Diff line number Diff line change
Expand Up @@ -1450,7 +1450,6 @@
"@metamask/eth-query": true,
"@metamask/gas-fee-controller>@metamask/polling-controller": true,
"bn.js": true,
"browserify>buffer": true,
"uuid": true
}
},
Expand Down
1 change: 0 additions & 1 deletion lavamoat/browserify/mmi/policy.json
Original file line number Diff line number Diff line change
Expand Up @@ -1543,7 +1543,6 @@
"@metamask/eth-query": true,
"@metamask/gas-fee-controller>@metamask/polling-controller": true,
"bn.js": true,
"browserify>buffer": true,
"uuid": true
}
},
Expand Down
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,8 @@
"sucrase@npm:3.34.0": "^3.35.0",
"@expo/config/glob": "^10.3.10",
"@expo/config-plugins/glob": "^10.3.10",
"@solana/web3.js/rpc-websockets": "^8.0.1"
"@solana/web3.js/rpc-websockets": "^8.0.1",
"@metamask/gas-fee-controller@npm:^15.1.1": "patch:@metamask/gas-fee-controller@npm%3A15.1.2#~/.yarn/patches/@metamask-gas-fee-controller-npm-15.1.2-db4d2976aa.patch"
},
"dependencies": {
"@babel/runtime": "patch:@babel/runtime@npm%3A7.24.0#~/.yarn/patches/@babel-runtime-npm-7.24.0-7eb1dd11a2.patch",
Expand Down Expand Up @@ -305,7 +306,7 @@
"@metamask/ethjs": "^0.6.0",
"@metamask/ethjs-contract": "^0.4.1",
"@metamask/ethjs-query": "^0.7.1",
"@metamask/gas-fee-controller": "^15.1.2",
"@metamask/gas-fee-controller": "patch:@metamask/gas-fee-controller@npm%3A15.1.2#~/.yarn/patches/@metamask-gas-fee-controller-npm-15.1.2-db4d2976aa.patch",
"@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.infura.io",
"gas.api.cx.metamask.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.infura.io';
export const GAS_API_BASE_URL = 'https://gas.api.cx.metamask.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: 2 additions & 1 deletion shared/lib/swaps-utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ 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 @@ -129,7 +130,7 @@ const getBaseUrlForNewSwapsApi = (type, chainId) => {
const v2ApiBaseUrl = useDevApis
? SWAPS_DEV_API_V2_BASE_URL
: SWAPS_API_V2_BASE_URL;
const gasApiBaseUrl = GAS_API_BASE_URL;
const gasApiBaseUrl = useDevApis ? GAS_DEV_API_BASE_URL : 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: 45 additions & 52 deletions test/e2e/mock-e2e.js
Original file line number Diff line number Diff line change
Expand Up @@ -177,60 +177,18 @@ 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(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);
.thenCallback(() => {
return {
statusCode: 200,
json: {
SafeGasPrice: '1',
ProposeGasPrice: '2',
FastGasPrice: '3',
},
};
});

await server
.forGet('https://swap.metaswap.codefi.network/networks/1/token')
Expand All @@ -249,6 +207,41 @@ 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.infura.io';
export const GAS_API_URL = 'https://gas.api.cx.metamask.io';
13 changes: 1 addition & 12 deletions ui/pages/swaps/swaps.util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,6 @@ 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 @@ -263,13 +258,7 @@ export async function fetchSwapsGasPrices(chainId: any): Promise<
const gasPricesUrl = getBaseApi('gasPrices', chainId);
const response = await fetchWithCache({
url: gasPricesUrl,
fetchOptions: {
method: 'GET',
headers: {
...clientIdHeader,
...infuraAuthHeader,
},
},
fetchOptions: { method: 'GET', headers: clientIdHeader },
cacheOptions: { cacheRefreshTime: 30000 },
functionName: 'fetchSwapsGasPrices',
});
Expand Down
55 changes: 38 additions & 17 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4936,45 +4936,45 @@ __metadata:
languageName: node
linkType: hard

"@metamask/gas-fee-controller@npm:^14.0.1":
version: 14.0.1
resolution: "@metamask/gas-fee-controller@npm:14.0.1"
"@metamask/gas-fee-controller@npm:15.1.2, @metamask/gas-fee-controller@npm:^15.1.2":
version: 15.1.2
resolution: "@metamask/gas-fee-controller@npm:15.1.2"
dependencies:
"@metamask/base-controller": "npm:^5.0.1"
"@metamask/controller-utils": "npm:^9.0.1"
"@metamask/base-controller": "npm:^5.0.2"
"@metamask/controller-utils": "npm:^9.1.0"
"@metamask/eth-query": "npm:^4.0.0"
"@metamask/ethjs-unit": "npm:^0.3.0"
"@metamask/network-controller": "npm:^18.0.1"
"@metamask/polling-controller": "npm:^6.0.1"
"@metamask/network-controller": "npm:^18.1.0"
"@metamask/polling-controller": "npm:^6.0.2"
"@metamask/utils": "npm:^8.3.0"
"@types/bn.js": "npm:^5.1.5"
"@types/uuid": "npm:^8.3.0"
bn.js: "npm:^5.2.1"
uuid: "npm:^8.3.2"
peerDependencies:
"@metamask/network-controller": ^18.0.0
checksum: 1d26deb26003346976e427d240a2fc0281cb03358859ea8dcddc65a58f6b1b9611d610470cd882a8a8caf82870c3425b18dc7393ef0a9955ba26321479d3feb2
checksum: bc876e444142fffddcf8f6409eab0f87dd406879d11c49f0f37fdb0ea14723e1d436516ab28c90ab50c8d72c7b29d746f0cb70dff36cd59ce4c3932e8d753014
languageName: node
linkType: hard

"@metamask/gas-fee-controller@npm:^15.1.2":
version: 15.1.2
resolution: "@metamask/gas-fee-controller@npm:15.1.2"
"@metamask/gas-fee-controller@npm:^14.0.1":
version: 14.0.1
resolution: "@metamask/gas-fee-controller@npm:14.0.1"
dependencies:
"@metamask/base-controller": "npm:^5.0.2"
"@metamask/controller-utils": "npm:^9.1.0"
"@metamask/base-controller": "npm:^5.0.1"
"@metamask/controller-utils": "npm:^9.0.1"
"@metamask/eth-query": "npm:^4.0.0"
"@metamask/ethjs-unit": "npm:^0.3.0"
"@metamask/network-controller": "npm:^18.1.0"
"@metamask/polling-controller": "npm:^6.0.2"
"@metamask/network-controller": "npm:^18.0.1"
"@metamask/polling-controller": "npm:^6.0.1"
"@metamask/utils": "npm:^8.3.0"
"@types/bn.js": "npm:^5.1.5"
"@types/uuid": "npm:^8.3.0"
bn.js: "npm:^5.2.1"
uuid: "npm:^8.3.2"
peerDependencies:
"@metamask/network-controller": ^18.0.0
checksum: bc876e444142fffddcf8f6409eab0f87dd406879d11c49f0f37fdb0ea14723e1d436516ab28c90ab50c8d72c7b29d746f0cb70dff36cd59ce4c3932e8d753014
checksum: 1d26deb26003346976e427d240a2fc0281cb03358859ea8dcddc65a58f6b1b9611d610470cd882a8a8caf82870c3425b18dc7393ef0a9955ba26321479d3feb2
languageName: node
linkType: hard

Expand All @@ -4999,6 +4999,27 @@ __metadata:
languageName: node
linkType: hard

"@metamask/gas-fee-controller@patch:@metamask/gas-fee-controller@npm%3A15.1.2#~/.yarn/patches/@metamask-gas-fee-controller-npm-15.1.2-db4d2976aa.patch":
version: 15.1.2
resolution: "@metamask/gas-fee-controller@patch:@metamask/gas-fee-controller@npm%3A15.1.2#~/.yarn/patches/@metamask-gas-fee-controller-npm-15.1.2-db4d2976aa.patch::version=15.1.2&hash=c5be0a"
dependencies:
"@metamask/base-controller": "npm:^5.0.2"
"@metamask/controller-utils": "npm:^9.1.0"
"@metamask/eth-query": "npm:^4.0.0"
"@metamask/ethjs-unit": "npm:^0.3.0"
"@metamask/network-controller": "npm:^18.1.0"
"@metamask/polling-controller": "npm:^6.0.2"
"@metamask/utils": "npm:^8.3.0"
"@types/bn.js": "npm:^5.1.5"
"@types/uuid": "npm:^8.3.0"
bn.js: "npm:^5.2.1"
uuid: "npm:^8.3.2"
peerDependencies:
"@metamask/network-controller": ^18.0.0
checksum: 4785ff26e541911ffc5a280a9e1a9a648fb3d89e672afeedcd4951a8f176d8e6ae91192afe56fa943f6b4eeff3ce0dba7ec05228a62a8fee1664bb82642fcc15
languageName: node
linkType: hard

"@metamask/jazzicon@npm:^2.0.0":
version: 2.0.0
resolution: "@metamask/jazzicon@npm:2.0.0"
Expand Down Expand Up @@ -25341,7 +25362,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:^15.1.2"
"@metamask/gas-fee-controller": "patch:@metamask/gas-fee-controller@npm%3A15.1.2#~/.yarn/patches/@metamask-gas-fee-controller-npm-15.1.2-db4d2976aa.patch"
"@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

0 comments on commit 51daf28

Please sign in to comment.