Compare commits

...

57 Commits
0.3.5 ... 0.3.8

Author SHA1 Message Date
Ian Coleman
e47cd1970f Release v0.3.8 2018-07-26 12:04:37 +10:00
Ian Coleman
d221cd2f37 Remove BIP84 test for litecoin 2018-07-26 12:00:07 +10:00
Ian Coleman
fe3c963b73 Remove duplicate id properties on html elements
Closes #224
2018-07-26 11:40:17 +10:00
Ian Coleman
42fcf83e9b Remove bip39-standalone from source control
It's available in the releases tab of github.
Closes #226
2018-07-26 11:28:03 +10:00
Ian Coleman
b7de1f3d89 Update bitcore network parameters
Closes #231
2018-07-26 09:53:49 +10:00
Ian Coleman
0afecfc73c Test for HUSH network 2018-07-26 09:47:08 +10:00
Ian Coleman
44a5d363c7 Test for bip32 client coinomi/ledger 2018-07-26 09:43:34 +10:00
iancoleman
f83d786dd7 Merge pull request #216 from Coinomi/ethereum-like
Add ETC, PIRL, CLO, MIX, MUSIC, POA, EXP, and coinomi/ledger client o…
2018-07-26 09:34:34 +10:00
iancoleman
83fefeaf0b Merge pull request #229 from majikandy/patch-2
Added TSTRAT
2018-07-26 09:30:19 +10:00
iancoleman
9d4e17928a Merge pull request #233 from skironDotNet/hushcoin
Add HUSH coin, same as BTCZ but diffrent bip44 coin type
2018-07-26 09:29:34 +10:00
iancoleman
0f9081e2b5 Merge pull request #232 from skironDotNet/syscoin-fix
SYScoin fix for WIF private address format
2018-07-26 09:28:27 +10:00
Pawel Cioch
60727c5175 Hush coin 2018-07-23 08:18:47 -05:00
Pawel Cioch
0d9c6c5458 SYScoin fix for WIF private address format 2018-07-23 08:02:05 -05:00
Andy Davis
c990aff819 Stratis Testnet text 2018-07-16 15:08:54 +01:00
Andy Davis
4b1be40dea Merge pull request #2 from majikandy/patch-1
Added TSTRAT test
2018-07-16 15:06:31 +01:00
Andy Davis
b4d881fbd0 Merge pull request #1 from majikandy/patch-3
Update bitcoinjs-extensions.js
2018-07-16 15:05:29 +01:00
Andy Davis
cc9ed1c575 Update bitcoinjs-extensions.js 2018-07-16 15:04:14 +01:00
Andy Davis
3b43552ceb Added TSTRAT 2018-07-16 15:01:12 +01:00
Andy Davis
e96d3876c4 TSTRAT test 2018-07-16 14:56:48 +01:00
xarakas
0f1cfea04c Merge branch 'master' into ethereum-like 2018-06-18 17:17:49 +03:00
Ian Coleman
9369eaa6d5 Add litecoin p2wpkh parameters
From electrum-ltc
48996679e1/lib/constants.py
2018-05-30 11:32:43 +10:00
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
xarakas
bb381a72ab Add ETC, PIRL, CLO, MIX, MUSIC, POA, EXP, and coinomi/ledger client option in bip32 tab 2018-05-15 18:19:18 +03: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
12 changed files with 10127 additions and 99497 deletions

1
.gitignore vendored
View File

