aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorDan Miller <danjm.com@gmail.com>2018-10-26 12:42:59 +0800
committerDan Miller <danjm.com@gmail.com>2018-12-04 11:36:05 +0800
commit9b9a2cc2e00618167d5fac8103e928fc16153b2d (patch)
treee17a0495531b3ea51167321809af877158a05ef7 /app
parent3162a2747c0e54f729405caaef777519e4ded4dc (diff)
downloadtangerine-wallet-browser-9b9a2cc2e00618167d5fac8103e928fc16153b2d.tar
tangerine-wallet-browser-9b9a2cc2e00618167d5fac8103e928fc16153b2d.tar.gz
tangerine-wallet-browser-9b9a2cc2e00618167d5fac8103e928fc16153b2d.tar.bz2
tangerine-wallet-browser-9b9a2cc2e00618167d5fac8103e928fc16153b2d.tar.lz
tangerine-wallet-browser-9b9a2cc2e00618167d5fac8103e928fc16153b2d.tar.xz
tangerine-wallet-browser-9b9a2cc2e00618167d5fac8103e928fc16153b2d.tar.zst
tangerine-wallet-browser-9b9a2cc2e00618167d5fac8103e928fc16153b2d.zip
Adds createSpeedUpTransaction to txController
Diffstat (limited to 'app')
-rw-r--r--app/scripts/controllers/transactions/index.js23
-rw-r--r--app/scripts/metamask-controller.js7
2 files changed, 30 insertions, 0 deletions
diff --git a/app/scripts/controllers/transactions/index.js b/app/scripts/controllers/transactions/index.js
index 9cd8429fb..f530fbd22 100644
--- a/app/scripts/controllers/transactions/index.js
+++ b/app/scripts/controllers/transactions/index.js
@@ -290,6 +290,29 @@ class TransactionController extends EventEmitter {
return newTxMeta
}
+ async createSpeedUpTransaction (originalTxId, customGasPrice) {
+ const originalTxMeta = this.txStateManager.getTx(originalTxId)
+ const { txParams } = originalTxMeta
+ const { gasPrice: lastGasPrice } = txParams
+
+ const newGasPrice = customGasPrice || bnToHex(BnMultiplyByFraction(hexToBn(lastGasPrice), 11, 10))
+
+ const newTxMeta = this.txStateManager.generateTxMeta({
+ txParams: {
+ ...txParams,
+ gasPrice: newGasPrice,
+ },
+ lastGasPrice,
+ loadingDefaults: false,
+ status: TRANSACTION_STATUS_APPROVED,
+ type: TRANSACTION_TYPE_RETRY,
+ })
+
+ this.addTx(newTxMeta)
+ await this.approveTransaction(newTxMeta.id)
+ return newTxMeta
+ }
+
/**
updates the txMeta in the txStateManager
@param txMeta {Object} - the updated txMeta
diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js
index fe806e47e..d382b1ad0 100644
--- a/app/scripts/metamask-controller.js
+++ b/app/scripts/metamask-controller.js
@@ -445,6 +445,7 @@ module.exports = class MetamaskController extends EventEmitter {
updateAndApproveTransaction: nodeify(txController.updateAndApproveTransaction, txController),
retryTransaction: nodeify(this.retryTransaction, this),
createCancelTransaction: nodeify(this.createCancelTransaction, this),
+ createSpeedUpTransaction: nodeify(this.createSpeedUpTransaction, this),
getFilteredTxList: nodeify(txController.getFilteredTxList, txController),
isNonceTaken: nodeify(txController.isNonceTaken, txController),
estimateGas: nodeify(this.estimateGas, this),
@@ -1162,6 +1163,12 @@ module.exports = class MetamaskController extends EventEmitter {
return state
}
+ async createSpeedUpTransaction (originalTxId, customGasPrice, cb) {
+ await this.txController.createSpeedUpTransaction(originalTxId, customGasPrice)
+ const state = await this.getState()
+ return state
+ }
+
estimateGas (estimateGasParams) {
return new Promise((resolve, reject) => {
return this.txController.txGasUtil.query.estimateGas(estimateGasParams, (err, res) => {