@@ -8,6 +8,7 @@ import { useWallet } from 'store/wallet';
88import { usePointCursor } from 'store/pointCursor';
99
1010import * as need from 'lib/need';
11+import { generateCode } from 'lib/networkCode';
1112
1213import {
1314 attemptNetworkSeedDerivation,
@@ -28,10 +29,15 @@ export default function useKeyfileGenerator(manualNetworkSeed) {
2829 const [generating, setGenerating] = useState(true);
2930 const [keyfile, setKeyfile] = useState(false);
3031
32+ const [code, setCode] = useState(false);
33+
3134 const _point = need.point(pointCursor);
32− const _details = need.details(getDetails(_point));
35+ const details = getDetails(_point);
3336
34− const networkRevision = convertToInt(_details.keyRevisionNumber, 10);
37+ const networkRevision = details.matchWith({
38+ Just: ({ value }) => convertToInt(value.keyRevisionNumber, 10),
39+ Nothing: () => 0,
40+ });
3541 const { isOwner, isManagementProxy } = useCurrentPermissions();
3642
3743 const hasNetworkingKeys = networkRevision > 0;
@@ -48,6 +54,8 @@ export default function useKeyfileGenerator(manualNetworkSeed) {
4854 return;
4955 }
5056
57+ const _details = need.details(details);
58+
5159 const networkSeed = manualNetworkSeed
5260 ? Just(manualNetworkSeed)
5361 : await attemptNetworkSeedDerivation({
@@ -71,6 +79,8 @@ export default function useKeyfileGenerator(manualNetworkSeed) {
7179
7280 const pair = deriveNetworkKeys(_networkSeed);
7381
82+ setCode(generateCode(pair));
83+
7484 if (!keysMatchChain(pair, _details)) {
7585 setGenerating(false);
7686 setNotice('Derived networking keys do not match on-chain details.');
@@ -88,7 +98,8 @@ export default function useKeyfileGenerator(manualNetworkSeed) {
8898 urbitWallet,
8999 wallet,
90100 authMnemonic,
91− _details,
101+ setCode,
102+ details,
92103 _point,
93104 ]);
94105
@@ -113,6 +124,7 @@ export default function useKeyfileGenerator(manualNetworkSeed) {
113124 downloaded,
114125 download,
115126 notice,
127+ code,
116128 };
117129
118130 return { ...values, bind: values };