@@ -1 +1,2 @@
node_modules
bip39-standalone.html

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +1,32 @@
# 0.3.8
* Add p2wpkh for litecoin
* Add more networks - TSTRAT, Hush, ETC, PIRL, CLO, MIX, MUSIC, POA, EXP
* Add coinomi/ledger client to BIP32 tab
* Fix SYSCOIN and BTX parameters
* Remove bip39-standalone.html from repository
* Remove duplicate id properties on html elements
# 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

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.5</p>
<p class="version">v0.3.8</p>
<hr>
<div class="row">
<div class="col-md-12">
@@ -69,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>
@@ -96,19 +96,19 @@
<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 col-sm-9 form-control-static">&nbsp;</div>
<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>
@@ -142,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">
@@ -160,19 +169,19 @@
<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">
@@ -186,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">
@@ -236,35 +245,35 @@
</p>
</div>
<div class="form-group">
<label for="purpose" class="col-sm-2 control-label">
<label for="purpose-bip44" class="col-sm-2 control-label">
<a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target="_blank">Purpose</a>
</label>
<div class="col-sm-10">
<input id="purpose" type="text" class="purpose form-control" value="44" readonly>
<input id="purpose-bip44" type="text" class="purpose form-control" value="44" readonly>
</div>
</div>
<div class="form-group">
<label for="coin" class="col-sm-2 control-label">
<label for="coin-bip44" class="col-sm-2 control-label">
<a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target="_blank">Coin</a>
</label>
<div class="col-sm-10">
<input id="coin" type="text" class="coin form-control" value="0" readonly>
<input id="coin-bip44" type="text" class="coin form-control" value="0" readonly>
</div>
</div>
<div class="form-group">
<label for="account" class="col-sm-2 control-label">
<label for="account-bip44" class="col-sm-2 control-label">
<a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target="_blank">Account</a>
</label>
<div class="col-sm-10">
<input id="account" type="text" class="account form-control" value="0">
<input id="account-bip44" type="text" class="account form-control" value="0">
</div>
</div>
<div class="form-group">
<label for="change" class="col-sm-2 control-label">
<label for="change-bip44" class="col-sm-2 control-label">
<a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target="_blank">External / Internal</a>
</label>
<div class="col-sm-10">
<input id="change" type="text" class="change form-control" value="0">
<input id="change-bip44" type="text" class="change form-control" value="0">
</div>
</div>
<div class="form-group">
@@ -279,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-bip44" type="text" class="account-xprv private-data form-control" readonly data-show-qr></textarea>
</div>
</div>
<div class="form-group">
@@ -287,7 +296,7 @@
<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>
<textarea id="account-xpub-bip44" type="text" class="account-xpub form-control" readonly data-show-qr></textarea>
</div>
</div>
<div class="form-group">
@@ -396,35 +405,35 @@
</p>
</div>
<div class="form-group">
<label for="purpose" class="col-sm-2 control-label">
<label for="purpose-bip49" class="col-sm-2 control-label">
<a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target="_blank">Purpose</a>
</label>
<div class="col-sm-10">
<input id="purpose" type="text" class="purpose form-control" value="49" readonly>
<input id="purpose-bip49" type="text" class="purpose form-control" value="49" readonly>
</div>
</div>
<div class="form-group">
<label for="coin" class="col-sm-2 control-label">
<label for="coin-bip49" class="col-sm-2 control-label">
<a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target="_blank">Coin</a>
</label>
<div class="col-sm-10">
<input id="coin" type="text" class="coin form-control" value="0" readonly>
<input id="coin-bip49" type="text" class="coin form-control" value="0" readonly>
</div>
</div>
<div class="form-group">
<label for="account" class="col-sm-2 control-label">
<label for="account-bip49" class="col-sm-2 control-label">
<a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target="_blank">Account</a>
</label>
<div class="col-sm-10">
<input id="account" type="text" class="account form-control" value="0">
<input id="account-bip49" type="text" class="account form-control" value="0">
</div>
</div>
<div class="form-group">
<label for="change" class="col-sm-2 control-label">
<label for="change-bip49" class="col-sm-2 control-label">
<a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target="_blank">External / Internal</a>
</label>
<div class="col-sm-10">
<input id="change" type="text" class="change form-control" value="0">
<input id="change-bip49" type="text" class="change form-control" value="0">
</div>
</div>
<div class="form-group">
@@ -439,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-bip49" type="text" class="account-xprv private-data form-control" readonly data-show-qr></textarea>
</div>
</div>
<div class="form-group">
@@ -447,7 +456,7 @@
<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>
<textarea id="account-xpub-bip49" type="text" class="account-xpub form-control" readonly data-show-qr></textarea>
</div>
</div>
<div class="form-group">
@@ -506,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-bip84" class="col-sm-2 control-label">
Purpose
</label>
<div class="col-sm-10">
<input id="purpose-bip84" 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-bip84" class="col-sm-2 control-label">
Coin
</label>
<div class="col-sm-10">
<input id="coin-bip84" 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-bip84" class="col-sm-2 control-label">
Account
</label>
<div class="col-sm-10">
<input id="account-bip84" 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-bip84" class="col-sm-2 control-label">
External / Internal
</label>
<div class="col-sm-10">
<input id="change-bip84" 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-bip84" 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-bip84" 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>
@@ -588,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">
@@ -608,13 +627,25 @@
<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">
@@ -622,7 +653,7 @@
<input type="checkbox" class="use-bip38">
<span>Encrypt private keys using BIP38 and this password:</span>
</label>
<input class="bip38-password">
<input class="bip38-password private-data">
<span>Enabling BIP38 means each key will take several minutes to generate.</span>
</div>
</div>
@@ -887,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>
@@ -903,6 +934,7 @@
<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>

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

File diff suppressed because it is too large Load Diff

