From 9e96a35cf62284d0c83b5791f8c3abd64803ad61 Mon Sep 17 00:00:00 2001 From: Chaitanya Potti Date: Sun, 7 Jan 2024 14:52:04 +0800 Subject: [PATCH 1/5] fix add and switch chain inputs --- .../network/createMetamaskMiddleware.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/controllers/network/createMetamaskMiddleware.js b/src/controllers/network/createMetamaskMiddleware.js index 1b3665edb..b7af5adb2 100644 --- a/src/controllers/network/createMetamaskMiddleware.js +++ b/src/controllers/network/createMetamaskMiddleware.js @@ -68,7 +68,12 @@ export function createAddChainMiddleware({ processAddChain }) { } */ - const { chainId, rpcUrls, nativeCurrency } = request.params || {} + let finalObj = {} + + if (Array.isArray(request.params)) finalObj = request.params[0] + else finalObj = request.params + + const { chainId, rpcUrls, nativeCurrency } = finalObj || {} if (!chainId) throw new Error('createAddChainMiddleware - params.chainId not provided') if (!rpcUrls || rpcUrls.length === 0) throw new Error('createAddChainMiddleware - params.rpcUrls not provided') if (!nativeCurrency) throw new Error('createAddChainMiddleware - params.nativeCurrency not provided') @@ -95,7 +100,12 @@ export function createSwitchChainMiddleware({ processSwitchChain }) { } */ - const { chainId } = request.params || {} + let finalObj = {} + + if (Array.isArray(request.params)) finalObj = request.params[0] + else finalObj = request.params + + const { chainId } = finalObj || {} if (!chainId) throw new Error('createSwitchChainMiddleware - params.chainId not provided') response.result = await processSwitchChain(request.params, request) From 3beac06a38d0591a97b4e26bf2ecfa79738309da Mon Sep 17 00:00:00 2001 From: Chaitanya Potti Date: Sun, 7 Jan 2024 14:59:38 +0800 Subject: [PATCH 2/5] fix process add chain and switch chain --- src/controllers/network/createMetamaskMiddleware.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/controllers/network/createMetamaskMiddleware.js b/src/controllers/network/createMetamaskMiddleware.js index b7af5adb2..a86cee00e 100644 --- a/src/controllers/network/createMetamaskMiddleware.js +++ b/src/controllers/network/createMetamaskMiddleware.js @@ -83,7 +83,7 @@ export function createAddChainMiddleware({ processAddChain }) { if (!symbol) throw new Error('createAddChainMiddleware - params.nativeCurrency.symbol not provided') if (decimals === undefined) throw new Error('createAddChainMiddleware - params.nativeCurrency.decimals not provided') - response.result = await processAddChain(request.params, request) + response.result = await processAddChain(finalObj, request) return undefined }) } @@ -108,7 +108,7 @@ export function createSwitchChainMiddleware({ processSwitchChain }) { const { chainId } = finalObj || {} if (!chainId) throw new Error('createSwitchChainMiddleware - params.chainId not provided') - response.result = await processSwitchChain(request.params, request) + response.result = await processSwitchChain(finalObj, request) return undefined }) } From dc3cb1d0a049a38e5bb420b948e3e17a053d4dfe Mon Sep 17 00:00:00 2001 From: Chaitanya Potti Date: Sun, 7 Jan 2024 15:16:35 +0800 Subject: [PATCH 3/5] no need to save wc add network to backend --- src/controllers/PreferencesController.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controllers/PreferencesController.js b/src/controllers/PreferencesController.js index f0d7d8c8b..1a8b5b358 100644 --- a/src/controllers/PreferencesController.js +++ b/src/controllers/PreferencesController.js @@ -920,7 +920,7 @@ class PreferencesController extends SafeEventEmitter { blockExplorer: block_explorer_url || undefined, } - await this.addCustomNetwork(RPC, customNetwork) + this.addCustomNetwork(RPC, customNetwork) this._setAddChainReqStatus(addChainReqId, 'approved') } catch (error) { log.error('error while approving add chain', error) From 3a77ddfbf04bb9ab8bf04d6f7fc5766ad7938696 Mon Sep 17 00:00:00 2001 From: Chaitanya Potti Date: Sun, 7 Jan 2024 15:27:01 +0800 Subject: [PATCH 4/5] return null for add chain --- src/controllers/PreferencesController.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controllers/PreferencesController.js b/src/controllers/PreferencesController.js index 1a8b5b358..335dd40a2 100644 --- a/src/controllers/PreferencesController.js +++ b/src/controllers/PreferencesController.js @@ -839,7 +839,7 @@ class PreferencesController extends SafeEventEmitter { const req = this.getAddChainRequest(id) switch (data.status) { case 'approved': - return resolve() + return resolve('null') // https://docs.metamask.io/wallet/reference/wallet_addethereumchain/ case 'rejected': return reject(ethErrors.provider.userRejectedRequest(`Torus add chain: ${req.errorMsg || 'User denied add chain request.'}`)) default: From 10061f0ee98f6a6d3bfcb48cfe820a91ac319d0f Mon Sep 17 00:00:00 2001 From: Chaitanya Potti Date: Sun, 7 Jan 2024 15:30:01 +0800 Subject: [PATCH 5/5] return null for switch chain success --- src/controllers/network/NetworkController.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controllers/network/NetworkController.js b/src/controllers/network/NetworkController.js index 9b26151ab..20131e83c 100644 --- a/src/controllers/network/NetworkController.js +++ b/src/controllers/network/NetworkController.js @@ -131,7 +131,7 @@ export default class NetworkController extends EventEmitter { const req = this.getSwitchChainRequest(id) switch (data.status) { case 'approved': - return resolve() + return resolve('null') case 'rejected': return reject(ethErrors.provider.userRejectedRequest(`Torus switch chain method: ${req.errorMsg || 'User denied switch chain request.'}`)) default: