From 56ff4c67814d93a218e2656b4f8281e308ccd9a6 Mon Sep 17 00:00:00 2001 From: arrenv <33682027+arrenv@users.noreply.github.com> Date: Thu, 23 Feb 2023 17:30:00 +0100 Subject: [PATCH] Fix: Catch for no provider --- .../dashboard/sagas/utils/safeHelpers.ts | 4 +- src/utils/safes/getTransactionStatuses.ts | 47 ++++++++++--------- 2 files changed, 28 insertions(+), 23 deletions(-) diff --git a/src/modules/dashboard/sagas/utils/safeHelpers.ts b/src/modules/dashboard/sagas/utils/safeHelpers.ts index 57a090ff51..abbdd895c8 100644 --- a/src/modules/dashboard/sagas/utils/safeHelpers.ts +++ b/src/modules/dashboard/sagas/utils/safeHelpers.ts @@ -101,7 +101,9 @@ export const getHomeBridgeByChain = (safeChainId: string) => { ); } // @ts-ignore abi type is wrong. - return new ethers.Contract(homeBridgeAddress, HomeAMB, homeSigner); + return homeSigner + ? new ethers.Contract(homeBridgeAddress, HomeAMB, homeSigner) + : null; }; const getErc721 = ( diff --git a/src/utils/safes/getTransactionStatuses.ts b/src/utils/safes/getTransactionStatuses.ts index 3237f49d63..06d9d82d65 100644 --- a/src/utils/safes/getTransactionStatuses.ts +++ b/src/utils/safes/getTransactionStatuses.ts @@ -110,28 +110,31 @@ export const getTransactionStatuses = async ( const homeAMBContract = getHomeBridgeByChain(safeChainId); const foreignAMBContract = getForeignBridgeByChain(safeChainId); - const messageIds = getMessageIds( - transactionReceipt, - homeAMBContract, - homeAMBContract.address, - ); + if (homeAMBContract) { + const messageIds = getMessageIds( + transactionReceipt, + homeAMBContract, + homeAMBContract?.address, + ); + const transactionStatuses = await Promise.all( + messageIds.map(async (messageId) => { + const wasTheMessageDelivered = await checkIfTheMessageWasDelivered( + foreignAMBContract, + networkApiURI, + messageId, + safeChainId, + ); + + // @NOTE: Safe transactions will always be executed automatically on the local env + if (wasTheMessageDelivered || onLocalDevEnvironment) { + return TRANSACTION_STATUS.SUCCESS; + } + return TRANSACTION_STATUS.PENDING; + }), + ); - const transactionStatuses = await Promise.all( - messageIds.map(async (messageId) => { - const wasTheMessageDelivered = await checkIfTheMessageWasDelivered( - foreignAMBContract, - networkApiURI, - messageId, - safeChainId, - ); - - // @NOTE: Safe transactions will always be executed automatically on the local env - if (wasTheMessageDelivered || onLocalDevEnvironment) { - return TRANSACTION_STATUS.SUCCESS; - } - return TRANSACTION_STATUS.PENDING; - }), - ); + return transactionStatuses; + } - return transactionStatuses; + return []; };