1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00

Fixes the saving of transactions in send and display in tx-list with conversion utility.

This commit is contained in:
Dan 2017-09-12 18:10:28 -02:30 committed by Chi Kei Chan
parent 6fa1cd6225
commit 55d62190e3
3 changed files with 39 additions and 9 deletions

View File

@ -5,6 +5,8 @@ const classnames = require('classnames')
const prefixForNetwork = require('../../lib/etherscan-prefix-for-network') const prefixForNetwork = require('../../lib/etherscan-prefix-for-network')
const Identicon = require('./identicon') const Identicon = require('./identicon')
const { conversionUtil } = require('../conversion-util')
module.exports = TxListItem module.exports = TxListItem
inherits(TxListItem, Component) inherits(TxListItem, Component)
@ -27,8 +29,26 @@ TxListItem.prototype.render = function () {
address, address,
transactionAmount, transactionAmount,
className, className,
conversionRate,
} = this.props } = this.props
const totalInUSD = conversionUtil(transactionAmount, {
fromNumericBase: 'hex',
toNumericBase: 'dec',
fromCurrency: 'ETH',
toCurrency: 'USD',
numberOfDecimals: 2,
conversionRate,
})
const totalInETH = conversionUtil(transactionAmount, {
fromNumericBase: 'hex',
toNumericBase: 'dec',
fromCurrency: 'ETH',
toCurrency: 'ETH',
conversionRate,
numberOfDecimals: 6,
})
return h(`div${className || ''}`, { return h(`div${className || ''}`, {
key: transActionId, key: transActionId,
onClick: () => onClick && onClick(transActionId), onClick: () => onClick && onClick(transActionId),
@ -87,11 +107,11 @@ TxListItem.prototype.render = function () {
'tx-list-value--confirmed': transactionStatus === 'confirmed' 'tx-list-value--confirmed': transactionStatus === 'confirmed'
}) })
}, },
transactionAmount `${totalInETH} ETH`,
), ),
h('span.tx-list-fiat-value', {}, [ h('span.tx-list-fiat-value', {}, [
'+ $300 USD', `${totalInUSD} USD`,
]), ]),
]), ]),

View File

@ -40,26 +40,26 @@ TxList.prototype.render = function () {
]), ]),
]), ]),
this.renderTranstions(), this.renderTransaction(),
]) ])
} }
TxList.prototype.renderTranstions = function () { TxList.prototype.renderTransaction = function () {
const { txsToRender } = this.props const { txsToRender, conversionRate } = this.props
return txsToRender.length return txsToRender.length
? txsToRender.map((transaction) => this.renderTransactionListItem(transaction)) ? txsToRender.map((transaction) => this.renderTransactionListItem(transaction, conversionRate))
: [h('div.tx-list-item.tx-list-item--empty', [ 'No Transactions' ])] : [h('div.tx-list-item.tx-list-item--empty', [ 'No Transactions' ])]
} }
// TODO: Consider moving TxListItem into a separate component // TODO: Consider moving TxListItem into a separate component
TxList.prototype.renderTransactionListItem = function (transaction) { TxList.prototype.renderTransactionListItem = function (transaction, conversionRate) {
const props = { const props = {
dateString: formatDate(transaction.time), dateString: formatDate(transaction.time),
address: transaction.txParams.to, address: transaction.txParams.to,
transactionStatus: transaction.status, transactionStatus: transaction.status,
transactionAmount: formatBalance(transaction.txParams.value, 6), transactionAmount: transaction.txParams.value,
transActionId: transaction.id, transActionId: transaction.id,
transactionHash: transaction.hash, transactionHash: transaction.hash,
transactionNetworkId: transaction.metamaskNetworkId, transactionNetworkId: transaction.metamaskNetworkId,
@ -85,6 +85,7 @@ TxList.prototype.renderTransactionListItem = function (transaction) {
transactionAmount, transactionAmount,
transactionHash, transactionHash,
className: '.tx-list-item.tx-list-clickable', className: '.tx-list-item.tx-list-clickable',
conversionRate,
} }
if (transactionStatus === 'unapproved') { if (transactionStatus === 'unapproved') {

View File

@ -20,6 +20,7 @@ const {
} = require('./actions') } = require('./actions')
const { stripHexPrefix, addHexPrefix } = require('ethereumjs-util') const { stripHexPrefix, addHexPrefix } = require('ethereumjs-util')
const { isHex, numericBalance } = require('./util') const { isHex, numericBalance } = require('./util')
const { conversionUtil } = require('./conversion-util')
const ARAGON = '960b236A07cf122663c4303350609A66A7B288C0' const ARAGON = '960b236A07cf122663c4303350609A66A7B288C0'
@ -666,11 +667,19 @@ SendTransactionScreen.prototype.onSubmit = function () {
this.props.dispatch(addToAddressBook(recipient, nickname)) this.props.dispatch(addToAddressBook(recipient, nickname))
const sendAmount = conversionUtil(this.state.newTx.amount, {
fromNumericBase: 'dec',
toNumericBase: 'hex',
fromCurrency: this.props.currentCurrency,
toCurrency: 'ETH',
conversionRate: this.props.conversionRate,
})
var txParams = { var txParams = {
from: this.state.newTx.from, from: this.state.newTx.from,
to: this.state.newTx.to, to: this.state.newTx.to,
value: this.state.newTx.amount.toString(16), value: sendAmount,
// New: gas will now be specified on this step // New: gas will now be specified on this step
gas: this.state.newTx.gas, gas: this.state.newTx.gas,