import * as wg from './walletgen'; import JSZip from 'jszip'; import saveAs from 'file-saver'; export async function generateWallet(point) { const ticket = await wg.makeTicket(point); const wallet = await wg.generateWallet(point, ticket); return wallet; } //TODO should be moved to lib/walletgen export async function downloadWallet(paper) { return new Promise((resolve, reject) => { const zip = new JSZip(); //TODO the categories here aren't explained in bridge at all... const bin0 = paper.filter(item => item.bin === '0'); const bin1 = paper.filter(item => item.bin === '1'); const bin2 = paper.filter(item => item.bin === '2'); const bin3 = paper.filter(item => item.bin === '3'); const bin4 = paper.filter(item => item.bin === '4'); const bin0Folder = zip.folder('0. Public'); const bin1Folder = zip.folder('1. Very High Friction Custody'); const bin2Folder = zip.folder('2. High Friction Custody'); const bin3Folder = zip.folder('3. Medium Friction Custody'); const bin4Folder = zip.folder('4. Low Friction Custody'); bin0.forEach(item => bin0Folder.file(`${item.pageTitle}.png`, item.png)); bin1.forEach(item => bin1Folder.file(`${item.pageTitle}.png`, item.png)); bin2.forEach(item => bin2Folder.file(`${item.pageTitle}.png`, item.png)); bin3.forEach(item => bin3Folder.file(`${item.pageTitle}.png`, item.png)); bin4.forEach(item => bin4Folder.file(`${item.pageTitle}.png`, item.png)); zip.generateAsync({ type: 'blob' }).then(content => { saveAs(content, 'urbit-wallet.zip'); resolve(true); }); }); }