View File

@@ -8662,13 +8662,24 @@ function fromBech32 (address) {
}
function toBase58Check (hash, version) {
typeforce(types.tuple(types.Hash160bit, types.UInt8), arguments)
if (version < 256){
typeforce(types.tuple(types.Hash160bit, types.UInt8), arguments)
var payload = Buffer.allocUnsafe(21)
payload.writeUInt8(version, 0)
hash.copy(payload, 1)
var payload = Buffer.allocUnsafe(21)
payload.writeUInt8(version, 0)
hash.copy(payload, 1)
return bs58check.encode(payload)
return bs58check.encode(payload)
}
else{
typeforce(types.tuple(types.Hash160bit, types.UInt16), arguments)
var payload = Buffer.allocUnsafe(22)
payload.writeUInt16BE(version, 0)
hash.copy(payload, 2)
return bs58check.encode(payload)
}
}
function toBech32 (data, version, prefix) {
@@ -12162,8 +12173,8 @@ var Network = typeforce.compile({
public: typeforce.UInt32,
private: typeforce.UInt32
},
pubKeyHash: typeforce.UInt8,
scriptHash: typeforce.UInt8,
pubKeyHash: typeforce.oneOf(typeforce.UInt8, typeforce.UInt16),
scriptHash: typeforce.oneOf(typeforce.UInt8, typeforce.UInt16),
wif: typeforce.UInt8
})

View File

