From 53a89371f918395c1e68de9e345838e4d01c1deb Mon Sep 17 00:00:00 2001 From: Julien Fontanel Date: Thu, 16 Oct 2025 15:01:54 +0200 Subject: [PATCH 1/4] chore: Add Monad support --- src/SwapsController.ts | 2 ++ src/constants.ts | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/SwapsController.ts b/src/SwapsController.ts index 27e9fe65..9a015b44 100644 --- a/src/SwapsController.ts +++ b/src/SwapsController.ts @@ -49,6 +49,7 @@ import { isGasFeeStateEthGasPrice, isGasFeeStateFeeMarket, isGasFeeStateLegacy, + MONAD_CHAIN_ID, NATIVE_SWAPS_TOKEN_ADDRESS, OPTIMISM_CHAIN_ID, POLYGON_CHAIN_ID, @@ -643,6 +644,7 @@ export default class SwapsController extends BaseController< POLYGON_CHAIN_ID, AVALANCHE_CHAIN_ID, SEI_CHAIN_ID, + MONAD_CHAIN_ID, ], clientId, messenger, diff --git a/src/constants.ts b/src/constants.ts index ea8dfbc7..54636818 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -24,6 +24,7 @@ export const LINEA_CHAIN_ID = toHex('59144'); export const SWAPS_TESTNET_CHAIN_ID = toHex('1337'); export const BASE_CHAIN_ID = toHex('8453'); export const SEI_CHAIN_ID = toHex('1329'); +export const MONAD_CHAIN_ID = toHex('143'); export const CHAIN_ID_TO_NAME_MAP: { [key: string]: string } = { [ETH_CHAIN_ID]: 'ethereum', @@ -37,6 +38,7 @@ export const CHAIN_ID_TO_NAME_MAP: { [key: string]: string } = { [SWAPS_TESTNET_CHAIN_ID]: 'ethereum', [BASE_CHAIN_ID]: 'base', [SEI_CHAIN_ID]: 'sei', + [MONAD_CHAIN_ID]: 'monad', }; //* APIs base urls @@ -72,6 +74,8 @@ export const BASE_SWAPS_CONTRACT_ADDRESS = '0x9dda6ef3d919c9bc8885d5560999a3640431e8e6'; export const SEI_SWAPS_CONTRACT_ADDRESS = '0x962287c9d5B8a682389E61edAE90ec882325d08b'; +export const MONAD_SWAPS_CONTRACT_ADDRESS = + '0x962287c9d5B8a682389E61edAE90ec882325d08b'; export const WETH_CONTRACT_ADDRESS = '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'; @@ -93,6 +97,8 @@ export const WETH_BASE_CONTRACT_ADDRESS = '0x4200000000000000000000000000000000000006'; export const WSEI_SEI_CONTRACT_ADDRESS = '0xe30fedd158a2e3b13e9badaeabafc5516e95e8c7'; +export const WMON_MONAD_CONTRACT_ADDRESS = + '0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A'; export const SWAPS_WRAPPED_TOKENS_ADDRESSES: { [key: string]: string } = { [ETH_CHAIN_ID]: WETH_CONTRACT_ADDRESS, @@ -106,6 +112,7 @@ export const SWAPS_WRAPPED_TOKENS_ADDRESSES: { [key: string]: string } = { [LINEA_CHAIN_ID]: WETH_LINEA_CONTRACT_ADDRESS, [BASE_CHAIN_ID]: WETH_BASE_CONTRACT_ADDRESS, [SEI_CHAIN_ID]: WSEI_SEI_CONTRACT_ADDRESS, + [MONAD_CHAIN_ID]: WMON_MONAD_CONTRACT_ADDRESS, }; export const SWAPS_CONTRACT_ADDRESSES: { [key: string]: string } = { @@ -120,6 +127,7 @@ export const SWAPS_CONTRACT_ADDRESSES: { [key: string]: string } = { [LINEA_CHAIN_ID]: LINEA_SWAPS_CONTRACT_ADDRESS, [BASE_CHAIN_ID]: BASE_SWAPS_CONTRACT_ADDRESS, [SEI_CHAIN_ID]: SEI_SWAPS_CONTRACT_ADDRESS, + [MONAD_CHAIN_ID]: MONAD_SWAPS_CONTRACT_ADDRESS, }; export const ALLOWED_CONTRACT_ADDRESSES: { [key: string]: string[] } = { @@ -167,6 +175,10 @@ export const ALLOWED_CONTRACT_ADDRESSES: { [key: string]: string[] } = { SWAPS_CONTRACT_ADDRESSES[SEI_CHAIN_ID], SWAPS_WRAPPED_TOKENS_ADDRESSES[SEI_CHAIN_ID], ], + [MONAD_CHAIN_ID]: [ + SWAPS_CONTRACT_ADDRESSES[MONAD_CHAIN_ID], + SWAPS_WRAPPED_TOKENS_ADDRESSES[MONAD_CHAIN_ID], + ], }; //* Tokens @@ -209,6 +221,13 @@ export const SEI_SWAPS_TOKEN_OBJECT: SwapsToken = { decimals: 18, }; +export const MONAD_SWAPS_TOKEN_OBJECT: SwapsToken = { + symbol: 'MON', + name: 'Monad', + address: NATIVE_SWAPS_TOKEN_ADDRESS, + decimals: 18, +}; + export const ARBITRUM_SWAPS_TOKEN_OBJECT: SwapsToken = { ...ETH_SWAPS_TOKEN_OBJECT, }; @@ -241,6 +260,7 @@ export const SWAPS_NATIVE_TOKEN_OBJECTS: { [key: string]: SwapsToken } = { [LINEA_CHAIN_ID]: LINEA_SWAPS_TOKEN_OBJECT, [BASE_CHAIN_ID]: BASE_SWAPS_TOKEN_OBJECT, [SEI_CHAIN_ID]: SEI_SWAPS_TOKEN_OBJECT, + [MONAD_CHAIN_ID]: MONAD_SWAPS_TOKEN_OBJECT, }; //* Other From 78c8c507ea29fd18611d085c9763388cf79c9811 Mon Sep 17 00:00:00 2001 From: Julien Fontanel Date: Thu, 16 Oct 2025 16:47:35 +0200 Subject: [PATCH 2/4] chore: run yarn dedupe --- yarn.lock | 80 +++---------------------------------------------------- 1 file changed, 4 insertions(+), 76 deletions(-) diff --git a/yarn.lock b/yarn.lock index 52e71a2b..2b111d0d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1184,7 +1184,7 @@ __metadata: languageName: node linkType: hard -"@metamask/base-controller@npm:^8.0.1, @metamask/base-controller@npm:^8.1.0": +"@metamask/base-controller@npm:^8.0.1, @metamask/base-controller@npm:^8.0.3, @metamask/base-controller@npm:^8.1.0": version: 8.4.0 resolution: "@metamask/base-controller@npm:8.4.0" dependencies: @@ -1195,18 +1195,7 @@ __metadata: languageName: node linkType: hard -"@metamask/base-controller@npm:^8.0.3": - version: 8.3.0 - resolution: "@metamask/base-controller@npm:8.3.0" - dependencies: - "@metamask/messenger": "npm:^0.2.0" - "@metamask/utils": "npm:^11.4.2" - immer: "npm:^9.0.6" - checksum: 10/f4dec29cbf984e38c8dab331a7b98ad3ebb81d1e64d25f28e01025a0e7b4b4f6ead9e5b830852b7eabd8ad971753868a932dc2d0076f4bd3eec415d8604eb7a4 - languageName: node - linkType: hard - -"@metamask/controller-utils@npm:^11.10.0, @metamask/controller-utils@npm:^11.12.0": +"@metamask/controller-utils@npm:^11.10.0, @metamask/controller-utils@npm:^11.12.0, @metamask/controller-utils@npm:^11.3.0": version: 11.14.0 resolution: "@metamask/controller-utils@npm:11.14.0" dependencies: @@ -1227,26 +1216,6 @@ __metadata: languageName: node linkType: hard -"@metamask/controller-utils@npm:^11.3.0": - version: 11.4.4 - resolution: "@metamask/controller-utils@npm:11.4.4" - dependencies: - "@ethereumjs/util": "npm:^8.1.0" - "@metamask/eth-query": "npm:^4.0.0" - "@metamask/ethjs-unit": "npm:^0.3.0" - "@metamask/utils": "npm:^10.0.0" - "@spruceid/siwe-parser": "npm:2.1.0" - "@types/bn.js": "npm:^5.1.5" - bignumber.js: "npm:^9.1.2" - bn.js: "npm:^5.2.1" - eth-ens-namehash: "npm:^2.0.8" - fast-deep-equal: "npm:^3.1.3" - peerDependencies: - "@babel/runtime": ^7.0.0 - checksum: 10/0833800d4733f52fbf232efedc97ce66603430fd20ec10e71e6dc4c23295b3b59cc3c8109b86b8039b9ae0c0d2428815428924c367b88f9ea6013152a86d862b - languageName: node - linkType: hard - "@metamask/error-reporting-service@npm:^2.0.0": version: 2.0.0 resolution: "@metamask/error-reporting-service@npm:2.0.0" @@ -1351,20 +1320,7 @@ __metadata: languageName: node linkType: hard -"@metamask/eth-json-rpc-provider@npm:^4.1.5, @metamask/eth-json-rpc-provider@npm:^4.1.6": - version: 4.1.6 - resolution: "@metamask/eth-json-rpc-provider@npm:4.1.6" - dependencies: - "@metamask/json-rpc-engine": "npm:^10.0.1" - "@metamask/rpc-errors": "npm:^7.0.1" - "@metamask/safe-event-emitter": "npm:^3.0.0" - "@metamask/utils": "npm:^10.0.0" - uuid: "npm:^8.3.2" - checksum: 10/aeec2c362a5386357e9f8c707da9baa4326e83889633723656b6801b6461ea8ab8f020b0d9ed0bbc2d8fd6add4af4c99cc9c9a1cbedca267a033a9f19da41200 - languageName: node - linkType: hard - -"@metamask/eth-json-rpc-provider@npm:^4.1.7, @metamask/eth-json-rpc-provider@npm:^4.1.8": +"@metamask/eth-json-rpc-provider@npm:^4.1.5, @metamask/eth-json-rpc-provider@npm:^4.1.6, @metamask/eth-json-rpc-provider@npm:^4.1.7, @metamask/eth-json-rpc-provider@npm:^4.1.8": version: 4.1.8 resolution: "@metamask/eth-json-rpc-provider@npm:4.1.8" dependencies: @@ -1435,18 +1391,7 @@ __metadata: languageName: node linkType: hard -"@metamask/json-rpc-engine@npm:^10.0.1": - version: 10.0.1 - resolution: "@metamask/json-rpc-engine@npm:10.0.1" - dependencies: - "@metamask/rpc-errors": "npm:^7.0.1" - "@metamask/safe-event-emitter": "npm:^3.0.0" - "@metamask/utils": "npm:^10.0.0" - checksum: 10/15a8eeab9af39b9ed87311da728e81169484ace733a8ef9fc469bd887654e37afa19f9e5228246dc80daad3fbf9b16067e73b2969d37d44acf5bc6ffa2c70082 - languageName: node - linkType: hard - -"@metamask/json-rpc-engine@npm:^10.0.2, @metamask/json-rpc-engine@npm:^10.0.3": +"@metamask/json-rpc-engine@npm:^10.0.1, @metamask/json-rpc-engine@npm:^10.0.2, @metamask/json-rpc-engine@npm:^10.0.3": version: 10.0.3 resolution: "@metamask/json-rpc-engine@npm:10.0.3" dependencies: @@ -1457,13 +1402,6 @@ __metadata: languageName: node linkType: hard -"@metamask/messenger@npm:^0.2.0": - version: 0.2.0 - resolution: "@metamask/messenger@npm:0.2.0" - checksum: 10/48f682d9cde1208fbda0936022dea37acc3828cc221203b5f917df25c131d9a250dc5e86e9263f5dba8ee7c05adc6752a68dfb57da7d297f95f38b052f4fe5c1 - languageName: node - linkType: hard - "@metamask/messenger@npm:^0.3.0": version: 0.3.0 resolution: "@metamask/messenger@npm:0.3.0" @@ -1525,16 +1463,6 @@ __metadata: languageName: node linkType: hard -"@metamask/rpc-errors@npm:^7.0.1": - version: 7.0.1 - resolution: "@metamask/rpc-errors@npm:7.0.1" - dependencies: - "@metamask/utils": "npm:^10.0.0" - fast-safe-stringify: "npm:^2.0.6" - checksum: 10/819708b4a7d9695ee67fd867d8f94bb5a273b479a242b17bd53c83d1fceec421fc42928f0bb340f4f138ec803dd82ec9659ce7b09a86aedad6a81d5a39ec5c35 - languageName: node - linkType: hard - "@metamask/rpc-errors@npm:^7.0.2": version: 7.0.3 resolution: "@metamask/rpc-errors@npm:7.0.3" From f62b7b8a5a416d0daea09f6f97502279dfcb42ce Mon Sep 17 00:00:00 2001 From: Julien Fontanel Date: Thu, 16 Oct 2025 16:58:40 +0200 Subject: [PATCH 3/4] chore: fix ws@npm version --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2b111d0d..1ec38565 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6991,8 +6991,8 @@ __metadata: linkType: hard "ws@npm:7.4.6": - version: 7.5.10 - resolution: "ws@npm:7.5.10" + version: 7.4.6 + resolution: "ws@npm:7.4.6" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ^5.0.2 @@ -7001,7 +7001,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 10/9c796b84ba80ffc2c2adcdfc9c8e9a219ba99caa435c9a8d45f9ac593bba325563b3f83edc5eb067cc6d21b9a6bf2c930adf76dd40af5f58a5ca6859e81858f0 + checksum: 10/150e3f917b7cde568d833a5ea6ccc4132e59c38d04218afcf2b6c7b845752bd011a9e0dc1303c8694d3c402a0bdec5893661a390b71ff88f0fc81a4e4e66b09c languageName: node linkType: hard From 2a7a3a26076603a4ed6adcdf855faadd3f7bc0d6 Mon Sep 17 00:00:00 2001 From: Julien Fontanel Date: Thu, 16 Oct 2025 17:06:32 +0200 Subject: [PATCH 4/4] chore: fix ws@npm version --- package.json | 5 ++++- yarn.lock | 8 ++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 90ee447f..e793bca8 100644 --- a/package.json +++ b/package.json @@ -92,5 +92,8 @@ "@metamask/controller-utils>ethereumjs-util>ethereum-cryptography>secp256k1": false } }, - "packageManager": "yarn@4.5.3" + "packageManager": "yarn@4.5.3", + "resolutions": { + "ws": "^7.5.10" + } } diff --git a/yarn.lock b/yarn.lock index 1ec38565..665d0907 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6990,9 +6990,9 @@ __metadata: languageName: node linkType: hard -"ws@npm:7.4.6": - version: 7.4.6 - resolution: "ws@npm:7.4.6" +"ws@npm:^7.5.10": + version: 7.5.10 + resolution: "ws@npm:7.5.10" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ^5.0.2 @@ -7001,7 +7001,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 10/150e3f917b7cde568d833a5ea6ccc4132e59c38d04218afcf2b6c7b845752bd011a9e0dc1303c8694d3c402a0bdec5893661a390b71ff88f0fc81a4e4e66b09c + checksum: 10/9c796b84ba80ffc2c2adcdfc9c8e9a219ba99caa435c9a8d45f9ac593bba325563b3f83edc5eb067cc6d21b9a6bf2c930adf76dd40af5f58a5ca6859e81858f0 languageName: node linkType: hard