@smartledger/bsv 8.3.1 → 9.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +228 -0
- package/README.md +152 -1031
- package/STABILITY.md +134 -0
- package/bsv-gdaf.min.js +58 -53
- package/bsv-ltp.min.js +23 -18
- package/bsv-script-helper.min.js +1 -1
- package/bsv-smartcontract.min.js +21 -21
- package/bsv.bundle.js +58 -53
- package/bsv.d.ts +0 -4
- package/bsv.min.js +58 -53
- package/docs/BRC220_BATCH_LEAF_AMENDMENT.md +82 -7
- package/docs/MODULE_REFERENCE_COMPLETE.md +27 -27
- package/docs/README.md +2 -1
- package/docs/THREAT_MODEL.md +10 -2
- package/docs/advanced/UTXO_MANAGER_GUIDE.md +1 -1
- package/docs/getting-started/INSTALLATION.md +23 -23
- package/docs/getting-started/QUICK_START.md +7 -7
- package/docs/migration/FROM_BSV_1_5_6.md +5 -5
- package/docs/proposals/10.0.0-package-split.md +131 -0
- package/index.js +15 -26
- package/lib/block/merkleblock.js +19 -5
- package/lib/covenant/helpers.js +34 -35
- package/lib/covenant/pushtx.js +2 -2
- package/lib/custom-script-helper.js +0 -16
- package/lib/hdprivatekey.js +15 -0
- package/lib/ordinals/ordlock.js +1 -1
- package/lib/script/interpreter.js +109 -1
- package/lib/smart_contract/builder.js +14 -0
- package/lib/smart_contract/debugger.js +2 -2
- package/lib/smart_contract/dsl.js +2 -2
- package/lib/smart_contract/index.js +0 -3
- package/lib/smart_contract/locks.js +1 -41
- package/lib/smart_contract/pels.js +1 -1
- package/lib/smart_contract/token.js +1 -1
- package/lib/util/deprecate.js +159 -0
- package/package.json +19 -82
- package/tools/gen-brc220-batch-vector.js +205 -0
- package/version.js +1 -1
- package/.mocharc.json +0 -5
- package/test/address.js +0 -629
- package/test/block/block.js +0 -239
- package/test/block/blockheader.js +0 -270
- package/test/block/merkleblock.js +0 -207
- package/test/build/bundle_crypto_shim.js +0 -104
- package/test/build/bundle_externals.js +0 -125
- package/test/build/bundle_smoke.js +0 -55
- package/test/build/esbuild_main.js +0 -65
- package/test/build/esm_wrapper.js +0 -73
- package/test/build/exports_resolution.js +0 -84
- package/test/build/version_sync.js +0 -14
- package/test/cli/smoke.js +0 -261
- package/test/consensus/base58-vectors.js +0 -120
- package/test/consensus/sv-script-vectors.js +0 -81
- package/test/consensus/sv-sighash-vectors.js +0 -51
- package/test/consensus/sv-tx-vectors.js +0 -48
- package/test/credentials-test.js +0 -332
- package/test/crypto/backend_selection.js +0 -126
- package/test/crypto/bn.js +0 -168
- package/test/crypto/ecdsa.js +0 -426
- package/test/crypto/elliptic-fixed.js +0 -61
- package/test/crypto/hash.browser.js +0 -121
- package/test/crypto/hash.js +0 -122
- package/test/crypto/point.js +0 -193
- package/test/crypto/random.js +0 -105
- package/test/crypto/security.js +0 -176
- package/test/crypto/shamir.js +0 -177
- package/test/crypto/shamir_rngcap.js +0 -29
- package/test/crypto/signature.js +0 -399
- package/test/data/bip69.json +0 -215
- package/test/data/bitcoin-sv/README.md +0 -170
- package/test/data/bitcoin-sv/base58_encode_decode.json +0 -14
- package/test/data/bitcoin-sv/base58_keys_invalid.json +0 -152
- package/test/data/bitcoin-sv/base58_keys_valid.json +0 -452
- package/test/data/bitcoin-sv/script_tests.json +0 -2591
- package/test/data/bitcoin-sv/sighash.json +0 -1003
- package/test/data/bitcoin-sv/tx_invalid.json +0 -285
- package/test/data/bitcoin-sv/tx_valid.json +0 -367
- package/test/data/bitcoind/base58_keys_invalid.json +0 -152
- package/test/data/bitcoind/base58_keys_valid.json +0 -452
- package/test/data/bitcoind/blocks.json +0 -27
- package/test/data/bitcoind/script_tests.json +0 -2244
- package/test/data/bitcoind/sig_canonical.json +0 -7
- package/test/data/bitcoind/sig_noncanonical.json +0 -22
- package/test/data/bitcoind/tx_invalid.json +0 -177
- package/test/data/bitcoind/tx_valid.json +0 -224
- package/test/data/blk86756-testnet.dat +0 -0
- package/test/data/blk86756-testnet.js +0 -12
- package/test/data/blk86756-testnet.json +0 -684
- package/test/data/ecdsa.json +0 -230
- package/test/data/merkleblocks.js +0 -486
- package/test/data/messages.json +0 -22
- package/test/data/sighash.json +0 -1004
- package/test/data/tx_creation.json +0 -85
- package/test/didweb/relationships.js +0 -144
- package/test/ecies/bitcore-ecies.js +0 -178
- package/test/ecies/electrum-ecies.js +0 -206
- package/test/encoding/base58.js +0 -131
- package/test/encoding/base58check.js +0 -145
- package/test/encoding/bufferreader.js +0 -328
- package/test/encoding/bufferwriter.js +0 -160
- package/test/encoding/varint.js +0 -104
- package/test/gdaf/anchor_no_key_leak.js +0 -146
- package/test/gdaf/anchor_spv.js +0 -163
- package/test/gdaf/canonicalization.js +0 -106
- package/test/gdaf/canonicalize.js +0 -140
- package/test/gdaf/zk_prover.js +0 -204
- package/test/hdkeys.js +0 -365
- package/test/hdprivatekey.js +0 -339
- package/test/hdpublickey.js +0 -293
- package/test/index.js +0 -16
- package/test/ltp/ids.js +0 -74
- package/test/ltp/right.js +0 -198
- package/test/ltp/verify_failclosed.js +0 -134
- package/test/message/message.js +0 -190
- package/test/mnemonic/data/fixtures.json +0 -300
- package/test/mnemonic/mnemonic.js +0 -277
- package/test/mnemonic/mocha.opts +0 -1
- package/test/mnemonic/pbkdf2.test.js +0 -43
- package/test/networks.js +0 -207
- package/test/notaryhash/batch_leaf.js +0 -140
- package/test/notaryhash/certificate.js +0 -249
- package/test/notaryhash/encoding.js +0 -186
- package/test/notaryhash/interop.js +0 -112
- package/test/notaryhash/merkle.js +0 -181
- package/test/notaryhash/script.js +0 -270
- package/test/notaryhash/verify.js +0 -342
- package/test/opcode.js +0 -186
- package/test/ordinals/bsv20.js +0 -337
- package/test/ordinals/inscription.js +0 -319
- package/test/ordinals/ordlock.js +0 -613
- package/test/privatekey.js +0 -540
- package/test/publickey.js +0 -411
- package/test/regressions.js +0 -215
- package/test/script/chronicle.js +0 -543
- package/test/script/defaults.js +0 -160
- package/test/script/genesis_limits.js +0 -203
- package/test/script/interpreter.js +0 -776
- package/test/script/script.js +0 -1259
- package/test/script/string_ops.js +0 -88
- package/test/security/fail_closed_contracts.js +0 -104
- package/test/security/threat_model_coverage.js +0 -31
- package/test/smart_contract/covenants.js +0 -245
- package/test/smart_contract/dsl_debugger.js +0 -101
- package/test/smart_contract/extract_field.js +0 -61
- package/test/smart_contract/nonenforcing_guard.js +0 -44
- package/test/smart_contract/ordinal_transfer.js +0 -81
- package/test/smart_contract/preimage.js +0 -98
- package/test/smart_contract/sighash_marketplace.js +0 -108
- package/test/smart_contract/token_generalized.js +0 -185
- package/test/spv/headerchain.js +0 -86
- package/test/spv/merkleproof.js +0 -133
- package/test/statuslist/failclosed.js +0 -78
- package/test/transaction/deserialize.js +0 -33
- package/test/transaction/input/input.js +0 -92
- package/test/transaction/input/multisig.js +0 -174
- package/test/transaction/input/multisigscripthash.js +0 -111
- package/test/transaction/input/publickey.js +0 -68
- package/test/transaction/input/publickeyhash.js +0 -59
- package/test/transaction/output.js +0 -185
- package/test/transaction/sighash.js +0 -91
- package/test/transaction/signature.js +0 -127
- package/test/transaction/transaction.js +0 -1299
- package/test/transaction/unspentoutput.js +0 -97
- package/test/types/dts_drift.js +0 -124
- package/test/types/surface_honesty.js +0 -102
- package/test/util/id.js +0 -72
- package/test/util/js.js +0 -76
- package/test/util/preconditions.js +0 -79
- package/test/vcjwt/interop.js +0 -126
|
@@ -1,300 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"english": [
|
|
3
|
-
[
|
|
4
|
-
"TREZOR",
|
|
5
|
-
"00000000000000000000000000000000",
|
|
6
|
-
"abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about",
|
|
7
|
-
"c55257c360c07c72029aebc1b53c05ed0362ada38ead3e3e9efa3708e53495531f09a6987599d18264c1e1c92f2cf141630c7a3c4ab7c81b2f001698e7463b04"
|
|
8
|
-
],
|
|
9
|
-
[
|
|
10
|
-
"TREZOR",
|
|
11
|
-
"7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f",
|
|
12
|
-
"legal winner thank year wave sausage worth useful legal winner thank yellow",
|
|
13
|
-
"2e8905819b8723fe2c1d161860e5ee1830318dbf49a83bd451cfb8440c28bd6fa457fe1296106559a3c80937a1c1069be3a3a5bd381ee6260e8d9739fce1f607"
|
|
14
|
-
],
|
|
15
|
-
[
|
|
16
|
-
"TREZOR",
|
|
17
|
-
"80808080808080808080808080808080",
|
|
18
|
-
"letter advice cage absurd amount doctor acoustic avoid letter advice cage above",
|
|
19
|
-
"d71de856f81a8acc65e6fc851a38d4d7ec216fd0796d0a6827a3ad6ed5511a30fa280f12eb2e47ed2ac03b5c462a0358d18d69fe4f985ec81778c1b370b652a8"
|
|
20
|
-
],
|
|
21
|
-
[
|
|
22
|
-
"TREZOR",
|
|
23
|
-
"ffffffffffffffffffffffffffffffff",
|
|
24
|
-
"zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrong",
|
|
25
|
-
"ac27495480225222079d7be181583751e86f571027b0497b5b5d11218e0a8a13332572917f0f8e5a589620c6f15b11c61dee327651a14c34e18231052e48c069"
|
|
26
|
-
],
|
|
27
|
-
[
|
|
28
|
-
"TREZOR",
|
|
29
|
-
"000000000000000000000000000000000000000000000000",
|
|
30
|
-
"abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon agent",
|
|
31
|
-
"035895f2f481b1b0f01fcf8c289c794660b289981a78f8106447707fdd9666ca06da5a9a565181599b79f53b844d8a71dd9f439c52a3d7b3e8a79c906ac845fa"
|
|
32
|
-
],
|
|
33
|
-
[
|
|
34
|
-
"TREZOR",
|
|
35
|
-
"7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f",
|
|
36
|
-
"legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal will",
|
|
37
|
-
"f2b94508732bcbacbcc020faefecfc89feafa6649a5491b8c952cede496c214a0c7b3c392d168748f2d4a612bada0753b52a1c7ac53c1e93abd5c6320b9e95dd"
|
|
38
|
-
],
|
|
39
|
-
[
|
|
40
|
-
"TREZOR",
|
|
41
|
-
"808080808080808080808080808080808080808080808080",
|
|
42
|
-
"letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic avoid letter always",
|
|
43
|
-
"107d7c02a5aa6f38c58083ff74f04c607c2d2c0ecc55501dadd72d025b751bc27fe913ffb796f841c49b1d33b610cf0e91d3aa239027f5e99fe4ce9e5088cd65"
|
|
44
|
-
],
|
|
45
|
-
[
|
|
46
|
-
"TREZOR",
|
|
47
|
-
"ffffffffffffffffffffffffffffffffffffffffffffffff",
|
|
48
|
-
"zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo when",
|
|
49
|
-
"0cd6e5d827bb62eb8fc1e262254223817fd068a74b5b449cc2f667c3f1f985a76379b43348d952e2265b4cd129090758b3e3c2c49103b5051aac2eaeb890a528"
|
|
50
|
-
],
|
|
51
|
-
[
|
|
52
|
-
"TREZOR",
|
|
53
|
-
"0000000000000000000000000000000000000000000000000000000000000000",
|
|
54
|
-
"abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon art",
|
|
55
|
-
"bda85446c68413707090a52022edd26a1c9462295029f2e60cd7c4f2bbd3097170af7a4d73245cafa9c3cca8d561a7c3de6f5d4a10be8ed2a5e608d68f92fcc8"
|
|
56
|
-
],
|
|
57
|
-
[
|
|
58
|
-
"TREZOR",
|
|
59
|
-
"7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f",
|
|
60
|
-
"legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth title",
|
|
61
|
-
"bc09fca1804f7e69da93c2f2028eb238c227f2e9dda30cd63699232578480a4021b146ad717fbb7e451ce9eb835f43620bf5c514db0f8add49f5d121449d3e87"
|
|
62
|
-
],
|
|
63
|
-
[
|
|
64
|
-
"TREZOR",
|
|
65
|
-
"8080808080808080808080808080808080808080808080808080808080808080",
|
|
66
|
-
"letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic bless",
|
|
67
|
-
"c0c519bd0e91a2ed54357d9d1ebef6f5af218a153624cf4f2da911a0ed8f7a09e2ef61af0aca007096df430022f7a2b6fb91661a9589097069720d015e4e982f"
|
|
68
|
-
],
|
|
69
|
-
[
|
|
70
|
-
"TREZOR",
|
|
71
|
-
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
|
|
72
|
-
"zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo vote",
|
|
73
|
-
"dd48c104698c30cfe2b6142103248622fb7bb0ff692eebb00089b32d22484e1613912f0a5b694407be899ffd31ed3992c456cdf60f5d4564b8ba3f05a69890ad"
|
|
74
|
-
],
|
|
75
|
-
[
|
|
76
|
-
"TREZOR",
|
|
77
|
-
"77c2b00716cec7213839159e404db50d",
|
|
78
|
-
"jelly better achieve collect unaware mountain thought cargo oxygen act hood bridge",
|
|
79
|
-
"b5b6d0127db1a9d2226af0c3346031d77af31e918dba64287a1b44b8ebf63cdd52676f672a290aae502472cf2d602c051f3e6f18055e84e4c43897fc4e51a6ff"
|
|
80
|
-
],
|
|
81
|
-
[
|
|
82
|
-
"TREZOR",
|
|
83
|
-
"b63a9c59a6e641f288ebc103017f1da9f8290b3da6bdef7b",
|
|
84
|
-
"renew stay biology evidence goat welcome casual join adapt armor shuffle fault little machine walk stumble urge swap",
|
|
85
|
-
"9248d83e06f4cd98debf5b6f010542760df925ce46cf38a1bdb4e4de7d21f5c39366941c69e1bdbf2966e0f6e6dbece898a0e2f0a4c2b3e640953dfe8b7bbdc5"
|
|
86
|
-
],
|
|
87
|
-
[
|
|
88
|
-
"TREZOR",
|
|
89
|
-
"3e141609b97933b66a060dcddc71fad1d91677db872031e85f4c015c5e7e8982",
|
|
90
|
-
"dignity pass list indicate nasty swamp pool script soccer toe leaf photo multiply desk host tomato cradle drill spread actor shine dismiss champion exotic",
|
|
91
|
-
"ff7f3184df8696d8bef94b6c03114dbee0ef89ff938712301d27ed8336ca89ef9635da20af07d4175f2bf5f3de130f39c9d9e8dd0472489c19b1a020a940da67"
|
|
92
|
-
],
|
|
93
|
-
[
|
|
94
|
-
"TREZOR",
|
|
95
|
-
"0460ef47585604c5660618db2e6a7e7f",
|
|
96
|
-
"afford alter spike radar gate glance object seek swamp infant panel yellow",
|
|
97
|
-
"65f93a9f36b6c85cbe634ffc1f99f2b82cbb10b31edc7f087b4f6cb9e976e9faf76ff41f8f27c99afdf38f7a303ba1136ee48a4c1e7fcd3dba7aa876113a36e4"
|
|
98
|
-
],
|
|
99
|
-
[
|
|
100
|
-
"TREZOR",
|
|
101
|
-
"72f60ebac5dd8add8d2a25a797102c3ce21bc029c200076f",
|
|
102
|
-
"indicate race push merry suffer human cruise dwarf pole review arch keep canvas theme poem divorce alter left",
|
|
103
|
-
"3bbf9daa0dfad8229786ace5ddb4e00fa98a044ae4c4975ffd5e094dba9e0bb289349dbe2091761f30f382d4e35c4a670ee8ab50758d2c55881be69e327117ba"
|
|
104
|
-
],
|
|
105
|
-
[
|
|
106
|
-
"TREZOR",
|
|
107
|
-
"2c85efc7f24ee4573d2b81a6ec66cee209b2dcbd09d8eddc51e0215b0b68e416",
|
|
108
|
-
"clutch control vehicle tonight unusual clog visa ice plunge glimpse recipe series open hour vintage deposit universe tip job dress radar refuse motion taste",
|
|
109
|
-
"fe908f96f46668b2d5b37d82f558c77ed0d69dd0e7e043a5b0511c48c2f1064694a956f86360c93dd04052a8899497ce9e985ebe0c8c52b955e6ae86d4ff4449"
|
|
110
|
-
],
|
|
111
|
-
[
|
|
112
|
-
"TREZOR",
|
|
113
|
-
"eaebabb2383351fd31d703840b32e9e2",
|
|
114
|
-
"turtle front uncle idea crush write shrug there lottery flower risk shell",
|
|
115
|
-
"bdfb76a0759f301b0b899a1e3985227e53b3f51e67e3f2a65363caedf3e32fde42a66c404f18d7b05818c95ef3ca1e5146646856c461c073169467511680876c"
|
|
116
|
-
],
|
|
117
|
-
[
|
|
118
|
-
"TREZOR",
|
|
119
|
-
"7ac45cfe7722ee6c7ba84fbc2d5bd61b45cb2fe5eb65aa78",
|
|
120
|
-
"kiss carry display unusual confirm curtain upgrade antique rotate hello void custom frequent obey nut hole price segment",
|
|
121
|
-
"ed56ff6c833c07982eb7119a8f48fd363c4a9b1601cd2de736b01045c5eb8ab4f57b079403485d1c4924f0790dc10a971763337cb9f9c62226f64fff26397c79"
|
|
122
|
-
],
|
|
123
|
-
[
|
|
124
|
-
"TREZOR",
|
|
125
|
-
"4fa1a8bc3e6d80ee1316050e862c1812031493212b7ec3f3bb1b08f168cabeef",
|
|
126
|
-
"exile ask congress lamp submit jacket era scheme attend cousin alcohol catch course end lucky hurt sentence oven short ball bird grab wing top",
|
|
127
|
-
"095ee6f817b4c2cb30a5a797360a81a40ab0f9a4e25ecd672a3f58a0b5ba0687c096a6b14d2c0deb3bdefce4f61d01ae07417d502429352e27695163f7447a8c"
|
|
128
|
-
],
|
|
129
|
-
[
|
|
130
|
-
"TREZOR",
|
|
131
|
-
"18ab19a9f54a9274f03e5209a2ac8a91",
|
|
132
|
-
"board flee heavy tunnel powder denial science ski answer betray cargo cat",
|
|
133
|
-
"6eff1bb21562918509c73cb990260db07c0ce34ff0e3cc4a8cb3276129fbcb300bddfe005831350efd633909f476c45c88253276d9fd0df6ef48609e8bb7dca8"
|
|
134
|
-
],
|
|
135
|
-
[
|
|
136
|
-
"TREZOR",
|
|
137
|
-
"18a2e1d81b8ecfb2a333adcb0c17a5b9eb76cc5d05db91a4",
|
|
138
|
-
"board blade invite damage undo sun mimic interest slam gaze truly inherit resist great inject rocket museum chief",
|
|
139
|
-
"f84521c777a13b61564234bf8f8b62b3afce27fc4062b51bb5e62bdfecb23864ee6ecf07c1d5a97c0834307c5c852d8ceb88e7c97923c0a3b496bedd4e5f88a9"
|
|
140
|
-
],
|
|
141
|
-
[
|
|
142
|
-
"TREZOR",
|
|
143
|
-
"15da872c95a13dd738fbf50e427583ad61f18fd99f628c417a61cf8343c90419",
|
|
144
|
-
"beyond stage sleep clip because twist token leaf atom beauty genius food business side grid unable middle armed observe pair crouch tonight away coconut",
|
|
145
|
-
"b15509eaa2d09d3efd3e006ef42151b30367dc6e3aa5e44caba3fe4d3e352e65101fbdb86a96776b91946ff06f8eac594dc6ee1d3e82a42dfe1b40fef6bcc3fd"
|
|
146
|
-
],
|
|
147
|
-
[
|
|
148
|
-
"TREZOR",
|
|
149
|
-
"38fe1937dd2135d7ca5e472565c41ded449d8cea2e70e1c93571c21831c82f0f466c3d94f29bff1d0cce3e85a22b93364627af716ee91a477d6e2e55abf4e761",
|
|
150
|
-
"decline valid evil ripple battle typical city similar century comfort alter surround endorse shoe post sock tide endless fragile loud loan tomato rotate trip history uncover device dawn vault major decline spawn peasant frame snow middle kit reward roof cash electric twin merit prize satisfy inhale lyrics lucky",
|
|
151
|
-
"d9a9b65c54df4104349d5ce6f9275f249160ddf378deff6e540f5492e449e0378ee20b1622bef982f6dddb003568e449fee66335cb45cbe3f8a41050b251238a"
|
|
152
|
-
]
|
|
153
|
-
],
|
|
154
|
-
"japanese": [
|
|
155
|
-
[
|
|
156
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
157
|
-
"00000000000000000000000000000000",
|
|
158
|
-
"あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あおぞら",
|
|
159
|
-
"a262d6fb6122ecf45be09c50492b31f92e9beb7d9a845987a02cefda57a15f9c467a17872029a9e92299b5cbdf306e3a0ee620245cbd508959b6cb7ca637bd55"
|
|
160
|
-
],
|
|
161
|
-
[
|
|
162
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
163
|
-
"7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f",
|
|
164
|
-
"そつう れきだい ほんやく わかす りくつ ばいか ろせん やちん そつう れきだい ほんやく わかめ",
|
|
165
|
-
"aee025cbe6ca256862f889e48110a6a382365142f7d16f2b9545285b3af64e542143a577e9c144e101a6bdca18f8d97ec3366ebf5b088b1c1af9bc31346e60d9"
|
|
166
|
-
],
|
|
167
|
-
[
|
|
168
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
169
|
-
"80808080808080808080808080808080",
|
|
170
|
-
"そとづら あまど おおう あこがれる いくぶん けいけん あたえる いよく そとづら あまど おおう あかちゃん",
|
|
171
|
-
"e51736736ebdf77eda23fa17e31475fa1d9509c78f1deb6b4aacfbd760a7e2ad769c714352c95143b5c1241985bcb407df36d64e75dd5a2b78ca5d2ba82a3544"
|
|
172
|
-
],
|
|
173
|
-
[
|
|
174
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
175
|
-
"ffffffffffffffffffffffffffffffff",
|
|
176
|
-
"われる われる われる われる われる われる われる われる われる われる われる ろんぶん",
|
|
177
|
-
"4cd2ef49b479af5e1efbbd1e0bdc117f6a29b1010211df4f78e2ed40082865793e57949236c43b9fe591ec70e5bb4298b8b71dc4b267bb96ed4ed282c8f7761c"
|
|
178
|
-
],
|
|
179
|
-
[
|
|
180
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
181
|
-
"000000000000000000000000000000000000000000000000",
|
|
182
|
-
"あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あらいぐま",
|
|
183
|
-
"d99e8f1ce2d4288d30b9c815ae981edd923c01aa4ffdc5dee1ab5fe0d4a3e13966023324d119105aff266dac32e5cd11431eeca23bbd7202ff423f30d6776d69"
|
|
184
|
-
],
|
|
185
|
-
[
|
|
186
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
187
|
-
"7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f",
|
|
188
|
-
"そつう れきだい ほんやく わかす りくつ ばいか ろせん やちん そつう れきだい ほんやく わかす りくつ ばいか ろせん やちん そつう れいぎ",
|
|
189
|
-
"eaaf171efa5de4838c758a93d6c86d2677d4ccda4a064a7136344e975f91fe61340ec8a615464b461d67baaf12b62ab5e742f944c7bd4ab6c341fbafba435716"
|
|
190
|
-
],
|
|
191
|
-
[
|
|
192
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
193
|
-
"808080808080808080808080808080808080808080808080",
|
|
194
|
-
"そとづら あまど おおう あこがれる いくぶん けいけん あたえる いよく そとづら あまど おおう あこがれる いくぶん けいけん あたえる いよく そとづら いきなり",
|
|
195
|
-
"aec0f8d3167a10683374c222e6e632f2940c0826587ea0a73ac5d0493b6a632590179a6538287641a9fc9df8e6f24e01bf1be548e1f74fd7407ccd72ecebe425"
|
|
196
|
-
],
|
|
197
|
-
[
|
|
198
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
199
|
-
"ffffffffffffffffffffffffffffffffffffffffffffffff",
|
|
200
|
-
"われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる りんご",
|
|
201
|
-
"f0f738128a65b8d1854d68de50ed97ac1831fc3a978c569e415bbcb431a6a671d4377e3b56abd518daa861676c4da75a19ccb41e00c37d086941e471a4374b95"
|
|
202
|
-
],
|
|
203
|
-
[
|
|
204
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
205
|
-
"0000000000000000000000000000000000000000000000000000000000000000",
|
|
206
|
-
"あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん あいこくしん いってい",
|
|
207
|
-
"23f500eec4a563bf90cfda87b3e590b211b959985c555d17e88f46f7183590cd5793458b094a4dccc8f05807ec7bd2d19ce269e20568936a751f6f1ec7c14ddd"
|
|
208
|
-
],
|
|
209
|
-
[
|
|
210
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
211
|
-
"7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f",
|
|
212
|
-
"そつう れきだい ほんやく わかす りくつ ばいか ろせん やちん そつう れきだい ほんやく わかす りくつ ばいか ろせん やちん そつう れきだい ほんやく わかす りくつ ばいか ろせん まんきつ",
|
|
213
|
-
"cd354a40aa2e241e8f306b3b752781b70dfd1c69190e510bc1297a9c5738e833bcdc179e81707d57263fb7564466f73d30bf979725ff783fb3eb4baa86560b05"
|
|
214
|
-
],
|
|
215
|
-
[
|
|
216
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
217
|
-
"8080808080808080808080808080808080808080808080808080808080808080",
|
|
218
|
-
"そとづら あまど おおう あこがれる いくぶん けいけん あたえる いよく そとづら あまど おおう あこがれる いくぶん けいけん あたえる いよく そとづら あまど おおう あこがれる いくぶん けいけん あたえる うめる",
|
|
219
|
-
"6b7cd1b2cdfeeef8615077cadd6a0625f417f287652991c80206dbd82db17bf317d5c50a80bd9edd836b39daa1b6973359944c46d3fcc0129198dc7dc5cd0e68"
|
|
220
|
-
],
|
|
221
|
-
[
|
|
222
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
223
|
-
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
|
|
224
|
-
"われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる われる らいう",
|
|
225
|
-
"a44ba7054ac2f9226929d56505a51e13acdaa8a9097923ca07ea465c4c7e294c038f3f4e7e4b373726ba0057191aced6e48ac8d183f3a11569c426f0de414623"
|
|
226
|
-
],
|
|
227
|
-
[
|
|
228
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
229
|
-
"77c2b00716cec7213839159e404db50d",
|
|
230
|
-
"せまい うちがわ あずき かろう めずらしい だんち ますく おさめる ていぼう あたる すあな えしゃく",
|
|
231
|
-
"344cef9efc37d0cb36d89def03d09144dd51167923487eec42c487f7428908546fa31a3c26b7391a2b3afe7db81b9f8c5007336b58e269ea0bd10749a87e0193"
|
|
232
|
-
],
|
|
233
|
-
[
|
|
234
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
235
|
-
"b63a9c59a6e641f288ebc103017f1da9f8290b3da6bdef7b",
|
|
236
|
-
"ぬすむ ふっかつ うどん こうりつ しつじ りょうり おたがい せもたれ あつめる いちりゅう はんしゃ ごますり そんけい たいちょう らしんばん ぶんせき やすみ ほいく",
|
|
237
|
-
"b14e7d35904cb8569af0d6a016cee7066335a21c1c67891b01b83033cadb3e8a034a726e3909139ecd8b2eb9e9b05245684558f329b38480e262c1d6bc20ecc4"
|
|
238
|
-
],
|
|
239
|
-
[
|
|
240
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
241
|
-
"3e141609b97933b66a060dcddc71fad1d91677db872031e85f4c015c5e7e8982",
|
|
242
|
-
"くのう てぬぐい そんかい すろっと ちきゅう ほあん とさか はくしゅ ひびく みえる そざい てんすう たんぴん くしょう すいようび みけん きさらぎ げざん ふくざつ あつかう はやい くろう おやゆび こすう",
|
|
243
|
-
"32e78dce2aff5db25aa7a4a32b493b5d10b4089923f3320c8b287a77e512455443298351beb3f7eb2390c4662a2e566eec5217e1a37467af43b46668d515e41b"
|
|
244
|
-
],
|
|
245
|
-
[
|
|
246
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
247
|
-
"0460ef47585604c5660618db2e6a7e7f",
|
|
248
|
-
"あみもの いきおい ふいうち にげる ざんしょ じかん ついか はたん ほあん すんぽう てちがい わかめ",
|
|
249
|
-
"0acf902cd391e30f3f5cb0605d72a4c849342f62bd6a360298c7013d714d7e58ddf9c7fdf141d0949f17a2c9c37ced1d8cb2edabab97c4199b142c829850154b"
|
|
250
|
-
],
|
|
251
|
-
[
|
|
252
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
253
|
-
"72f60ebac5dd8add8d2a25a797102c3ce21bc029c200076f",
|
|
254
|
-
"すろっと にくしみ なやむ たとえる へいこう すくう きない けってい とくべつ ねっしん いたみ せんせい おくりがな まかい とくい けあな いきおい そそぐ",
|
|
255
|
-
"9869e220bec09b6f0c0011f46e1f9032b269f096344028f5006a6e69ea5b0b8afabbb6944a23e11ebd021f182dd056d96e4e3657df241ca40babda532d364f73"
|
|
256
|
-
],
|
|
257
|
-
[
|
|
258
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
259
|
-
"2c85efc7f24ee4573d2b81a6ec66cee209b2dcbd09d8eddc51e0215b0b68e416",
|
|
260
|
-
"かほご きうい ゆたか みすえる もらう がっこう よそう ずっと ときどき したうけ にんか はっこう つみき すうじつ よけい くげん もくてき まわり せめる げざい にげる にんたい たんそく ほそく",
|
|
261
|
-
"713b7e70c9fbc18c831bfd1f03302422822c3727a93a5efb9659bec6ad8d6f2c1b5c8ed8b0b77775feaf606e9d1cc0a84ac416a85514ad59f5541ff5e0382481"
|
|
262
|
-
],
|
|
263
|
-
[
|
|
264
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
265
|
-
"eaebabb2383351fd31d703840b32e9e2",
|
|
266
|
-
"めいえん さのう めだつ すてる きぬごし ろんぱ はんこ まける たいおう さかいし ねんいり はぶらし",
|
|
267
|
-
"06e1d5289a97bcc95cb4a6360719131a786aba057d8efd603a547bd254261c2a97fcd3e8a4e766d5416437e956b388336d36c7ad2dba4ee6796f0249b10ee961"
|
|
268
|
-
],
|
|
269
|
-
[
|
|
270
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
271
|
-
"7ac45cfe7722ee6c7ba84fbc2d5bd61b45cb2fe5eb65aa78",
|
|
272
|
-
"せんぱい おしえる ぐんかん もらう きあい きぼう やおや いせえび のいず じゅしん よゆう きみつ さといも ちんもく ちわわ しんせいじ とめる はちみつ",
|
|
273
|
-
"1fef28785d08cbf41d7a20a3a6891043395779ed74503a5652760ee8c24dfe60972105ee71d5168071a35ab7b5bd2f8831f75488078a90f0926c8e9171b2bc4a"
|
|
274
|
-
],
|
|
275
|
-
[
|
|
276
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
277
|
-
"4fa1a8bc3e6d80ee1316050e862c1812031493212b7ec3f3bb1b08f168cabeef",
|
|
278
|
-
"こころ いどう きあつ そうがんきょう へいあん せつりつ ごうせい はいち いびき きこく あんい おちつく きこえる けんとう たいこ すすめる はっけん ていど はんおん いんさつ うなぎ しねま れいぼう みつかる",
|
|
279
|
-
"43de99b502e152d4c198542624511db3007c8f8f126a30818e856b2d8a20400d29e7a7e3fdd21f909e23be5e3c8d9aee3a739b0b65041ff0b8637276703f65c2"
|
|
280
|
-
],
|
|
281
|
-
[
|
|
282
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
283
|
-
"18ab19a9f54a9274f03e5209a2ac8a91",
|
|
284
|
-
"うりきれ さいせい じゆう むろん とどける ぐうたら はいれつ ひけつ いずれ うちあわせ おさめる おたく",
|
|
285
|
-
"3d711f075ee44d8b535bb4561ad76d7d5350ea0b1f5d2eac054e869ff7963cdce9581097a477d697a2a9433a0c6884bea10a2193647677977c9820dd0921cbde"
|
|
286
|
-
],
|
|
287
|
-
[
|
|
288
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
289
|
-
"18a2e1d81b8ecfb2a333adcb0c17a5b9eb76cc5d05db91a4",
|
|
290
|
-
"うりきれ うねる せっさたくま きもち めんきょ へいたく たまご ぜっく びじゅつかん さんそ むせる せいじ ねくたい しはらい せおう ねんど たんまつ がいけん",
|
|
291
|
-
"753ec9e333e616e9471482b4b70a18d413241f1e335c65cd7996f32b66cf95546612c51dcf12ead6f805f9ee3d965846b894ae99b24204954be80810d292fcdd"
|
|
292
|
-
],
|
|
293
|
-
[
|
|
294
|
-
"メートルガバヴァぱばぐゞちぢ十人十色",
|
|
295
|
-
"15da872c95a13dd738fbf50e427583ad61f18fd99f628c417a61cf8343c90419",
|
|
296
|
-
"うちゅう ふそく ひしょ がちょう うけもつ めいそう みかん そざい いばる うけとる さんま さこつ おうさま ぱんつ しひょう めした たはつ いちぶ つうじょう てさぎょう きつね みすえる いりぐち かめれおん",
|
|
297
|
-
"346b7321d8c04f6f37b49fdf062a2fddc8e1bf8f1d33171b65074531ec546d1d3469974beccb1a09263440fc92e1042580a557fdce314e27ee4eabb25fa5e5fe"
|
|
298
|
-
]
|
|
299
|
-
]
|
|
300
|
-
}
|
|
@@ -1,277 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
var chai = require('chai')
|
|
4
|
-
var should = chai.should()
|
|
5
|
-
|
|
6
|
-
var Mnemonic = require('../../lib/mnemonic')
|
|
7
|
-
var errors = require('../../').errors
|
|
8
|
-
var bip39vectors = require('./data/fixtures.json')
|
|
9
|
-
|
|
10
|
-
describe('Mnemonic', function () {
|
|
11
|
-
this.timeout(30000)
|
|
12
|
-
|
|
13
|
-
it('should initialize the class', function () {
|
|
14
|
-
should.exist(Mnemonic)
|
|
15
|
-
})
|
|
16
|
-
|
|
17
|
-
describe('@fromRandom', function () {
|
|
18
|
-
it('should make a new mnemonic', function () {
|
|
19
|
-
let mnemonic = Mnemonic.fromRandom()
|
|
20
|
-
let mnemonic2 = Mnemonic.fromRandom()
|
|
21
|
-
mnemonic.toString().should.not.equal(mnemonic2.toString())
|
|
22
|
-
Mnemonic.Words.ENGLISH.includes(mnemonic.toString().split(' ')[0]).should.equal(true)
|
|
23
|
-
Mnemonic.Words.ENGLISH.includes(mnemonic.toString().split(' ')[1]).should.equal(true)
|
|
24
|
-
Mnemonic.Words.ENGLISH.includes(mnemonic.toString().split(' ')[2]).should.equal(true)
|
|
25
|
-
let mnemonic3 = Mnemonic.fromRandom(Mnemonic.Words.SPANISH)
|
|
26
|
-
Mnemonic.Words.SPANISH.includes(mnemonic3.toString().split(' ')[0]).should.equal(true)
|
|
27
|
-
Mnemonic.Words.SPANISH.includes(mnemonic3.toString().split(' ')[1]).should.equal(true)
|
|
28
|
-
Mnemonic.Words.SPANISH.includes(mnemonic3.toString().split(' ')[2]).should.equal(true)
|
|
29
|
-
})
|
|
30
|
-
|
|
31
|
-
// Regression: the second argument used to be silently dropped, so the
|
|
32
|
-
// documented fromRandom(wordlist, 256) form returned a WEAK 12-word phrase.
|
|
33
|
-
function wordCount (m) { return m.toString().split(' ').length }
|
|
34
|
-
|
|
35
|
-
it('defaults to a 12-word (128-bit) phrase', function () {
|
|
36
|
-
wordCount(Mnemonic.fromRandom()).should.equal(12)
|
|
37
|
-
wordCount(Mnemonic.fromRandom(Mnemonic.Words.ENGLISH)).should.equal(12)
|
|
38
|
-
})
|
|
39
|
-
|
|
40
|
-
it('honours entropy passed as the second argument (wordlist, ent)', function () {
|
|
41
|
-
// The previously-broken documented form: must now yield 24 words.
|
|
42
|
-
wordCount(Mnemonic.fromRandom(Mnemonic.Words.ENGLISH, 256)).should.equal(24)
|
|
43
|
-
wordCount(Mnemonic.fromRandom(Mnemonic.Words.ENGLISH, 192)).should.equal(18)
|
|
44
|
-
wordCount(Mnemonic.fromRandom(Mnemonic.Words.ENGLISH, 160)).should.equal(15)
|
|
45
|
-
})
|
|
46
|
-
|
|
47
|
-
it('honours entropy passed as the first argument (ent) or (ent, wordlist)', function () {
|
|
48
|
-
wordCount(Mnemonic.fromRandom(256)).should.equal(24)
|
|
49
|
-
var es = Mnemonic.fromRandom(256, Mnemonic.Words.SPANISH)
|
|
50
|
-
wordCount(es).should.equal(24)
|
|
51
|
-
Mnemonic.Words.SPANISH.includes(es.toString().split(' ')[0]).should.equal(true)
|
|
52
|
-
})
|
|
53
|
-
|
|
54
|
-
it('throws on invalid entropy instead of silently degrading', function () {
|
|
55
|
-
;(function () { Mnemonic.fromRandom(Mnemonic.Words.ENGLISH, 200) }).should.throw(/ENT/)
|
|
56
|
-
;(function () { Mnemonic.fromRandom(64) }).should.throw(/ENT/)
|
|
57
|
-
})
|
|
58
|
-
|
|
59
|
-
it('reports a meaningful arity (2), not 0', function () {
|
|
60
|
-
Mnemonic.fromRandom.length.should.equal(2)
|
|
61
|
-
})
|
|
62
|
-
})
|
|
63
|
-
|
|
64
|
-
describe('# Mnemonic', function () {
|
|
65
|
-
describe('Constructor', function () {
|
|
66
|
-
it('does not require new keyword', function () {
|
|
67
|
-
var mnemonic = Mnemonic()
|
|
68
|
-
mnemonic.should.be.instanceof(Mnemonic)
|
|
69
|
-
})
|
|
70
|
-
|
|
71
|
-
it('should fail with invalid data', function () {
|
|
72
|
-
(function () {
|
|
73
|
-
return new Mnemonic({})
|
|
74
|
-
}).should.throw(errors.InvalidArgument)
|
|
75
|
-
})
|
|
76
|
-
|
|
77
|
-
it('should fail with unknown word list', function () {
|
|
78
|
-
(function () {
|
|
79
|
-
return new Mnemonic('pilots foster august tomorrow kit daughter unknown awesome model town village master')
|
|
80
|
-
}).should.throw(errors.Mnemonic.UnknownWordlist)
|
|
81
|
-
})
|
|
82
|
-
|
|
83
|
-
it('should fail with invalid mnemonic', function () {
|
|
84
|
-
(function () {
|
|
85
|
-
return new Mnemonic('monster foster august tomorrow kit daughter unknown awesome model town village pilot')
|
|
86
|
-
}).should.throw(errors.Mnemonic.InvalidMnemonic)
|
|
87
|
-
})
|
|
88
|
-
|
|
89
|
-
it('should fail with invalid ENT', function () {
|
|
90
|
-
(function () {
|
|
91
|
-
return new Mnemonic(64)
|
|
92
|
-
}).should.throw(errors.InvalidArgument)
|
|
93
|
-
})
|
|
94
|
-
|
|
95
|
-
it('constructor defaults to english worldlist', function () {
|
|
96
|
-
var mnemonic = new Mnemonic()
|
|
97
|
-
mnemonic.wordlist.should.equal(Mnemonic.Words.ENGLISH)
|
|
98
|
-
})
|
|
99
|
-
|
|
100
|
-
it('allow using different worldlists', function () {
|
|
101
|
-
var mnemonic = new Mnemonic(Mnemonic.Words.SPANISH)
|
|
102
|
-
mnemonic.wordlist.should.equal(Mnemonic.Words.SPANISH)
|
|
103
|
-
})
|
|
104
|
-
|
|
105
|
-
it('constructor honor both length and wordlist', function () {
|
|
106
|
-
var mnemonic = new Mnemonic(32 * 7, Mnemonic.Words.SPANISH)
|
|
107
|
-
mnemonic.phrase.split(' ').length.should.equal(21)
|
|
108
|
-
mnemonic.wordlist.should.equal(Mnemonic.Words.SPANISH)
|
|
109
|
-
})
|
|
110
|
-
|
|
111
|
-
it('constructor should detect standard wordlist', function () {
|
|
112
|
-
var mnemonic = new Mnemonic('afirmar diseño hielo fideo etapa ogro cambio fideo toalla pomelo número buscar')
|
|
113
|
-
mnemonic.wordlist.should.equal(Mnemonic.Words.SPANISH)
|
|
114
|
-
})
|
|
115
|
-
})
|
|
116
|
-
|
|
117
|
-
it('english wordlist is complete', function () {
|
|
118
|
-
Mnemonic.Words.ENGLISH.length.should.equal(2048)
|
|
119
|
-
Mnemonic.Words.ENGLISH[0].should.equal('abandon')
|
|
120
|
-
})
|
|
121
|
-
|
|
122
|
-
it('spanish wordlist is complete', function () {
|
|
123
|
-
Mnemonic.Words.SPANISH.length.should.equal(2048)
|
|
124
|
-
Mnemonic.Words.SPANISH[0].should.equal('ábaco')
|
|
125
|
-
})
|
|
126
|
-
|
|
127
|
-
it('japanese wordlist is complete', function () {
|
|
128
|
-
Mnemonic.Words.JAPANESE.length.should.equal(2048)
|
|
129
|
-
Mnemonic.Words.JAPANESE[0].should.equal('あいこくしん')
|
|
130
|
-
})
|
|
131
|
-
|
|
132
|
-
it('chinese wordlist is complete', function () {
|
|
133
|
-
Mnemonic.Words.CHINESE.length.should.equal(2048)
|
|
134
|
-
Mnemonic.Words.CHINESE[0].should.equal('的')
|
|
135
|
-
})
|
|
136
|
-
|
|
137
|
-
it('french wordlist is complete', function () {
|
|
138
|
-
Mnemonic.Words.FRENCH.length.should.equal(2048)
|
|
139
|
-
Mnemonic.Words.FRENCH[0].should.equal('abaisser')
|
|
140
|
-
})
|
|
141
|
-
|
|
142
|
-
it('italian wordlist is complete', function () {
|
|
143
|
-
Mnemonic.Words.ITALIAN.length.should.equal(2048)
|
|
144
|
-
Mnemonic.Words.ITALIAN[0].should.equal('abaco')
|
|
145
|
-
})
|
|
146
|
-
|
|
147
|
-
it('allows use different phrase lengths', function () {
|
|
148
|
-
var mnemonic
|
|
149
|
-
|
|
150
|
-
mnemonic = new Mnemonic(32 * 4)
|
|
151
|
-
mnemonic.phrase.split(' ').length.should.equal(12)
|
|
152
|
-
|
|
153
|
-
mnemonic = new Mnemonic(32 * 5)
|
|
154
|
-
mnemonic.phrase.split(' ').length.should.equal(15)
|
|
155
|
-
|
|
156
|
-
mnemonic = new Mnemonic(32 * 6)
|
|
157
|
-
mnemonic.phrase.split(' ').length.should.equal(18)
|
|
158
|
-
|
|
159
|
-
mnemonic = new Mnemonic(32 * 7)
|
|
160
|
-
mnemonic.phrase.split(' ').length.should.equal(21)
|
|
161
|
-
|
|
162
|
-
mnemonic = new Mnemonic(32 * 8)
|
|
163
|
-
mnemonic.phrase.split(' ').length.should.equal(24)
|
|
164
|
-
})
|
|
165
|
-
|
|
166
|
-
it('validates a phrase', function () {
|
|
167
|
-
var valid = Mnemonic.isValid('afirmar diseño hielo fideo etapa ogro cambio fideo toalla pomelo número buscar')
|
|
168
|
-
valid.should.equal(true)
|
|
169
|
-
|
|
170
|
-
var invalid = Mnemonic.isValid('afirmar diseño hielo fideo etapa ogro cambio fideo hielo pomelo número buscar')
|
|
171
|
-
invalid.should.equal(false)
|
|
172
|
-
|
|
173
|
-
var invalid2 = Mnemonic.isValid('afirmar diseño hielo fideo etapa ogro cambio fideo hielo pomelo número oneInvalidWord')
|
|
174
|
-
invalid2.should.equal(false)
|
|
175
|
-
|
|
176
|
-
var invalid3 = Mnemonic.isValid('totally invalid phrase')
|
|
177
|
-
invalid3.should.equal(false)
|
|
178
|
-
|
|
179
|
-
var valid2 = Mnemonic.isValid('caution opprimer époque belote devenir ficeler filleul caneton apologie nectar frapper fouiller')
|
|
180
|
-
valid2.should.equal(true)
|
|
181
|
-
})
|
|
182
|
-
|
|
183
|
-
it('has a toString method', function () {
|
|
184
|
-
var mnemonic = new Mnemonic()
|
|
185
|
-
mnemonic.toString().should.equal(mnemonic.phrase)
|
|
186
|
-
})
|
|
187
|
-
|
|
188
|
-
it('has a fromString method', function () {
|
|
189
|
-
var mnemonic = Mnemonic.fromRandom()
|
|
190
|
-
mnemonic.toString().should.equal(mnemonic.phrase)
|
|
191
|
-
var mnemonic2 = Mnemonic.fromString(mnemonic.toString())
|
|
192
|
-
mnemonic2.toString().should.equal(mnemonic.toString())
|
|
193
|
-
var mnemonic3 = Mnemonic.fromRandom(Mnemonic.Words.SPANISH)
|
|
194
|
-
var mnemonic4 = Mnemonic.fromString(mnemonic3.toString(), Mnemonic.Words.SPANISH)
|
|
195
|
-
mnemonic3.toString().should.equal(mnemonic4.toString())
|
|
196
|
-
})
|
|
197
|
-
|
|
198
|
-
it('has a toString method', function () {
|
|
199
|
-
var mnemonic = new Mnemonic()
|
|
200
|
-
mnemonic.inspect().should.have.string('<Mnemonic:')
|
|
201
|
-
})
|
|
202
|
-
|
|
203
|
-
it('derives a seed without a passphrase', function () {
|
|
204
|
-
var mnemonic = new Mnemonic()
|
|
205
|
-
var seed = mnemonic.toSeed()
|
|
206
|
-
seed.length.should.equal(512 / 8)
|
|
207
|
-
should.exist(seed)
|
|
208
|
-
})
|
|
209
|
-
|
|
210
|
-
it('derives a seed using a passphrase', function () {
|
|
211
|
-
var mnemonic = new Mnemonic()
|
|
212
|
-
var seed = mnemonic.toSeed('my passphrase')
|
|
213
|
-
should.exist(seed)
|
|
214
|
-
})
|
|
215
|
-
|
|
216
|
-
it('derives an extended private key', function () {
|
|
217
|
-
var mnemonic = new Mnemonic()
|
|
218
|
-
var pk = mnemonic.toHDPrivateKey()
|
|
219
|
-
should.exist(pk)
|
|
220
|
-
})
|
|
221
|
-
|
|
222
|
-
it('Mnemonic.fromSeed should fail with invalid wordlist', function () {
|
|
223
|
-
(function () {
|
|
224
|
-
return Mnemonic.fromSeed(Buffer.alloc(1))
|
|
225
|
-
}).should.throw(errors.InvalidArgument)
|
|
226
|
-
})
|
|
227
|
-
|
|
228
|
-
it('Mnemonic.fromSeed should fail with invalid seed', function () {
|
|
229
|
-
(function () {
|
|
230
|
-
return Mnemonic.fromSeed()
|
|
231
|
-
}).should.throw(errors.InvalidArgument)
|
|
232
|
-
})
|
|
233
|
-
|
|
234
|
-
it('Constructor should fail with invalid seed', function () {
|
|
235
|
-
(function () {
|
|
236
|
-
return new Mnemonic(Buffer.alloc(1))
|
|
237
|
-
}).should.throw(errors.InvalidEntropy)
|
|
238
|
-
})
|
|
239
|
-
|
|
240
|
-
// To add new vectors for different languages:
|
|
241
|
-
// 1. Add and implement the wordlist so it appears in Mnemonic.Words
|
|
242
|
-
// 2. Add the vectors and make sure the key is lowercase of the key for Mnemonic.Words
|
|
243
|
-
var vectorwordlists = {}
|
|
244
|
-
|
|
245
|
-
for (var key in Mnemonic.Words) {
|
|
246
|
-
if (Mnemonic.Words.hasOwnProperty(key)) {
|
|
247
|
-
vectorwordlists[key.toLowerCase()] = Mnemonic.Words[key]
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
var testvector = function (v, lang) {
|
|
252
|
-
it('should pass test vector for ' + lang + ' #' + v, function () {
|
|
253
|
-
var wordlist = vectorwordlists[lang]
|
|
254
|
-
var vector = bip39vectors[lang][v]
|
|
255
|
-
var code = vector[1]
|
|
256
|
-
var mnemonic = vector[2]
|
|
257
|
-
var seed = vector[3]
|
|
258
|
-
var mnemonic1 = Mnemonic.fromSeed(Buffer.from(code, 'hex'), wordlist).phrase
|
|
259
|
-
mnemonic1.should.equal(mnemonic)
|
|
260
|
-
|
|
261
|
-
var m = new Mnemonic(mnemonic)
|
|
262
|
-
var seed1 = m.toSeed(vector[0])
|
|
263
|
-
seed1.toString('hex').should.equal(seed)
|
|
264
|
-
|
|
265
|
-
Mnemonic.isValid(mnemonic, wordlist).should.equal(true)
|
|
266
|
-
})
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
for (let key in bip39vectors) {
|
|
270
|
-
if (bip39vectors.hasOwnProperty(key)) {
|
|
271
|
-
for (var v = 0; v < bip39vectors[key].length; v++) {
|
|
272
|
-
testvector(v, key)
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
})
|
|
277
|
-
})
|
package/test/mnemonic/mocha.opts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
--timeout 7000
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
var chai = require('chai')
|
|
4
|
-
chai.should()
|
|
5
|
-
|
|
6
|
-
var pbkdf2 = require('../../lib/mnemonic/pbkdf2')
|
|
7
|
-
|
|
8
|
-
describe('pbkdf2', function () {
|
|
9
|
-
this.timeout(10000)
|
|
10
|
-
|
|
11
|
-
// http://stackoverflow.com/questions/15593184/pbkdf2-hmac-sha-512-test-vectors
|
|
12
|
-
it('passes test vector 1', function () {
|
|
13
|
-
var key = 'password'
|
|
14
|
-
var salt = 'salt'
|
|
15
|
-
|
|
16
|
-
var res = pbkdf2(key, salt, 1, 64)
|
|
17
|
-
res.toString('hex').should.equal('867f70cf1ade02cff3752599a3a53dc4af34c7a669815ae5d513554e1c8cf252c02d470a285a0501bad999bfe943c08f050235d7d68b1da55e63f73b60a57fce')
|
|
18
|
-
})
|
|
19
|
-
|
|
20
|
-
it('passes test vector 2', function () {
|
|
21
|
-
var key = 'password'
|
|
22
|
-
var salt = 'salt'
|
|
23
|
-
|
|
24
|
-
var res = pbkdf2(key, salt, 2, 64)
|
|
25
|
-
res.toString('hex').should.equal('e1d9c16aa681708a45f5c7c4e215ceb66e011a2e9f0040713f18aefdb866d53cf76cab2868a39b9f7840edce4fef5a82be67335c77a6068e04112754f27ccf4e')
|
|
26
|
-
})
|
|
27
|
-
|
|
28
|
-
it('passes test vector 3', function () {
|
|
29
|
-
var key = 'password'
|
|
30
|
-
var salt = 'salt'
|
|
31
|
-
|
|
32
|
-
var res = pbkdf2(key, salt, 4096, 64)
|
|
33
|
-
res.toString('hex').should.equal('d197b1b33db0143e018b12f3d1d1479e6cdebdcc97c5c0f87f6902e072f457b5143f30602641b3d55cd335988cb36b84376060ecd532e039b742a239434af2d5')
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
it('passes test vector 4', function () {
|
|
37
|
-
var key = 'passwordPASSWORDpassword'
|
|
38
|
-
var salt = 'saltSALTsaltSALTsaltSALTsaltSALTsalt'
|
|
39
|
-
|
|
40
|
-
var res = pbkdf2(key, salt, 4096, 64)
|
|
41
|
-
res.toString('hex').should.equal('8c0511f4c6e597c6ac6315d8f0362e225f3c501495ba23b868c005174dc4ee71115b59f9e60cd9532fa33e0f75aefe30225c583a186cd82bd4daea9724a3d3b8')
|
|
42
|
-
})
|
|
43
|
-
})
|