on master help sign in
Merge pull request #588 from urbit/m/passport-keyfile

passport: include keyfile when available

commit551b1333e6ca5b18e351d084c7d0e66489bfc659 authortomholford <16504501+tomholford@users.noreply.github.com> dateWed 30 Jun 2021, 15:56 (5 years ago) parent81070fa117708d
4 files changed+21−9
src/lib/invite.js+7−3 src/views/Activate/ActivateCode.js+1−1 src/views/Activate/PassportDownload.js+8−3 src/views/UrbitID/DownloadKeys.js+5−2
src/lib/invite.js+7−3
@@ -3,14 +3,14 @@ import * as wg from './walletgen';
33import JSZip from 'jszip';
44import saveAs from 'file-saver';
55
6−export async function generateWallet(point) {
6+export async function generateWallet(point, boot) {
77 const ticket = await wg.makeTicket(point);
8− const wallet = await wg.generateWallet(point, ticket);
8+ const wallet = await wg.generateWallet(point, ticket, boot);
99 return wallet;
1010}
1111
1212//TODO should be moved to lib/walletgen
13−export async function downloadWallet(paperWallets) {
13+export async function downloadWallet(paperWallets, keyfile, keyfilename) {
1414 if (paperWallets.length === 1) {
1515 const zip = new JSZip();
1616
@@ -24,6 +24,10 @@ export async function downloadWallet(paperWallets) {
2424 folder.file(filename, frame.image);
2525 });
2626
27+ if (keyfile && keyfilename) {
28+ folder.file(keyfilename, keyfile);
29+ }
30+
2731 await zip.generateAsync({ type: 'blob' }).then(content => {
2832 saveAs(content, `${zipName}.zip`);
2933 // resolve(true);
src/views/Activate/ActivateCode.js+1−1
@@ -127,7 +127,7 @@ export default function ActivateCode() {
127127
128128 setDerivedPoint(Just(point));
129129 setInviteWallet(inviteWallet);
130− setDerivedWallet(Just(await generateWallet(point)));
130+ setDerivedWallet(Just(await generateWallet(point, true)));
131131 } else {
132132 return {
133133 [FORM_ERROR]:
src/views/Activate/PassportDownload.js+8−3
@@ -1,10 +1,12 @@
11import React, { useState, useEffect, useCallback } from 'react';
22import { Just, Nothing } from 'folktale/maybe';
33import { Grid, P } from 'indigo-react';
4+import ob from 'urbit-ob';
45
56import * as need from 'lib/need';
67import { downloadWallet } from 'lib/invite';
78import { useLocalRouter } from 'lib/LocalRouter';
9+import { compileNetworkingKey } from 'lib/keys';
810
911import { DownloadButton, ForwardButton } from 'components/Buttons';
1012import PaperBuilder from 'components/PaperBuilder';
@@ -20,7 +22,7 @@ export default function PassportDownload({ className }) {
2022 setGenerated,
2123 } = useActivateFlow();
2224 const { push, names } = useLocalRouter();
23− // const point = need.point(derivedPoint);
25+ const point = need.point(derivedPoint);
2426 const wallet = need.wallet(derivedWallet);
2527
2628 const [paper, setPaper] = useState(Nothing());
@@ -32,9 +34,12 @@ export default function PassportDownload({ className }) {
3234 });
3335
3436 const download = useCallback(() => {
35− downloadWallet(paper.getOrElse([]));
37+ const netkey = compileNetworkingKey(wallet.network.keys, point, 1);
38+ //TODO could be deduplicated with useKeyfileGenerator's logic
39+ const filename = ob.patp(point).slice(1) + '-1.key';
40+ downloadWallet(paper.getOrElse([]), netkey, filename);
3641 setDownloaded(true);
37− }, [paper, setDownloaded]);
42+ }, [paper, wallet, point, setDownloaded]);
3843
3944 // sync paper value to activation state
4045 useEffect(
src/views/UrbitID/DownloadKeys.js+5−2
@@ -8,6 +8,7 @@ import { DownloadButton, RestartButton } from 'components/Buttons';
88import PaperBuilder from 'components/PaperBuilder';
99
1010import { downloadWallet } from 'lib/invite';
11+import useKeyfileGenerator from 'lib/useKeyfileGenerator';
1112
1213import { useWallet } from 'store/wallet';
1314import { Grid, P } from 'indigo-react';
@@ -22,13 +23,15 @@ export default function AdminRedownload() {
2223 const _urbitWallet = need.wallet(urbitWallet);
2324 const point = need.point(pointCursor);
2425
26+ const { keyfile, filename } = useKeyfileGenerator();
27+
2528 const [paper, setPaper] = useState(Nothing());
2629 const [downloaded, setDownloaded] = useState(false);
2730
2831 const doDownload = useCallback(() => {
29− downloadWallet(paper.value);
32+ downloadWallet(paper.value, keyfile, filename);
3033 setDownloaded(true);
31− }, [paper, setDownloaded]);
34+ }, [paper, keyfile, filename, setDownloaded]);
3235
3336 const goBack = useCallback(() => pop(), [pop]);
3437