mirror of
https://github.com/OneKeyHQ/bip39.git
synced 2026-04-05 18:43:47 +00:00
Merge branch 'master' into ethereum-like
This commit is contained in:
File diff suppressed because it is too large
Load Diff
12
changelog.md
12
changelog.md
@@ -1,3 +1,15 @@
|
||||
# 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
|
||||
|
||||
@@ -103,3 +103,6 @@ body {
|
||||
overflow-x: scroll;
|
||||
font-family: monospace;
|
||||
}
|
||||
.visual-privacy .private-data {
|
||||
display: none;
|
||||
}
|
||||
|
||||
177
src/index.html
177
src/index.html
@@ -15,7 +15,7 @@
|
||||
<div class="container">
|
||||
|
||||
<h1 class="text-center">Mnemonic Code Converter</h1>
|
||||
<p class="version">v0.3.6</p>
|
||||
<p class="version">v0.3.7</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"> </div>
|
||||
<div class="checksum private-data col-sm-9 form-control-static"> </div>
|
||||
<label class="col-sm-3 control-label">Word Indexes</label>
|
||||
<div class="word-indexes col-sm-9 form-control-static"> </div>
|
||||
<div class="word-indexes private-data col-sm-9 form-control-static"> </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">
|
||||
@@ -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" type="text" class="account-xprv private-data form-control" readonly data-show-qr></textarea>
|
||||
</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" type="text" class="account-xprv private-data 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" 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>
|
||||
@@ -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">
|
||||
@@ -634,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>
|
||||
@@ -899,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>
|
||||
|
||||
228
src/js/index.js
228
src/js/index.js
@@ -23,6 +23,7 @@
|
||||
var generationProcesses = [];
|
||||
|
||||
var DOM = {};
|
||||
DOM.privacyScreenToggle = $(".privacy-screen-toggle");
|
||||
DOM.network = $(".network");
|
||||
DOM.bip32Client = $("#bip32-client");
|
||||
DOM.phraseNetwork = $("#network-phrase");
|
||||
@@ -77,6 +78,8 @@
|
||||
DOM.bip49accountXprv = $("#bip49 .account-xprv");
|
||||
DOM.bip49accountXpub = $("#bip49 .account-xpub");
|
||||
DOM.bip49change = $("#bip49 .change");
|
||||
DOM.bip84unavailable = $("#bip84 .unavailable");
|
||||
DOM.bip84available = $("#bip84 .available");
|
||||
DOM.bip84path = $("#bip84-path");
|
||||
DOM.bip84purpose = $("#bip84 .purpose");
|
||||
DOM.bip84coin = $("#bip84 .coin");
|
||||
@@ -116,6 +119,7 @@
|
||||
|
||||
function init() {
|
||||
// Events
|
||||
DOM.privacyScreenToggle.on("change", privacyScreenToggled);
|
||||
DOM.generatedStrength.on("change", generatedStrengthChanged);
|
||||
DOM.network.on("change", networkChanged);
|
||||
DOM.bip32Client.on("change", bip32ClientChanged);
|
||||
@@ -176,13 +180,7 @@
|
||||
var networkIndex = e.target.value;
|
||||
var network = networks[networkIndex];
|
||||
network.onSelect();
|
||||
if (network.segwitAvailable) {
|
||||
adjustNetworkForSegwit();
|
||||
showSegwitAvailable();
|
||||
}
|
||||
else {
|
||||
showSegwitUnavailable();
|
||||
}
|
||||
adjustNetworkForSegwit();
|
||||
if (seed != null) {
|
||||
phraseChanged();
|
||||
}
|
||||
@@ -372,8 +370,11 @@
|
||||
showPending();
|
||||
// Don't show segwit if it's selected but network doesn't support it
|
||||
if (segwitSelected() && !networkHasSegwit()) {
|
||||
showSegwitUnavailable();
|
||||
hidePending();
|
||||
return;
|
||||
}
|
||||
showSegwitAvailable();
|
||||
// Get the derivation path
|
||||
var derivationPath = getDerivationPath();
|
||||
var errorText = findDerivationPathErrors(derivationPath);
|
||||
@@ -448,6 +449,17 @@
|
||||
$("td.privkey span").toggleClass("invisible");
|
||||
}
|
||||
|
||||
function privacyScreenToggled() {
|
||||
// private-data contains elements added to DOM at runtime
|
||||
// so catch all by adding visual privacy class to the root of the DOM
|
||||
if (DOM.privacyScreenToggle.prop("checked")) {
|
||||
$("body").addClass("visual-privacy");
|
||||
}
|
||||
else {
|
||||
$("body").removeClass("visual-privacy");
|
||||
}
|
||||
}
|
||||
|
||||
// Private methods
|
||||
|
||||
function generateRandomPhrase() {
|
||||
@@ -479,6 +491,37 @@
|
||||
}
|
||||
|
||||
function calcBip32RootKeyFromBase58(rootKeyBase58) {
|
||||
// try parsing with various segwit network params since this extended
|
||||
// key may be from any one of them.
|
||||
if (networkHasSegwit()) {
|
||||
var n = network;
|
||||
if ("baseNetwork" in n) {
|
||||
n = bitcoinjs.bitcoin.networks[n.baseNetwork];
|
||||
}
|
||||
// try parsing using base network params
|
||||
try {
|
||||
bip32RootKey = bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58, n);
|
||||
return;
|
||||
}
|
||||
catch (e) {}
|
||||
// try parsing using p2wpkh params
|
||||
if ("p2wpkh" in n) {
|
||||
try {
|
||||
bip32RootKey = bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58, n.p2wpkh);
|
||||
return;
|
||||
}
|
||||
catch (e) {}
|
||||
}
|
||||
// try parsing using p2wpkh-in-p2sh network params
|
||||
if ("p2wpkhInP2sh" in n) {
|
||||
try {
|
||||
bip32RootKey = bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58, n.p2wpkhInP2sh);
|
||||
return;
|
||||
}
|
||||
catch (e) {}
|
||||
}
|
||||
}
|
||||
// try the network params as currently specified
|
||||
bip32RootKey = bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58, network);
|
||||
}
|
||||
|
||||
@@ -552,6 +595,37 @@
|
||||
}
|
||||
|
||||
function validateRootKey(rootKeyBase58) {
|
||||
// try various segwit network params since this extended key may be from
|
||||
// any one of them.
|
||||
if (networkHasSegwit()) {
|
||||
var n = network;
|
||||
if ("baseNetwork" in n) {
|
||||
n = bitcoinjs.bitcoin.networks[n.baseNetwork];
|
||||
}
|
||||
// try parsing using base network params
|
||||
try {
|
||||
bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58, n);
|
||||
return "";
|
||||
}
|
||||
catch (e) {}
|
||||
// try parsing using p2wpkh params
|
||||
if ("p2wpkh" in n) {
|
||||
try {
|
||||
bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58, n.p2wpkh);
|
||||
return "";
|
||||
}
|
||||
catch (e) {}
|
||||
}
|
||||
// try parsing using p2wpkh-in-p2sh network params
|
||||
if ("p2wpkhInP2sh" in n) {
|
||||
try {
|
||||
bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58, n.p2wpkhInP2sh);
|
||||
return "";
|
||||
}
|
||||
catch (e) {}
|
||||
}
|
||||
}
|
||||
// try the network params as currently specified
|
||||
try {
|
||||
bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58, network);
|
||||
}
|
||||
@@ -813,7 +887,7 @@
|
||||
var keyPair = key.keyPair;
|
||||
var useUncompressed = useBip38;
|
||||
if (useUncompressed) {
|
||||
keyPair = new bitcoinjs.bitcoin.ECPair(keyPair.d, null, { compressed: false });
|
||||
keyPair = new bitcoinjs.bitcoin.ECPair(keyPair.d, null, { network: network, compressed: false });
|
||||
}
|
||||
// get address
|
||||
var address = keyPair.getAddress().toString();
|
||||
@@ -821,7 +895,7 @@
|
||||
var hasPrivkey = !key.isNeutered();
|
||||
var privkey = "NA";
|
||||
if (hasPrivkey) {
|
||||
privkey = keyPair.toWIF(network);
|
||||
privkey = keyPair.toWIF();
|
||||
// BIP38 encode private key if required
|
||||
if (useBip38) {
|
||||
privkey = bitcoinjsBip38.encrypt(keyPair.d.toBuffer(), false, bip38password, function(p) {
|
||||
@@ -1398,7 +1472,20 @@
|
||||
}
|
||||
|
||||
function networkHasSegwit() {
|
||||
return networks[DOM.network.val()].segwitAvailable;
|
||||
var n = network;
|
||||
if ("baseNetwork" in network) {
|
||||
n = bitcoinjs.bitcoin.networks[network.baseNetwork];
|
||||
}
|
||||
// check if only p2wpkh params are required
|
||||
if (p2wpkhSelected()) {
|
||||
return "p2wpkh" in n;
|
||||
}
|
||||
// check if only p2wpkh-in-p2sh params are required
|
||||
else if (p2wpkhInP2shSelected()) {
|
||||
return "p2wpkhInP2sh" in n;
|
||||
}
|
||||
// require both if it's unclear which params are required
|
||||
return "p2wpkh" in n && "p2wpkhInP2sh" in n;
|
||||
}
|
||||
|
||||
function bip49TabSelected() {
|
||||
@@ -1422,6 +1509,8 @@
|
||||
function showSegwitAvailable() {
|
||||
DOM.bip49unavailable.addClass("hidden");
|
||||
DOM.bip49available.removeClass("hidden");
|
||||
DOM.bip84unavailable.addClass("hidden");
|
||||
DOM.bip84available.removeClass("hidden");
|
||||
DOM.bip141unavailable.addClass("hidden");
|
||||
DOM.bip141available.removeClass("hidden");
|
||||
}
|
||||
@@ -1429,6 +1518,8 @@
|
||||
function showSegwitUnavailable() {
|
||||
DOM.bip49available.addClass("hidden");
|
||||
DOM.bip49unavailable.removeClass("hidden");
|
||||
DOM.bip84available.addClass("hidden");
|
||||
DOM.bip84unavailable.removeClass("hidden");
|
||||
DOM.bip141available.addClass("hidden");
|
||||
DOM.bip141unavailable.removeClass("hidden");
|
||||
}
|
||||
@@ -1543,7 +1634,6 @@
|
||||
var networks = [
|
||||
{
|
||||
name: "AC - Asiacoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.asiacoin;
|
||||
setHdCoin(51);
|
||||
@@ -1551,7 +1641,6 @@
|
||||
},
|
||||
{
|
||||
name: "ACC - Adcoin",
|
||||
segwitAvailable: true,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.adcoin;
|
||||
setHdCoin(161);
|
||||
@@ -1559,7 +1648,6 @@
|
||||
},
|
||||
{
|
||||
name: "AUR - Auroracoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.auroracoin;
|
||||
setHdCoin(85);
|
||||
@@ -1567,7 +1655,6 @@
|
||||
},
|
||||
{
|
||||
name: "AXE - Axe",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.axe;
|
||||
setHdCoin(4242);
|
||||
@@ -1575,7 +1662,6 @@
|
||||
},
|
||||
{
|
||||
name: "BCA - Bitcoin Atom",
|
||||
segwitAvailable: true,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.atom;
|
||||
setHdCoin(185);
|
||||
@@ -1583,7 +1669,6 @@
|
||||
},
|
||||
{
|
||||
name: "BCH - Bitcoin Cash",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
DOM.bitcoinCashAddressTypeContainer.removeClass("hidden");
|
||||
setHdCoin(145);
|
||||
@@ -1591,7 +1676,6 @@
|
||||
},
|
||||
{
|
||||
name: "BEET - Beetlecoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.beetlecoin;
|
||||
setHdCoin(800);
|
||||
@@ -1599,7 +1683,6 @@
|
||||
},
|
||||
{
|
||||
name: "BELA - Belacoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.belacoin;
|
||||
setHdCoin(73);
|
||||
@@ -1607,7 +1690,6 @@
|
||||
},
|
||||
{
|
||||
name: "BLK - BlackCoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.blackcoin;
|
||||
setHdCoin(10);
|
||||
@@ -1615,7 +1697,6 @@
|
||||
},
|
||||
{
|
||||
name: "BRIT - Britcoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.britcoin;
|
||||
setHdCoin(70);
|
||||
@@ -1623,7 +1704,6 @@
|
||||
},
|
||||
{
|
||||
name: "BSD - Bitsend",
|
||||
segwitAvailable: true,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.bitsend;
|
||||
setHdCoin(91);
|
||||
@@ -1631,7 +1711,6 @@
|
||||
},
|
||||
{
|
||||
name: "BTA - Bata",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.bata;
|
||||
setHdCoin(89);
|
||||
@@ -1639,7 +1718,6 @@
|
||||
},
|
||||
{
|
||||
name: "BTC - Bitcoin",
|
||||
segwitAvailable: true,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.bitcoin;
|
||||
setHdCoin(0);
|
||||
@@ -1647,7 +1725,6 @@
|
||||
},
|
||||
{
|
||||
name: "BTC - Bitcoin Testnet",
|
||||
segwitAvailable: true,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.testnet;
|
||||
setHdCoin(1);
|
||||
@@ -1655,7 +1732,6 @@
|
||||
},
|
||||
{
|
||||
name: "BTCP - Bitcoin Private",
|
||||
segwitAvailable: true,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.bitcoinprivate;
|
||||
setHdCoin(183);
|
||||
@@ -1663,7 +1739,6 @@
|
||||
},
|
||||
{
|
||||
name: "BTCZ - Bitcoinz",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.bitcoinz;
|
||||
setHdCoin(177);
|
||||
@@ -1671,7 +1746,6 @@
|
||||
},
|
||||
{
|
||||
name: "BTG - Bitcoin Gold",
|
||||
segwitAvailable: true,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.bgold;
|
||||
setHdCoin(156);
|
||||
@@ -1679,7 +1753,6 @@
|
||||
},
|
||||
{
|
||||
name: "BTX - Bitcore",
|
||||
segwitAvailable: true,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.bitcore;
|
||||
setHdCoin(160);
|
||||
@@ -1687,7 +1760,6 @@
|
||||
},
|
||||
{
|
||||
name: "CCN - Cannacoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.cannacoin;
|
||||
setHdCoin(19);
|
||||
@@ -1695,7 +1767,6 @@
|
||||
},
|
||||
{
|
||||
name: "CDN - Canadaecoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.canadaecoin;
|
||||
setHdCoin(34);
|
||||
@@ -1703,7 +1774,6 @@
|
||||
},
|
||||
{
|
||||
name: "CLAM - Clams",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.clam;
|
||||
setHdCoin(23);
|
||||
@@ -1719,7 +1789,6 @@
|
||||
},
|
||||
{
|
||||
name: "CLUB - Clubcoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.clubcoin;
|
||||
setHdCoin(79);
|
||||
@@ -1727,7 +1796,6 @@
|
||||
},
|
||||
{
|
||||
name: "CMP - Compcoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.compcoin;
|
||||
setHdCoin(71);
|
||||
@@ -1735,7 +1803,6 @@
|
||||
},
|
||||
{
|
||||
name: "CRAVE - Crave",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.crave;
|
||||
setHdCoin(186);
|
||||
@@ -1743,7 +1810,6 @@
|
||||
},
|
||||
{
|
||||
name: "CRW - Crown",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.crown;
|
||||
setHdCoin(72);
|
||||
@@ -1751,7 +1817,6 @@
|
||||
},
|
||||
{
|
||||
name: "DASH - Dash",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.dash;
|
||||
setHdCoin(5);
|
||||
@@ -1759,7 +1824,6 @@
|
||||
},
|
||||
{
|
||||
name: "DASH - Dash Testnet",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.dashtn;
|
||||
setHdCoin(1);
|
||||
@@ -1767,7 +1831,6 @@
|
||||
},
|
||||
{
|
||||
name: "DFC - Defcoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.defcoin;
|
||||
setHdCoin(1337);
|
||||
@@ -1775,7 +1838,6 @@
|
||||
},
|
||||
{
|
||||
name: "DGB - Digibyte",
|
||||
segwitAvailable: true,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.digibyte;
|
||||
setHdCoin(20);
|
||||
@@ -1783,7 +1845,6 @@
|
||||
},
|
||||
{
|
||||
name: "DGC - Digitalcoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.digitalcoin;
|
||||
setHdCoin(18);
|
||||
@@ -1791,7 +1852,6 @@
|
||||
},
|
||||
{
|
||||
name: "DMD - Diamond",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.diamond;
|
||||
setHdCoin(152);
|
||||
@@ -1799,7 +1859,6 @@
|
||||
},
|
||||
{
|
||||
name: "DNR - Denarius",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.denarius;
|
||||
setHdCoin(116);
|
||||
@@ -1807,7 +1866,6 @@
|
||||
},
|
||||
{
|
||||
name: "DOGE - Dogecoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.dogecoin;
|
||||
setHdCoin(3);
|
||||
@@ -1815,7 +1873,6 @@
|
||||
},
|
||||
{
|
||||
name: "ECN - Ecoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.ecoin;
|
||||
setHdCoin(115);
|
||||
@@ -1823,7 +1880,6 @@
|
||||
},
|
||||
{
|
||||
name: "EDRC - Edrcoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.edrcoin;
|
||||
setHdCoin(56);
|
||||
@@ -1831,7 +1887,6 @@
|
||||
},
|
||||
{
|
||||
name: "EFL - Egulden",
|
||||
segwitAvailable: true,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.egulden;
|
||||
setHdCoin(78);
|
||||
@@ -1839,7 +1894,6 @@
|
||||
},
|
||||
{
|
||||
name: "EMC2 - Einsteinium",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.einsteinium;
|
||||
setHdCoin(41);
|
||||
@@ -1847,7 +1901,6 @@
|
||||
},
|
||||
{
|
||||
name: "ERC - Europecoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.europecoin;
|
||||
setHdCoin(151);
|
||||
@@ -1863,7 +1916,6 @@
|
||||
},
|
||||
{
|
||||
name: "ETH - Ethereum",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.bitcoin;
|
||||
setHdCoin(60);
|
||||
@@ -1871,7 +1923,6 @@
|
||||
},
|
||||
{
|
||||
name: "EXCL - Exclusivecoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.exclusivecoin;
|
||||
setHdCoin(190);
|
||||
@@ -1887,7 +1938,6 @@
|
||||
},
|
||||
{
|
||||
name: "FJC - Fujicoin",
|
||||
segwitAvailable: true,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.fujicoin;
|
||||
setHdCoin(75);
|
||||
@@ -1895,7 +1945,6 @@
|
||||
},
|
||||
{
|
||||
name: "FLASH - Flashcoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.flashcoin;
|
||||
setHdCoin(120);
|
||||
@@ -1903,7 +1952,6 @@
|
||||
},
|
||||
{
|
||||
name: "FRST - Firstcoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.firstcoin;
|
||||
setHdCoin(167);
|
||||
@@ -1911,7 +1959,6 @@
|
||||
},
|
||||
{
|
||||
name: "FTC - Feathercoin",
|
||||
segwitAvailable: true,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.feathercoin;
|
||||
setHdCoin(8);
|
||||
@@ -1919,7 +1966,6 @@
|
||||
},
|
||||
{
|
||||
name: "GAME - GameCredits",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.game;
|
||||
setHdCoin(101);
|
||||
@@ -1927,7 +1973,6 @@
|
||||
},
|
||||
{
|
||||
name: "GBX - Gobyte",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.gobyte;
|
||||
setHdCoin(176);
|
||||
@@ -1935,7 +1980,6 @@
|
||||
},
|
||||
{
|
||||
name: "GCR - GCRCoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.gcr;
|
||||
setHdCoin(79);
|
||||
@@ -1943,7 +1987,6 @@
|
||||
},
|
||||
{
|
||||
name: "GRC - Gridcoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.gridcoin;
|
||||
setHdCoin(84);
|
||||
@@ -1951,7 +1994,6 @@
|
||||
},
|
||||
{
|
||||
name: "HNC - Helleniccoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.helleniccoin;
|
||||
setHdCoin(168);
|
||||
@@ -1959,7 +2001,6 @@
|
||||
},
|
||||
{
|
||||
name: "INSN - Insane",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.insane;
|
||||
setHdCoin(68);
|
||||
@@ -1967,7 +2008,6 @@
|
||||
},
|
||||
{
|
||||
name: "IOP - Iop",
|
||||
segwitAvailable: true,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.iop;
|
||||
setHdCoin(66);
|
||||
@@ -1975,7 +2015,6 @@
|
||||
},
|
||||
{
|
||||
name: "IXC - Ixcoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.ixcoin;
|
||||
setHdCoin(86);
|
||||
@@ -1983,7 +2022,6 @@
|
||||
},
|
||||
{
|
||||
name: "JBS - Jumbucks",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.jumbucks;
|
||||
setHdCoin(26);
|
||||
@@ -2007,7 +2045,6 @@
|
||||
},
|
||||
{
|
||||
name: "LBC - Library Credits",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.lbry;
|
||||
setHdCoin(140);
|
||||
@@ -2015,7 +2052,6 @@
|
||||
},
|
||||
{
|
||||
name: "LCC - Litecoincash",
|
||||
segwitAvailable: true,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.litecoincash;
|
||||
setHdCoin(192);
|
||||
@@ -2023,7 +2059,6 @@
|
||||
},
|
||||
{
|
||||
name: "LDCN - Landcoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.landcoin;
|
||||
setHdCoin(63);
|
||||
@@ -2031,7 +2066,6 @@
|
||||
},
|
||||
{
|
||||
name: "LINX - Linx",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.linx;
|
||||
setHdCoin(114);
|
||||
@@ -2039,7 +2073,6 @@
|
||||
},
|
||||
{
|
||||
name: "LTC - Litecoin",
|
||||
segwitAvailable: true,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.litecoin;
|
||||
setHdCoin(2);
|
||||
@@ -2048,7 +2081,6 @@
|
||||
},
|
||||
{
|
||||
name: "LYNX - Lynx",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.lynx;
|
||||
setHdCoin(191);
|
||||
@@ -2056,7 +2088,6 @@
|
||||
},
|
||||
{
|
||||
name: "MAZA - Maza",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.maza;
|
||||
setHdCoin(13);
|
||||
@@ -2072,7 +2103,6 @@
|
||||
},
|
||||
{
|
||||
name: "MNX - Minexcoin",
|
||||
segwitAvailable: true,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.minexcoin;
|
||||
setHdCoin(182);
|
||||
@@ -2080,7 +2110,6 @@
|
||||
},
|
||||
{
|
||||
name: "MONA - Monacoin",
|
||||
segwitAvailable: true,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.monacoin,
|
||||
setHdCoin(22);
|
||||
@@ -2096,7 +2125,6 @@
|
||||
},
|
||||
{
|
||||
name: "NAV - Navcoin",
|
||||
segwitAvailable: true,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.navcoin;
|
||||
setHdCoin(130);
|
||||
@@ -2104,7 +2132,6 @@
|
||||
},
|
||||
{
|
||||
name: "NEBL - Neblio",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.neblio;
|
||||
setHdCoin(146);
|
||||
@@ -2112,7 +2139,6 @@
|
||||
},
|
||||
{
|
||||
name: "NEOS - Neoscoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.neoscoin;
|
||||
setHdCoin(25);
|
||||
@@ -2120,7 +2146,6 @@
|
||||
},
|
||||
{
|
||||
name: "NLG - Gulden",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.gulden;
|
||||
setHdCoin(87);
|
||||
@@ -2128,7 +2153,6 @@
|
||||
},
|
||||
{
|
||||
name: "NMC - Namecoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.namecoin;
|
||||
setHdCoin(7);
|
||||
@@ -2136,7 +2160,6 @@
|
||||
},
|
||||
{
|
||||
name: "NRG - Energi",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.energi;
|
||||
setHdCoin(204);
|
||||
@@ -2144,7 +2167,6 @@
|
||||
},
|
||||
{
|
||||
name: "NRO - Neurocoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.neurocoin;
|
||||
setHdCoin(110);
|
||||
@@ -2152,7 +2174,6 @@
|
||||
},
|
||||
{
|
||||
name: "NSR - Nushares",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.nushares;
|
||||
setHdCoin(11);
|
||||
@@ -2160,7 +2181,6 @@
|
||||
},
|
||||
{
|
||||
name: "NYC - Newyorkc",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.newyorkc;
|
||||
setHdCoin(179);
|
||||
@@ -2168,7 +2188,6 @@
|
||||
},
|
||||
{
|
||||
name: "NVC - Novacoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.novacoin;
|
||||
setHdCoin(50);
|
||||
@@ -2176,7 +2195,6 @@
|
||||
},
|
||||
{
|
||||
name: "OK - Okcash",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.okcash;
|
||||
setHdCoin(69);
|
||||
@@ -2184,7 +2202,6 @@
|
||||
},
|
||||
{
|
||||
name: "OMNI - Omnicore",
|
||||
segwitAvailable: true,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.omnicore;
|
||||
setHdCoin(200);
|
||||
@@ -2192,7 +2209,6 @@
|
||||
},
|
||||
{
|
||||
name: "ONX - Onixcoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.onixcoin;
|
||||
setHdCoin(174);
|
||||
@@ -2200,7 +2216,6 @@
|
||||
},
|
||||
{
|
||||
name: "PINK - Pinkcoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.pinkcoin;
|
||||
setHdCoin(117);
|
||||
@@ -2216,7 +2231,6 @@
|
||||
},
|
||||
{
|
||||
name: "PIVX - PIVX",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.pivx;
|
||||
setHdCoin(119);
|
||||
@@ -2224,7 +2238,6 @@
|
||||
},
|
||||
{
|
||||
name: "PIVX - PIVX Testnet",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.pivxtestnet;
|
||||
setHdCoin(1);
|
||||
@@ -2240,7 +2253,6 @@
|
||||
},
|
||||
{
|
||||
name: "POSW - POSWcoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.poswcoin;
|
||||
setHdCoin(47);
|
||||
@@ -2248,7 +2260,6 @@
|
||||
},
|
||||
{
|
||||
name: "POT - Potcoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.potcoin;
|
||||
setHdCoin(81);
|
||||
@@ -2256,7 +2267,6 @@
|
||||
},
|
||||
{
|
||||
name: "PPC - Peercoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.peercoin;
|
||||
setHdCoin(6);
|
||||
@@ -2264,7 +2274,6 @@
|
||||
},
|
||||
{
|
||||
name: "PSB - Pesobit",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.pesobit;
|
||||
setHdCoin(62);
|
||||
@@ -2272,7 +2281,6 @@
|
||||
},
|
||||
{
|
||||
name: "PUT - Putincoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.putincoin;
|
||||
setHdCoin(122);
|
||||
@@ -2280,7 +2288,6 @@
|
||||
},
|
||||
{
|
||||
name: "RBY - Rubycoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.rubycoin;
|
||||
setHdCoin(16);
|
||||
@@ -2288,15 +2295,13 @@
|
||||
},
|
||||
{
|
||||
name: "RDD - Reddcoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.reddoin;
|
||||
network = bitcoinjs.bitcoin.networks.reddcoin;
|
||||
setHdCoin(4);
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "RVR - RevolutionVR",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.revolutionvr;
|
||||
setHdCoin(129);
|
||||
@@ -2304,7 +2309,6 @@
|
||||
},
|
||||
{
|
||||
name: "SDC - ShadowCash",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.shadow;
|
||||
setHdCoin(35);
|
||||
@@ -2312,7 +2316,6 @@
|
||||
},
|
||||
{
|
||||
name: "SDC - ShadowCash Testnet",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.shadowtn;
|
||||
setHdCoin(1);
|
||||
@@ -2320,7 +2323,6 @@
|
||||
},
|
||||
{
|
||||
name: "SLM - Slimcoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.slimcoin;
|
||||
setHdCoin(63);
|
||||
@@ -2328,7 +2330,6 @@
|
||||
},
|
||||
{
|
||||
name: "SLM - Slimcoin Testnet",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.slimcointn;
|
||||
setHdCoin(111);
|
||||
@@ -2336,7 +2337,6 @@
|
||||
},
|
||||
{
|
||||
name: "SLR - Solarcoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.solarcoin;
|
||||
setHdCoin(58);
|
||||
@@ -2344,7 +2344,6 @@
|
||||
},
|
||||
{
|
||||
name: "SMLY - Smileycoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.smileycoin;
|
||||
setHdCoin(59);
|
||||
@@ -2352,7 +2351,6 @@
|
||||
},
|
||||
{
|
||||
name: "STRAT - Stratis",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.stratis;
|
||||
setHdCoin(105);
|
||||
@@ -2360,7 +2358,6 @@
|
||||
},
|
||||
{
|
||||
name: "SYS - Syscoin",
|
||||
segwitAvailable: true,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.syscoin;
|
||||
setHdCoin(57);
|
||||
@@ -2368,7 +2365,6 @@
|
||||
},
|
||||
{
|
||||
name: "THC - Hempcoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.hempcoin;
|
||||
setHdCoin(113);
|
||||
@@ -2376,7 +2372,6 @@
|
||||
},
|
||||
{
|
||||
name: "TOA - Toa",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.toa;
|
||||
setHdCoin(159);
|
||||
@@ -2384,7 +2379,6 @@
|
||||
},
|
||||
{
|
||||
name: "USC - Ultimatesecurecash",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.ultimatesecurecash;
|
||||
setHdCoin(112);
|
||||
@@ -2392,7 +2386,6 @@
|
||||
},
|
||||
{
|
||||
name: "USNBT - NuBits",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.nubits;
|
||||
setHdCoin(12);
|
||||
@@ -2400,7 +2393,6 @@
|
||||
},
|
||||
{
|
||||
name: "UNO - Unobtanium",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.unobtanium;
|
||||
setHdCoin(92);
|
||||
@@ -2408,7 +2400,6 @@
|
||||
},
|
||||
{
|
||||
name: "VASH - Vpncoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.vpncoin;
|
||||
setHdCoin(33);
|
||||
@@ -2416,7 +2407,6 @@
|
||||
},
|
||||
{
|
||||
name: "VIA - Viacoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.viacoin;
|
||||
setHdCoin(14);
|
||||
@@ -2424,7 +2414,6 @@
|
||||
},
|
||||
{
|
||||
name: "VIA - Viacoin Testnet",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.viacointestnet;
|
||||
setHdCoin(1);
|
||||
@@ -2432,7 +2421,6 @@
|
||||
},
|
||||
{
|
||||
name: "VIVO - Vivo",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.vivo;
|
||||
setHdCoin(166);
|
||||
@@ -2440,7 +2428,6 @@
|
||||
},
|
||||
{
|
||||
name: "VTC - Vertcoin",
|
||||
segwitAvailable: true,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.vertcoin;
|
||||
setHdCoin(28);
|
||||
@@ -2448,7 +2435,6 @@
|
||||
},
|
||||
{
|
||||
name: "WC - Wincoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.wincoin;
|
||||
setHdCoin(181);
|
||||
@@ -2456,7 +2442,6 @@
|
||||
},
|
||||
{
|
||||
name: "XBC - Bitcoinplus",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.bitcoinplus;
|
||||
setHdCoin(65);
|
||||
@@ -2464,7 +2449,6 @@
|
||||
},
|
||||
{
|
||||
name: "XMY - Myriadcoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.myriadcoin;
|
||||
setHdCoin(90);
|
||||
@@ -2472,7 +2456,6 @@
|
||||
},
|
||||
{
|
||||
name: "XRP - Ripple",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.bitcoin;
|
||||
setHdCoin(144);
|
||||
@@ -2480,7 +2463,6 @@
|
||||
},
|
||||
{
|
||||
name: "XVC - Vcash",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.vcash;
|
||||
setHdCoin(127);
|
||||
@@ -2488,7 +2470,6 @@
|
||||
},
|
||||
{
|
||||
name: "XVG - Verge",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.verge;
|
||||
setHdCoin(77);
|
||||
@@ -2504,7 +2485,6 @@
|
||||
},
|
||||
{
|
||||
name: "XWC - Whitecoin",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.whitecoin;
|
||||
setHdCoin(155);
|
||||
@@ -2512,7 +2492,6 @@
|
||||
},
|
||||
{
|
||||
name: "XZC - Zcoin",
|
||||
segwitAvailable: true,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.zcoin;
|
||||
setHdCoin(136);
|
||||
@@ -2520,7 +2499,6 @@
|
||||
},
|
||||
{
|
||||
name: "ZCL - Zclassic",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.zclassic;
|
||||
setHdCoin(147);
|
||||
@@ -2528,7 +2506,6 @@
|
||||
},
|
||||
{
|
||||
name: "ZEC - Zcash",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.zcash;
|
||||
setHdCoin(133);
|
||||
@@ -2536,7 +2513,6 @@
|
||||
},
|
||||
{
|
||||
name: "ZEN - Zencash",
|
||||
segwitAvailable: false,
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.zencash;
|
||||
setHdCoin(121);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
@@ -1057,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);
|
||||
});
|
||||
@@ -3692,4 +3692,61 @@ it('Does not show a warning if entropy is stronger than mnemonic length', functi
|
||||
});
|
||||
});
|
||||
|
||||
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();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user