From 0534b58918cd7ffc754b0d1ab8ebe480ed29f9b9 Mon Sep 17 00:00:00 2001 From: Mikhail Date: Fri, 4 Sep 2020 17:06:53 +0400 Subject: [PATCH 1/2] check if gas returned values are valid when loading token info for incoming tx --- .../fetchTransactions/loadIncomingTransactions.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/logic/safe/store/actions/transactions/fetchTransactions/loadIncomingTransactions.ts b/src/logic/safe/store/actions/transactions/fetchTransactions/loadIncomingTransactions.ts index f2e5acda2b..5d1ad8152c 100644 --- a/src/logic/safe/store/actions/transactions/fetchTransactions/loadIncomingTransactions.ts +++ b/src/logic/safe/store/actions/transactions/fetchTransactions/loadIncomingTransactions.ts @@ -59,11 +59,11 @@ const batchIncomingTxsTokenDataRequest = (txs: IncomingTxServiceModel[]) => { batch.execute() return Promise.all(whenTxsValues).then((txsValues) => - txsValues.map(([tx, symbol, decimals, { gas, gasPrice }]) => [ + txsValues.map(([tx, symbol, decimals, gasInfo]) => [ tx, symbol === null ? 'ETH' : symbol, decimals === null ? '18' : decimals, - new bn(gas).div(gasPrice).toFixed(), + gasInfo ? new bn(gasInfo.gas).div(gasInfo.gasPrice).toFixed() : 0, ]), ) } From a48d1cac9d9e1e62247ba0073c3ce17f0c0c60bd Mon Sep 17 00:00:00 2001 From: Daniel Sanchez Date: Fri, 4 Sep 2020 16:05:21 +0200 Subject: [PATCH 2/2] Fix generateBatchRequests --- src/logic/contracts/generateBatchRequests.ts | 7 ++++--- .../fetchTransactions/loadIncomingTransactions.ts | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/logic/contracts/generateBatchRequests.ts b/src/logic/contracts/generateBatchRequests.ts index 5827e7fd3c..7ad47d92e2 100644 --- a/src/logic/contracts/generateBatchRequests.ts +++ b/src/logic/contracts/generateBatchRequests.ts @@ -10,8 +10,9 @@ import { web3ReadOnly as web3 } from 'src/logic/wallets/getWeb3' * @param {array<{ args: [any], method: string, type: 'eth'|undefined } | string>} args.methods - methods to be called * @returns {Promise<[*]>} */ -const generateBatchRequests = ({ abi, address, batch = new web3.BatchRequest() , context, methods }: any): any => { +const generateBatchRequests = ({ abi, address, batch, context, methods }: any): any => { const contractInstance: any = new web3.eth.Contract(abi, address) + const localBatch = new web3.BatchRequest() const values = methods.map((methodObject) => { let method, type, args = [] @@ -39,14 +40,14 @@ const generateBatchRequests = ({ abi, address, batch = new web3.BatchRequest() , request = contractInstance.methods[method](...args).call.request(resolver) } - batch.add(request) + batch ? batch.add(request) : localBatch.add(request) } catch (e) { resolve(null) } }) }) - batch.execute() + !batch && localBatch.execute() const returnValues = context ? [context, ...values] : values diff --git a/src/logic/safe/store/actions/transactions/fetchTransactions/loadIncomingTransactions.ts b/src/logic/safe/store/actions/transactions/fetchTransactions/loadIncomingTransactions.ts index 5d1ad8152c..f2e5acda2b 100644 --- a/src/logic/safe/store/actions/transactions/fetchTransactions/loadIncomingTransactions.ts +++ b/src/logic/safe/store/actions/transactions/fetchTransactions/loadIncomingTransactions.ts @@ -59,11 +59,11 @@ const batchIncomingTxsTokenDataRequest = (txs: IncomingTxServiceModel[]) => { batch.execute() return Promise.all(whenTxsValues).then((txsValues) => - txsValues.map(([tx, symbol, decimals, gasInfo]) => [ + txsValues.map(([tx, symbol, decimals, { gas, gasPrice }]) => [ tx, symbol === null ? 'ETH' : symbol, decimals === null ? '18' : decimals, - gasInfo ? new bn(gasInfo.gas).div(gasInfo.gasPrice).toFixed() : 0, + new bn(gas).div(gasPrice).toFixed(), ]), ) }