Compare commits

...

90 Commits
0.3.2 ... 0.3.7

Author SHA1 Message Date
Ian Coleman
4218c87458 Release v0.3.7 2018-05-29 11:46:48 +10:00
Ian Coleman
2ab3faf414 Fix tests for altcoins
Checked reddcoin address in block explorer
https://live.reddcoin.com

AXE params were updated in
https://github.com/iancoleman/bip39/pull/213
but not the test.
2018-05-29 11:30:48 +10:00
Ian Coleman
6db7516d4a Fix typo - reddoin/reddcoin 2018-05-29 11:30:48 +10:00
Ian Coleman
0b6e351dce Add visual privacy safeguard for private data 2018-05-29 11:30:48 +10:00
Ian Coleman
6f7fa3539e Parse extended root key regardless of prefix 2018-05-29 11:30:48 +10:00
Ian Coleman
7733ac322b Hide 'calculating' feedback if segwit unavailable 2018-05-29 11:30:48 +10:00
Ian Coleman
530648c174 Add litecoin segwit tests 2018-05-29 11:30:48 +10:00
Ian Coleman
c147cb5e4f Replace hasSegwit variable with test for params 2018-05-29 11:30:48 +10:00
Ian Coleman
bddd5d9f95 Add BIP84 unavailable indicator to UI 2018-05-29 11:30:48 +10:00
iancoleman
cbd0625ff7 Merge pull request #219 from cryptostorage/master
Fix incorrect address generation for altcoins with BIP38 enabled
2018-05-29 10:29:47 +10:00
iancoleman
bd06face96 Merge pull request #222 from ihomp/patch-1
html: missed closing </span>
2018-05-29 10:28:33 +10:00
Viacheslav Bakshaev
5c3143888e Update index.html
html: missed closing </span>
2018-05-26 12:52:30 +02:00
woodser
55b878d8d5 undo zcash max payload length fix 2018-05-21 11:05:49 -04:00
iancoleman
370e201901 Merge pull request #218 from losh11/patch-1
Add Litecoin bech32 HRP
2018-05-21 15:03:04 +10:00
woodser
6df5b2a100 increase maximum payload length for zcash 2018-05-18 10:31:46 -04:00
woodser
29c30bf33a Fix incorrect address generation for altcoins with bip38 2018-05-18 10:26:54 -04:00
Loshan T
bda303dd53 Add Litecoin bech32 HRP 2018-05-16 23:34:28 +01:00
iancoleman
35d9e9fddc Merge pull request #215 from Coinomi/coinomi
Add BTCP, BTCZ, ZCL, ZEN
2018-05-15 09:00:29 +10:00
xarakas
1e2cc748b0 Add BTCP, BTCZ, ZCL, ZEN 2018-05-14 11:32:25 +03:00
iancoleman
f62138da71 Merge pull request #213 from charlesrocket/upd-axe
update AXE network
2018-05-10 08:41:16 +10:00
iancoleman
95edc76985 Merge pull request #214 from XUEZ/add_xuez
Add xuez coin to coinlist
2018-05-10 08:14:18 +10:00
-k
7d9b5f6871 update bip value 2018-05-09 11:42:26 -04:00
ddude
24355c461b Add Xuez coin 2018-05-09 11:28:07 -04:00
ddude
4b250c83eb Add Xuez coin 2018-05-09 11:23:55 -04:00
-k
e32531d9a9 update AXE network values 2018-05-09 11:12:00 -04:00
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
14 changed files with 80376 additions and 14775 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,51 @@
# 0.3.7
* Update AXE network parameters
* Add new networks - Xuez, BTCP, BTCZ, ZCL, ZEN
* Add litecoin bech32 params
* Fix BIP38 for altcoins
* Fix missing span closing tag
* Add indicator to UI for when BIP84 is unavailable
* Replace hasSegwit variable with test for segwit params
* Allow xpub to be used as root key for segwit derivations
* Add visual privacy safeguard
# 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

View File

@@ -103,3 +103,6 @@ body {
overflow-x: scroll;
font-family: monospace;
}
.visual-privacy .private-data {
display: none;
}

View File

