mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Merge pull request #3658 from MetaMask/danjm-i3554-fix-editing-dapp-token-txs
Identify token transactions by method names
This commit is contained in:
commit
8cf9ae3ee6
@ -127,6 +127,7 @@ async function runSendFlowTest(assert, done) {
|
||||
|
||||
selectState.val('send edit')
|
||||
reactTriggerChange(selectState[0])
|
||||
await timeout(10000)
|
||||
|
||||
const confirmFromName = (await queryAsync($, '.sender-to-recipient__sender-name')).first()
|
||||
assert.equal(confirmFromName[0].textContent, 'Send Account 2', 'confirm screen should show correct from name')
|
||||
|
@ -87,6 +87,7 @@ function mapDispatchToProps (dispatch, ownProps) {
|
||||
amount: tokenAmountInHex,
|
||||
errors: { to: null, amount: null },
|
||||
editingTransactionId: id,
|
||||
token: ownProps.token,
|
||||
}))
|
||||
dispatch(actions.showSendTokenPage())
|
||||
},
|
||||
|
@ -64,13 +64,20 @@ PendingTx.prototype.componentWillMount = async function () {
|
||||
})
|
||||
}
|
||||
|
||||
try {
|
||||
// inspect tx data for supported special confirmation screens
|
||||
let isTokenTransaction = false
|
||||
if (txParams.data) {
|
||||
const tokenData = abiDecoder.decodeMethod(txParams.data)
|
||||
const { name: tokenMethodName } = tokenData || {}
|
||||
isTokenTransaction = (tokenMethodName === 'transfer')
|
||||
}
|
||||
|
||||
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 +90,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,
|
||||
|
@ -56,8 +56,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) {
|
||||
|
Loading…
Reference in New Issue
Block a user