diff options
author | kumavis <aaron@kumavis.me> | 2018-05-25 06:51:46 +0800 |
---|---|---|
committer | kumavis <aaron@kumavis.me> | 2018-05-25 06:51:46 +0800 |
commit | aab9691c42184b81cdf7086d389bb74279e867bf (patch) | |
tree | bf53c8282d447a5fbe36d7bf235fbf0037498eb9 /app/scripts/lib/typed-message-manager.js | |
parent | 68aa1cce5f4a1e502cccfba29c3f17f3b29b1527 (diff) | |
download | tangerine-wallet-browser-aab9691c42184b81cdf7086d389bb74279e867bf.tar.gz tangerine-wallet-browser-aab9691c42184b81cdf7086d389bb74279e867bf.tar.zst tangerine-wallet-browser-aab9691c42184b81cdf7086d389bb74279e867bf.zip |
provider - update wallet hooks for new wallet middleware
Diffstat (limited to 'app/scripts/lib/typed-message-manager.js')
-rw-r--r-- | app/scripts/lib/typed-message-manager.js | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/app/scripts/lib/typed-message-manager.js b/app/scripts/lib/typed-message-manager.js index c58921610..e5e1c94b3 100644 --- a/app/scripts/lib/typed-message-manager.js +++ b/app/scripts/lib/typed-message-manager.js @@ -72,11 +72,40 @@ module.exports = class TypedMessageManager extends EventEmitter { * this.memStore. Before any of this is done, msgParams are validated * * @param {Object} msgParams The params for the eth_sign call to be made after the message is approved. + * @param {Object} req (optional) The original request object possibly containing the origin + * @returns {promise} When the message has been signed or rejected + * + */ + addUnapprovedMessageAsync (msgParams, req) { + return new Promise((resolve, reject) => { + const msgId = this.addUnapprovedMessage(msgParams, req) + this.once(`${msgId}:finished`, (data) => { + switch (data.status) { + case 'signed': + return resolve(data.rawSig) + case 'rejected': + return reject(new Error('MetaMask Message Signature: User denied message signature.')) + default: + return reject(new Error(`MetaMask Message Signature: Unknown problem: ${JSON.stringify(msgParams)}`)) + } + }) + }) + } + + /** + * Creates a new TypedMessage with an 'unapproved' status using the passed msgParams. this.addMsg is called to add + * the new TypedMessage to this.messages, and to save the unapproved TypedMessages from that list to + * this.memStore. Before any of this is done, msgParams are validated + * + * @param {Object} msgParams The params for the eth_sign call to be made after the message is approved. + * @param {Object} req (optional) The original request object possibly containing the origin * @returns {number} The id of the newly created TypedMessage. * */ - addUnapprovedMessage (msgParams) { + addUnapprovedMessage (msgParams, req) { this.validateParams(msgParams) + // add origin from request + if (req) msgParams.origin = req.origin log.debug(`TypedMessageManager addUnapprovedMessage: ${JSON.stringify(msgParams)}`) // create txData obj with parameters and meta data |