From ae3993b6d752207115a4767247caddbb42c197e3 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Wed, 15 Jun 2016 14:58:06 -0700 Subject: Factor idManagement into its own module --- app/scripts/lib/idStore.js | 77 +--------------------------------------------- 1 file changed, 1 insertion(+), 76 deletions(-) (limited to 'app/scripts/lib/idStore.js') diff --git a/app/scripts/lib/idStore.js b/app/scripts/lib/idStore.js index e77ba87f8..68a38bc0b 100644 --- a/app/scripts/lib/idStore.js +++ b/app/scripts/lib/idStore.js @@ -11,6 +11,7 @@ const autoFaucet = require('./auto-faucet') const configManager = require('./config-manager-singleton') const messageManager = require('./message-manager') const DEFAULT_RPC = 'https://testrpc.metamask.io/' +const IdManagement = require('./id-management') module.exports = IdentityStore @@ -451,82 +452,6 @@ IdentityStore.prototype._autoFaucet = function() { autoFaucet(addresses[0]) } -function IdManagement(opts) { - if (!opts) opts = {} - - this.keyStore = opts.keyStore - this.derivedKey = opts.derivedKey - this.hdPathString = "m/44'/60'/0'/0" - - this.getAddresses = function(){ - return keyStore.getAddresses(this.hdPathString).map(function(address){ return '0x'+address }) - } - - this.signTx = function(txParams){ - // normalize values - txParams.to = ethUtil.addHexPrefix(txParams.to) - txParams.from = ethUtil.addHexPrefix(txParams.from) - txParams.value = ethUtil.addHexPrefix(txParams.value) - txParams.data = ethUtil.addHexPrefix(txParams.data) - txParams.gasLimit = ethUtil.addHexPrefix(txParams.gasLimit || txParams.gas) - txParams.nonce = ethUtil.addHexPrefix(txParams.nonce) - var tx = new Transaction(txParams) - - // sign tx - var privKeyHex = this.exportPrivateKey(txParams.from) - var privKey = ethUtil.toBuffer(privKeyHex) - tx.sign(privKey) - - // Add the tx hash to the persisted meta-tx object - var txHash = ethUtil.bufferToHex(tx.hash()) - var metaTx = configManager.getTx(txParams.metamaskId) - metaTx.hash = txHash - configManager.updateTx(metaTx) - - // return raw serialized tx - var rawTx = ethUtil.bufferToHex(tx.serialize()) - return rawTx - } - - this.signMsg = function(address, message){ - // sign message - var privKeyHex = this.exportPrivateKey(address) - var privKey = ethUtil.toBuffer(privKeyHex) - var msgBuffer = new Buffer(message.replace('0x',''), 'hex') - var msgSig = ethUtil.ecsign(msgBuffer, privKey) - var rawMsgSig = ethUtil.bufferToHex(concatSig(msgSig.v, msgSig.r, msgSig.s)) - return rawMsgSig - } - - this.getSeed = function(){ - return this.keyStore.getSeed(this.derivedKey) - } - - this.exportPrivateKey = function(address) { - var privKeyHex = ethUtil.addHexPrefix(this.keyStore.exportPrivateKey(address, this.derivedKey, this.hdPathString)) - return privKeyHex - } -} - - // util function noop(){} - -function pad_with_zeroes(number, length){ - var my_string = '' + number; - while (my_string.length < length) { - my_string = '0' + my_string; - } - return my_string; -} - -function concatSig(v, r, s) { - r = pad_with_zeroes(ethUtil.fromSigned(r), 64) - s = pad_with_zeroes(ethUtil.fromSigned(s), 64) - v = ethUtil.bufferToInt(v) - r = ethUtil.toUnsigned(r).toString('hex') - s = ethUtil.toUnsigned(s).toString('hex') - v = ethUtil.stripHexPrefix(ethUtil.intToHex(v)) - return ethUtil.addHexPrefix(r.concat(s, v).toString("hex")) -} -- cgit v1.2.3