on master help sign in
Merge pull request #573 from pkova/master

bitcoin: add flow for viewing bitcoin extended key

commit31269bcddf878fb989db04d39e69b05a295ac917 authorfang <github@fang.io> dateMon 7 Jun 2021, 13:46 (5 years ago) parent74b4047a21a5c5
3 files changed+17−33
package.json+1−1 src/lib/flowCommand.js+6 src/views/Login.js+10−32
package.json+1−1
@@ -22,7 +22,7 @@
2222 "@welldone-software/why-did-you-render": "^3.2.3",
2323 "async-retry": "^1.2.3",
2424 "azimuth-js": "^0.22.1",
25− "azimuth-solidity": "^1.2.2",
25+ "azimuth-solidity": "^1.2.3",
2626 "bip32": "^1.0.2",
2727 "bip39": "^2.5.0",
2828 "bitcoinjs-lib": "^5.2.0",
src/lib/flowCommand.js+6
@@ -12,10 +12,13 @@ import { isValidAddress } from './wallet';
1212// ? kind = btc
1313// & utx = somebase64string
1414//
15+// ? kind = xpub
16+//
1517
1618const COMMANDS = {
1719 TAKE_LOCKUP: 'takeLockup',
1820 BITCOIN: 'btc',
21+ XPUB: 'xpub',
1922};
2023
2124const useFlowCommand = () => {
@@ -51,6 +54,9 @@ const useFlowCommand = () => {
5154 }
5255 break;
5356 //
57+ case COMMANDS.XPUB:
58+ break;
59+ //
5460 default:
5561 console.log('unrecognized kind of flow:', flow.kind);
5662 // eslint-disable-next-line no-fallthrough
src/views/Login.js+10−32
@@ -1,51 +1,21 @@
11import React, { useCallback, useState } from 'react';
2−import { P, H4, H5, Grid, Text, Button, Flex, LinkButton } from 'indigo-react';
2+import { Grid, Text, Button, Flex, LinkButton } from 'indigo-react';
33
44import { version } from '../../package.json';
55
66import { useHistory } from 'store/history';
7−import { useWallet } from 'store/wallet';
8−import { usePointCursor } from 'store/pointCursor';
97
10−import { WALLET_TYPES } from 'lib/wallet';
118import { COMMANDS, useFlowCommand } from 'lib/flowCommand';
129
1310import View from 'components/View';
14−import Tabs from 'components/Tabs';
15−import Crumbs from 'components/Crumbs';
1611import Footer from 'components/Footer';
17−import { ForwardButton, OfflineButton } from 'components/Buttons';
1812
1913import Ticket from './Login/Ticket';
2014import Other from './Login/Other';
2115
22−const NAMES = {
23− TICKET: 'TICKET',
24− OTHER: 'OTHER',
25−};
26−
27−const VIEWS = {
28− [NAMES.TICKET]: Ticket,
29− [NAMES.OTHER]: Other,
30−};
31−
32−const OPTIONS = [
33− { text: 'Master Ticket', value: NAMES.TICKET },
34− { text: 'Other', value: NAMES.OTHER },
35−];
36−
37−const walletTypeToViewName = walletType => {
38− if (walletType === WALLET_TYPES.TICKET || !walletType) {
39− return NAMES.TICKET;
40− }
41− return NAMES.OTHER;
42−};
43−
4416export default function Login() {
4517 // globals
46− const { pop, push, names } = useHistory();
47− const { walletType } = useWallet();
48− const { setPointCursor } = usePointCursor();
18+ const { push, names } = useHistory();
4919 const flow = useFlowCommand();
5020
5121 // inputs
@@ -63,11 +33,16 @@ export default function Login() {
6333 switch (flow.kind) {
6434 case COMMANDS.TAKE_LOCKUP:
6535 push(names.ACCEPT_LOCKUP);
36+ break;
6637 //
6738 case COMMANDS.BITCOIN:
6839 push(names.BITCOIN_SIGN_TRANSACTION);
6940 break;
7041 //
42+ case COMMANDS.XPUB:
43+ push(names.BITCOIN_XPUB);
44+ break;
45+ //
7146 default:
7247 throw new Error('unimplemented flow ' + flow.kind);
7348 }
@@ -83,6 +58,9 @@ export default function Login() {
8358 case COMMANDS.BITCOIN:
8459 return <>To sign a Bitcoin transaction, please sign in.</>;
8560 //
61+ case COMMANDS.XPUB:
62+ return <>To view your Bitcoin extended public key, please sign in</>;
63+ //
8664 default:
8765 return <>Flow: {command.kind}</>;
8866 }