diff options
author | Dan Miller <danjm.com@gmail.com> | 2018-10-26 12:42:59 +0800 |
---|---|---|
committer | Dan Miller <danjm.com@gmail.com> | 2018-12-04 11:36:05 +0800 |
commit | 9b9a2cc2e00618167d5fac8103e928fc16153b2d (patch) | |
tree | e17a0495531b3ea51167321809af877158a05ef7 /app | |
parent | 3162a2747c0e54f729405caaef777519e4ded4dc (diff) | |
download | tangerine-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.js | 23 | ||||
-rw-r--r-- | app/scripts/metamask-controller.js | 7 |
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) => { |