From 748801f4179d353959f40049cf6ca27851eebd0e Mon Sep 17 00:00:00 2001 From: Whymarrh Whitby Date: Tue, 18 Jun 2019 09:47:14 -0230 Subject: 4byte fallback (#6551) * Adds 4byte registry fallback to getMethodData() (#6435) * Adds fetchWithCache to guard against unnecessary API calls * Add custom fetch wrapper with abort on timeout * Use opts and cacheRefreshTime in fetch-with-cache util * Use custom fetch wrapper with timeout for fetch-with-cache * Improve contract method data fetching (#6623) * Remove async call from getTransactionActionKey() * Stop blocking confirm screen rendering on method data loading, and base screen route on transactionCategory * Remove use of withMethodData, fix use of knownMethodData, in relation to transaction-list-item.component * Load data contract method data progressively, making it non-blocking; requires simplifying conf-tx-base lifecycle logic. * Allow editing of gas price while loading on the confirm screen. * Fix transactionAction component and its unit tests. * Fix confirm transaction components for cases of route transitions within metamask. * Only call toString on id if truthy in getNavigateTxData() * Fix knownMethodData retrieval and data fetching from fourbyte --- .../confirm-transaction.duck.js | 28 ++-------------------- .../confirm-transaction.duck.test.js | 11 ++++----- 2 files changed, 6 insertions(+), 33 deletions(-) (limited to 'ui/app/ducks/confirm-transaction') diff --git a/ui/app/ducks/confirm-transaction/confirm-transaction.duck.js b/ui/app/ducks/confirm-transaction/confirm-transaction.duck.js index 58b0ec8e8..b8d1a7e81 100644 --- a/ui/app/ducks/confirm-transaction/confirm-transaction.duck.js +++ b/ui/app/ducks/confirm-transaction/confirm-transaction.duck.js @@ -1,4 +1,3 @@ -import log from 'loglevel' import { conversionRateSelector, currentCurrencySelector, @@ -18,12 +17,9 @@ import { import { getTokenData, - getMethodData, - isSmartContractAddress, sumHexes, } from '../../helpers/utils/transactions.util' -import { getSymbolAndDecimals } from '../../helpers/utils/token-util' import { conversionUtil } from '../../helpers/utils/conversion-util' import { addHexPrefix } from 'ethereumjs-util' @@ -348,7 +344,7 @@ export function updateTxDataAndCalculate (txData) { } export function setTransactionToConfirm (transactionId) { - return async (dispatch, getState) => { + return (dispatch, getState) => { const state = getState() const unconfirmedTransactionsHash = unconfirmedTransactionsHashSelector(state) const transaction = unconfirmedTransactionsHash[transactionId] @@ -364,34 +360,14 @@ export function setTransactionToConfirm (transactionId) { dispatch(updateTxDataAndCalculate(txData)) const { txParams } = transaction - const { to } = txParams if (txParams.data) { - const { tokens: existingTokens } = state - const { data, to: tokenAddress } = txParams - - dispatch(setFetchingData(true)) - const methodData = await getMethodData(data) - dispatch(updateMethodData(methodData)) + const { data } = txParams - try { - const toSmartContract = await isSmartContractAddress(to || '') - dispatch(updateToSmartContract(toSmartContract)) - } catch (error) { - log.error(error) - } - dispatch(setFetchingData(false)) const tokenData = getTokenData(data) dispatch(updateTokenData(tokenData)) - try { - const tokenSymbolData = await getSymbolAndDecimals(tokenAddress, existingTokens) || {} - const { symbol: tokenSymbol = '', decimals: tokenDecimals = '' } = tokenSymbolData - dispatch(updateTokenProps({ tokenSymbol, tokenDecimals })) - } catch (error) { - dispatch(updateTokenProps({ tokenSymbol: '', tokenDecimals: '' })) - } } if (txParams.nonce) { diff --git a/ui/app/ducks/confirm-transaction/confirm-transaction.duck.test.js b/ui/app/ducks/confirm-transaction/confirm-transaction.duck.test.js index d2e344663..9e26314e5 100644 --- a/ui/app/ducks/confirm-transaction/confirm-transaction.duck.test.js +++ b/ui/app/ducks/confirm-transaction/confirm-transaction.duck.test.js @@ -630,7 +630,7 @@ describe('Confirm Transaction Duck', () => { storeActions.forEach((action, index) => assert.equal(action.type, expectedActions[index])) }) - it('updates confirmTransaction transaction', done => { + it('updates confirmTransaction transaction', () => { const mockState = { metamask: { conversionRate: 468.58, @@ -673,13 +673,10 @@ describe('Confirm Transaction Duck', () => { ] store.dispatch(actions.setTransactionToConfirm(2603411941761054)) - .then(() => { - const storeActions = store.getActions() - assert.equal(storeActions.length, expectedActions.length) + const storeActions = store.getActions() + assert.equal(storeActions.length, expectedActions.length) - storeActions.forEach((action, index) => assert.equal(action.type, expectedActions[index])) - done() - }) + storeActions.forEach((action, index) => assert.equal(action.type, expectedActions[index])) }) }) }) -- cgit