@@ -114,9 +114,9 @@ bitcoinjs.bitcoin.networks.axe = {
public: 0x0488b21e,
private: 0x0488ade4
},
pubKeyHash: 0x4B,
scriptHash: 0xCB, // TODO set this correctly
wif: 0xCB
pubKeyHash: 0x37,
scriptHash: 0x10, // TODO set this correctly
wif: 0xcc
};
bitcoinjs.bitcoin.networks.slimcoin = {
@@ -307,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: {
@@ -457,8 +446,8 @@ bitcoinjs.bitcoin.networks.bitcore = {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x00,
scriptHash: 0x05,
pubKeyHash: 0x03,
scriptHash: 0x7D,
wif: 0x80,
};
@@ -781,6 +770,17 @@ bitcoinjs.bitcoin.networks.ixcoin = {
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: {
@@ -1056,6 +1056,17 @@ bitcoinjs.bitcoin.networks.stratis = {
wif: 0xbf,
};
bitcoinjs.bitcoin.networks.stratistest = {
messagePrefix: '\x18Stratis Test Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x41,
scriptHash: 0x7d,
wif: 0xbf,
};
bitcoinjs.bitcoin.networks.syscoin = {
messagePrefix: '\x18Syscoin Signed Message:\n',
bip32: {
@@ -1064,7 +1075,7 @@ bitcoinjs.bitcoin.networks.syscoin = {
},
pubKeyHash: 0x3f,
scriptHash: 0x05,
wif: 0xbf,
wif: 0x80,
};
@@ -1131,7 +1142,7 @@ bitcoinjs.bitcoin.networks.vertcoin = {
},
pubKeyHash: 0x47,
scriptHash: 0x05,
wif: 0xc7,
wif: 0x80,
};
bitcoinjs.bitcoin.networks.vivo = {
@@ -1188,3 +1199,91 @@ bitcoinjs.bitcoin.networks.zcoin = {
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.hush = {
messagePrefix: '\x18Hush 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

@@ -149,7 +149,7 @@ var Mnemonic = function(language) {
// Set space correctly depending on the language
// see https://github.com/bitcoin/bips/blob/master/bip-0039/bip-0039-wordlists.md#japanese
var space = " ";
if (language == "japanese" || language == "korean") {
if (language == "japanese") {
space = "\u3000"; // ideographic space
}
return words.join(space);

View File

@@ -56,9 +56,23 @@ bitcoinjs.bitcoin.networks.testnet.p2wpkhInP2sh = {
wif: 0xef
};
bitcoinjs.bitcoin.networks.litecoin.p2wpkh = {
baseNetwork: "litecoin",
messagePrefix: '\x19Litecoin Signed Message:\n',
bech32: 'ltc',
bip32: {
public: 0x04b24746,
private: 0x04b2430c
},
pubKeyHash: 0x30,
scriptHash: 0x32,
wif: 0xb0
};
bitcoinjs.bitcoin.networks.litecoin.p2wpkhInP2sh = {
baseNetwork: "litecoin",
messagePrefix: '\x19Litecoin Signed Message:\n',
bech32: 'ltc',
bip32: {
public: 0x01b26ef6,
private: 0x01b26792
@@ -94,4 +108,29 @@ bitcoinjs.bitcoin.networks.fujicoin.p2wpkhInP2sh = {
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

@@ -553,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);
});
@@ -616,7 +616,7 @@ it('Allows selection of monacoin', function(done) {
it('Allows selection of AXE', function(done) {
var params = {
selectText: "AXE - Axe",
firstAddress: "XQ4HLxUVS3egk5ff1o9e2vJFJKSSsUH3B7",
firstAddress: "PScwtLUyPiGrqtKXrHF37DGETLXLZdw4up",
};
testNetwork(done, params);
});
@@ -690,10 +690,24 @@ it('Allows selection of Bitcoinplus', function(done) {
};
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",
firstAddress: "2Rgp5Znhpy34TK4QmPkfCiYs9r4KovfTH9",
};
testNetwork(done, params);
});
@@ -900,6 +914,13 @@ it('Allows selection of Ixcoin', function(done) {
};
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",
@@ -1036,7 +1057,7 @@ it('Allows selection of Putincoin', function(done) {
it('Allows selection of Reddcoin', function(done) {
var params = {
selectText: "RDD - Reddcoin",
firstAddress: "1M4druAcUfkXBaAcQ4cCgCLPHChiaib6kL",
firstAddress: "RtgRvXMBng1y51ftteveFqwNfyRG18HpxQ",
};
testNetwork(done, params);
});
@@ -1075,6 +1096,13 @@ it('Allows selection of Stratis', function(done) {
};
testNetwork(done, params);
});
it('Allows selection of Stratis Test', function(done) {
var params = {
selectText: "TSTRAT - Stratis Testnet",
firstAddress: "TRLWm3dye4FRrDWouwYUSUZP96xb76mBE3",
};
testNetwork(done, params);
});
it('Allows selection of Syscoin', function(done) {
var params = {
selectText: "SYS - Syscoin",
@@ -1159,6 +1187,90 @@ it('Allows selection of Zcoin', function(done) {
};
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);
});
it('Allows selection of Ethereum Classic', function(done) {
var params = {
selectText: "ETC - Ethereum Classic",
firstAddress: "0x3c05e5556693808367afB62eF3b63e35d6eD249A",
};
testNetwork(done, params);
});
it('Allows selection of Pirl', function(done) {
var params = {
selectText: "PIRL - Pirl",
firstAddress: "0xe77FC0723dA122B5025CA79193c28563eB47e776",
};
testNetwork(done, params);
});
it('Allows selection of MIX', function(done) {
var params = {
selectText: "MIX - MIX",
firstAddress: "0x98BC5e63aeb6A4e82d72850d20710F07E29A29F1",
};
testNetwork(done, params);
});
it('Allows selection of Musicoin', function(done) {
var params = {
selectText: "MUSIC - Musicoin",
firstAddress: "0xDc060e4A0b0313ea83Cf6B3A39B9db2D29004897",
};
testNetwork(done, params);
});
it('Allows selection of Poa', function(done) {
var params = {
selectText: "POA - Poa",
firstAddress: "0x53aF28d754e106210C3d0467Dd581eaf7e3C5e60",
};
testNetwork(done, params);
});
it('Allows selection of Expanse', function(done) {
var params = {
selectText: "EXP - Expanse",
firstAddress: "0xf57FeAbf26582b6E3E666559d3B1Cc6fB2b2c5F6",
};
testNetwork(done, params);
});
it('Allows selection of Callisto', function(done) {
var params = {
selectText: "CLO - Callisto",
firstAddress: "0x4f9364F7420B317266C51Dc8eB979717D4dE3f4E",
};
testNetwork(done, params);
});
it('Allows selection of HUSH', function(done) {
var params = {
selectText: "HUSH - Hush",
firstAddress: "t1g6rLXUnJaiJuu4q4zmJjoa9Gk4fwKpiuA",
};
testNetwork(done, params);
});
// BIP39 seed is set from phrase
@@ -2772,6 +2884,13 @@ it('Can set the derivation path on bip32 tab for multibit', function(done) {
useHardenedAddresses: null,
});
});
it('Can set the derivation path on bip32 tab for coinomi/ledger', function(done) {
testClientSelect(done, {
selectValue: "3",
bip32path: "m/44'/0'/0'",
useHardenedAddresses: null,
});
});
// github issue 58
// https://github.com/iancoleman/bip39/issues/58
@@ -3106,10 +3225,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");
@@ -3122,6 +3257,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) {
@@ -3562,4 +3713,44 @@ it('Does not show a warning if entropy is stronger than mnemonic length', functi
});
});
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();
});
});
});
});