@@ -15,7 +15,7 @@
<div class="container">
<h1 class="text-center">Mnemonic Code Converter</h1>
<p class="version">v0.3.2</p>
<p class="version">v0.3.7</p>
<hr>
<div class="row">
<div class="col-md-12">
@@ -48,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>
@@ -64,7 +69,7 @@
<div class="form-group">
<label for="entropy" class="col-sm-2 control-label">Entropy</label>
<div class="col-sm-7">
<textarea id="entropy" rows="2" class="entropy form-control" placeholder="Accepts either binary, base 6, 6-sided dice, base 10, hexadecimal or cards"></textarea>
<textarea id="entropy" rows="2" class="entropy private-data form-control" placeholder="Accepts either binary, base 6, 6-sided dice, base 10, hexadecimal or cards"></textarea>
<div class="row filter-warning text-danger hidden">
<p class="col-sm-12">
<strong>
@@ -91,21 +96,28 @@
<div class="bits col-sm-3 form-control-static"></div>
</div>
<label class="col-sm-3 control-label">Filtered Entropy</label>
<div class="filtered col-sm-9 form-control-static"></div>
<div class="filtered private-data 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>
<div class="binary private-data col-sm-9 form-control-static"></div>
<label class="col-sm-3 control-label">Binary Checksum</label>
<div class="checksum private-data 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>
<div class="word-indexes private-data 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">
<option value="raw" selected>Use Raw Entropy (3 words per 32 bits)</option>
<option value="12">12 <span>Words</span></option>
<option value="15">15 <span>Words</option>
<option value="15">15 <span>Words</span></option>
<option value="18">18 <span>Words</span></option>
<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">
@@ -130,6 +142,15 @@
</label>
</div>
</div>
<div class="form-group">
<div class="col-sm-2"></div>
<div class="col-sm-10 checkbox">
<label>
<input type="checkbox" class="privacy-screen-toggle">
<span>Hide all private info</span>
</label>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Mnemonic Language</label>
<div class="col-sm-10 languages">
@@ -141,25 +162,26 @@
<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>
<div class="form-group">
<label for="phrase" class="col-sm-2 control-label">BIP39 Mnemonic</label>
<div class="col-sm-10">
<textarea id="phrase" class="phrase form-control" data-show-qr></textarea>
<textarea id="phrase" class="phrase private-data form-control" data-show-qr></textarea>
</div>
</div>
<div class="form-group">
<label for="passphrase" class="col-sm-2 control-label">BIP39 Passphrase (optional)</label>
<div class="col-sm-10">
<textarea id="passphrase" class="passphrase form-control"></textarea>
<textarea id="passphrase" class="passphrase private-data form-control"></textarea>
</div>
</div>
<div class="form-group">
<label for="seed" class="col-sm-2 control-label">BIP39 Seed</label>
<div class="col-sm-10">
<textarea id="seed" class="seed form-control" readonly="readonly" data-show-qr></textarea>
<textarea id="seed" class="seed private-data form-control" readonly="readonly" data-show-qr></textarea>
</div>
</div>
<div class="form-group">
@@ -173,7 +195,7 @@
<div class="form-group">
<label for="root-key" class="col-sm-2 control-label">BIP32 Root Key</label>
<div class="col-sm-10">
<textarea id="root-key" class="root-key form-control" data-show-qr></textarea>
<textarea id="root-key" class="root-key private-data form-control" data-show-qr></textarea>
</div>
</div>
<div class="form-group litecoin-ltub-container hidden">
@@ -266,7 +288,7 @@
<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>
<textarea id="account-xprv" type="text" class="account-xprv private-data form-control" readonly data-show-qr></textarea>
</div>
</div>
<div class="form-group">
@@ -426,7 +448,7 @@
<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>
<textarea id="account-xprv" type="text" class="account-xprv private-data form-control" readonly data-show-qr></textarea>
</div>
</div>
<div class="form-group">
@@ -493,79 +515,89 @@
<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 class="unavailable hidden">
<div class="form-group">
<div class="col-sm-2"></div>
<div class="col-sm-10">
<p>BIP84 is unavailable for this coin.</p>
</div>
</div>
</div>
<div class="form-group">
<label for="coin" class="col-sm-2 control-label">
Coin
</label>
<div class="available">
<div class="col-sm-2"></div>
<div class="col-sm-10">
<input id="coin" type="text" class="coin form-control" value="0" readonly>
<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>
<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 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>
<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 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>
<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 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>
<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 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>
<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 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>
<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 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 private-data form-control" readonly data-show-qr></textarea>
</div>
</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 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>
</div>
</form>
@@ -575,7 +607,7 @@
<div class="form-group">
<label for="extended-priv-key" class="col-sm-2 control-label">BIP32 Extended Private Key</label>
<div class="col-sm-10">
<textarea id="extended-priv-key" class="extended-priv-key form-control" readonly="readonly" data-show-qr></textarea>
<textarea id="extended-priv-key" class="extended-priv-key private-data form-control" readonly="readonly" data-show-qr></textarea>
</div>
</div>
<div class="form-group">
@@ -595,13 +627,35 @@
<h2>Derived Addresses</h2>
<p>Note these addresses are derived from the BIP32 Extended Key</p>
</div>
<div class="col-md-12 use-bitpay-addresses-container hidden">
<div class="checkbox">
<div class="col-md-12 bch-addr-type-container hidden">
<div class="radio">
<label>
<input type="checkbox" class="use-bitpay-addresses">
<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 private-data">
<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">
@@ -703,6 +757,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
@@ -861,7 +918,7 @@
<td class="index"><span></span></td>
<td class="address"><span data-show-qr></span></td>
<td class="pubkey"><span data-show-qr></span></td>
<td class="privkey"><span data-show-qr></span></td>
<td class="privkey private-data"><span data-show-qr></span></td>
</tr>
</script>
<script src="js/polyfill.es6.js"></script>
@@ -871,11 +928,13 @@
<script src="js/bootstrap-3.3.7.js"></script>
<script src="js/levenshtein.js"></script>
<script src="js/kjua-0.1.1.min.js"></script>
<script src="js/bitcoinjs-3.3.0.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>
@@ -884,6 +943,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

