diff options
author | Dan <danjm.com@gmail.com> | 2018-03-20 19:37:23 +0800 |
---|---|---|
committer | Dan <danjm.com@gmail.com> | 2018-03-20 19:37:23 +0800 |
commit | dc92b56f184100a24aaf53c3e93619514159f938 (patch) | |
tree | d2a06089e5a096544abfcb27fa5c4fbf3d78d48f | |
parent | 424e98f6a896df6a848a92ef318464abc505d83d (diff) | |
download | tangerine-wallet-browser-dc92b56f184100a24aaf53c3e93619514159f938.tar.gz tangerine-wallet-browser-dc92b56f184100a24aaf53c3e93619514159f938.tar.zst tangerine-wallet-browser-dc92b56f184100a24aaf53c3e93619514159f938.zip |
Identify token transactions by method names token data, and not just whether they've been add via metamask.
-rw-r--r-- | ui/app/components/pending-tx/confirm-send-token.js | 1 | ||||
-rw-r--r-- | ui/app/components/pending-tx/index.js | 14 | ||||
-rw-r--r-- | ui/app/selectors.js | 3 |
3 files changed, 13 insertions, 5 deletions
diff --git a/ui/app/components/pending-tx/confirm-send-token.js b/ui/app/components/pending-tx/confirm-send-token.js index 0a4182014..c347dd21e 100644 --- a/ui/app/components/pending-tx/confirm-send-token.js +++ b/ui/app/components/pending-tx/confirm-send-token.js @@ -86,6 +86,7 @@ function mapDispatchToProps (dispatch, ownProps) { amount: tokenAmountInHex, errors: { to: null, amount: null }, editingTransactionId: id, + token: ownProps.token, })) dispatch(actions.showSendTokenPage()) }, diff --git a/ui/app/components/pending-tx/index.js b/ui/app/components/pending-tx/index.js index f4f6afb8f..9676e9c86 100644 --- a/ui/app/components/pending-tx/index.js +++ b/ui/app/components/pending-tx/index.js @@ -63,14 +63,17 @@ PendingTx.prototype.componentWillMount = async function () { isFetching: false, }) } + const tokenData = txParams && abiDecoder.decodeMethod(txParams.data) + const { name: tokenMethodName } = tokenData || {} + const isTokenTransaction = ['transfer', 'approve', 'transferFrom'] + .find(possibleName => tokenMethodName === possibleName) - try { + if (isTokenTransaction) { const token = util.getContractAtAddress(txParams.to) const results = await Promise.all([ token.symbol(), token.decimals(), ]) - const [ symbol, decimals ] = results if (symbol[0] && decimals[0]) { @@ -83,11 +86,14 @@ PendingTx.prototype.componentWillMount = async function () { }) } else { this.setState({ - transactionType: TX_TYPES.SEND_ETHER, + transactionType: TX_TYPES.SEND_TOKEN, + tokenAddress: txParams.to, + tokenSymbol: null, + tokenDecimals: null, isFetching: false, }) } - } catch (e) { + } else { this.setState({ transactionType: TX_TYPES.SEND_ETHER, isFetching: false, diff --git a/ui/app/selectors.js b/ui/app/selectors.js index 5d2635775..a8b32f129 100644 --- a/ui/app/selectors.js +++ b/ui/app/selectors.js @@ -55,8 +55,9 @@ function getSelectedToken (state) { const tokens = state.metamask.tokens || [] const selectedTokenAddress = state.metamask.selectedTokenAddress const selectedToken = tokens.filter(({ address }) => address === selectedTokenAddress)[0] + const sendToken = state.metamask.send.token - return selectedToken || null + return selectedToken || sendToken || null } function getSelectedTokenExchangeRate (state) { |