on 8aed2cb help sign in
bridge/src/lib/invite.js
41 lines 1.6 kB history raw
1import * as wg from './walletgen';
3import JSZip from 'jszip';
4import saveAs from 'file-saver';
6export async function generateWallet(point) {
7 const ticket = await wg.makeTicket(point);
8 const wallet = await wg.generateWallet(point, ticket);
9 return wallet;
12//TODO should be moved to lib/walletgen
13export async function downloadWallet(paper) {
14 return new Promise((resolve, reject) => {
15 const zip = new JSZip();
16 //TODO the categories here aren't explained in bridge at all...
18 const bin0 = paper.filter(item => item.bin === '0');
19 const bin1 = paper.filter(item => item.bin === '1');
20 const bin2 = paper.filter(item => item.bin === '2');
21 const bin3 = paper.filter(item => item.bin === '3');
22 const bin4 = paper.filter(item => item.bin === '4');
24 const bin0Folder = zip.folder('0. Public');
25 const bin1Folder = zip.folder('1. Very High Friction Custody');
26 const bin2Folder = zip.folder('2. High Friction Custody');
27 const bin3Folder = zip.folder('3. Medium Friction Custody');
28 const bin4Folder = zip.folder('4. Low Friction Custody');
30 bin0.forEach(item => bin0Folder.file(`${item.pageTitle}.png`, item.png));
31 bin1.forEach(item => bin1Folder.file(`${item.pageTitle}.png`, item.png));
32 bin2.forEach(item => bin2Folder.file(`${item.pageTitle}.png`, item.png));
33 bin3.forEach(item => bin3Folder.file(`${item.pageTitle}.png`, item.png));
34 bin4.forEach(item => bin4Folder.file(`${item.pageTitle}.png`, item.png));
36 zip.generateAsync({ type: 'blob' }).then(content => {
37 saveAs(content, 'urbit-wallet.zip');
38 resolve(true);
39 });
40 });