Compare commits

...

112 Commits
0.2.7 ... 0.3.6

Author SHA1 Message Date
Ian Coleman
ccdd300af3 Release v0.3.6 2018-05-08 10:32:56 +10:00
Ian Coleman
e0f91e2029 Add cashaddr address format for bitcoin cash 2018-05-08 10:19:59 +10:00
Ian Coleman
956e44efd7 Korean uses ascii spaces, not ideographic spaces 2018-05-08 09:11:30 +10:00
iancoleman
65cef19412 Merge pull request #212 from Coinomi/zcash
Add zcash support
2018-05-08 09:06:07 +10:00
xarakas
0702ecd352 Add zcash support 2018-04-30 17:41:05 +03:00
iancoleman
584dbddd37 Merge pull request #210 from potatohodler/patch/vertcoin
Improve Vertcoin support
2018-04-20 09:45:39 +10:00
iancoleman
b08caad07e Merge pull request #207 from Coinomi/kobocoin
Add Kobocoin support
2018-04-20 09:37:28 +10:00
Potato
f150f0c03a Adds Segwit support for Vertcoin. 2018-04-18 15:28:31 +02:00
Potato
e3bed0bfd0 Fixes the Vertcoin Mainnet version byte. 2018-04-18 15:03:36 +02:00
xarakas
0a5d28a7ad Add Kobocoin support 2018-04-18 14:58:17 +03:00
Ian Coleman
a08c709606 Release v0.3.5 2018-04-12 12:34:35 +10:00
Ian Coleman
645945a00f Warn when using weak entropy and strong mnemonic 2018-04-12 12:16:05 +10:00
Ian Coleman
85c906727a Warn when generating low entropy mnemonics 2018-04-12 12:08:52 +10:00
iancoleman
d1b4c8c579 Merge pull request #200 from Coinomi/coinomi
Add coins supported by Coinomi wallet
2018-04-12 11:32:37 +10:00
iancoleman
e602fd18de Merge pull request #198 from fujicoin/mod-fujicoin-SegWit
fix index.js fujicoin
2018-04-11 10:32:53 +10:00
xarakas
85f762c905 Add coins supported by Coinomi wallet 2018-04-10 17:34:16 +03:00
motty
3021870752 fix index.js fujicoin 2018-04-10 21:23:56 +09:00
iancoleman
63e2e0755f Merge pull request #196 from fujicoin/mod-fujicoin-SegWit
mod fujicoin SegWit
2018-04-10 08:59:07 +10:00
motty
9a2ca392f0 mod fujicoin SegWit 2018-04-08 21:15:25 +09:00
Ian Coleman
db37d63919 Order Neblio coin alphabetically 2018-03-27 10:32:19 +11:00
Ian Coleman
2eab7c3236 Order Beetlecoin alphabetically 2018-03-27 10:32:01 +11:00
Ian Coleman
38122a3d58 Add test for testnet p2wpkh parameters 2018-03-27 10:31:23 +11:00
Ian Coleman
680b94c1ef Add test for Beetlecoin 2018-03-27 10:28:39 +11:00
Ian Coleman
e5167afe28 Add test for Neblio coin 2018-03-27 10:28:17 +11:00
Ian Coleman
88ae130125 Change Bitcoin Gold coin number to 156
Closes #189
2018-03-27 10:24:35 +11:00
iancoleman
27fa320125 Merge pull request #188 from dalitsairio/master
Add network testnet.p2wpkh
2018-03-27 10:22:07 +11:00
iancoleman
dfbb5a65ff Merge pull request #186 from williamersatz/master
Implemented support for Beetle Coin
2018-03-27 10:20:57 +11:00
Dalit Sairio
206a27352d Add network testnet.p2wpkh 2018-03-25 22:28:25 +02:00
williamersatz
0c9bbd03b0 Added support for Beetle Coin 2018-03-22 09:09:02 +02:00
williamersatz
52d698e42f Added support for Beetle Coin 2018-03-22 09:08:16 +02:00
Ian Coleman
b777ff554d Update bitcoinjs-lib from 3.3.0 to 3.3.2
Built using instructions at
https://github.com/bitcoinjs/bitcoinjs-lib/tree/v3.3.2#browser
2018-03-19 15:13:07 +11:00
iancoleman
0d876b51df Merge pull request #178 from TrifidTeam/init-nebl-integration
Add Neblio
2018-03-16 10:09:13 +11:00
TrifidTeam
ae008be5db Add files via upload 2018-03-14 16:57:16 -04:00
iancoleman
2ed3f6c0c8 Merge pull request #177 from dimitris-t/patch-2
Fixed typo
2018-03-14 09:38:55 +11:00
Dimitris Tsapakidis
dfe833a7db Fixed typo
"each key will take take several minutes" -> "each key will take several minutes'
2018-03-13 23:52:42 +04:00
Ian Coleman
fca07769eb Release v0.3.4 2018-03-12 11:48:10 +11:00
Ian Coleman
5028988195 Use correct BIP44 value for Denarius of 116, not 0
See https://github.com/satoshilabs/slips/blob/master/slip-0044.md
2018-03-12 11:41:35 +11:00
Ian Coleman
139becaf2c Add Korean language 2018-03-12 11:31:41 +11:00
Ian Coleman
0514c20b81 Update jsbip39.js to latest version 2018-03-12 11:31:41 +11:00
Ian Coleman
f8ca25c338 Add spacing every 11 bits to the checksum 2018-03-12 11:31:41 +11:00
Ian Coleman
548d94994b Warn that entropy values should exclude checksum 2018-03-12 11:31:41 +11:00
Ian Coleman
09d63290a4 Show the checksum value in the entropy details 2018-03-12 11:31:41 +11:00
Ian Coleman
d6cade868f Add spaces every 11 bits to raw binary of entropy
This makes it easier to see that the checksum is missing from the end of
the entropy.
2018-03-12 11:31:41 +11:00
Ian Coleman
048721a6ff Add test for blackcoin 2018-03-12 11:31:41 +11:00
Ian Coleman
892ce76fed Order blackcoin alphabetically in coin list 2018-03-12 11:31:41 +11:00
iancoleman
aaa82c097f Merge pull request #172 from carsenk/master
Add Denarius (DNR) Support
2018-03-12 11:21:17 +11:00
iancoleman
05311e7f54 Merge pull request #163 from janko33bd/blackcoin
Add Blackcoin please
2018-03-12 09:23:17 +11:00
carsenk
40209fd898 Add DNR Support 2018-03-06 01:11:55 -07:00
janko33bd
e5520bb859 typo 2018-02-07 19:27:35 +01:00
janko33bd
e1d0cf4f72 update index.js with correct BIP44 reg. number 2018-02-07 19:26:26 +01:00
janko33bd
e82a142872 make bitcoinjs-extensions black 2018-02-07 19:20:54 +01:00
Ian Coleman
fcc7d12109 Release v0.3.3 2018-02-06 10:36:38 +11:00
Ian Coleman
5dfe77e4a3 Fix tests which generate more rows 2018-02-06 10:33:21 +11:00
Ian Coleman
e21e32da31 Add BIP38 test 2018-02-06 10:14:22 +11:00
Ian Coleman
ba678b1147 Allow initial number of rows to be set by user 2018-02-06 09:57:28 +11:00
Ian Coleman
0b39e9dca7 Add BIP38 interface elements 2018-02-06 09:57:23 +11:00
Ian Coleman
cc61ec30c5 Encrypt private keys with BIP38
with fakes for missing UI elements
2018-02-06 09:43:13 +11:00
Ian Coleman
0f0a888e13 Add bitcoinjs-bip38-2.0.2 library
Created using browserify:
git clone https://github.com/bitcoinjs/bip38.git
git checkout v2.0.2
npm install
npm run unit
browserify index.js --standalone bitcoinjs-bip38 > bitcoinjs-bip38-2.0.2.js
2018-02-06 09:42:10 +11:00
Ian Coleman
2ef27fb80b Remove commented-out lines of code from test 2018-01-16 10:37:37 +11:00
Ian Coleman
423fb969c6 Test AXE network 2018-01-16 10:34:42 +11:00
Ian Coleman
9fae1ffbcc Increase allowed rendering time tests
Firefox was only generating 15 of 20 rows in the address table
2018-01-16 10:33:08 +11:00
Ian Coleman
78db37f663 LeftPad ethereum private keys with zeros if needed 2018-01-16 10:33:08 +11:00
iancoleman
28e1cd455c Merge pull request #154 from AXErunners/master
Add AXE
2018-01-16 09:05:18 +11:00
-k
47debf07ed AXE support
prefix fixed
2018-01-07 00:55:48 -05:00
-k
cfc0c4d743 AXE support 2018-01-06 23:57:11 -05:00
Ian Coleman
de8e5bc11f Release v0.3.2 2018-01-03 10:54:10 +11:00
Ian Coleman
5c1003dde3 Fix test for komodo 2018-01-03 10:52:39 +11:00
Ian Coleman
a78f4e280c Add csv display of addresses 2018-01-03 10:33:22 +11:00
Ian Coleman
4e9b492ca4 Add BIP84 tab 2018-01-03 09:32:14 +11:00
Ian Coleman
91eb2cbcfd Fix typo game/komodo 2017-12-20 10:48:09 +11:00
Ian Coleman
c51bb4f9e5 Add test for Onixcoin 2017-12-20 10:42:55 +11:00
iancoleman
3fa0f4cbef Merge pull request #137 from AraguaneyBits/master
Add ONX (Onixcoin)
2017-12-20 10:38:14 +11:00
jestevez
92fb39311e FIX OnixCoin Correct BIP44 Code 174 2017-12-19 21:55:28 +01:00
jestevez
d00c719932 FIX OnixCoin Correct BIP44 Code 174 2017-12-19 21:50:55 +01:00
iancoleman
ab1bd64d52 Merge pull request #142 from ca333/master
[ADD] KMD - Komodo
2017-12-13 14:15:20 +11:00
ca333
aab3645f21 [ADD] KMD - Komodo 2017-12-04 05:01:53 +01:00
jestevez
66419cf39c Add ONX (Onixcoin) 2017-11-30 20:42:49 +01:00
Ian Coleman
26dd39fd0e Release v0.3.1 2017-11-29 10:32:58 +11:00
Ian Coleman
9225b805d6 Replace jquery.qrcode with kjua for QR codes
This handles UTF-8 content correctly
2017-11-29 10:28:09 +11:00
Ian Coleman
f2de7aa7d8 Move css specific to the app into own file 2017-11-29 10:28:09 +11:00
Ian Coleman
9a54f27efc Update bootstrap from minified 3.2.0 to 3.3.7 2017-11-29 10:28:09 +11:00
Ian Coleman
863fa61aaf Update jquery from minified 2.1.1 to 3.2.1 2017-11-29 10:28:09 +11:00
iancoleman
2f410ee66e Merge pull request #134 from dimitris-t/patch-2
Fixed typos
2017-11-28 10:30:36 +11:00
Dimitris Tsapakidis
2087192332 Fixed typos
addreses -> addresses
steet -> street
2017-11-24 18:01:19 +02:00
Ian Coleman
74ab4cbe90 Show entropy from PRNG and word indexes
see issue #132
2017-11-22 15:37:36 +11:00
Ian Coleman
cf6c204497 Release v0.3.0 2017-11-22 13:34:58 +11:00
Ian Coleman
c49e881294 Add BIP141 tab for full segwit compatibility 2017-11-22 13:03:47 +11:00
Ian Coleman
0fd67b5915 Remove segwit from bip32 tab
This option will be added in the future to a bip141 tab
2017-11-22 09:59:58 +11:00
Ian Coleman
1c2b8c6b2d Use ltub for litecoin by default instead of xprv
Introduced when upgrading from bitcoinjs-lib v3.3.0
2017-11-22 09:40:35 +11:00
Ian Coleman
9f59e99bec Update bitcoinjs from v3.1.1 to v3.3.0 2017-11-22 09:19:14 +11:00
Ian Coleman
924727ed26 Release v0.2.9 2017-11-21 12:17:28 +11:00
Ian Coleman
9183f9f658 Allow more rows to be generated at a custom index 2017-11-21 12:06:56 +11:00
Ian Coleman
f487fea9b8 Fix ordering of networks to be alphabetical 2017-11-16 15:11:01 +11:00
Ian Coleman
5a10834a36 Add test for monacoin 2017-11-16 15:09:56 +11:00
Ian Coleman
1f354b0390 Add test for Bitcoin Gold network 2017-11-16 15:09:37 +11:00
Ian Coleman
0460b53f3a Use selenium for tests instead of phantomjs 2017-11-16 14:37:17 +11:00
iancoleman
e8ee368f18 Merge pull request #129 from rsnel/bgold
add BTG (Bitcoin Gold/bgold)
2017-11-15 08:53:38 +11:00
iancoleman
107edb3454 Merge pull request #126 from monautils/master
add monacoin
2017-11-15 08:53:25 +11:00
Rik Snel
3960807353 add BTG (Bitcoin Gold/bgold) 2017-11-14 09:05:50 +01:00
you21979
214c584c40 fix new secret_key https://github.com/monacoinproject/monacoin/blob/master-0.14/src/chainparams.cpp#L135 2017-11-09 19:17:16 +09:00
you21979
c1396e87ed add monacoin 2017-11-09 17:21:07 +09:00
Ian Coleman
b57b721e2c Fix web link from github.io to iancoleman.io 2017-11-01 09:32:18 +11:00
Ian Coleman
0f6b34d68b Release v0.2.8 2017-10-31 13:34:53 +11:00
Ian Coleman
2a01f39de7 Add P2WPKH-nested-in-P2SH to litecoin 2017-10-31 11:48:51 +11:00
Ian Coleman
93c3ef4757 Use correct prefixes for xprv/xpub with segwit 2017-10-31 11:44:42 +11:00
Ian Coleman
fe8f2d140d Allow BitPay address format for bitcoin cash 2017-10-31 10:35:52 +11:00
Ian Coleman
0cca6e893a Add test for nubits network 2017-10-10 12:04:27 +11:00
iancoleman
f2a1a8e67f Merge pull request #123 from alkley/master
Add nubits
2017-10-10 11:48:33 +11:00
alkley
8dd28f2cff Add nubits 2017-10-09 15:34:39 +02:00
iancoleman
4b1e5c340f Merge pull request #122 from dimitris-t/patch-1
Update changelog.md
2017-10-05 09:59:25 +11:00
Dimitris Tsapakidis
2be42f9dba Update changelog.md
Fixed markdown typo.
2017-10-04 19:22:49 +03:00
Ian Coleman
4aa771eb68 Add test for fujicoin 2017-10-03 14:40:56 +11:00
27 changed files with 129931 additions and 8073 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
node_modules

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,79 @@
#0.2.7
# 0.3.6
* Add Kobocoin
* Update Vertcoin version byte and segwit support
* Add Zcash
* Korean mnemonics use ascii spaces
* Add CashAddr address format for bitcoin cash
# 0.3.5
* Fix typo
* Add Neblio network
* Update bitcoinjs-lib from 3.3.0 to 3.3.2
* Add Beetle Coin
* Add segwit for bitcoin testnet and Fujicoin
* Set coin number for Bitcoin God to 156
* Add coins supported by coinomi
* Warn when generating low entropy mnemonics
* Warn when overriding weak entropy with a strong mnemonic length
# 0.3.4
* Add BlackCoin
* Add Denarius
* Raw entropy shows groupings with space every 11 bits
* Checksum shown in entropy details
* Warn that entropy values should exclude checksum
* Add Korean language
# 0.3.3
* Add AXE network
* Ethereum private key generation bugfix
* Add BIP38 support
* Allow initial number of rows to be set by the user
# 0.3.2
* Add Onixcoin
* Add Komodo
* BIP84 tab for derivation path
* CSV tab for derived addresses
# 0.3.1
* Populate entropy field with hex value used from PRNG
* Show list of word indexes
* Fix typos
* Update jquery from 2.1.1 to 3.2.1
* Update bootstrap from 3.2.0 to 3.3.7
* Move application-specific css into own file
* QR codes with accents work correctly by replacing jquery.qrcode with kjua
# 0.3.0
* Update bitcoinjs from 3.1.1 to 3.3.0
* Litecoin defaults to ltub instead of xpub
* Segwit option removed from bip32 tab
* BIP141 tab added for full segwit compatibility
# 0.2.9
* Update links from old site to new site
* Add Monacoin
* Add Bitcoin Gold
* Port test suite to selenium
* Allow more rows to be generated starting from a custom index
# 0.2.8
* Enable segwit for Litecoin
* BitPay-style addresses for Bitcoin Cash
* Use new xpub/xprv prefixes for Segwit BIP49
* Add nubits network
# 0.2.7
* Add Fujicoin
* List alternative tools

