diff options
Diffstat (limited to 'ui/app/helpers')
-rw-r--r-- | ui/app/helpers/utils/transactions.util.js | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/ui/app/helpers/utils/transactions.util.js b/ui/app/helpers/utils/transactions.util.js index edf2e24f6..cb6c9536c 100644 --- a/ui/app/helpers/utils/transactions.util.js +++ b/ui/app/helpers/utils/transactions.util.js @@ -21,6 +21,7 @@ import { CANCEL_ATTEMPT_ACTION_KEY, } from '../constants/transactions' +import log from 'loglevel' import { addCurrencies } from './conversion-util' abiDecoder.addABI(abi) @@ -37,21 +38,31 @@ const registry = new MethodRegistry({ provider: global.ethereumProvider }) * @param {string} data - The hex data (@code txParams.data) of a transaction * @returns {Object} */ -export async function getMethodData (data = '') { - const prefixedData = ethUtil.addHexPrefix(data) - const fourBytePrefix = prefixedData.slice(0, 10) - const sig = await registry.lookup(fourBytePrefix) - - if (!sig) { - return {} - } + export async function getMethodData (data = '') { + const prefixedData = ethUtil.addHexPrefix(data) + const fourBytePrefix = prefixedData.slice(0, 10) + + try { + const sig = await registry.lookup(fourBytePrefix) + + if (!sig) { + return {} + } + + const parsedResult = registry.parse(sig) + + return { + name: parsedResult.name, + params: parsedResult.args, + } + } catch (error) { + log.error(error) + const contractData = getTokenData(data) + const { name } = contractData || {} + return { name } + } - const parsedResult = registry.parse(sig) - return { - name: parsedResult.name, - params: parsedResult.args, - } } export function isConfirmDeployContract (txData = {}) { |