aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/components/pending-tx.js
diff options
context:
space:
mode:
Diffstat (limited to 'ui/app/components/pending-tx.js')
-rw-r--r--ui/app/components/pending-tx.js37
1 files changed, 32 insertions, 5 deletions
diff --git a/ui/app/components/pending-tx.js b/ui/app/components/pending-tx.js
index 1feedbbbc..61e40af0e 100644
--- a/ui/app/components/pending-tx.js
+++ b/ui/app/components/pending-tx.js
@@ -3,6 +3,8 @@ const h = require('react-hyperscript')
const inherits = require('util').inherits
const PendingTxDetails = require('./pending-tx-details')
+const ethUtil = require('ethereumjs-util')
+const BN = ethUtil.BN
module.exports = PendingTx
@@ -14,7 +16,6 @@ function PendingTx () {
PendingTx.prototype.render = function () {
var state = this.props
var txData = state.txData
-
return (
h('div', {
@@ -39,10 +40,8 @@ PendingTx.prototype.render = function () {
margin: '14px 25px',
},
}, [
- h('button.confirm', {
- onClick: state.sendTransaction,
- style: { background: 'rgb(251,117,1)' },
- }, 'Accept'),
+
+ this.buttonDeligator(),
h('button.cancel', {
onClick: state.cancelTransaction,
@@ -53,3 +52,31 @@ PendingTx.prototype.render = function () {
)
}
+PendingTx.prototype.buttonDeligator = function () {
+ var state = this.props
+ var txData = state.txData
+ var txParams = txData.txParams || {}
+ var address = txParams.from || state.selectedAddress
+
+ var account = state.accounts[address]
+ var balance = account ? account.balance : '0x0'
+
+ var gasCost = new BN(ethUtil.stripHexPrefix(txParams.gas || txData.estimatedGas), 16)
+ var gasPrice = new BN(ethUtil.stripHexPrefix(txParams.gasPrice || '0x4a817c800'), 16)
+ var txFee = gasCost.mul(gasPrice)
+ var txValue = new BN(ethUtil.stripHexPrefix(txParams.value || '0x0'), 16)
+ var maxCost = txValue.add(txFee)
+
+ var balanceBn = new BN(ethUtil.stripHexPrefix(balance), 16)
+ if (maxCost.gt(balanceBn)) {
+ return h('button.confirm', {
+ onClick: state.sendTransaction,
+ style: { background: 'rgb(251,117,1)' },
+ }, 'Buy')
+ } else {
+ return h('button.confirm', {
+ onClick: state.sendTransaction,
+ style: { background: 'rgb(251,117,1)' },
+ }, 'Accept')
+ }
+}