aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/metamask-controller.js
diff options
context:
space:
mode:
authorFrankie <frankie.diamond@gmail.com>2017-01-05 05:04:33 +0800
committerFrankie <frankie.diamond@gmail.com>2017-01-05 05:04:33 +0800
commite6da8e2762cd54975c334314357f1cd27cc980c8 (patch)
tree995589dbb09b07b0b19e9d956aff49e0c9854bd4 /app/scripts/metamask-controller.js
parentfb002dc44eae82e0471b8b52acecc61ba5f39332 (diff)
downloadtangerine-wallet-browser-e6da8e2762cd54975c334314357f1cd27cc980c8.tar
tangerine-wallet-browser-e6da8e2762cd54975c334314357f1cd27cc980c8.tar.gz
tangerine-wallet-browser-e6da8e2762cd54975c334314357f1cd27cc980c8.tar.bz2
tangerine-wallet-browser-e6da8e2762cd54975c334314357f1cd27cc980c8.tar.lz
tangerine-wallet-browser-e6da8e2762cd54975c334314357f1cd27cc980c8.tar.xz
tangerine-wallet-browser-e6da8e2762cd54975c334314357f1cd27cc980c8.tar.zst
tangerine-wallet-browser-e6da8e2762cd54975c334314357f1cd27cc980c8.zip
Fix signing of transactions
Diffstat (limited to 'app/scripts/metamask-controller.js')
-rw-r--r--app/scripts/metamask-controller.js30
1 files changed, 19 insertions, 11 deletions
diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js
index 5df10672a..32e9faab2 100644
--- a/app/scripts/metamask-controller.js
+++ b/app/scripts/metamask-controller.js
@@ -176,10 +176,25 @@ module.exports = class MetamaskController {
},
// tx signing
approveTransaction: this.newUnsignedTransaction.bind(this),
- signTransaction: (...args) => {
- this.setupSigningListners(...args)
- this.txManager.formatTxForSigining(...args)
- this.sendUpdate()
+ signTransaction: (txParams, cb) => {
+ this.txManager.formatTxForSigining(txParams)
+ .then(({ethTx, address, txId}) => {
+ return this.keyringController.signTransaction(ethTx, address, txId)
+ })
+ .then(({tx, txId}) => {
+ return this.txManager.resolveSignedTransaction({tx, txId})
+ })
+ .then((rawTx) => {
+ cb(null, rawTx)
+ })
+ .catch((err) => {
+ console.error(err)
+ cb(err)
+ })
+ .then(() => {
+ this.sendUpdate()
+ this.txManager.emit(`${txParams.metamaskId}:signingComplete`)
+ })
},
// msg signing
@@ -257,13 +272,6 @@ module.exports = class MetamaskController {
})
}
- setupSigningListners (txParams) {
- var txId = txParams.metamaskId
- // apply event listeners for signing and formating events
- this.txManager.once(`${txId}:formatted`, this.keyringController.signTransaction.bind(this.keyringController))
- this.keyringController.once(`${txId}:signed`, this.txManager.resolveSignedTransaction.bind(this.txManager))
- }
-
enforceTxValidations (txParams) {
if (('value' in txParams) && txParams.value.indexOf('-') === 0) {
const msg = `Invalid transaction value of ${txParams.value} not a positive number.`