Merge pull request #178 from gnosis/177-is-token-transfer

Refactor isTokenTransfer
This commit is contained in:
Germán Martínez 2019-09-19 13:28:32 +02:00 committed by GitHub
commit ddbc643ead
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 4 deletions

View File

@ -48,3 +48,5 @@ export const isAddressAToken = async (tokenAddress: string) => {
return call !== '0x' return call !== '0x'
} }
export const isTokenTransfer = async (data: string, value: number) => data.substring(0, 10) === '0xa9059cbb' && value === 0

View File

@ -13,7 +13,7 @@ import { getWeb3 } from '~/logic/wallets/getWeb3'
import { EMPTY_DATA } from '~/logic/wallets/ethTransactions' import { EMPTY_DATA } from '~/logic/wallets/ethTransactions'
import { addTransactions } from './addTransactions' import { addTransactions } from './addTransactions'
import { getHumanFriendlyToken } from '~/logic/tokens/store/actions/fetchTokens' import { getHumanFriendlyToken } from '~/logic/tokens/store/actions/fetchTokens'
import { isAddressAToken } from '~/logic/tokens/utils/tokenHelpers' import { isTokenTransfer } from '~/logic/tokens/utils/tokenHelpers'
import { TX_TYPE_EXECUTION } from '~/logic/safe/transactions/send' import { TX_TYPE_EXECUTION } from '~/logic/safe/transactions/send'
import { decodeParamsFromSafeMethod } from '~/logic/contracts/methodIds' import { decodeParamsFromSafeMethod } from '~/logic/contracts/methodIds'
@ -60,7 +60,7 @@ export const buildTransactionFrom = async (
const modifySettingsTx = tx.to === safeAddress && Number(tx.value) === 0 && !!tx.data const modifySettingsTx = tx.to === safeAddress && Number(tx.value) === 0 && !!tx.data
const cancellationTx = tx.to === safeAddress && Number(tx.value) === 0 && !tx.data const cancellationTx = tx.to === safeAddress && Number(tx.value) === 0 && !tx.data
const customTx = tx.to !== safeAddress && !!tx.data const customTx = tx.to !== safeAddress && !!tx.data
const isTokenTransfer = await isAddressAToken(tx.to) const isSendTokenTx = await isTokenTransfer(tx.data, tx.value)
let executionTxHash let executionTxHash
const executionTx = confirmations.find((conf) => conf.type === TX_TYPE_EXECUTION) const executionTx = confirmations.find((conf) => conf.type === TX_TYPE_EXECUTION)
@ -71,7 +71,7 @@ export const buildTransactionFrom = async (
let symbol = 'ETH' let symbol = 'ETH'
let decodedParams let decodedParams
if (isTokenTransfer) { if (isSendTokenTx) {
const tokenContract = await getHumanFriendlyToken() const tokenContract = await getHumanFriendlyToken()
const tokenInstance = await tokenContract.at(tx.to) const tokenInstance = await tokenContract.at(tx.to)
symbol = await tokenInstance.symbol() symbol = await tokenInstance.symbol()
@ -100,7 +100,7 @@ export const buildTransactionFrom = async (
executionDate: tx.executionDate, executionDate: tx.executionDate,
executionTxHash, executionTxHash,
safeTxHash: tx.safeTxHash, safeTxHash: tx.safeTxHash,
isTokenTransfer, isTokenTransfer: isSendTokenTx,
decodedParams, decodedParams,
modifySettingsTx, modifySettingsTx,
customTx, customTx,