Skip to content

Commit ce7ca61

Browse files
committed
Use coloration to make GUI flow easier to understand
o Add a slip39.kundert.ca watermark to the card PDF o Improve the GUI documentation o Simplify some of the GUI text
1 parent 9518302 commit ce7ca61

21 files changed

+616
-248
lines changed

GNUmakefile

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ else
4141
endif
4242

4343
# To see all pytest output, uncomment --capture=no
44-
PYTESTOPTS = -vv # --capture=no --log-cli-level=INFO
44+
PYTESTOPTS = -vv --doctest-modules # --capture=no --log-cli-level=INFO
4545

4646
PY3TEST = $(PY3) -m pytest $(PYTESTOPTS)
4747

@@ -74,7 +74,7 @@ help:
7474
@echo " print-PLATFORM prints the detected PLATFORM"
7575

7676
test:
77-
$(PY3TEST)
77+
cd slip39 && $(PY3TEST)
7878

7979

8080
analyze:
@@ -112,6 +112,7 @@ GUI_TXT = $(patsubst %.org,%.txt,$(wildcard slip39/gui/*.org))
112112
slip39/gui/SLIP-39.txt:
113113
toilet --font ascii12 SLIP-39 > $@
114114
@echo " Safe & Effective (tm) Crypto Wallet Backup and Recovery" >> $@
115+
@echo " (explanations and instructions will appear here)" >> $@
115116

116117
# Any build dependencies that are dynamically generated, and may need updating from time to time
117118
build-deps: $(GUI_TXT) slip39/gui/SLIP-39.txt
@@ -639,10 +640,10 @@ clean:
639640

640641
# Run only tests with a prefix containing the target string, eg test-blah
641642
test-%:
642-
$(PY3TEST) *$*_test.py
643+
cd slip39 && $(PY3TEST) *$*_test.py
643644

644645
unit-%:
645-
$(PY3TEST) -k $*
646+
cd slip39 && $(PY3TEST) -k $*
646647

647648

648649
#

README.org

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ by entering the mnemonics right on the device.
135135
#+ATTR_LATEX: :width 6in :options angle=0
136136
[[./images/slip39-cards.png]]
137137

138-
Run the following to obtain a PDF file containing index cards with the default SLIP-39 groups for
138+
Run the following to obtain a PDF file containing business cards with the default SLIP-39 groups for
139139
a new account seed named "Personal"; insert a USB drive to collect the output, and run:
140140

141141
#+LATEX: {\scriptsize
@@ -151,9 +151,10 @@ by entering the mnemonics right on the device.
151151

152152
The resultant PDF will be output into the designated file.
153153

154-
This PDF file can be printed on 3x5 index cards, or on regular paper or card stock and the cards
155-
can be cut out (=--card credit= , =business=, =half= (page) and =third= (page) are also
156-
available, as well as custom ="(<h>,<w>),<margin>"=).
154+
This PDF file contains business card sized SLIP-39 Mnemonic cards, and will print on a single
155+
page of 8-1/2"x11" paper or card stock, and the cards can be cut out (=--card index=, =credit=,
156+
=half= (page), =third= and =quarter= are also available, as well as 4x6 =photo= and custom
157+
="(<h>,<w>),<margin>"=).
157158

158159
To get the data printed on the terminal as in this example (so you could write it down on cards
159160
instead), add a =-v= (to see it logged in a tabular format), or =--text= to have it printed to
@@ -320,9 +321,9 @@ by entering the mnemonics right on the device.
320321
: --passphrase PASSPHRASE
321322
: Encrypt the master secret w/ this passphrase, '-'
322323
: reads it from stdin (default: None/'')
323-
: -C CARD, --card CARD Card size; index, credit, business, half, third,
324+
: -C CARD, --card CARD Card size; business, credit, index, half, third,
324325
: quarter, photo or '(<h>,<w>),<margin>' (default:
325-
: index)
326+
: business)
326327
: --paper PAPER Paper size (default: Letter)
327328
: --no-card Disable PDF SLIP-39 mnemonic card output
328329
: --text Enable textual SLIP-39 mnemonic output to stdout

README.pdf

60 Bytes
Binary file not shown.

README.txt

Lines changed: 121 additions & 120 deletions
Large diffs are not rendered by default.

SLIP-39-macOS.spec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ coll = COLLECT(exe,
5050
app = BUNDLE(coll,
5151
name='SLIP-39.app',
5252
icon='images/SLIP-39.icns',
53-
version='8.2.1',
53+
version='8.3.0',
5454
info_plist={
55-
'CFBundleVersion':'8.2.1',
55+
'CFBundleVersion':'8.3.0',
5656
'CFBundlePackageType':'APPL',
5757
'LSApplicationCategoryType':'public.app-category.finance',
5858
'LSMinimumSystemVersion':'10.15.0',

slip39/defaults.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
"Frens3/6"
3636
]
3737

38+
THEME = 'DarkAmber' # PySimpleGUI Theme
3839
FONTS = dict(
3940
sans = 'helvetica',
4041
mono = 'courier',
@@ -44,17 +45,17 @@
4445
BUSINESS_CARD = (2, 3+1/2), 1/32 # noqa: E241
4546
CREDIT_CARD = (2+1/4, 3+3/8), 1/32
4647
INDEX_CARD = (3, 5), 1/16 # noqa: E241
47-
PHOTO_CARD = (3+1/2, 5+1/2), 1/16 # prints on 4x6 photo paper w/ 1/4" default outer border
4848
HALF_LETTER = (13.5/3,8), 1/8 # noqa: E241 (actually, 2/letter, 3/legal)
4949
THIRD_LETTER = (13.5/4,8), 1/8 # noqa: E241 (actually, 3/letter, 4/legal)
5050
QUARTER_LETTER = (10.5/4,8), 1/8 # noqa: E241 (actually, 4/letter, 5/legal)
51+
PHOTO_CARD = (3+1/2, 5+1/2), 1/16 # prints on 4x6 photo paper w/ 1/4" default outer border
5152

5253
# SLIP-39 Mnemonic Card Sizes
53-
CARD = 'index'
54+
CARD = 'business'
5455
CARD_SIZES = dict(
55-
index = INDEX_CARD,
56-
credit = CREDIT_CARD,
5756
business = BUSINESS_CARD,
57+
credit = CREDIT_CARD,
58+
index = INDEX_CARD,
5859
half = HALF_LETTER,
5960
third = THIRD_LETTER,
6061
quarter = THIRD_LETTER,

slip39/gui/SLIP-39-CRYPTO.org

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,36 @@
22
#+OPTIONS: toc:nil title:nil author:nil
33

44
#+BEGIN_ABSTRACT
5-
Cryptocurrencies Wallet addresses to display, and Paper Wallets to produce (if password supplied).
5+
Cryptocurrencies Wallet addresses to display, and the Paper Wallets to produce (if a password is
6+
supplied). The cryptocurrencies supported, and the standard BIP-44 derivation paths (Trezor
7+
compatible) displayed are:
8+
9+
| Controls | Crypto | Semantic | Path | Address | Support |
10+
|----------+--------+----------+------------------+---------+---------|
11+
| Basic | ETH | Legacy | m/44'/60'/0'/0/0 | 0x... | |
12+
| Basic | BTC | Bech32 | m/84'/ 0'/0'/0/0 | bc1... | |
13+
| | | SegWit | m/44'/ 0'/0'/0/0 | 3... | |
14+
| | | Legacy | m/44'/ 0'/0'/0/0 | 1... | |
15+
| Extra | LTC | Bech32 | m/84'/ 2'/0'/0/0 | ltc1... | |
16+
| | | SegWit | m/44'/ 2'/0'/0/0 | M... | |
17+
| | | Legacy | m/44'/ 2'/0'/0/0 | L... | |
18+
| Extra | DOGE | Legacy | m/44'/ 3'/0'/0/0 | D... | |
19+
| Pro | BNB | Legacy | m/44'/60'/0'/0/0 | 0x... | Beta |
20+
| Pro | CRO | Bech32 | m/44'/60'/0'/0/0 | crc1... | Beta |
621

722
On each SLIP-39 card, up to 2 Wallet addresses and QR codes will be displayed, for information
8-
purposes only, to illustrate *which* Wallets are derived from this Seed. The cryptocurrencies
9-
supported, and the standard BIP-44 derivation paths (Trezor compatible) displayed are:
10-
11-
* Cryptocurrencies Supported
12-
13-
| Crypto | Semantic | Path | Address | Support |
14-
|--------+----------+------------------+---------+---------|
15-
| ETH | Legacy | m/44'/60'/0'/0/0 | 0x... | |
16-
| BNB | Legacy | m/44'/60'/0'/0/0 | 0x... | Beta |
17-
| CRO | Bech32 | m/44'/60'/0'/0/0 | crc1... | Beta |
18-
| BTC | Legacy | m/44'/ 0'/0'/0/0 | 1... | |
19-
| | SegWit | m/44'/ 0'/0'/0/0 | 3... | |
20-
| | Bech32 | m/84'/ 0'/0'/0/0 | bc1... | |
21-
| LTC | Legacy | m/44'/ 2'/0'/0/0 | L... | |
22-
| | SegWit | m/44'/ 2'/0'/0/0 | M... | |
23-
| | Bech32 | m/84'/ 2'/0'/0/0 | ltc1... | |
24-
| DOGE | Legacy | m/44'/ 3'/0'/0/0 | D... | |
25-
23+
purposes only, to illustrate *which* Wallets are derived from this Seed.
24+
#+END_ABSTRACT
2625

27-
** Cryptocurrencies In Beta Testing
26+
* Semantics
2827

29-
The BNB and CRO wallet addresses are also supported, if desired (currently in Beta testing
30-
quality). Generated Paper Wallets should be /tested/ to ensure that generated and recovered
31-
private keys are valid.
28+
By default, we produce address semantics compatible with what the Trezor hardware wallet produces
29+
(ie. Bech32, for =BTC= and =LTC=). The underlying =slip39= library is capable of producing the
30+
Legacy and SegWit forms of these addresses, if necessary.
3231

32+
* Cryptocurrencies In Beta Testing
3333

34+
The BNB and CRO wallet addresses are also supported, if desired (currently in Beta testing
35+
quality). Generated Paper Wallets should be /tested/ to ensure that generated and recovered
36+
private keys are valid.
3437

35-
#+END_ABSTRACT

slip39/gui/SLIP-39-CRYPTO.txt

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,39 @@
1-
#+BEGIN_ABSTRACT Cryptocurrencies Wallet addresses to display, and Paper
2-
Wallets to produce (if password supplied).
1+
Cryptocurrencies Wallet addresses to display, and the Paper Wallets to
2+
produce (if a password is supplied). The cryptocurrencies supported,
3+
and the standard BIP-44 derivation paths (Trezor compatible) displayed
4+
are:
5+
6+
Controls Crypto Semantic Path Address Support
7+
----------------------------------------------------------------
8+
Basic ETH Legacy m/44'/60'/0'/0/0 0x...
9+
Basic BTC Bech32 m/84'/ 0'/0'/0/0 bc1...
10+
SegWit m/44'/ 0'/0'/0/0 3...
11+
Legacy m/44'/ 0'/0'/0/0 1...
12+
Extra LTC Bech32 m/84'/ 2'/0'/0/0 ltc1...
13+
SegWit m/44'/ 2'/0'/0/0 M...
14+
Legacy m/44'/ 2'/0'/0/0 L...
15+
Extra DOGE Legacy m/44'/ 3'/0'/0/0 D...
16+
Pro BNB Legacy m/44'/60'/0'/0/0 0x... Beta
17+
Pro CRO Bech32 m/44'/60'/0'/0/0 crc1... Beta
318

419
On each SLIP-39 card, up to 2 Wallet addresses and QR codes will be
520
displayed, for information purposes only, to illustrate *which* Wallets
6-
are derived from this Seed. The cryptocurrencies supported, and the
7-
standard BIP-44 derivation paths (Trezor compatible) displayed are:
21+
are derived from this Seed.
822

923

10-
1 Cryptocurrencies Supported
11-
============================
24+
1 Semantics
25+
===========
1226

13-
Crypto Semantic Path Address Support
14-
------------------------------------------------------
15-
ETH Legacy m/44'/60'/0'/0/0 0x...
16-
BNB Legacy m/44'/60'/0'/0/0 0x... Beta
17-
CRO Bech32 m/44'/60'/0'/0/0 crc1... Beta
18-
BTC Legacy m/44'/ 0'/0'/0/0 1...
19-
SegWit m/44'/ 0'/0'/0/0 3...
20-
Bech32 m/84'/ 0'/0'/0/0 bc1...
21-
LTC Legacy m/44'/ 2'/0'/0/0 L...
22-
SegWit m/44'/ 2'/0'/0/0 M...
23-
Bech32 m/84'/ 2'/0'/0/0 ltc1...
24-
DOGE Legacy m/44'/ 3'/0'/0/0 D...
27+
By default, we produce address semantics compatible with what the
28+
Trezor hardware wallet produces (ie. Bech32, for `BTC' and `LTC').
29+
The underlying `slip39' library is capable of producing the Legacy and
30+
SegWit forms of these addresses, if necessary.
2531

2632

27-
1.1 Cryptocurrencies In Beta Testing
28-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33+
2 Cryptocurrencies In Beta Testing
34+
==================================
2935

3036
The BNB and CRO wallet addresses are also supported, if desired
3137
(currently in Beta testing quality). Generated Paper Wallets should
3238
be /tested/ to ensure that generated and recovered private keys are
3339
valid.
34-
35-
36-
37-
#+END_ABSTRACT

slip39/gui/SLIP-39-CS.org

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#+title: SLIP-39 Card Sizes
2+
#+OPTIONS: toc:nil title:nil author:nil
3+
4+
#+BEGIN_ABSTRACT
5+
Select the desired SLIP-39 card size.
6+
7+
| Controls | Card Size | Width | Height | |
8+
|----------+-----------+--------+--------+---------|
9+
| Basic | Business | 3-1/2" | 2" | Default |
10+
| Basic | Credit | 3-3/8" | 2-1/4" | |
11+
| Basic | Index | 5" | 3" | |
12+
| Extra | Half | 8" | 4.5" | |
13+
| Extra | Third | 8" | 3-3/8" | |
14+
| Extra | Quarter | 8" | 2-5/8" | |
15+
| Pro | Photo | 5-1/2" | 3-1/5" | |
16+
17+
#+END_ABSTRACT
18+
19+
* Orientation
20+
21+
SLIP-39 Cards will be laid out on the desired paper size in the most optimal
22+
orientation, to fit the most Cards on the selected paper.
23+
24+
** Paper Wallets
25+
26+
However, if Cryptocurrency "Paper Wallet" are printed, the selected Paper will always
27+
be printed in Portrait orientation.

slip39/gui/SLIP-39-CS.txt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
Select the desired SLIP-39 card size.
2+
3+
Controls Card Size Width Height
4+
----------------------------------------------
5+
Basic Business 3-1/2" 2" Default
6+
Basic Credit 3-3/8" 2-1/4"
7+
Basic Index 5" 3"
8+
Extra Half 8" 4.5"
9+
Extra Third 8" 3-3/8"
10+
Extra Quarter 8" 2-5/8"
11+
Pro Photo 5-1/2" 3-1/5"
12+
13+
14+
1 Orientation
15+
=============
16+
17+
SLIP-39 Cards will be laid out on the desired paper size in the most
18+
optimal orientation, to fit the most Cards on the selected paper.
19+
20+
21+
1.1 Paper Wallets
22+
~~~~~~~~~~~~~~~~~
23+
24+
However, if Cryptocurrency "Paper Wallet" are printed, the selected
25+
Paper will always be printed in Portrait orientation.

0 commit comments

Comments
 (0)