View File

@@ -4,7 +4,7 @@ A tool for converting BIP39 mnemonic phrases to addresses and private keys.
## Online Version
https://iancoleman.github.io/bip39/
https://iancoleman.io/bip39/
## Standalone offline version
@@ -62,12 +62,25 @@ please do not commit changes to `bip39-standalone.html`
# Tests
Tests depend on [phantomjs](http://phantomjs.org/).
Tests depend on
* nodejs
* selenium webdriver - cd /path/to/bip39/tests; npm install
* selenium driver for firefox ([geckodriver](https://github.com/mozilla/geckodriver/releases)) and / or chrome ([chromedriver](https://sites.google.com/a/chromium.org/chromedriver/downloads))
* jasmine - npm install --global jasmine
Before running tests, the site must be served at http://localhost:8000.
```
$ cd /path/to/bip39/src
$ python -m http.server
```
Run tests from the command-line
```
$ phantomjs tests.js
$ cd /path/to/bip39/tests
$ jasmine spec/tests.js
```
# License

105
src/css/app.css Normal file
View File

@@ -0,0 +1,105 @@
body {
padding-bottom: 32px;
}
.form-control[readonly] {
cursor: text;
}
.feedback-container {
position: fixed;
top: 0;
width: 100%;
text-align: center;
z-index: 4;
}
.feedback {
display: table;
padding: 0.5em 1em;
background-color: orange;
margin: 0 auto;
font-size: 2em;
color: #444;
border: 2px solid #555;
border-top: 0;
border-bottom-left-radius: 20px 20px;
border-bottom-right-radius: 20px 20px;
}
.no-border {
border: 0;
box-shadow: inset 0 1px 1px rgba(0,0,0,.0);
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.0);
}
.phrase {
word-break: keep-all;
}
.generate-container .strength {
/* override mobile width from bootstrap */
width: auto!important;
display: inline-block;
}
.languages a {
padding-left: 10px;
}
.languages a:nth-of-type(1) {
margin-left: -12px;
padding-left: 0;
}
.monospace {
font-family: monospace;
}
.entropy-container .filtered,
.entropy-container .binary {
word-wrap: break-word;
}
.entropy-container li {
padding-bottom: 5px;
}
.card-suit {
font-size: 19px;
line-height: 0;
}
.card-suit.club {
color: #009F00;
}
.card-suit.diamond {
color: #3D5DC4;
}
.card-suit.heart {
color: #F00;
}
.card-suit.spade {
color: #000;
}
.qr-container {
position: fixed;
top: 0;
right: 0;
text-align: center;
background-color: #FFF;
border: 1px solid #CCC;
}
.qr-image {
margin: 5px;
}
.qr-hint,
.qr-warning {
padding: 2px;
max-width: 320px;
}
.more-info {
cursor: help;
border-bottom: 1px dashed #000;
text-decoration: none;
}
.version {
position: absolute;
top: 5px;
right: 5px;
}
.csv {
margin-top: 20px;
margin-bottom: 20px;
white-space: pre;
overflow-wrap: normal;
overflow-x: scroll;
font-family: monospace;
}

6757
src/css/bootstrap-3.3.7.css vendored Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -3,118 +3,19 @@
<head lang="en">
<meta charset="utf-8" />
<title>BIP39 - Mnemonic Code</title>
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/bootstrap-3.3.7.css">
<link rel="stylesheet" href="css/app.css">
<meta content="Mnemonic code for generating deterministic keys" name="description"/>
<meta content="width=device-width, initial-scale=1.0" name="viewport" />
<meta content="bitcoin mnemonic converter" name="description" />
<meta content="Ian Coleman" name="author" />
<link type="image/x-icon" rel="icon" href="data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAAF0lEQVRIx2NgGAWjYBSMglEwCkbBSAcACBAAAeaR9cIAAAAASUVORK5CYII=" />
<style>
body {
padding-bottom: 32px;
}
.form-control[readonly] {
cursor: text;
}
.feedback-container {
position: fixed;
top: 0;
width: 100%;
text-align: center;
z-index: 4;
}
.feedback {
display: table;
padding: 0.5em 1em;
background-color: orange;
margin: 0 auto;
font-size: 2em;
color: #444;
border: 2px solid #555;
border-top: 0;
border-bottom-left-radius: 20px 20px;
border-bottom-right-radius: 20px 20px;
}
.no-border {
border: 0;
box-shadow: inset 0 1px 1px rgba(0,0,0,.0);
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.0);
}
.phrase {
word-break: keep-all;
}
.generate-container .strength {
/* override mobile width from bootstrap */
width: auto!important;
display: inline-block;
}
.languages a {
padding-left: 10px;
}
.languages a:nth-of-type(1) {
margin-left: -12px;
padding-left: 0;
}
.monospace {
font-family: monospace;
}
.entropy-container .filtered,
.entropy-container .binary {
word-wrap: break-word;
}
.entropy-container li {
padding-bottom: 5px;
}
.card-suit {
font-size: 19px;
line-height: 0;
}
.card-suit.club {
color: #009F00;
}
.card-suit.diamond {
color: #3D5DC4;
}
.card-suit.heart {
color: #F00;
}
.card-suit.spade {
color: #000;
}
.qr-container {
position: fixed;
top: 0;
right: 0;
text-align: center;
background-color: #FFF;
border: 1px solid #CCC;
}
.qr-image {
margin: 5px;
}
.qr-hint,
.qr-warning {
padding: 2px;
max-width: 150px;
}
.more-info {
cursor: help;
border-bottom: 1px dashed #000;
text-decoration: none;
}
.version {
position: absolute;
top: 5px;
right: 5px;
}
</style>
</head>
<body>
<div class="container">
<h1 class="text-center">Mnemonic Code Converter</h1>
<p class="version">v0.2.7</p>
<p class="version">v0.3.6</p>
<hr>
<div class="row">
<div class="col-md-12">
@@ -147,7 +48,12 @@
<option value="21">21</option>
<option value="24">24</option>
</select>
<span>words</span>
<span>words</span>.
<p class="warning help-block hidden">
<span class="text-danger">
Mnemonics with less than 12 words have low entropy and may be guessed by an attacker.
</span>
</p>
</div>
</div>
</div>
@@ -193,6 +99,10 @@
<div class="filtered col-sm-9 form-control-static"></div>
<label class="col-sm-3 control-label">Raw Binary</label>
<div class="binary col-sm-9 form-control-static"></div>
<label class="col-sm-3 control-label">Binary Checksum</label>
<div class="checksum col-sm-9 form-control-static">&nbsp;</div>
<label class="col-sm-3 control-label">Word Indexes</label>
<div class="word-indexes col-sm-9 form-control-static">&nbsp;</div>
<label class="col-sm-3 control-label">Mnemonic Length</label>
<div class="col-sm-9">
<select class="mnemonic-length form-control">
@@ -203,6 +113,11 @@
<option value="21">21 <span>Words</span></option>
<option value="24">24 <span>Words</span></option>
</select>
<p class="weak-entropy-override-warning hidden">
<span class="text-danger">
The mnemonic will appear more secure than it really is.
</span>
</p>
</div>
</div>
<div class="col-sm-3">
@@ -223,7 +138,7 @@
<div class="col-sm-10 checkbox">
<label>
<input type="checkbox" class="use-entropy">
<span>Supply my own source of entropy</span>
<span>Show entropy details</span>
</label>
</div>
</div>
@@ -238,6 +153,7 @@
<a href="#chinese_traditional" title="Chinese (Traditional)">中文(繁體)</a>
<a href="#french" title="French">Français</a>
<a href="#italian" title="Italian">Italiano</a>
<a href="#korean" title="Korean">한국어</a>
</div>
</div>
</div>
@@ -277,7 +193,7 @@
<label for="litecoin-use-ltub" class="col-sm-2 control-label">Prefixes</label>
<div class="col-sm-10 checkbox">
<label>
<input type="checkbox" id="litecoin-use-ltub" class="litecoin-use-ltub">
<input type="checkbox" id="litecoin-use-ltub" class="litecoin-use-ltub" checked="checked">
Use <code>Ltpv / Ltub</code> instead of <code>xprv / xpub</code>
</label>
</div>
@@ -301,6 +217,12 @@
<li id="bip49-tab">
<a href="#bip49" role="tab" data-toggle="tab">BIP49</a>
</li>
<li id="bip84-tab">
<a href="#bip84" role="tab" data-toggle="tab">BIP84</a>
</li>
<li id="bip141-tab">
<a href="#bip141" role="tab" data-toggle="tab">BIP141</a>
</li>
</ul>
<div class="derivation-type tab-content">
<div id="bip44" class="tab-pane active">
@@ -415,13 +337,6 @@
<span>Use hardened addresses</span>
</label>
</div>
<div class="form-group">
<div class="col-sm-2"></div>
<label class="col-sm-10">
<input class="p2wpkh-nested-in-p2sh" type="checkbox">
<span>Use SegWit addresses (ie P2WPKH Nested In P2SH)</span>
</label>
</div>
<div class="form-group">
<label for="core-path" class="col-sm-2 control-label">Bitcoin Core</label>
<div class="col-sm-10">
@@ -551,6 +466,123 @@
</div>
</form>
</div>
<div id="bip141" class="tab-pane">
<form class="form-horizontal" role="form">
<br>
<div class="unavailable hidden">
<div class="form-group">
<div class="col-sm-2"></div>
<div class="col-sm-10">
<p>BIP141 is unavailable for this coin.</p>
</div>
</div>
</div>
<div class="available">
<div class="col-sm-2"></div>
<div class="col-sm-10">
<p>
For more info see the
<a href="https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki" target="_blank">BIP141 spec</a>
</p>
</div>
<div class="form-group">
<label for="bip141-path" class="col-sm-2 control-label">BIP32 Derivation Path</label>
<div class="col-sm-10">
<input id="bip141-path" type="text" class="bip141-path form-control" value="m/0">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Script Semantics</label>
<div class="col-sm-10">
<select class="form-control bip141-semantics">
<option value="p2wpkh">P2WPKH</option>
<option value="p2wpkh-p2sh" selected>P2WPKH nested in P2SH</option>
</select>
</div>
</div>
</div>
</form>
</div>
<div id="bip84" class="tab-pane">
<form class="form-horizontal" role="form">
<br>
<div class="col-sm-2"></div>
<div class="col-sm-10">
<p>
For more info see the
<a href="https://github.com/bitcoin/bips/blob/master/bip-0084.mediawiki" target="_blank">BIP84 spec</a>.
</p>
</div>
<div class="form-group">
<label for="purpose" class="col-sm-2 control-label">
Purpose
</label>
<div class="col-sm-10">
<input id="purpose" type="text" class="purpose form-control" value="84" readonly>
</div>
</div>
<div class="form-group">
<label for="coin" class="col-sm-2 control-label">
Coin
</label>
<div class="col-sm-10">
<input id="coin" type="text" class="coin form-control" value="0" readonly>
</div>
</div>
<div class="form-group">
<label for="account" class="col-sm-2 control-label">
Account
</label>
<div class="col-sm-10">
<input id="account" type="text" class="account form-control" value="0">
</div>
</div>
<div class="form-group">
<label for="change" class="col-sm-2 control-label">
External / Internal
</label>
<div class="col-sm-10">
<input id="change" type="text" class="change form-control" value="0">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">
</label>
<div class="col-sm-10">
<p>The account extended keys can be used for importing to most BIP84 compatible wallets.</p>
</div>
</div>
<div class="form-group">
<label for="account-xprv" class="col-sm-2 control-label">
<span>Account Extended Private Key</span>
</label>
<div class="col-sm-10">
<textarea id="account-xprv" type="text" class="account-xprv form-control" readonly data-show-qr></textarea>
</div>
</div>
<div class="form-group">
<label for="account-xpub" class="col-sm-2 control-label">
<span>Account Extended Public Key</span>
</label>
<div class="col-sm-10">
<textarea id="account-xpub" type="text" class="account-xpub form-control" readonly data-show-qr></textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">
</label>
<div class="col-sm-10">
<p>The BIP32 derivation path and extended keys are the basis for the derived addresses.</p>
</div>
</div>
<div class="form-group">
<label for="bip84-path" class="col-sm-2 control-label">BIP32 Derivation Path</label>
<div class="col-sm-10">
<input id="bip84-path" type="text" class="path form-control" value="m/84'/0'/0'/0" readonly="readonly">
</div>
</div>
</form>
</div>
</div>
<form class="form-horizontal" role="form">
<div class="form-group">
@@ -574,47 +606,99 @@
<div class="row">
<div class="col-md-12">
<h2>Derived Addresses</h2>
<p>Note these addreses are derived from the BIP32 Extended Key</p>
<table class="table table-striped">
<thead>
<th>
<div class="input-group">
<span>Path</span>&nbsp;&nbsp;
<button class="index-toggle">Toggle</button>
</div>
</th>
<th>
<div class="input-group">
<span>Address</span>&nbsp;&nbsp;
<button class="address-toggle">Toggle</button>
</div>
</th>
<th>
<div class="input-group">
<span>Public Key</span>&nbsp;&nbsp;
<button class="public-key-toggle">Toggle</button>
</div>
</th>
<th>
<div class="input-group">
<span>Private Key</span>&nbsp;&nbsp;
<button class="private-key-toggle">Toggle</button>
</div>
</th>
</thead>
<tbody class="addresses monospace">
<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
</tbody>
</table>
<p>Note these addresses are derived from the BIP32 Extended Key</p>
</div>
<div class="col-md-12 bch-addr-type-container hidden">
<div class="radio">
<label>
<input type="radio" value="cashaddr" name="bch-addr-type" class="use-bch-cashaddr-addresses" checked="checked">
<span>Use CashAddr addresses for Bitcoin Cash (ie starting with 'q' instead of '1')</span>
</label>
</div>
<div class="radio">
<label>
<input type="radio" value="bitpay" name="bch-addr-type" class="use-bch-bitpay-addresses">
<span>Use BitPay-style addresses for Bitcoin Cash (ie starting with 'C' instead of '1')</span>
</label>
</div>
<div class="radio">
<label>
<input type="radio" value="legacy" name="bch-addr-type" class="use-bch-legacy-addresses">
<span>Use legacy addresses for Bitcoin Cash (ie starting with '1')</span>
</label>
</div>
</div>
<div class="col-md-12">
<div class="checkbox">
<label>
<input type="checkbox" class="use-bip38">
<span>Encrypt private keys using BIP38 and this password:</span>
</label>
<input class="bip38-password">
<span>Enabling BIP38 means each key will take several minutes to generate.</span>
</div>
</div>
<ul class="addresses-type nav nav-tabs" role="tablist">
<li id="table-tab" class="active">
<a href="#table" role="tab" data-toggle="tab">Table</a>
</li>
<li id="csv-tab">
<a href="#csv" role="tab" data-toggle="tab">CSV</a>
</li>
</ul>
<div class="addresses-type tab-content">
<div id="table" class="tab-pane active">
<div class="col-md-12">
<table class="table table-striped">
<thead>
<th>
<div class="input-group">
<span>Path</span>&nbsp;&nbsp;
<button class="index-toggle">Toggle</button>
</div>
</th>
<th>
<div class="input-group">
<span>Address</span>&nbsp;&nbsp;
<button class="address-toggle">Toggle</button>
</div>
</th>
<th>
<div class="input-group">
<span>Public Key</span>&nbsp;&nbsp;
<button class="public-key-toggle">Toggle</button>
</div>
</th>
<th>
<div class="input-group">
<span>Private Key</span>&nbsp;&nbsp;
<button class="private-key-toggle">Toggle</button>
</div>
</th>
</thead>
<tbody class="addresses monospace">
<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
</tbody>
</table>
</div>
</div>
<div id="csv" class="tab-pane">
<div class="col-md-12">
<textarea class="csv form-control" rows="25" readonly></textarea>
</div>
</div>
</div>
</div>
<span>Show more rows</span>:
<span>Show</span>
<input type="number" class="rows-to-add" value="20">
<button class="more">Show</button>
<button class="more">more rows</button>
<span>starting from index</span>
<input type="number" class="more-rows-start-index">
<span>(leave blank to generate from next index)</span>
<hr>
@@ -654,6 +738,9 @@
<span>Be careful - it can be easy to make mistakes if you don't know what you're doing.</span>
</p>
<h3 id="entropy-notes">Entropy</h3>
<p>
<span>Entropy values should not include the BIP39 checksum. This is automatically added by the tool.</span>
</p>
<p>
<span>
Entropy values must be sourced from a
@@ -661,7 +748,7 @@
</span>
<span>This means flipping a fair coin, rolling a fair dice, noise measurements etc.</span>
<span>
Do <strong>NOT</strong> use phrases from books, lyrics from songs, your birthday or steet address,
Do <strong>NOT</strong> use phrases from books, lyrics from songs, your birthday or street address,
keyboard mashing, or anything you <i>think</i> is random, because chances are overwhelming it isn't
random enough for the needs of this tool.
</span>
@@ -818,14 +905,17 @@
<script src="js/polyfill.es6.js"></script>
<script src="js/basex.js"></script>
<script src="js/unorm.js"></script>
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/jquery-3.2.1.js"></script>
<script src="js/bootstrap-3.3.7.js"></script>
<script src="js/levenshtein.js"></script>
<script src="js/jquery.qrcode.min.js"></script>
<script src="js/bitcoinjs-3-1-1.js"></script>
<script src="js/kjua-0.1.1.min.js"></script>
<script src="js/bitcoinjs-3.3.2.js"></script>
<script src="js/bitcoinjs-extensions.js"></script>
<script src="js/bitcoinjs-bip38-2.0.2.js"></script>
<script src="js/segwit-parameters.js"></script>
<script src="js/ethereumjs-util.js"></script>
<script src="js/ripple-util.js"></script>
<script src="js/bchaddrjs-0.2.1.js"></script>
<script src="js/sjcl-bip39.js"></script>
<script src="js/wordlist_english.js"></script>
<script src="js/wordlist_japanese.js"></script>
@@ -834,6 +924,7 @@
<script src="js/wordlist_chinese_traditional.js"></script>
<script src="js/wordlist_french.js"></script>
<script src="js/wordlist_italian.js"></script>
<script src="js/wordlist_korean.js"></script>
<script src="js/jsbip39.js"></script>
<script src="js/biginteger.js"></script>
<script src="js/zxcvbn.js"></script>

9328
src/js/bchaddrjs-0.2.1.js Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -108,6 +108,17 @@ bitcoinjs.bitcoin.networks.peercoin = {
wif: 0xb7
};
bitcoinjs.bitcoin.networks.axe = {
messagePrefix: 'unused',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4
},
pubKeyHash: 0x4B,
scriptHash: 0xCB, // TODO set this correctly
wif: 0xCB
};
bitcoinjs.bitcoin.networks.slimcoin = {
messagePrefix: 'unused',
bip32: {
@@ -141,6 +152,28 @@ bitcoinjs.bitcoin.networks.dogecoin = {
wif: 0x9e
};
bitcoinjs.bitcoin.networks.denarius = {
messagePrefix: '\x19Denarius Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4
},
pubKeyHash: 0x1e,
scriptHash: 0x5a,
wif: 0x9e
};
bitcoinjs.bitcoin.networks.neblio = {
messagePrefix: '\x18Neblio Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4
},
pubKeyHash: 0x35,
scriptHash: 0x70,
wif: 0xb5
};
bitcoinjs.bitcoin.networks.viacoin = {
messagePrefix: '\x18Viacoin Signed Message:\n',
bip32: {
@@ -207,6 +240,18 @@ bitcoinjs.bitcoin.networks.myriadcoin = {
wif: 0xb2
};
bitcoinjs.bitcoin.networks.onixcoin = {
messagePrefix: 'unused',
bip32: {
public: 0x049d7cb2,
private: 0x049d7878
},
pubKeyHash: 0x4B,
scriptHash: 0x05,
wif: 0x80
};
bitcoinjs.bitcoin.networks.pivx = {
messagePrefix: 'unused',
bip32: {
@@ -239,3 +284,918 @@ bitcoinjs.bitcoin.networks.fujicoin = {
scriptHash: 0x10,
wif: 0xa4
};
bitcoinjs.bitcoin.networks.nubits = {
messagePrefix: '\x18Nu Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4
},
pubKeyHash: 0x19,
scriptHash: 0x1a,
wif: 0x96,
};
bitcoinjs.bitcoin.networks.bgold = {
messagePrefix: 'unused',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4
},
pubKeyHash: 38,
scriptHash: 23,
wif: 128
};
bitcoinjs.bitcoin.networks.monacoin = {
messagePrefix: '\x18Monacoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4
},
pubKeyHash: 0x32,
scriptHash: 0x37,
wif: 0xb0
};
bitcoinjs.bitcoin.networks.litecoinXprv = {
messagePrefix: '\x19Litecoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x30,
scriptHash: 0x32,
wif: 0xb0
};
bitcoinjs.bitcoin.networks.komodo = {
messagePrefix: '\x18Komodo Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4
},
pubKeyHash: 0x3c,
scriptHash: 0x55,
wif: 0xbc
};
bitcoinjs.bitcoin.networks.blackcoin = {
messagePrefix: '\x18BlackCoin Signed Message:\n',
bip32: {
public: 0x02CFBEDE,
private: 0x02CFBF60
},
pubKeyHash: 0x19,
scriptHash: 0x55,
wif: 0x99
};
bitcoinjs.bitcoin.networks.beetlecoin = {
messagePrefix: '\x19Beetlecoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4
},
pubKeyHash: 0x1A,
scriptHash: 0x55,
wif: 0x99,
};
bitcoinjs.bitcoin.networks.adcoin = {
messagePrefix: '\x18AdCoin Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x17,
scriptHash: 0x05,
wif: 0xb0,
};
bitcoinjs.bitcoin.networks.asiacoin = {
messagePrefix: '\x18AsiaCoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x17,
scriptHash: 0x08,
wif: 0x97,
};
bitcoinjs.bitcoin.networks.auroracoin = {
messagePrefix: '\x18AuroraCoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x17,
scriptHash: 0x05,
wif: 0x97,
};
bitcoinjs.bitcoin.networks.bata = {
messagePrefix: '\x18Bata Signed Message:\n',
bip32: {
public: 0xA40C86FA,
private: 0xA40B91BD,
},
pubKeyHash: 0x19,
scriptHash: 0x05,
wif: 0xa4,
};
bitcoinjs.bitcoin.networks.belacoin = {
messagePrefix: '\x18BelaCoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x19,
scriptHash: 0x05,
wif: 0x99,
};
bitcoinjs.bitcoin.networks.atom = {
messagePrefix: '\x18Bitcoin Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x17,
scriptHash: 0x0a,
wif: 0x80,
};
bitcoinjs.bitcoin.networks.bitcoinplus = {
messagePrefix: '\x18BitcoinPlus Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x19,
scriptHash: 0x08,
wif: 0x99,
};
bitcoinjs.bitcoin.networks.bitcore = {
messagePrefix: '\x18BitCore Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x00,
scriptHash: 0x05,
wif: 0x80,
};
bitcoinjs.bitcoin.networks.bitsend = {
messagePrefix: '\x18Bitsend Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x66,
scriptHash: 0x05,
wif: 0xcc,
};
bitcoinjs.bitcoin.networks.britcoin = {
messagePrefix: '\x18BritCoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x19,
scriptHash: 0x55,
wif: 0x99,
};
bitcoinjs.bitcoin.networks.canadaecoin = {
messagePrefix: '\x18Canada eCoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x1c,
scriptHash: 0x05,
wif: 0x9c,
};
bitcoinjs.bitcoin.networks.cannacoin = {
messagePrefix: '\x18Cannacoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x1c,
scriptHash: 0x05,
wif: 0x9c,
};
bitcoinjs.bitcoin.networks.clubcoin = {
messagePrefix: '\x18ClubCoin Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x1c,
scriptHash: 0x55,
wif: 0x99,
};
bitcoinjs.bitcoin.networks.compcoin = {
messagePrefix: '\x18CompCoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x1c,
scriptHash: 0x55,
wif: 0x9c,
};
bitcoinjs.bitcoin.networks.crave = {
messagePrefix: '\x18DarkNet Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x46,
scriptHash: 0x55,
wif: 0x99,
};
bitcoinjs.bitcoin.networks.defcoin = {
messagePrefix: '\x18defcoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x1e,
scriptHash: 0x05,
wif: 0x9e,
};
bitcoinjs.bitcoin.networks.diamond = {
messagePrefix: '\x18Diamond Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x5a,
scriptHash: 0x08,
wif: 0xda,
};
bitcoinjs.bitcoin.networks.digibyte = {
messagePrefix: '\x18DigiByte Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x1e,
scriptHash: 0x05,
wif: 0x80,
};
bitcoinjs.bitcoin.networks.digitalcoin = {
messagePrefix: '\x18Digitalcoin Signed Message:\n',
bip32: {
public: 0x9e0488B2,
private: 0x0488ADE4,
},
pubKeyHash: 0x1e,
scriptHash: 0x05,
wif: 0x9e,
};
bitcoinjs.bitcoin.networks.ecoin = {
messagePrefix: '\x18eCoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x5c,
scriptHash: 0x14,
wif: 0xdc,
};
bitcoinjs.bitcoin.networks.edrcoin = {
messagePrefix: '\x18EDRcoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x5d,
scriptHash: 0x1c,
wif: 0xdd,
};
bitcoinjs.bitcoin.networks.egulden = {
messagePrefix: '\x18Egulden Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x30,
scriptHash: 0x05,
wif: 0xb0,
};
bitcoinjs.bitcoin.networks.einsteinium = {
messagePrefix: '\x18Einsteinium Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x21,
scriptHash: 0x05,
wif: 0xa1,
};
bitcoinjs.bitcoin.networks.europecoin = {
messagePrefix: '\x18Bitcoin Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x21,
scriptHash: 0x05,
wif: 0xa8,
};
bitcoinjs.bitcoin.networks.exclusivecoin = {
messagePrefix: '\x18ExclusiveCoin Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x21,
scriptHash: 0x89,
wif: 0xa1,
};
bitcoinjs.bitcoin.networks.feathercoin = {
messagePrefix: '\x18Feathercoin Signed Message:\n',
bip32: {
public: 0x0488BC26,
private: 0x0488DAEE,
},
pubKeyHash: 0x0e,
scriptHash: 0x05,
wif: 0x8e,
};
bitcoinjs.bitcoin.networks.firstcoin = {
messagePrefix: '\x18FirstCoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x23,
scriptHash: 0x05,
wif: 0xa3,
};
bitcoinjs.bitcoin.networks.flashcoin = {
messagePrefix: '\x18Flashcoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x44,
scriptHash: 0x82,
wif: 0xc4,
};
bitcoinjs.bitcoin.networks.gcr = {
messagePrefix: '\x18GCR Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x26,
scriptHash: 0x61,
wif: 0x9a,
};
bitcoinjs.bitcoin.networks.gobyte = {
messagePrefix: '\x18DarkCoin Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x26,
scriptHash: 0x0a,
wif: 0xc6,
};
bitcoinjs.bitcoin.networks.gridcoin = {
messagePrefix: '\x18Gridcoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x3e,
scriptHash: 0x55,
wif: 0xbe,
};
bitcoinjs.bitcoin.networks.gulden = {
messagePrefix: '\x18Guldencoin Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x26,
scriptHash: 0x62,
wif: 0x62,
};
bitcoinjs.bitcoin.networks.helleniccoin = {
messagePrefix: '\x18helleniccoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x30,
scriptHash: 0x05,
wif: 0xb0,
};
bitcoinjs.bitcoin.networks.hempcoin = {
messagePrefix: '\x18Hempcoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x28,
scriptHash: 0x08,
wif: 0xa8,
};
bitcoinjs.bitcoin.networks.insane = {
messagePrefix: '\x18INSaNe Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x66,
scriptHash: 0x39,
wif: 0x37,
};
bitcoinjs.bitcoin.networks.iop = {
messagePrefix: '\x18IoP Signed Message:\n',
bip32: {
public: 0x2780915F,
private: 0xAE3416F6,
},
pubKeyHash: 0x75,
scriptHash: 0xae,
wif: 0x31,
};
bitcoinjs.bitcoin.networks.ixcoin = {
messagePrefix: '\x18Ixcoin Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x8a,
scriptHash: 0x05,
wif: 0x80,
};
bitcoinjs.bitcoin.networks.kobocoin = {
messagePrefix: '\x18Kobocoin Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x23,
scriptHash: 0x1c,
wif: 0xa3,
};
bitcoinjs.bitcoin.networks.landcoin = {
messagePrefix: '\x18Landcoin Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x30,
scriptHash: 0x7a,
wif: 0xb0,
};
bitcoinjs.bitcoin.networks.lbry = {
messagePrefix: '\x18LBRYcrd Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x55,
scriptHash: 0x7a,
wif: 0x1c,
};
bitcoinjs.bitcoin.networks.linx = {
messagePrefix: '\x18LinX Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x4b,
scriptHash: 0x05,
wif: 0xcb,
};
bitcoinjs.bitcoin.networks.litecoincash = {
messagePrefix: '\x18Litecoin Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x1c,
scriptHash: 0x05,
wif: 0xb0,
};
bitcoinjs.bitcoin.networks.lynx = {
messagePrefix: '\x18Lynx Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x2d,
scriptHash: 0x32,
wif: 0xad,
};
bitcoinjs.bitcoin.networks.minexcoin = {
messagePrefix: '\x18Bitcoin Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x4b,
scriptHash: 0x05,
wif: 0x80,
};
bitcoinjs.bitcoin.networks.navcoin = {
messagePrefix: '\x18Navcoin Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x35,
scriptHash: 0x55,
wif: 0x96,
};
bitcoinjs.bitcoin.networks.neoscoin = {
messagePrefix: '\x18NeosCoin Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x35,
scriptHash: 0x05,
wif: 0xb1,
};
bitcoinjs.bitcoin.networks.neurocoin = {
messagePrefix: '\x18PPCoin Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x35,
scriptHash: 0x75,
wif: 0xb5,
};
bitcoinjs.bitcoin.networks.newyorkc = {
messagePrefix: '\x18newyorkc Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x3c,
scriptHash: 0x16,
wif: 0xbc,
};
bitcoinjs.bitcoin.networks.novacoin = {
messagePrefix: '\x18NovaCoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x08,
scriptHash: 0x14,
wif: 0x88,
};
bitcoinjs.bitcoin.networks.nushares = {
messagePrefix: '\x18Nu Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x3f,
scriptHash: 0x40,
wif: 0x95,
};
bitcoinjs.bitcoin.networks.okcash = {
messagePrefix: '\x18OKCash Signed Message:\n',
bip32: {
public: 0x03CC23D7,
private: 0x03CC1C73,
},
pubKeyHash: 0x37,
scriptHash: 0x1c,
wif: 0x03,
};
bitcoinjs.bitcoin.networks.omnicore = {
messagePrefix: '\x18Bitcoin Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x00,
scriptHash: 0x05,
wif: 0x80,
};
bitcoinjs.bitcoin.networks.pesobit = {
messagePrefix: '\x18Pesobit Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x37,
scriptHash: 0x55,
wif: 0xb7,
};
bitcoinjs.bitcoin.networks.pinkcoin = {
messagePrefix: '\x18Pinkcoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x03,
scriptHash: 0x1c,
wif: 0x83,
};
bitcoinjs.bitcoin.networks.poswcoin = {
messagePrefix: '\x18Poswcoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x37,
scriptHash: 0x55,
wif: 0xb7,
};
bitcoinjs.bitcoin.networks.potcoin = {
messagePrefix: '\x18Potcoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x37,
scriptHash: 0x05,
wif: 0xb7,
};
bitcoinjs.bitcoin.networks.putincoin = {
messagePrefix: '\x18PutinCoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x37,
scriptHash: 0x14,
wif: 0xb7,
};
bitcoinjs.bitcoin.networks.reddcoin = {
messagePrefix: '\x18Reddcoin Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x3d,
scriptHash: 0x05,
wif: 0xbd,
};
bitcoinjs.bitcoin.networks.revolutionvr = {
messagePrefix: '\x18Voxels Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x46,
scriptHash: 0x05,
wif: 0xc6,
};
bitcoinjs.bitcoin.networks.rubycoin = {
messagePrefix: '\x18Rubycoin Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x3c,
scriptHash: 0x55,
wif: 0xbc,
};
bitcoinjs.bitcoin.networks.smileycoin = {
messagePrefix: '\x18Smileycoin Signed Message:\n',
bip32: {
public: 0x1E562D9A,
private: 0x1E5631BC,
},
pubKeyHash: 0x19,
scriptHash: 0x05,
wif: 0x05,
};
bitcoinjs.bitcoin.networks.solarcoin = {
messagePrefix: '\x18SolarCoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x12,
scriptHash: 0x05,
wif: 0x92,
};
bitcoinjs.bitcoin.networks.stratis = {
messagePrefix: '\x18Stratis Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x3f,
scriptHash: 0x7d,
wif: 0xbf,
};
bitcoinjs.bitcoin.networks.syscoin = {
messagePrefix: '\x18Syscoin Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x3f,
scriptHash: 0x05,
wif: 0xbf,
};
bitcoinjs.bitcoin.networks.toa = {
messagePrefix: '\x18TOA Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x41,
scriptHash: 0x17,
wif: 0xc1,
};
bitcoinjs.bitcoin.networks.ultimatesecurecash = {
messagePrefix: '\x18UltimateSecureCash Signed Message:\n',
bip32: {
public: 0xEE80286A,
private: 0xEE8031E8,
},
pubKeyHash: 0x44,
scriptHash: 0x7d,
wif: 0xbf,
};
bitcoinjs.bitcoin.networks.unobtanium = {
messagePrefix: '\x18Unobtanium Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x82,
scriptHash: 0x1e,
wif: 0xe0,
};
bitcoinjs.bitcoin.networks.vcash = {
messagePrefix: '\x18Vcash Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x47,
scriptHash: 0x08,
wif: 0xc7,
};
bitcoinjs.bitcoin.networks.verge = {
messagePrefix: '\x18VERGE Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x1e,
scriptHash: 0x21,
wif: 0x9e,
};
bitcoinjs.bitcoin.networks.vertcoin = {
messagePrefix: '\x18Vertcoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x47,
scriptHash: 0x05,
wif: 0x80,
};
bitcoinjs.bitcoin.networks.vivo = {
messagePrefix: '\x18DarkCoin Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x46,
scriptHash: 0x0a,
wif: 0xc6,
};
bitcoinjs.bitcoin.networks.vpncoin = {
messagePrefix: '\x18VpnCoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x47,
scriptHash: 0x05,
wif: 0xc7,
};
bitcoinjs.bitcoin.networks.whitecoin = {
messagePrefix: '\x18Whitecoin Signed Message:\n',
bip32: {
public: 0x04887F1E,
private: 0x048894ED,
},
pubKeyHash: 0x49,
scriptHash: 0x57,
wif: 0xc9,
};
bitcoinjs.bitcoin.networks.wincoin = {
messagePrefix: '\x18WinCoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4,
},
pubKeyHash: 0x49,
scriptHash: 0x1c,
wif: 0xc9,
};
bitcoinjs.bitcoin.networks.zcoin = {
messagePrefix: '\x18Zcoin Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x52,
scriptHash: 0x07,
wif: 0xd2,
};
bitcoinjs.bitcoin.networks.zcash = {
messagePrefix: '\x18Zcash Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x1CB8,
scriptHash: 0x1CBD,
wif: 0x80,
};

