|
|
@ -35,12 +35,12 @@ class SimpleKeyring extends EventEmitter { |
|
|
|
newWallets.push(Wallet.generate()) |
|
|
|
newWallets.push(Wallet.generate()) |
|
|
|
} |
|
|
|
} |
|
|
|
this.wallets = this.wallets.concat(newWallets) |
|
|
|
this.wallets = this.wallets.concat(newWallets) |
|
|
|
const hexWallets = newWallets.map(w => w.getAddress().toString('hex')) |
|
|
|
const hexWallets = newWallets.map(w => ethUtil.bufferToHex(w.getAddress())) |
|
|
|
return Promise.resolve(hexWallets) |
|
|
|
return Promise.resolve(hexWallets) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
getAccounts () { |
|
|
|
getAccounts () { |
|
|
|
return Promise.resolve(this.wallets.map(w => w.getAddress().toString('hex'))) |
|
|
|
return Promise.resolve(this.wallets.map(w => ethUtil.bufferToHex(w.getAddress()))) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// tx is an instance of the ethereumjs-transaction class.
|
|
|
|
// tx is an instance of the ethereumjs-transaction class.
|
|
|
@ -54,6 +54,7 @@ class SimpleKeyring extends EventEmitter { |
|
|
|
// For eth_sign, we need to sign transactions:
|
|
|
|
// For eth_sign, we need to sign transactions:
|
|
|
|
signMessage (withAccount, data) { |
|
|
|
signMessage (withAccount, data) { |
|
|
|
const wallet = this._getWalletForAccount(withAccount) |
|
|
|
const wallet = this._getWalletForAccount(withAccount) |
|
|
|
|
|
|
|
|
|
|
|
const message = ethUtil.removeHexPrefix(data) |
|
|
|
const message = ethUtil.removeHexPrefix(data) |
|
|
|
var privKey = wallet.getPrivateKey() |
|
|
|
var privKey = wallet.getPrivateKey() |
|
|
|
var msgSig = ethUtil.ecsign(new Buffer(message, 'hex'), privKey) |
|
|
|
var msgSig = ethUtil.ecsign(new Buffer(message, 'hex'), privKey) |
|
|
@ -70,7 +71,9 @@ class SimpleKeyring extends EventEmitter { |
|
|
|
/* PRIVATE METHODS */ |
|
|
|
/* PRIVATE METHODS */ |
|
|
|
|
|
|
|
|
|
|
|
_getWalletForAccount (account) { |
|
|
|
_getWalletForAccount (account) { |
|
|
|
return this.wallets.find(w => w.getAddress().toString('hex') === account) |
|
|
|
let wallet = this.wallets.find(w => ethUtil.bufferToHex(w.getAddress()) === account) |
|
|
|
|
|
|
|
if (!wallet) throw new Error('Simple Keyring - Unable to find matching address.') |
|
|
|
|
|
|
|
return wallet |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|