aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/lib/idStore.js
diff options
context:
space:
mode:
authorDan Finlay <dan@danfinlay.com>2016-11-18 05:51:32 +0800
committerDan Finlay <dan@danfinlay.com>2016-11-18 05:51:32 +0800
commit4352c7031afb6f9a175b29d0addeb7ea48345676 (patch)
treeecb311d43d0f77d5f5f0e82a0014a09c6381f0ef /app/scripts/lib/idStore.js
parentf229d32442f34859be169e38a42ffecdfb8fc48a (diff)
parent592b64a19fd7001d965aa1a1c329b24f55d2ea90 (diff)
downloadtangerine-wallet-browser-4352c7031afb6f9a175b29d0addeb7ea48345676.tar
tangerine-wallet-browser-4352c7031afb6f9a175b29d0addeb7ea48345676.tar.gz
tangerine-wallet-browser-4352c7031afb6f9a175b29d0addeb7ea48345676.tar.bz2
tangerine-wallet-browser-4352c7031afb6f9a175b29d0addeb7ea48345676.tar.lz
tangerine-wallet-browser-4352c7031afb6f9a175b29d0addeb7ea48345676.tar.xz
tangerine-wallet-browser-4352c7031afb6f9a175b29d0addeb7ea48345676.tar.zst
tangerine-wallet-browser-4352c7031afb6f9a175b29d0addeb7ea48345676.zip
Merge branch 'i328-MultiVault' of github.com:MetaMask/metamask-plugin into i328-MultiVault
Diffstat (limited to 'app/scripts/lib/idStore.js')
-rw-r--r--app/scripts/lib/idStore.js32
1 files changed, 24 insertions, 8 deletions
diff --git a/app/scripts/lib/idStore.js b/app/scripts/lib/idStore.js
index ef2416cdf..d11c38be1 100644
--- a/app/scripts/lib/idStore.js
+++ b/app/scripts/lib/idStore.js
@@ -102,7 +102,7 @@ IdentityStore.prototype.getState = function () {
isInitialized: !!configManager.getWallet() && !seedWords,
isUnlocked: this._isUnlocked(),
seedWords: seedWords,
- isConfirmed: configManager.getConfirmed(),
+ isDisclaimerConfirmed: configManager.getConfirmedDisclaimer(),
unconfTxs: configManager.unconfirmedTxs(),
transactions: configManager.getTxList(),
unconfMsgs: messageManager.unconfirmedMsgs(),
@@ -243,10 +243,10 @@ IdentityStore.prototype.addUnconfirmedTransaction = function (txParams, onTxDone
], didComplete)
// perform static analyis on the target contract code
- function analyzeForDelegateCall(cb){
+ function analyzeForDelegateCall (cb) {
if (txParams.to) {
query.getCode(txParams.to, (err, result) => {
- if (err) return cb(err)
+ if (err) return cb(err.message || err)
var containsDelegateCall = self.checkForDelegateCall(result)
txData.containsDelegateCall = containsDelegateCall
cb()
@@ -256,16 +256,31 @@ IdentityStore.prototype.addUnconfirmedTransaction = function (txParams, onTxDone
}
}
- function estimateGas(cb){
- query.estimateGas(txParams, function(err, result){
- if (err) return cb(err)
+ function estimateGas (cb) {
+ var estimationParams = extend(txParams)
+ // 1 billion gas for estimation
+ var gasLimit = '0x3b9aca00'
+ estimationParams.gas = gasLimit
+ query.estimateGas(estimationParams, function (err, result) {
+ if (err) return cb(err.message || err)
+ if (result === estimationParams.gas) {
+ txData.simulationFails = true
+ query.getBlockByNumber('latest', true, function (err, block) {
+ if (err) return cb(err)
+ txData.estimatedGas = block.gasLimit
+ txData.txParams.gas = block.gasLimit
+ cb()
+ })
+ return
+ }
txData.estimatedGas = self.addGasBuffer(result)
+ txData.txParams.gas = txData.estimatedGas
cb()
})
}
function didComplete (err) {
- if (err) return cb(err)
+ if (err) return cb(err.message || err)
configManager.addTx(txData)
// signal update
self._didUpdate()
@@ -285,9 +300,10 @@ IdentityStore.prototype.checkForDelegateCall = function (codeHex) {
}
}
-const gasBuffer = new BN('100000', 10)
IdentityStore.prototype.addGasBuffer = function (gas) {
const bnGas = new BN(ethUtil.stripHexPrefix(gas), 16)
+ const five = new BN('5', 10)
+ const gasBuffer = bnGas.div(five)
const correct = bnGas.add(gasBuffer)
return ethUtil.addHexPrefix(correct.toString(16))
}