2377
src/js/bootstrap-3.3.7.js vendored Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

10253
src/js/jquery-3.2.1.js vendored Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -1,28 +0,0 @@
(function(r){r.fn.qrcode=function(h){var s;function u(a){this.mode=s;this.data=a}function o(a,c){this.typeNumber=a;this.errorCorrectLevel=c;this.modules=null;this.moduleCount=0;this.dataCache=null;this.dataList=[]}function q(a,c){if(void 0==a.length)throw Error(a.length+"/"+c);for(var d=0;d<a.length&&0==a[d];)d++;this.num=Array(a.length-d+c);for(var b=0;b<a.length-d;b++)this.num[b]=a[b+d]}function p(a,c){this.totalCount=a;this.dataCount=c}function t(){this.buffer=[];this.length=0}u.prototype={getLength:function(){return this.data.length},
write:function(a){for(var c=0;c<this.data.length;c++)a.put(this.data.charCodeAt(c),8)}};o.prototype={addData:function(a){this.dataList.push(new u(a));this.dataCache=null},isDark:function(a,c){if(0>a||this.moduleCount<=a||0>c||this.moduleCount<=c)throw Error(a+","+c);return this.modules[a][c]},getModuleCount:function(){return this.moduleCount},make:function(){if(1>this.typeNumber){for(var a=1,a=1;40>a;a++){for(var c=p.getRSBlocks(a,this.errorCorrectLevel),d=new t,b=0,e=0;e<c.length;e++)b+=c[e].dataCount;
for(e=0;e<this.dataList.length;e++)c=this.dataList[e],d.put(c.mode,4),d.put(c.getLength(),j.getLengthInBits(c.mode,a)),c.write(d);if(d.getLengthInBits()<=8*b)break}this.typeNumber=a}this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(a,c){this.moduleCount=4*this.typeNumber+17;this.modules=Array(this.moduleCount);for(var d=0;d<this.moduleCount;d++){this.modules[d]=Array(this.moduleCount);for(var b=0;b<this.moduleCount;b++)this.modules[d][b]=null}this.setupPositionProbePattern(0,0);this.setupPositionProbePattern(this.moduleCount-
7,0);this.setupPositionProbePattern(0,this.moduleCount-7);this.setupPositionAdjustPattern();this.setupTimingPattern();this.setupTypeInfo(a,c);7<=this.typeNumber&&this.setupTypeNumber(a);null==this.dataCache&&(this.dataCache=o.createData(this.typeNumber,this.errorCorrectLevel,this.dataList));this.mapData(this.dataCache,c)},setupPositionProbePattern:function(a,c){for(var d=-1;7>=d;d++)if(!(-1>=a+d||this.moduleCount<=a+d))for(var b=-1;7>=b;b++)-1>=c+b||this.moduleCount<=c+b||(this.modules[a+d][c+b]=
0<=d&&6>=d&&(0==b||6==b)||0<=b&&6>=b&&(0==d||6==d)||2<=d&&4>=d&&2<=b&&4>=b?!0:!1)},getBestMaskPattern:function(){for(var a=0,c=0,d=0;8>d;d++){this.makeImpl(!0,d);var b=j.getLostPoint(this);if(0==d||a>b)a=b,c=d}return c},createMovieClip:function(a,c,d){a=a.createEmptyMovieClip(c,d);this.make();for(c=0;c<this.modules.length;c++)for(var d=1*c,b=0;b<this.modules[c].length;b++){var e=1*b;this.modules[c][b]&&(a.beginFill(0,100),a.moveTo(e,d),a.lineTo(e+1,d),a.lineTo(e+1,d+1),a.lineTo(e,d+1),a.endFill())}return a},
setupTimingPattern:function(){for(var a=8;a<this.moduleCount-8;a++)null==this.modules[a][6]&&(this.modules[a][6]=0==a%2);for(a=8;a<this.moduleCount-8;a++)null==this.modules[6][a]&&(this.modules[6][a]=0==a%2)},setupPositionAdjustPattern:function(){for(var a=j.getPatternPosition(this.typeNumber),c=0;c<a.length;c++)for(var d=0;d<a.length;d++){var b=a[c],e=a[d];if(null==this.modules[b][e])for(var f=-2;2>=f;f++)for(var i=-2;2>=i;i++)this.modules[b+f][e+i]=-2==f||2==f||-2==i||2==i||0==f&&0==i?!0:!1}},setupTypeNumber:function(a){for(var c=
j.getBCHTypeNumber(this.typeNumber),d=0;18>d;d++){var b=!a&&1==(c>>d&1);this.modules[Math.floor(d/3)][d%3+this.moduleCount-8-3]=b}for(d=0;18>d;d++)b=!a&&1==(c>>d&1),this.modules[d%3+this.moduleCount-8-3][Math.floor(d/3)]=b},setupTypeInfo:function(a,c){for(var d=j.getBCHTypeInfo(this.errorCorrectLevel<<3|c),b=0;15>b;b++){var e=!a&&1==(d>>b&1);6>b?this.modules[b][8]=e:8>b?this.modules[b+1][8]=e:this.modules[this.moduleCount-15+b][8]=e}for(b=0;15>b;b++)e=!a&&1==(d>>b&1),8>b?this.modules[8][this.moduleCount-
b-1]=e:9>b?this.modules[8][15-b-1+1]=e:this.modules[8][15-b-1]=e;this.modules[this.moduleCount-8][8]=!a},mapData:function(a,c){for(var d=-1,b=this.moduleCount-1,e=7,f=0,i=this.moduleCount-1;0<i;i-=2)for(6==i&&i--;;){for(var g=0;2>g;g++)if(null==this.modules[b][i-g]){var n=!1;f<a.length&&(n=1==(a[f]>>>e&1));j.getMask(c,b,i-g)&&(n=!n);this.modules[b][i-g]=n;e--; -1==e&&(f++,e=7)}b+=d;if(0>b||this.moduleCount<=b){b-=d;d=-d;break}}}};o.PAD0=236;o.PAD1=17;o.createData=function(a,c,d){for(var c=p.getRSBlocks(a,
c),b=new t,e=0;e<d.length;e++){var f=d[e];b.put(f.mode,4);b.put(f.getLength(),j.getLengthInBits(f.mode,a));f.write(b)}for(e=a=0;e<c.length;e++)a+=c[e].dataCount;if(b.getLengthInBits()>8*a)throw Error("code length overflow. ("+b.getLengthInBits()+">"+8*a+")");for(b.getLengthInBits()+4<=8*a&&b.put(0,4);0!=b.getLengthInBits()%8;)b.putBit(!1);for(;!(b.getLengthInBits()>=8*a);){b.put(o.PAD0,8);if(b.getLengthInBits()>=8*a)break;b.put(o.PAD1,8)}return o.createBytes(b,c)};o.createBytes=function(a,c){for(var d=
0,b=0,e=0,f=Array(c.length),i=Array(c.length),g=0;g<c.length;g++){var n=c[g].dataCount,h=c[g].totalCount-n,b=Math.max(b,n),e=Math.max(e,h);f[g]=Array(n);for(var k=0;k<f[g].length;k++)f[g][k]=255&a.buffer[k+d];d+=n;k=j.getErrorCorrectPolynomial(h);n=(new q(f[g],k.getLength()-1)).mod(k);i[g]=Array(k.getLength()-1);for(k=0;k<i[g].length;k++)h=k+n.getLength()-i[g].length,i[g][k]=0<=h?n.get(h):0}for(k=g=0;k<c.length;k++)g+=c[k].totalCount;d=Array(g);for(k=n=0;k<b;k++)for(g=0;g<c.length;g++)k<f[g].length&&
(d[n++]=f[g][k]);for(k=0;k<e;k++)for(g=0;g<c.length;g++)k<i[g].length&&(d[n++]=i[g][k]);return d};s=4;for(var j={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,
78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(a){for(var c=a<<10;0<=j.getBCHDigit(c)-j.getBCHDigit(j.G15);)c^=j.G15<<j.getBCHDigit(c)-j.getBCHDigit(j.G15);return(a<<10|c)^j.G15_MASK},getBCHTypeNumber:function(a){for(var c=a<<12;0<=j.getBCHDigit(c)-
j.getBCHDigit(j.G18);)c^=j.G18<<j.getBCHDigit(c)-j.getBCHDigit(j.G18);return a<<12|c},getBCHDigit:function(a){for(var c=0;0!=a;)c++,a>>>=1;return c},getPatternPosition:function(a){return j.PATTERN_POSITION_TABLE[a-1]},getMask:function(a,c,d){switch(a){case 0:return 0==(c+d)%2;case 1:return 0==c%2;case 2:return 0==d%3;case 3:return 0==(c+d)%3;case 4:return 0==(Math.floor(c/2)+Math.floor(d/3))%2;case 5:return 0==c*d%2+c*d%3;case 6:return 0==(c*d%2+c*d%3)%2;case 7:return 0==(c*d%3+(c+d)%2)%2;default:throw Error("bad maskPattern:"+
a);}},getErrorCorrectPolynomial:function(a){for(var c=new q([1],0),d=0;d<a;d++)c=c.multiply(new q([1,l.gexp(d)],0));return c},getLengthInBits:function(a,c){if(1<=c&&10>c)switch(a){case 1:return 10;case 2:return 9;case s:return 8;case 8:return 8;default:throw Error("mode:"+a);}else if(27>c)switch(a){case 1:return 12;case 2:return 11;case s:return 16;case 8:return 10;default:throw Error("mode:"+a);}else if(41>c)switch(a){case 1:return 14;case 2:return 13;case s:return 16;case 8:return 12;default:throw Error("mode:"+
a);}else throw Error("type:"+c);},getLostPoint:function(a){for(var c=a.getModuleCount(),d=0,b=0;b<c;b++)for(var e=0;e<c;e++){for(var f=0,i=a.isDark(b,e),g=-1;1>=g;g++)if(!(0>b+g||c<=b+g))for(var h=-1;1>=h;h++)0>e+h||c<=e+h||0==g&&0==h||i==a.isDark(b+g,e+h)&&f++;5<f&&(d+=3+f-5)}for(b=0;b<c-1;b++)for(e=0;e<c-1;e++)if(f=0,a.isDark(b,e)&&f++,a.isDark(b+1,e)&&f++,a.isDark(b,e+1)&&f++,a.isDark(b+1,e+1)&&f++,0==f||4==f)d+=3;for(b=0;b<c;b++)for(e=0;e<c-6;e++)a.isDark(b,e)&&!a.isDark(b,e+1)&&a.isDark(b,e+
2)&&a.isDark(b,e+3)&&a.isDark(b,e+4)&&!a.isDark(b,e+5)&&a.isDark(b,e+6)&&(d+=40);for(e=0;e<c;e++)for(b=0;b<c-6;b++)a.isDark(b,e)&&!a.isDark(b+1,e)&&a.isDark(b+2,e)&&a.isDark(b+3,e)&&a.isDark(b+4,e)&&!a.isDark(b+5,e)&&a.isDark(b+6,e)&&(d+=40);for(e=f=0;e<c;e++)for(b=0;b<c;b++)a.isDark(b,e)&&f++;a=Math.abs(100*f/c/c-50)/5;return d+10*a}},l={glog:function(a){if(1>a)throw Error("glog("+a+")");return l.LOG_TABLE[a]},gexp:function(a){for(;0>a;)a+=255;for(;256<=a;)a-=255;return l.EXP_TABLE[a]},EXP_TABLE:Array(256),
LOG_TABLE:Array(256)},m=0;8>m;m++)l.EXP_TABLE[m]=1<<m;for(m=8;256>m;m++)l.EXP_TABLE[m]=l.EXP_TABLE[m-4]^l.EXP_TABLE[m-5]^l.EXP_TABLE[m-6]^l.EXP_TABLE[m-8];for(m=0;255>m;m++)l.LOG_TABLE[l.EXP_TABLE[m]]=m;q.prototype={get:function(a){return this.num[a]},getLength:function(){return this.num.length},multiply:function(a){for(var c=Array(this.getLength()+a.getLength()-1),d=0;d<this.getLength();d++)for(var b=0;b<a.getLength();b++)c[d+b]^=l.gexp(l.glog(this.get(d))+l.glog(a.get(b)));return new q(c,0)},mod:function(a){if(0>
this.getLength()-a.getLength())return this;for(var c=l.glog(this.get(0))-l.glog(a.get(0)),d=Array(this.getLength()),b=0;b<this.getLength();b++)d[b]=this.get(b);for(b=0;b<a.getLength();b++)d[b]^=l.gexp(l.glog(a.get(b))+c);return(new q(d,0)).mod(a)}};p.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],
[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,
116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,
43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,
3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,
55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,
45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];p.getRSBlocks=function(a,c){var d=p.getRsBlockTable(a,c);if(void 0==d)throw Error("bad rs block @ typeNumber:"+a+"/errorCorrectLevel:"+c);for(var b=d.length/3,e=[],f=0;f<b;f++)for(var h=d[3*f+0],g=d[3*f+1],j=d[3*f+2],l=0;l<h;l++)e.push(new p(g,j));return e};p.getRsBlockTable=function(a,c){switch(c){case 1:return p.RS_BLOCK_TABLE[4*(a-1)+0];case 0:return p.RS_BLOCK_TABLE[4*(a-1)+1];case 3:return p.RS_BLOCK_TABLE[4*
(a-1)+2];case 2:return p.RS_BLOCK_TABLE[4*(a-1)+3]}};t.prototype={get:function(a){return 1==(this.buffer[Math.floor(a/8)]>>>7-a%8&1)},put:function(a,c){for(var d=0;d<c;d++)this.putBit(1==(a>>>c-d-1&1))},getLengthInBits:function(){return this.length},putBit:function(a){var c=Math.floor(this.length/8);this.buffer.length<=c&&this.buffer.push(0);a&&(this.buffer[c]|=128>>>this.length%8);this.length++}};"string"===typeof h&&(h={text:h});h=r.extend({},{render:"canvas",width:256,height:256,typeNumber:-1,
correctLevel:3,background:"#ffffff",foreground:"#000000"},h);return this.each(function(){var a;if("canvas"==h.render){a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();var c=document.createElement("canvas");c.width=h.width;c.height=h.height;for(var d=c.getContext("2d"),b=h.width/a.getModuleCount(),e=h.height/a.getModuleCount(),f=0;f<a.getModuleCount();f++)for(var i=0;i<a.getModuleCount();i++){d.fillStyle=a.isDark(f,i)?h.foreground:h.background;var g=Math.ceil((i+1)*b)-Math.floor(i*b),
j=Math.ceil((f+1)*b)-Math.floor(f*b);d.fillRect(Math.round(i*b),Math.round(f*e),g,j)}}else{a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();c=r("<table></table>").css("width",h.width+"px").css("height",h.height+"px").css("border","0px").css("border-collapse","collapse").css("background-color",h.background);d=h.width/a.getModuleCount();b=h.height/a.getModuleCount();for(e=0;e<a.getModuleCount();e++){f=r("<tr></tr>").css("height",b+"px").appendTo(c);for(i=0;i<a.getModuleCount();i++)r("<td></td>").css("width",
d+"px").css("background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;$(a).appendTo(this)})}})($);

View File

@@ -156,14 +156,7 @@ var Mnemonic = function(language) {
}
self.normalizeString = function(str) {
if (typeof str.normalize == "function") {
return str.normalize("NFKD");
}
else {
// TODO decide how to handle this in the future.
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
return str;
}
return str.normalize("NFKD");
}
function byteArrayToWordArray(data) {

2
src/js/kjua-0.1.1.min.js vendored Normal file

File diff suppressed because one or more lines are too long

122
src/js/segwit-parameters.js Normal file
View File

@@ -0,0 +1,122 @@
(function() {
// p2wpkh
bitcoinjs.bitcoin.networks.bitcoin.p2wpkh = {
baseNetwork: "bitcoin",
messagePrefix: '\x18Bitcoin Signed Message:\n',
bech32: 'bc',
bip32: {
public: 0x04b24746,
private: 0x04b2430c
},
pubKeyHash: 0x00,
scriptHash: 0x05,
wif: 0x80
};
bitcoinjs.bitcoin.networks.testnet.p2wpkh = {
baseNetwork: "testnet",
messagePrefix: '\x18Bitcoin Signed Message:\n',
bech32: 'tb',
bip32: {
public: 0x045f1cf6,
private: 0x045f18bc
},
pubKeyHash: 0x6f,
scriptHash: 0xc4,
wif: 0xef
};
// p2wpkh in p2sh
bitcoinjs.bitcoin.networks.bitcoin.p2wpkhInP2sh = {
baseNetwork: "bitcoin",
messagePrefix: '\x18Bitcoin Signed Message:\n',
bech32: 'bc',
bip32: {
public: 0x049d7cb2,
private: 0x049d7878
},
pubKeyHash: 0x00,
scriptHash: 0x05,
wif: 0x80
};
bitcoinjs.bitcoin.networks.testnet.p2wpkhInP2sh = {
baseNetwork: "testnet",
messagePrefix: '\x18Bitcoin Signed Message:\n',
bech32: 'tb',
bip32: {
public: 0x044a5262,
private: 0x044a4e28
},
pubKeyHash: 0x6f,
scriptHash: 0xc4,
wif: 0xef
};
bitcoinjs.bitcoin.networks.litecoin.p2wpkhInP2sh = {
baseNetwork: "litecoin",
messagePrefix: '\x19Litecoin Signed Message:\n',
bip32: {
public: 0x01b26ef6,
private: 0x01b26792
},
pubKeyHash: 0x30,
scriptHash: 0x32,
wif: 0xb0
};
bitcoinjs.bitcoin.networks.fujicoin.p2wpkh = {
baseNetwork: "fujicoin",
messagePrefix: '\x19FujiCoin Signed Message:\n',
bech32: 'fc',
bip32: {
public: 0x04b24746,
private: 0x04b2430c
},
pubKeyHash: 0x24,
scriptHash: 0x10,
wif: 0xa4
};
bitcoinjs.bitcoin.networks.fujicoin.p2wpkhInP2sh = {
baseNetwork: "fujicoin",
messagePrefix: '\x19FujiCoin Signed Message:\n',
bech32: 'fc',
bip32: {
public: 0x049d7cb2,
private: 0x049d7878
},
pubKeyHash: 0x24,
scriptHash: 0x10,
wif: 0xa4
};
bitcoinjs.bitcoin.networks.vertcoin.p2wpkh = {
baseNetwork: "vertcoin",
messagePrefix: '\x18Vertcoin Signed Message:\n',
bech32: 'vtc',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4
},
pubKeyHash: 71,
scriptHash: 5,
wif: 0x80
};
bitcoinjs.bitcoin.networks.vertcoin.p2wpkhInP2sh = {
baseNetwork: "vertcoin",
messagePrefix: '\x18Vertcoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4
},
pubKeyHash: 71,
scriptHash: 5,
wif: 0x80
};
})();

View File

@@ -1,3 +1,6 @@
// Polyfill for NFKD normalization
// See https://github.com/walling/unorm
(function (root) {
"use strict";

2051
src/js/wordlist_korean.js Normal file

File diff suppressed because it is too large Load Diff

4382
tests.js

File diff suppressed because it is too large Load Diff

17
tests/package.json Normal file
View File

@@ -0,0 +1,17 @@
{
"name": "tests",
"version": "1.0.0",
"scripts": {
"test": "node tests.js"
},
"author": "Ian coleman",
"description": "Tests for BIP39 tool",
"repository": {
"type": "git",
"url": "git://github.com/iancoleman/bip39.git"
},
"dependencies": {
"selenium-webdriver": "^3.6.0"
},
"license": "MIT"
}

View File

@@ -0,0 +1,11 @@
{
"spec_dir": "spec",
"spec_files": [
"**/*[sS]pec.js"
],
"helpers": [
"helpers/**/*.js"
],
"stopSpecOnExpectationFailure": false,
"random": false
}

3611
tests/spec/tests.js Normal file

File diff suppressed because it is too large Load Diff