From eee55a7486223a49f33e562daa74c3a8ed6a823c Mon Sep 17 00:00:00 2001 From: Agustin Pane Date: Mon, 16 Nov 2020 11:12:27 -0300 Subject: [PATCH 1/2] Adds operation call check on isTokenTransfer --- src/logic/tokens/utils/tokenHelpers.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/logic/tokens/utils/tokenHelpers.ts b/src/logic/tokens/utils/tokenHelpers.ts index fbf6dfe1bb..406179f1ae 100644 --- a/src/logic/tokens/utils/tokenHelpers.ts +++ b/src/logic/tokens/utils/tokenHelpers.ts @@ -9,6 +9,7 @@ import { ALTERNATIVE_TOKEN_ABI } from 'src/logic/tokens/utils/alternativeAbi' import { web3ReadOnly as web3 } from 'src/logic/wallets/getWeb3' import { isEmptyData } from 'src/logic/safe/store/actions/transactions/utils/transactionHelpers' import { TxServiceModel } from 'src/logic/safe/store/actions/transactions/fetchTransactions/loadOutgoingTransactions' +import { CALL } from 'src/logic/safe/transactions' export const getEthAsToken = (balance: string | number): Token => { const { nativeCoin } = getNetworkInfo() @@ -33,7 +34,12 @@ export const isAddressAToken = async (tokenAddress: string): Promise => } export const isTokenTransfer = (tx: TxServiceModel): boolean => { - return !isEmptyData(tx.data) && tx.data?.substring(0, 10) === '0xa9059cbb' && Number(tx.value) === 0 + return ( + !isEmptyData(tx.data) && + tx.data?.substring(0, 10) === '0xa9059cbb' && + Number(tx.value) === 0 && + tx.operation === CALL + ) } export const getERC20DecimalsAndSymbol = async ( From f6c131df8363b5f8c648c36880fe113615c56f12 Mon Sep 17 00:00:00 2001 From: Daniel Sanchez Date: Wed, 18 Nov 2020 18:34:06 +0100 Subject: [PATCH 2/2] Add comment in unclear if --- src/logic/tokens/utils/tokenHelpers.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/logic/tokens/utils/tokenHelpers.ts b/src/logic/tokens/utils/tokenHelpers.ts index 406179f1ae..c490819d9c 100644 --- a/src/logic/tokens/utils/tokenHelpers.ts +++ b/src/logic/tokens/utils/tokenHelpers.ts @@ -36,6 +36,7 @@ export const isAddressAToken = async (tokenAddress: string): Promise => export const isTokenTransfer = (tx: TxServiceModel): boolean => { return ( !isEmptyData(tx.data) && + // Check if contains 'transfer' method code tx.data?.substring(0, 10) === '0xa9059cbb' && Number(tx.value) === 0 && tx.operation === CALL