aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/keyrings
diff options
context:
space:
mode:
authorDan Finlay <dan@danfinlay.com>2016-10-21 07:44:31 +0800
committerDan Finlay <dan@danfinlay.com>2016-10-21 07:45:58 +0800
commit55d56f77cf42a9c4e80768fd7e4a9bb6f0485606 (patch)
tree188e95248f865459b5a816ea51f889145f43d92b /app/scripts/keyrings
parent351c8e2086e043ee66e42f653dcb2b446dd88808 (diff)
downloadtangerine-wallet-browser-55d56f77cf42a9c4e80768fd7e4a9bb6f0485606.tar.gz
tangerine-wallet-browser-55d56f77cf42a9c4e80768fd7e4a9bb6f0485606.tar.zst
tangerine-wallet-browser-55d56f77cf42a9c4e80768fd7e4a9bb6f0485606.zip
Began adding first basic keyring
Diffstat (limited to 'app/scripts/keyrings')
-rw-r--r--app/scripts/keyrings/simple.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/app/scripts/keyrings/simple.js b/app/scripts/keyrings/simple.js
new file mode 100644
index 000000000..3eda9b8f9
--- /dev/null
+++ b/app/scripts/keyrings/simple.js
@@ -0,0 +1,41 @@
+const EventEmitter = require('events').EventEmitter
+const Wallet = require('ethereumjs-wallet')
+const type = 'Simple Key Pair'
+
+module.exports = class SimpleKeyring extends EventEmitter {
+
+ static type() {
+ return type
+ }
+
+ constructor(opts) {
+ super()
+ this.type = type
+ this.opts = opts || {}
+ const walletData = this.opts.wallets || []
+ this.wallets = walletData.map((w) => {
+ return Wallet.fromPrivateKey(w)
+ })
+ }
+
+ serialize() {
+ return {
+ type,
+ wallets: this.wallets.map(w => w.getPrivateKey()),
+ }
+ }
+
+ addAccounts(n = 1) {
+ var newWallets = []
+ for (var i = 0; i < n; i++) {
+ newWallets.push(Wallet.generate())
+ }
+ this.wallets.concat(newWallets)
+ return newWallets.map(w => w.getAddress())
+ }
+
+ getAccounts() {
+ return this.wallets.map(w => w.getAddress())
+ }
+
+}