@@ -7,7 +7,7 @@ import * as kg from 'urbit-key-generation/dist/index';
7import { Row, Col, H1, P, Warning, CheckboxButton } from '../components/Base';
7import { Row, Col, H1, P, Warning, CheckboxButton } from '../components/Base';
9import StatelessTransaction from '../components/StatelessTransaction';
9import StatelessTransaction from '../components/StatelessTransaction';
10−import { attemptSeedDerivation } from '../lib/keys';
10+import { attemptNetworkSeedDerivation } from '../lib/keys';
12import { addHexPrefix } from '../lib/wallet';
12import { addHexPrefix } from '../lib/wallet';
13import { compose } from '../lib/lib';
13import { compose } from '../lib/lib';
@@ -26,7 +26,7 @@ class SetKeys extends React.Component {
26 this.state = {
26 this.state = {
29− networkSeed: '',
29+ newNetworkSeed: '',
30 nondeterministicSeed: false,
30 nondeterministicSeed: false,
31 point: point,
31 point: point,
32 cryptoSuiteVersion: 1,
32 cryptoSuiteVersion: 1,
@@ -93,17 +93,20 @@ class SetKeys extends React.Component {
94 async deriveSeed() {
94 async deriveSeed() {
95 const next = true;
95 const next = true;
96− let seed = await attemptSeedDerivation(next, this.props);
97 let nondeterministicSeed = false;
96 let nondeterministicSeed = false;
99− if (seed.getOrElse('') === '') {
98+ const seed = await attemptNetworkSeedDerivation(next, this.props);
99+ const newNetworkSeed = seed.matchWith({
101+ nondeterministicSeed = true;
100− seed = Maybe.Just(this.randomHex(64));
102+ return this.randomHex(64);
101− nondeterministicSeed = true;
103+ },
104 this.setState({
107 this.setState({
105− networkSeed: seed.getOrElse(''),
108+ newNetworkSeed,
106− nondeterministicSeed: nondeterministicSeed,
109+ nondeterministicSeed,
@@ -114,11 +117,12 @@ class SetKeys extends React.Component {
115 const validPoint = need.pointCursor(props);
118 const validPoint = need.pointCursor(props);
120+ // TODO: move this to a lib for validating things
117 const hexRegExp = /[0-9A-Fa-f]{64}/g;
121 const hexRegExp = /[0-9A-Fa-f]{64}/g;
119− if (hexRegExp.test(state.networkSeed)) {
123+ if (hexRegExp.test(state.newNetworkSeed)) {
120 // derive network keys
124 // derive network keys
121− const pair = kg.deriveNetworkKeys(state.networkSeed);
125+ const pair = kg.deriveNetworkKeys(state.newNetworkSeed);
123 const pencr = addHexPrefix(pair.crypt.public);
127 const pencr = addHexPrefix(pair.crypt.public);
124 const pauth = addHexPrefix(pair.auth.public);
128 const pauth = addHexPrefix(pair.auth.public);
@@ -142,7 +146,7 @@ class SetKeys extends React.Component {
142 const { props, state } = this;
146 const { props, state } = this;
144 const canGenerate =
148 const canGenerate =
145− state.networkSeed.length === 64 && state.networkSeed.length === 64;
149+ state.newNetworkSeed.length === 64 && state.newNetworkSeed.length === 64;
147 const pointDetails = need.fromPointCache(props, state.point);
151 const pointDetails = need.fromPointCache(props, state.point);
@@ -191,7 +195,7 @@ class SetKeys extends React.Component {
192 canGenerate={canGenerate}
196 canGenerate={canGenerate}
193 createUnsignedTxn={this.createUnsignedTxn}
197 createUnsignedTxn={this.createUnsignedTxn}
194− newNetworkSeed={state.networkSeed}
198+ newNetworkSeed={state.newNetworkSeed}
195 newRevision={parseInt(pointDetails.keyRevisionNumber) + 1}
199 newRevision={parseInt(pointDetails.keyRevisionNumber) + 1}