15168
src/js/bitcoinjs-3.3.2.js Normal file

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: 0x37,
scriptHash: 0x10, // TODO set this correctly
wif: 0xcc
};
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: {
@@ -274,17 +307,6 @@ bitcoinjs.bitcoin.networks.bgold = {
wif: 128
};
bitcoinjs.bitcoin.networks.bitcoinCashBitbpay = {
messagePrefix: '\x18Bitcoin Signed Message:\n',
bip32: {
public: 0x0488b21e,
private: 0x0488ade4
},
pubKeyHash: 0x1c,
scriptHash: 0x28,
wif: 0x80
};
bitcoinjs.bitcoin.networks.monacoin = {
messagePrefix: '\x18Monacoin Signed Message:\n',
bip32: {
@@ -317,3 +339,929 @@ bitcoinjs.bitcoin.networks.komodo = {
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,
};
bitcoinjs.bitcoin.networks.xuez = {
messagePrefix: 'unused',
bip32: {
public: 0x022d2533,
private: 0x0221312b
},
pubKeyHash: 0x4b,
scriptHash: 0x12,
wif: 0xd4
};
bitcoinjs.bitcoin.networks.bitcoinprivate = {
messagePrefix: '\x18BitcoinPrivate Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x1325,
scriptHash: 0x13AF,
wif: 0x80,
};
bitcoinjs.bitcoin.networks.bitcoinz = {
messagePrefix: '\x18BitcoinZ Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x1CB8,
scriptHash: 0x1CBD,
wif: 0x80,
};
bitcoinjs.bitcoin.networks.zclassic = {
messagePrefix: '\x18Zcash Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x1CB8,
scriptHash: 0x1CBD,
wif: 0x80,
};
bitcoinjs.bitcoin.networks.zencash = {
messagePrefix: '\x18Zcash Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x2089,
scriptHash: 0x2096,
wif: 0x80,
};
bitcoinjs.bitcoin.networks.energi = {
messagePrefix: 'DarkCoin Signed Message:\n',
bip32: {
public: 0x03B8C856,
private: 0xD7DC6E9F,
},
pubKeyHash: 0x21,
scriptHash: 0x35,
wif: 0x6a,
};

File diff suppressed because it is too large Load Diff

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) {

View File

@@ -15,6 +15,19 @@ bitcoinjs.bitcoin.networks.bitcoin.p2wpkh = {
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 = {
@@ -46,6 +59,7 @@ bitcoinjs.bitcoin.networks.testnet.p2wpkhInP2sh = {
bitcoinjs.bitcoin.networks.litecoin.p2wpkhInP2sh = {
baseNetwork: "litecoin",
messagePrefix: '\x19Litecoin Signed Message:\n',
bech32: 'ltc',
bip32: {
public: 0x01b26ef6,
private: 0x01b26792
@@ -55,4 +69,55 @@ bitcoinjs.bitcoin.networks.litecoin.p2wpkhInP2sh = {
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

View File

@@ -30,9 +30,10 @@ var until = webdriver.until;
var newDriver = null;
var driver = null;
// Delays in ms
var generateDelay = 1000;
var generateDelay = 1500;
var feedbackDelay = 500;
var entropyFeedbackDelay = 500;
var bip38delay = 15000;
// url uses file:// scheme
var path = require('path')
@@ -422,6 +423,13 @@ it('Allows selection of dogecoin', function(done) {
};
testNetwork(done, params);
});
it('Allows selection of denarius', function(done) {
var params = {
selectText: "DNR - Denarius",
firstAddress: "DFdFMVUMzU9xX88EywXvAGwjiwpxyh9vKb",
};
testNetwork(done, params);
});
it('Allows selection of shadowcash', function(done) {
var params = {
selectText: "SDC - ShadowCash",
@@ -545,7 +553,7 @@ it('Allows selection of slimcoin testnet', function(done) {
it('Allows selection of bitcoin cash', function(done) {
var params = {
selectText: "BCH - Bitcoin Cash",
firstAddress: "1JKvb6wKtsjNoCRxpZ4DGrbniML7z5U16A",
firstAddress: "bitcoincash:qzlquk7w4hkudxypl4fgv8x279r754dkvur7jpcsps",
};
testNetwork(done, params);
});
@@ -594,7 +602,7 @@ it('Allows selection of nubits', function(done) {
it('Allows selection of bitcoin gold', function(done) {
var params = {
selectText: "BTG - Bitcoin Gold",
firstAddress: "GWYxuwSqANWGV3WT7Gpr6HE91euYXBqtwQ",
firstAddress: "GdDqug4WUsn5syNbSTHatNn4XnuwZtzedx",
};
testNetwork(done, params);
});
@@ -605,6 +613,602 @@ it('Allows selection of monacoin', function(done) {
};
testNetwork(done, params);
});
it('Allows selection of AXE', function(done) {
var params = {
selectText: "AXE - Axe",
firstAddress: "PScwtLUyPiGrqtKXrHF37DGETLXLZdw4up",
};
testNetwork(done, params);
});
it('Allows selection of BlackCoin', function(done) {
var params = {
selectText: "BLK - BlackCoin",
firstAddress: "B5MznAKwj7uQ42vDz3w4onhBXPcqhTwJ9z",
};
testNetwork(done, params);
});
it('Allows selection of Neblio', function(done) {
var params = {
selectText: "NEBL - Neblio",
firstAddress: "NefkeEEvhusbHMmTRrxx7H9wFnUXd8qQsE",
};
testNetwork(done, params);
});
it('Allows selection of Beetlecoin', function(done) {
var params = {
selectText: "BEET - Beetlecoin",
firstAddress: "BVmtbEsGrjpknprmpHFq26z4kYHJUFHE71",
};
testNetwork(done, params);
});
it('Allows selection of Adcoin', function(done) {
var params = {
selectText: "ACC - Adcoin",
firstAddress: "AcEDM6V5sF4kFHC76MJjjfProtS5Sw2qcd",
};
testNetwork(done, params);
});
it('Allows selection of Asiacoin', function(done) {
var params = {
selectText: "AC - Asiacoin",
firstAddress: "ALupuEEz7kJjQTAvmtcBMBVuEjPa7GqZzE",
};
testNetwork(done, params);
});
it('Allows selection of Auroracoin', function(done) {
var params = {
selectText: "AUR - Auroracoin",
firstAddress: "ANuraS6F4Jpi413FEnavjYkKYJJRHkgYCm",
};
testNetwork(done, params);
});
it('Allows selection of Bata', function(done) {
var params = {
selectText: "BTA - Bata",
firstAddress: "BGxBdNeYPtF3GCuTtZBPQdFxCkdBYSF3fj",
};
testNetwork(done, params);
});
it('Allows selection of Belacoin', function(done) {
var params = {
selectText: "BELA - Belacoin",
firstAddress: "BEeetqpNffdzeknSpNmQp5KAFh2KK1Qx7S",
};
testNetwork(done, params);
});
it('Allows selection of Bitcoin Atom', function(done) {
var params = {
selectText: "BCA - Bitcoin Atom",
firstAddress: "AMy6qMbJeC4zsGRL6iWszmeCdQH65fgfih",
};
testNetwork(done, params);
});
it('Allows selection of Bitcoinplus', function(done) {
var params = {
selectText: "XBC - Bitcoinplus",
firstAddress: "B7FSynZoDbEwTCSgsXq9nJ5ue8owYLVL8r",
};
testNetwork(done, params);
});
it('Allows selection of Bitcoin Private', function(done) {
var params = {
selectText: "BTCP - Bitcoin Private",
firstAddress: "b1M3PbiXXyN6Hdivdw5rJv5VKpLjPzhm4jM",
};
testNetwork(done, params);
});
it('Allows selection of Bitcoinz', function(done) {
var params = {
selectText: "BTCZ - Bitcoinz",
firstAddress: "t1X2YQoxs8cYRo2oaBYgVEwW5QNjCC59NYc",
};
testNetwork(done, params);
});
it('Allows selection of Bitcore', function(done) {
var params = {
selectText: "BTX - Bitcore",
firstAddress: "1Dg18EtqhReS11e9h8khkLjWGLHVjPM2AB",
};
testNetwork(done, params);
});
it('Allows selection of Bitsend', function(done) {
var params = {
selectText: "BSD - Bitsend",
firstAddress: "iBPk7LYjDun3EPk7CRR8UUmnPoceVc1bp2",
};
testNetwork(done, params);
});
it('Allows selection of Britcoin', function(done) {
var params = {
selectText: "BRIT - Britcoin",
firstAddress: "B6Aue4J2XLs1f1dtD4H1SHYFfh4XrmEbrw",
};
testNetwork(done, params);
});
it('Allows selection of Canadaecoin', function(done) {
var params = {
selectText: "CDN - Canadaecoin",
firstAddress: "CanAyCfd5Rj2CQVfaoAmvDUZunPM5W1AEQ",
};
testNetwork(done, params);
});
it('Allows selection of Cannacoin', function(done) {
var params = {
selectText: "CCN - Cannacoin",
firstAddress: "CYjW8xWB43g6krLJTmmrPk1PonoQX7h9Qd",
};
testNetwork(done, params);
});
it('Allows selection of Clubcoin', function(done) {
var params = {
selectText: "CLUB - Clubcoin",
firstAddress: "CHMDEXN4sihpSVX4GyAa2hZ62shnby7uyN",
};
testNetwork(done, params);
});
it('Allows selection of Compcoin', function(done) {
var params = {
selectText: "CMP - Compcoin",
firstAddress: "CLshtw3zhxkseBJS46UF12v3AFy9Dx7JVv",
};
testNetwork(done, params);
});
it('Allows selection of Crave', function(done) {
var params = {
selectText: "CRAVE - Crave",
firstAddress: "VCYJeti6uKMNBFKCL7eP96UwuFWYHM7c85",
};
testNetwork(done, params);
});
it('Allows selection of Defcoin', function(done) {
var params = {
selectText: "DFC - Defcoin",
firstAddress: "D8swcgyaaFUrXZU3ATwbgy16buCpWqbG1M",
};
testNetwork(done, params);
});
it('Allows selection of Diamond', function(done) {
var params = {
selectText: "DMD - Diamond",
firstAddress: "dJnrVbLL9UPjdaVRz2C8VpqHZknqAqjLek",
};
testNetwork(done, params);
});
it('Allows selection of Digibyte', function(done) {
var params = {
selectText: "DGB - Digibyte",
firstAddress: "D85Rp9jwLtMdmP6wGjTiqHBdVQLST3YCEq",
};
testNetwork(done, params);
});
it('Allows selection of Digitalcoin', function(done) {
var params = {
selectText: "DGC - Digitalcoin",
firstAddress: "DKw4UGKEAZWweDNEbBFNQx4EM8x1mpUdia",
};
testNetwork(done, params);
});
it('Allows selection of Ecoin', function(done) {
var params = {
selectText: "ECN - Ecoin",
firstAddress: "e6WFPLG5gcXyF7cESFteH1hE2XSmowW5yB",
};
testNetwork(done, params);
});
it('Allows selection of Edrcoin', function(done) {
var params = {
selectText: "EDRC - Edrcoin",
firstAddress: "eh1nUJsvgKPFv6ebMBfcwJ299GMCpjeZUG",
};
testNetwork(done, params);
});
it('Allows selection of Egulden', function(done) {
var params = {
selectText: "EFL - Egulden",
firstAddress: "Lg66yt55R7edRM58cDhKzXik2kFme3viX7",
};
testNetwork(done, params);
});
it('Allows selection of Einsteinium', function(done) {
var params = {
selectText: "EMC2 - Einsteinium",
firstAddress: "EVAABm9hXKHk2MpVMbwNakRubFnNha5m8m",
};
testNetwork(done, params);
});
it('Allows selection of Europecoin', function(done) {
var params = {
selectText: "ERC - Europecoin",
firstAddress: "ESA2YwPYntAoaPrE8Fm5qkKRtkcwLcwD6R",
};
testNetwork(done, params);
});
it('Allows selection of Exclusivecoin', function(done) {
var params = {
selectText: "EXCL - Exclusivecoin",
firstAddress: "EbUa6m8UZW6nTxsYZD2FsDjkadKbp5M6JT",
};
testNetwork(done, params);
});
it('Allows selection of Feathercoin', function(done) {
var params = {
selectText: "FTC - Feathercoin",
firstAddress: "6gDdjAMoSgQaW8UhqK3oboHs6ftGAroKkM",
};
testNetwork(done, params);
});
it('Allows selection of Firstcoin', function(done) {
var params = {
selectText: "FRST - Firstcoin",
firstAddress: "FJN9GzfMm7Q8R4DJwK1H9F6A1GTghvFiMJ",
};
testNetwork(done, params);
});
it('Allows selection of Flashcoin', function(done) {
var params = {
selectText: "FLASH - Flashcoin",
firstAddress: "UWfpf5LfMmLxZYooEb2EyvWhZ8NG7EZDRt",
};
testNetwork(done, params);
});
it('Allows selection of GCRCoin', function(done) {
var params = {
selectText: "GCR - GCRCoin",
firstAddress: "GJjF5cLwyXLacpuvXAVksxGxKvHDjx58d6",
};
testNetwork(done, params);
});
it('Allows selection of Gobyte', function(done) {
var params = {
selectText: "GBX - Gobyte",
firstAddress: "GS813Ys2brkmvSUw1rUqGPm2HqQVDHJRyA",
};
testNetwork(done, params);
});
it('Allows selection of Gridcoin', function(done) {
var params = {
selectText: "GRC - Gridcoin",
firstAddress: "SGrWbBPvobgqKRF8td1Kdc9vbRY7MJ78Y9",
};
testNetwork(done, params);
});
it('Allows selection of Gulden', function(done) {
var params = {
selectText: "NLG - Gulden",
firstAddress: "GcDP7cNEc33MPPdTFNJ8pZc6VMZJ2CbKxY",
};
testNetwork(done, params);
});
it('Allows selection of Helleniccoin', function(done) {
var params = {
selectText: "HNC - Helleniccoin",
firstAddress: "LbHEKe5H72zp9G1fuWNiiNePTUfJb88915",
};
testNetwork(done, params);
});
it('Allows selection of Hempcoin', function(done) {
var params = {
selectText: "THC - Hempcoin",
firstAddress: "H8sdWbZyJV4gyXyHtLXDaNnAuUDhK5mfTV",
};
testNetwork(done, params);
});
it('Allows selection of Insane', function(done) {
var params = {
selectText: "INSN - Insane",
firstAddress: "iMPqEJMiXWuxC9U2NVinCCMr4t72h58EWx",
};
testNetwork(done, params);
});
it('Allows selection of Iop', function(done) {
var params = {
selectText: "IOP - Iop",
firstAddress: "pGKQmcaPf95Ur5o6oHK4qdiZ52p1yaTvq1",
};
testNetwork(done, params);
});
it('Allows selection of Ixcoin', function(done) {
var params = {
selectText: "IXC - Ixcoin",
firstAddress: "xgE9bTZ6YypT3E6ByzkTt31Hq68E9BqywH",
};
testNetwork(done, params);
});
it('Allows selection of Kobocoin', function(done) {
var params = {
selectText: "KOBO - Kobocoin",
firstAddress: "FTVoNJETXDAM8x7MnmdE8RwWndSr9PQWhy",
};
testNetwork(done, params);
});
it('Allows selection of Landcoin', function(done) {
var params = {
selectText: "LDCN - Landcoin",
firstAddress: "LLvLwNjG1aJcn1RS4W4GJUbv8fNaRATG7c",
};
testNetwork(done, params);
});
it('Allows selection of Library Credits', function(done) {
var params = {
selectText: "LBC - Library Credits",
firstAddress: "bQJEQrHDJyHdqycB32uysh1SWn8Ln8LMdg",
};
testNetwork(done, params);
});
it('Allows selection of Linx', function(done) {
var params = {
selectText: "LINX - Linx",
firstAddress: "XGWQ3cb3LGUB3VnHmj6xYSMgnokNbf6dyk",
};
testNetwork(done, params);
});
it('Allows selection of Litecoincash', function(done) {
var params = {
selectText: "LCC - Litecoincash",
firstAddress: "Ce5n7fjUuQPLutJ4W5nCCfQLKdKLE1mv9A",
};
testNetwork(done, params);
});
it('Allows selection of Lynx', function(done) {
var params = {
selectText: "LYNX - Lynx",
firstAddress: "KUeY3ZdZkg96p4W98pj1JjygCFU1XqWdw3",
};
testNetwork(done, params);
});
it('Allows selection of Minexcoin', function(done) {
var params = {
selectText: "MNX - Minexcoin",
firstAddress: "XC1VnyJVfiMDwWgFtAHDp41cgY3AHk3dJT",
};
testNetwork(done, params);
});
it('Allows selection of Navcoin', function(done) {
var params = {
selectText: "NAV - Navcoin",
firstAddress: "NTQVTPK3NWSQLKoffkiQw99T8PifkF1Y2U",
};
testNetwork(done, params);
});
it('Allows selection of Neoscoin', function(done) {
var params = {
selectText: "NEOS - Neoscoin",
firstAddress: "NgATz6QbQNXvayHQ4CpZayugb9HeaPDdby",
};
testNetwork(done, params);
});
it('Allows selection of Neurocoin', function(done) {
var params = {
selectText: "NRO - Neurocoin",
firstAddress: "NVdYErQ3mFpDuF5DquW9WMiT7sLc8ufFTn",
};
testNetwork(done, params);
});
it('Allows selection of Newyorkc', function(done) {
var params = {
selectText: "NYC - Newyorkc",
firstAddress: "RSVMfyH1fKfy3puADJEhut2vfkRyon6imm",
};
testNetwork(done, params);
});
it('Allows selection of Novacoin', function(done) {
var params = {
selectText: "NVC - Novacoin",
firstAddress: "4JRvUmxcKCJmaMXZyvRoSS1cmG2XvnZfHN",
};
testNetwork(done, params);
});
it('Allows selection of Nushares', function(done) {
var params = {
selectText: "NSR - Nushares",
firstAddress: "SecjXzU3c7EecdT7EbC4vvmbdtBBokWh6J",
};
testNetwork(done, params);
});
it('Allows selection of Okcash', function(done) {
var params = {
selectText: "OK - Okcash",
firstAddress: "PV4Qp1TUYuGv4TqVtLZtqvrsWWRycfx1Yi",
};
testNetwork(done, params);
});
it('Allows selection of Omnicore', function(done) {
var params = {
selectText: "OMNI - Omnicore",
firstAddress: "1Q1t3gonjCT3rW38TsTsCvgSc3hh7zBGbi",
};
testNetwork(done, params);
});
it('Allows selection of Pesobit', function(done) {
var params = {
selectText: "PSB - Pesobit",
firstAddress: "PDePsF7ALyXP7JaywokdYiRTDtKa14MAr1",
};
testNetwork(done, params);
});
it('Allows selection of Pinkcoin', function(done) {
var params = {
selectText: "PINK - Pinkcoin",
firstAddress: "2TgjYQffjbzUHJghNaVbdsjHbRwruC3yzC",
};
testNetwork(done, params);
});
it('Allows selection of POSWcoin', function(done) {
var params = {
selectText: "POSW - POSWcoin",
firstAddress: "PNxewmZoPnGBvoEbH6hgQZCK1igDiBCdgC",
};
testNetwork(done, params);
});
it('Allows selection of Potcoin', function(done) {
var params = {
selectText: "POT - Potcoin",
firstAddress: "PEo7Vg2ctXgpP4vuLPeY9aGJtZotyrmiHc",
};
testNetwork(done, params);
});
it('Allows selection of Putincoin', function(done) {
var params = {
selectText: "PUT - Putincoin",
firstAddress: "PViWnfr2uFtovd6e7joM49C94CsGSnqJis",
};
testNetwork(done, params);
});
it('Allows selection of Reddcoin', function(done) {
var params = {
selectText: "RDD - Reddcoin",
firstAddress: "RtgRvXMBng1y51ftteveFqwNfyRG18HpxQ",
};
testNetwork(done, params);
});
it('Allows selection of RevolutionVR', function(done) {
var params = {
selectText: "RVR - RevolutionVR",
firstAddress: "VXeeoP2jkzZnMFxtc66ZBZK1NHN5QJnnjL",
};
testNetwork(done, params);
});
it('Allows selection of Rubycoin', function(done) {
var params = {
selectText: "RBY - Rubycoin",
firstAddress: "RV76JDtjTs11JdMDRToYn6CHecMRPLnKS6",
};
testNetwork(done, params);
});
it('Allows selection of Smileycoin', function(done) {
var params = {
selectText: "SMLY - Smileycoin",
firstAddress: "BEZVnEBCAyFByrgKpwAgYgtvP4rKAd9Sj2",
};
testNetwork(done, params);
});
it('Allows selection of Solarcoin', function(done) {
var params = {
selectText: "SLR - Solarcoin",
firstAddress: "8LZ13HbnjtaMJWSvvVFNTLf71zFfDrhwLu",
};
testNetwork(done, params);
});
it('Allows selection of Stratis', function(done) {
var params = {
selectText: "STRAT - Stratis",
firstAddress: "ScfJnq3QDhKgDMEds6sqUE1ot6ShfhmXXq",
};
testNetwork(done, params);
});
it('Allows selection of Syscoin', function(done) {
var params = {
selectText: "SYS - Syscoin",
firstAddress: "SZwJi42Pst3VAMomyK5DG4157WM5ofRmSj",
};
testNetwork(done, params);
});
it('Allows selection of Toa', function(done) {
var params = {
selectText: "TOA - Toa",
firstAddress: "TSe1QAnUwQzUfbBusDzRJ9URttrRGKoNKF",
};
testNetwork(done, params);
});
it('Allows selection of Ultimatesecurecash', function(done) {
var params = {
selectText: "USC - Ultimatesecurecash",
firstAddress: "UPyLAZU2Che5fiy7Ed8xVJFmXAUhitA4ug",
};
testNetwork(done, params);
});
it('Allows selection of Unobtanium', function(done) {
var params = {
selectText: "UNO - Unobtanium",
firstAddress: "uUBMPVMXrR6qhqornJqKTWgr8L69vihSL9",
};
testNetwork(done, params);
});
it('Allows selection of Vcash', function(done) {
var params = {
selectText: "XVC - Vcash",
firstAddress: "VuL53MSY6KjvAjKSeRkh3NDnKykacDVeps",
};
testNetwork(done, params);
});
it('Allows selection of Verge', function(done) {
var params = {
selectText: "XVG - Verge",
firstAddress: "DCrVuGkMjLJpTGgwAgv9AcMdeb1nkWbjZA",
};
testNetwork(done, params);
});
it('Allows selection of Vertcoin', function(done) {
var params = {
selectText: "VTC - Vertcoin",
firstAddress: "Vf6koGuiWdXQfx8tNqxoNeEDxh4xh5cxsG",
};
testNetwork(done, params);
});
it('Allows selection of Vivo', function(done) {
var params = {
selectText: "VIVO - Vivo",
firstAddress: "VFmBwuXXGhJe7MarQG2GfzHMFebRHgfSpB",
};
testNetwork(done, params);
});
it('Allows selection of Vpncoin', function(done) {
var params = {
selectText: "VASH - Vpncoin",
firstAddress: "VoEmH1qXC4TsSgBAStR21QYetwnFqbqCx9",
};
testNetwork(done, params);
});
it('Allows selection of Whitecoin', function(done) {
var params = {
selectText: "XWC - Whitecoin",
firstAddress: "WcSwCAUqrSgeSYbsaS3SSWWhsx8KRYTFDR",
};
testNetwork(done, params);
});
it('Allows selection of Wincoin', function(done) {
var params = {
selectText: "WC - Wincoin",
firstAddress: "WaDVCESMGgyKgNESdn3u43NnwmGSkZED3Z",
};
testNetwork(done, params);
});
it('Allows selection of Zcoin', function(done) {
var params = {
selectText: "XZC - Zcoin",
firstAddress: "a6VcMdP4XgAA9Tr7xNszmPG5FZpfRf17Cq",
};
testNetwork(done, params);
});
it('Allows selection of Zcash', function(done) {
var params = {
selectText: "ZEC - Zcash",
firstAddress: "t1Sz8AneMcVuzUg3tPJ8et5AS5LFJ7K2EF9",
};
testNetwork(done, params);
});
it('Allows selection of Zclassic', function(done) {
var params = {
selectText: "ZCL - Zclassic",
firstAddress: "t1TBMxTvVJRybUbMLGWq8H4A8F4VUL7czEc",
};
testNetwork(done, params);
});
it('Allows selection of Zencash', function(done) {
var params = {
selectText: "ZEN - Zencash",
firstAddress: "znWh9XASyW2dZq5tck84wFjiwuqVysi7q3p",
};
testNetwork(done, params);
});
it('Allows selection of Energi', function(done) {
var params = {
selectText: "NRG - Energi",
firstAddress: "EejRy4t4nidzhGGzkJUgFP3z4HYBjhTsRt",
};
testNetwork(done, params);
});
// BIP39 seed is set from phrase
it('Sets the bip39 seed from the prhase', function(done) {
@@ -933,13 +1537,13 @@ it('Can generate more rows in the table', function(done) {
// A custom number of additional addresses can be generated
it('Can generate more rows in the table', function(done) {
driver.findElement(By.css('.rows-to-add'))
.clear();
driver.findElement(By.css('.rows-to-add'))
.sendKeys('1');
driver.findElement(By.css('.phrase'))
.sendKeys('abandon abandon ability');
driver.sleep(generateDelay).then(function() {
driver.findElement(By.css('.rows-to-add'))
.clear();
driver.findElement(By.css('.rows-to-add'))
.sendKeys('1');
driver.findElement(By.css('.more'))
.click();
driver.sleep(generateDelay).then(function() {
@@ -2159,10 +2763,11 @@ it('Can change details while old addresses are still being generated', function(
driver.findElement(By.css('.phrase'))
.sendKeys("abandon abandon ability");
driver.sleep(generateDelay).then(function() {
// generate more addresses
driver.findElement(By.css('.more'))
.click();
// change tabs which should cancel the previous generating
driver.findElement(By.css('.rows-to-add'))
.clear();
driver.findElement(By.css('.rows-to-add'))
.sendKeys('20');
driver.findElement(By.css('#bip32-tab a'))
.click()
driver.sleep(generateDelay).then(function() {
@@ -2175,7 +2780,7 @@ it('Can change details while old addresses are still being generated', function(
});
});
});
});
}, generateDelay + 5000);
// Github issue 49
// padding for binary should give length with multiple of 256
@@ -2550,10 +3155,26 @@ it('Warns when entropy is filtered and discarded', function(done) {
});
});
// Bitcoin Cash address can be set to use cashaddr format
it('Can use cashaddr format for bitcoin cash addresses', function(done) {
driver.executeScript(function() {
$(".use-bch-cashaddr-addresses").prop("checked", true);
});
driver.findElement(By.css('.phrase'))
.sendKeys("abandon abandon ability");
selectNetwork("BCH - Bitcoin Cash");
driver.sleep(generateDelay).then(function() {
getFirstAddress(function(address) {
expect(address).toBe("bitcoincash:qzlquk7w4hkudxypl4fgv8x279r754dkvur7jpcsps");
done();
});
});
});
// Bitcoin Cash address can be set to use bitpay format
it('Can use bitpay format for bitcoin cash addresses', function(done) {
driver.executeScript(function() {
$(".use-bitpay-addresses").prop("checked", true);
$(".use-bch-bitpay-addresses").prop("checked", true);
});
driver.findElement(By.css('.phrase'))
.sendKeys("abandon abandon ability");
@@ -2566,6 +3187,22 @@ it('Can use bitpay format for bitcoin cash addresses', function(done) {
});
});
// Bitcoin Cash address can be set to use legacy format
it('Can use legacy format for bitcoin cash addresses', function(done) {
driver.executeScript(function() {
$(".use-bch-legacy-addresses").prop("checked", true);
});
driver.findElement(By.css('.phrase'))
.sendKeys("abandon abandon ability");
selectNetwork("BCH - Bitcoin Cash");
driver.sleep(generateDelay).then(function() {
getFirstAddress(function(address) {
expect(address).toBe("1JKvb6wKtsjNoCRxpZ4DGrbniML7z5U16A");
done();
});
});
});
// End of tests ported from old suit, so no more comments above each test now
it('Can generate more addresses from a custom index', function(done) {
@@ -2850,4 +3487,217 @@ it('Can display the table as csv', function(done) {
});
});
it('LeftPads ethereum keys that are less than 32 bytes', function(done) {
// see https://github.com/iancoleman/bip39/issues/155
selectNetwork("ETH - Ethereum");
driver.findElement(By.css('#bip32-tab a'))
.click()
driver.findElement(By.css('#bip32-path'))
.clear();
driver.findElement(By.css('#bip32-path'))
.sendKeys("m/44'/60'/0'");
driver.findElement(By.css('.phrase'))
.sendKeys('scout sort custom elite radar rare vivid thing trophy gesture cover snake change narrow kite list nation sustain buffalo erode open balance system young');
driver.sleep(generateDelay).then(function() {
getFirstAddress(function(address) {
expect(address).toBe("0x8943E785B4a5714FC87a3aFAad1eB1FeB602B118");
done();
});
});
});
it('Can encrypt private keys using BIP38', function(done) {
// see https://github.com/iancoleman/bip39/issues/140
driver.executeScript(function() {
$(".use-bip38").prop("checked", true);
});
driver.findElement(By.css('.bip38-password'))
.sendKeys('bip38password');
driver.findElement(By.css('.rows-to-add'))
.clear();
driver.findElement(By.css('.rows-to-add'))
.sendKeys('1');
driver.findElement(By.css('.phrase'))
.sendKeys('abandon abandon ability');
driver.sleep(bip38delay).then(function() {
// address
getFirstRowValue(function(address) {
expect(address).toBe("1NCvSdumA3ngMM9c4aqU56AM6rqXddfuXB");
// pubkey
getFirstRowValue(function(pubkey) {
expect(pubkey).toBe("043f5aed5f6cfbafaf223188095b5980814897295f723815fea5d3f4b648d0d0b3884a74447ea901729b1e73a999b7520e7cb55b4120e6432c64153ccab8a848e1");
// privkey
getFirstRowValue(function(privkey) {
expect(privkey).toBe("6PRNRiFnj1RoR3sXhymdCvoZCgnUHQpfupNdKkFbWJkwWQEKesWt1EDMDM");
done();
}, ".privkey");
}, ".pubkey");
}, ".address");
});
}, bip38delay + 5000);
it('Shows the checksum for the entropy', function(done) {
driver.findElement(By.css('.use-entropy'))
.click();
driver.findElement(By.css('.entropy'))
.sendKeys("00000000000000000000000000000000");
driver.sleep(generateDelay).then(function() {
driver.findElement(By.css('.checksum'))
.getText()
.then(function(text) {
expect(text).toBe("1");
done();
});
});
});
it('Shows the checksum for the entropy with the correct groupings', function(done) {
driver.findElement(By.css('.use-entropy'))
.click();
// create a checksum of 20 bits, which spans multiple words
driver.findElement(By.css('.entropy'))
.sendKeys("F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000");
driver.sleep(generateDelay).then(function() {
driver.findElement(By.css('.checksum'))
.getText()
.then(function(text) {
// first group is 9 bits, second group is 11
expect(text).toBe("011010111 01110000110");
done();
});
});
});
it('Uses vprv for bitcoin testnet p2wpkh', function(done) {
selectNetwork("BTC - Bitcoin Testnet");
driver.findElement(By.css('#bip84-tab a'))
.click()
driver.findElement(By.css('.phrase'))
.sendKeys('abandon abandon ability');
driver.sleep(generateDelay).then(function() {
driver.findElement(By.css('.root-key'))
.getAttribute("value")
.then(function(path) {
expect(path).toBe("vprv9DMUxX4ShgxML9N2YV5CvWEebWrM9aJ5ULpbRRyzyWu6vs4BzTvbfFFrH41N5hVi7MYSfiugd765L3JmAfDM5po36Y8ouCKRDeYQwByCmS7");
done();
})
});
});
it('Shows a warning if generating weak mnemonics', function(done) {
driver.executeScript(function() {
$(".strength option[selected]").removeAttr("selected");
$(".strength option[value=6]").prop("selected", true);
$(".strength").trigger("change");
});
driver.findElement(By.css(".generate-container .warning"))
.getAttribute("class")
.then(function(classes) {
expect(classes).not.toContain("hidden");
done();
});
});
it('Does not show a warning if generating strong mnemonics', function(done) {
driver.executeScript(function() {
$(".strength option[selected]").removeAttr("selected");
$(".strength option[value=12]").prop("selected", true);
});
driver.findElement(By.css(".generate-container .warning"))
.getAttribute("class")
.then(function(classes) {
expect(classes).toContain("hidden");
done();
});
});
it('Shows a warning if overriding weak entropy with longer mnemonics', function(done) {
driver.findElement(By.css('.use-entropy'))
.click();
driver.findElement(By.css('.entropy'))
.sendKeys("0123456789abcdef"); // 6 words
driver.executeScript(function() {
$(".mnemonic-length").val("12").trigger("change");
});
driver.findElement(By.css(".weak-entropy-override-warning"))
.getAttribute("class")
.then(function(classes) {
expect(classes).not.toContain("hidden");
done();
});
});
it('Does not show a warning if entropy is stronger than mnemonic length', function(done) {
driver.findElement(By.css('.use-entropy'))
.click();
driver.findElement(By.css('.entropy'))
.sendKeys("0123456789abcdef0123456789abcdef0123456789abcdef"); // 18 words
driver.executeScript(function() {
$(".mnemonic-length").val("12").trigger("change");
});
driver.findElement(By.css(".weak-entropy-override-warning"))
.getAttribute("class")
.then(function(classes) {
expect(classes).toContain("hidden");
done();
});
});
it('Shows a warning for litecoin BIP84 (which does not have p2wpkh params)', function(done) {
driver.findElement(By.css('.phrase'))
.sendKeys('abandon abandon ability');
selectNetwork("LTC - Litecoin");
driver.findElement(By.css('#bip84-tab a'))
.click()
// bip84 unavailable is shown
driver.sleep(feedbackDelay).then(function() {
driver.findElement(By.css('#bip84 .unavailable'))
.getAttribute("class")
.then(function(classes) {
expect(classes).not.toContain("hidden");
done();
});
});
});
it('Shows litecoin BIP49 addresses', function(done) {
driver.findElement(By.css('.phrase'))
.sendKeys('abandon abandon ability');
selectNetwork("LTC - Litecoin");
driver.findElement(By.css('#bip49-tab a'))
.click()
// bip49 addresses are shown
driver.sleep(generateDelay).then(function() {
driver.findElement(By.css('#bip49 .available'))
.getAttribute("class")
.then(function(classes) {
expect(classes).not.toContain("hidden");
// check first address
getFirstAddress(function(address) {
expect(address).toBe("MFwLPhsXoBuSLL8cLmW9uK6tChkzduV8qN");
done();
});
});
});
});
it('Can use root keys to generate segwit table rows', function(done) {
// segwit uses ypub / zpub instead of xpub but the root key should still
// be valid regardless of the encoding used to import that key.
// Maybe this breaks the reason for the different extended key prefixes, but
// since the parsed root key is used behind the scenes anyhow this should be
// allowed.
driver.findElement(By.css('#root-key'))
.sendKeys('xprv9s21ZrQH143K2jkGDCeTLgRewT9F2pH5JZs2zDmmjXes34geVnFiuNa8KTvY5WoYvdn4Ag6oYRoB6cXtc43NgJAEqDXf51xPm6fhiMCKwpi');
driver.findElement(By.css('#bip49-tab a'))
.click()
// bip49 addresses are shown
driver.sleep(generateDelay).then(function() {
getFirstAddress(function(address) {
expect(address).toBe("3QG2Y9AA4xZ846gKHZqNf7mvVKbLqMKxr2");
done();
});
});
});
});