aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/ducks/confirm-transaction.duck.js
diff options
context:
space:
mode:
authorAlexander Tseung <alextsg@gmail.com>2018-08-18 05:34:14 +0800
committerAlexander Tseung <alextsg@gmail.com>2018-08-23 05:19:07 +0800
commit865a0d8173e27c073f00d0d156b95e8d92208a94 (patch)
tree0bb56f82deb2ede6a0d10de4e3e1454b63b691e9 /ui/app/ducks/confirm-transaction.duck.js
parentf30b726df79f1ffe0ba088dba9f3ca730ee7d103 (diff)
downloadtangerine-wallet-browser-865a0d8173e27c073f00d0d156b95e8d92208a94.tar
tangerine-wallet-browser-865a0d8173e27c073f00d0d156b95e8d92208a94.tar.gz
tangerine-wallet-browser-865a0d8173e27c073f00d0d156b95e8d92208a94.tar.bz2
tangerine-wallet-browser-865a0d8173e27c073f00d0d156b95e8d92208a94.tar.lz
tangerine-wallet-browser-865a0d8173e27c073f00d0d156b95e8d92208a94.tar.xz
tangerine-wallet-browser-865a0d8173e27c073f00d0d156b95e8d92208a94.tar.zst
tangerine-wallet-browser-865a0d8173e27c073f00d0d156b95e8d92208a94.zip
Use eth_getCode to sort transaction action type
Diffstat (limited to 'ui/app/ducks/confirm-transaction.duck.js')
-rw-r--r--ui/app/ducks/confirm-transaction.duck.js42
1 files changed, 30 insertions, 12 deletions
diff --git a/ui/app/ducks/confirm-transaction.duck.js b/ui/app/ducks/confirm-transaction.duck.js
index 1885e12d1..f17933ddd 100644
--- a/ui/app/ducks/confirm-transaction.duck.js
+++ b/ui/app/ducks/confirm-transaction.duck.js
@@ -14,6 +14,7 @@ import {
addEth,
increaseLastGasPrice,
hexGreaterThan,
+ isSmartContractAddress,
} from '../helpers/confirm-transaction/util'
import { getSymbolAndDecimals } from '../token-util'
@@ -35,8 +36,9 @@ const UPDATE_TRANSACTION_TOTALS = createActionType('UPDATE_TRANSACTION_TOTALS')
const UPDATE_HEX_GAS_TOTAL = createActionType('UPDATE_HEX_GAS_TOTAL')
const UPDATE_TOKEN_PROPS = createActionType('UPDATE_TOKEN_PROPS')
const UPDATE_NONCE = createActionType('UPDATE_NONCE')
-const FETCH_METHOD_DATA_START = createActionType('FETCH_METHOD_DATA_START')
-const FETCH_METHOD_DATA_END = createActionType('FETCH_METHOD_DATA_END')
+const UPDATE_TO_SMART_CONTRACT = createActionType('UPDATE_TO_SMART_CONTRACT')
+const FETCH_DATA_START = createActionType('FETCH_DATA_START')
+const FETCH_DATA_END = createActionType('FETCH_DATA_END')
// Initial state
const initState = {
@@ -55,7 +57,8 @@ const initState = {
ethTransactionTotal: '',
hexGasTotal: '',
nonce: '',
- fetchingMethodData: false,
+ toSmartContract: false,
+ fetchingData: false,
}
// Reducer
@@ -138,15 +141,20 @@ export default function reducer ({ confirmTransaction: confirmState = initState
...confirmState,
nonce: action.payload,
}
- case FETCH_METHOD_DATA_START:
+ case UPDATE_TO_SMART_CONTRACT:
return {
...confirmState,
- fetchingMethodData: true,
+ toSmartContract: action.payload,
}
- case FETCH_METHOD_DATA_END:
+ case FETCH_DATA_START:
return {
...confirmState,
- fetchingMethodData: false,
+ fetchingData: true,
+ }
+ case FETCH_DATA_END:
+ return {
+ ...confirmState,
+ fetchingData: false,
}
case CLEAR_CONFIRM_TRANSACTION:
return initState
@@ -237,9 +245,16 @@ export function updateNonce (nonce) {
}
}
-export function setFetchingMethodData (isFetching) {
+export function updateToSmartContract (toSmartContract) {
+ return {
+ type: UPDATE_TO_SMART_CONTRACT,
+ payload: toSmartContract,
+ }
+}
+
+export function setFetchingData (isFetching) {
return {
- type: isFetching ? FETCH_METHOD_DATA_START : FETCH_METHOD_DATA_END,
+ type: isFetching ? FETCH_DATA_START : FETCH_DATA_END,
}
}
@@ -338,19 +353,22 @@ 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
try {
- dispatch(setFetchingMethodData(true))
+ dispatch(setFetchingData(true))
const methodData = await getMethodData(data)
dispatch(updateMethodData(methodData))
- dispatch(setFetchingMethodData(false))
+ const toSmartContract = await isSmartContractAddress(to)
+ dispatch(updateToSmartContract(toSmartContract))
+ dispatch(setFetchingData(false))
} catch (error) {
dispatch(updateMethodData({}))
- dispatch(setFetchingMethodData(false))
+ dispatch(setFetchingData(false))
}
const tokenData = getTokenData(data)