on master help sign in
Use latest keygen-js

And make use of its ownership-only wallet derivation where appropriate.

commitf1f596647dd344d0b81751a3e76ffb649126913e authorFang <git@fang.io> dateWed 5 Jun 2019, 15:01 (7 years ago) parent3a53b81
4 files changed+28−10
package.json+1−1 src/bridge/lib/wallet.js+14−4 src/bridge/views/InviteTicket.js+5−5 src/walletgen/lib/lib.js+8
package.json+1−1
@@ -43,7 +43,7 @@
4343 "secp256k1": "^3.5.2",
4444 "sigil-js": "github:urbit/sigil-js#f7f29c5",
4545 "trezor-connect": "^7.0.1",
46− "urbit-key-generation": "0.12.1",
46+ "urbit-key-generation": "^0.16.0",
4747 "urbit-ob": "^3.1.0",
4848 "web3": "1.0.0-beta.54",
4949 "web3-utils": "^1.0.0-beta.52"
src/bridge/lib/wallet.js+14−4
@@ -89,7 +89,7 @@ const eqAddr = (addr0, addr1) =>
8989 toChecksumAddress(addr0) === toChecksumAddress(addr1)
9090
9191const urbitWalletFromTicket = async (ticket, point, passphrase) => {
92− if (typeof point === 'string') {
92+ if (typeof point === 'string') { //TODO why not in kg?
9393 point = ob.patp2dec(point);
9494 }
9595 let uhdw = await kg.generateWallet({
@@ -97,12 +97,21 @@ const urbitWalletFromTicket = async (ticket, point, passphrase) => {
9797 ship: point,
9898 passphrase: passphrase
9999 });
100− //TODO remove after keygen-js#61 gets released
101− uhdw.meta.ship = point;
102− uhdw.meta.passphrase = passphrase;
103100 return uhdw;
104101}
105102
103+
104+const ownershipWalletFromTicket = async (ticket, point, passphrase) => {
105+ if (typeof point === 'string') { //TODO why not in kg?
106+ point = ob.patp2dec(point);
107+ }
108+ return await kg.generateOwnershipWallet({
109+ ticket,
110+ ship: point,
111+ passphrase
112+ })
113+}
114+
106115const walletFromMnemonic = (mnemonic, hdpath, passphrase) => {
107116 const seed =
108117 bip39.validateMnemonic(mnemonic)
@@ -135,6 +144,7 @@ export {
135144 addressFromSecp256k1Public,
136145 eqAddr,
137146 urbitWalletFromTicket,
147+ ownershipWalletFromTicket,
138148 walletFromMnemonic,
139149 addHexPrefix,
140150 EthereumWallet
src/bridge/views/InviteTicket.js+5−5
@@ -6,7 +6,7 @@ import * as azimuth from 'azimuth-js'
66
77import { randomPatq } from '../lib/lib'
88import { ROUTE_NAMES } from '../lib/router'
9−import { DEFAULT_HD_PATH, urbitWalletFromTicket,
9+import { DEFAULT_HD_PATH, ownershipWalletFromTicket,
1010 walletFromMnemonic, addressFromSecp256k1Public } from '../lib/wallet'
1111import { BRIDGE_ERROR } from '../lib/error'
1212import { INVITE_STAGES, WALLET_STATES, TRANSACTION_STATES } from '../lib/invite'
@@ -71,12 +71,12 @@ class InviteTicket extends React.Component {
7171 });
7272
7373 //NOTE ~zod because tmp wallet
74− const uhdw = await urbitWalletFromTicket(inviteTicket, '~zod');
75− const mnemonic = uhdw.ownership.seed;
74+ const ownership = await ownershipWalletFromTicket(inviteTicket, 0);
75+ const mnemonic = ownership.seed;
76+ //TODO isn't all this accessible in the ownership object?
7677 const inviteWallet = walletFromMnemonic(
7778 mnemonic,
78− DEFAULT_HD_PATH,
79− uhdw.meta.passphrase
79+ DEFAULT_HD_PATH
8080 ).matchWith({
8181 Just: w => w.value,
8282 Nothing: () => {
src/walletgen/lib/lib.js+8
@@ -60,6 +60,13 @@ const generateWallet = async (point, ticket, boot) => {
6060 return wallet;
6161}
6262
63+const generateOwnershipWallet = async (point, ticket) => {
64+ return await kg.generateOwnershipWallet({
65+ ship: point,
66+ ticket
67+ });
68+}
69+
6370const seq = num => Array.from(Array(num), (_, i) => i)
6471
6572const compose = (...fs) => fs.reduceRight((pF, nF) => (...args) => nF(pF(...args)), v => v)
@@ -67,6 +74,7 @@ const compose = (...fs) => fs.reduceRight((pF, nF) => (...args) => nF(pF(...args
6774export {
6875 makeTicket,
6976 generateWallet,
77+ generateOwnershipWallet,
7078 compose,
7179 seq,
7280}