<div class="col-md-12">
<h2>Derived Addresses</h2>
<p>Note these addreses are derived from the BIP32 Extended Key</p>
+ </div>
+ <div class="col-md-12 use-bitpay-addresses-container hidden">
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" class="use-bitpay-addresses">
+ <span>Use BitPay-style addresses for Bitcoin Cash (ie starting with 'C' instead of '1')</span>
+ </label>
+ </div>
+ </div>
+ <div class="col-md-12">
<table class="table table-striped">
<thead>
<th>
DOM.generatedStrength = $(".generate-container .strength");
DOM.hardenedAddresses = $(".hardened-addresses");
DOM.useP2wpkhNestedInP2sh = $(".p2wpkh-nested-in-p2sh");
+ DOM.useBitpayAddressesContainer = $(".use-bitpay-addresses-container");
+ DOM.useBitpayAddresses = $(".use-bitpay-addresses");
DOM.addresses = $(".addresses");
DOM.rowsToAdd = $(".rows-to-add");
DOM.more = $(".more");
DOM.publicKeyToggle.on("click", togglePublicKeys);
DOM.privateKeyToggle.on("click", togglePrivateKeys);
DOM.languages.on("click", languageChanged);
+ DOM.useBitpayAddresses.on("change", useBitpayAddressesChange);
setQrEvents(DOM.showQrEls);
disableForms();
hidePending();
clearDerivedKeys();
clearAddressesList();
DOM.litecoinLtubContainer.addClass("hidden");
+ DOM.useBitpayAddressesContainer.addClass("hidden");
var networkIndex = e.target.value;
var network = networks[networkIndex];
network.onSelect();
}, 50);
}
+ function useBitpayAddressesChange() {
+ setBitcoinCashNetworkValues();
+ phraseChanged();
+ }
+
function toggleIndexes() {
showIndex = !showIndex;
$("td.index span").toggleClass("invisible");
DOM.useP2wpkhNestedInP2sh.prop("checked", false);
}
+ function useBitpayAddresses() {
+ return !(DOM.useBitpayAddresses.prop("checked"));
+ }
+
+ function setBitcoinCashNetworkValues() {
+ if (useBitpayAddresses()) {
+ network = bitcoinjs.bitcoin.networks.bitcoin;
+ }
+ else {
+ network = bitcoinjs.bitcoin.networks.bitcoinCashBitbpay;
+ }
+ }
+
var networks = [
{
name: "BCH - Bitcoin Cash",
p2wpkhNestedInP2shAvailable: false,
onSelect: function() {
- network = bitcoinjs.bitcoin.networks.bitcoin;
+ DOM.useBitpayAddressesContainer.removeClass("hidden");
+ setBitcoinCashNetworkValues();
setHdCoin(145);
},
},
});
},
+// Bitcoin Cash address can be set to use bitpay format
+function() {
+page.open(url, function(status) {
+ // set the phrase and coin and address format
+ var expected = "CZnpA9HPmvhuhLLPWJP8rNDpLUYXy1LXFk";
+ page.evaluate(function() {
+ $(".use-bitpay-addresses").prop("checked", true);
+ $(".phrase").val("abandon abandon ability");
+ $(".phrase").trigger("input");
+ $(".network option[selected]").removeAttr("selected");
+ $(".network option").filter(function() {
+ return $(this).html() == "BCH - Bitcoin Cash";
+ }).prop("selected", true);
+ $(".network").trigger("change");
+ });
+ // check the address is generated correctly
+ waitForGenerate(function() {
+ var actual = page.evaluate(function() {
+ return $(".address:first").text();
+ });
+ if (actual != expected) {
+ console.log("Bitcoin Cash address is incorrect");
+ console.log("Expected: " + expected);
+ console.log("Actual: " + actual);
+ fail();
+ }
+ next();
+ });
+});
+},
+
// If you wish to add more tests, do so here...
// Here is a blank test template