+ }
+
+ function destroyQr() {
+ DOM.qrImage.text("");
+ DOM.qrContainer.addClass("hidden");
+ }
+
+ function toggleQr() {
+ showQr = !showQr;
+ DOM.qrHider.toggleClass("hidden");
+ DOM.qrHint.toggleClass("hidden");
+ }
+
+ function bip44TabSelected() {
+ return DOM.bip44tab.hasClass("active");
+ }
+
+ function bip32TabSelected() {
+ return DOM.bip32tab.hasClass("active");
+ }
+
+ function useP2wpkhNestedInP2sh() {
+ return DOM.useP2wpkhNestedInP2sh.prop("checked");
+ }
+
+ function networkHasBip49() {
+ return networks[DOM.network.val()].p2wpkhNestedInP2shAvailable;
+ }
+
+ function bip49TabSelected() {
+ return DOM.bip49tab.hasClass("active");
+ }
+
+ function setHdCoin(coinValue) {
+ DOM.bip44coin.val(coinValue);
+ DOM.bip49coin.val(coinValue);
+ }
+
+ function showP2wpkhNestedInP2shAvailable() {
+ DOM.bip49unavailable.addClass("hidden");
+ DOM.bip49available.removeClass("hidden");
+ DOM.useP2wpkhNestedInP2sh.prop("disabled", false);
+ }
+
+ function showP2wpkhNestedInP2shUnavailable() {
+ DOM.bip49available.addClass("hidden");
+ DOM.bip49unavailable.removeClass("hidden");
+ DOM.useP2wpkhNestedInP2sh.prop("disabled", true);
+ 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;
+ }
+ }
+
+ function adjustNetworkForBip49() {
+ // If bip49 is selected the xpub/xprv prefixes need to be adjusted
+ // to avoid accidentally importing BIP49 xpub to BIP44 watch only
+ // wallet.
+ // See https://github.com/iancoleman/bip39/issues/125
+ if (P2wpkhNestedInP2shSelected()) {
+ if (network == bitcoinjs.bitcoin.networks.bitcoin) {
+ network = bitcoinjs.bitcoin.networks.bitcoinBip49;
+ }
+ else if (network == bitcoinjs.bitcoin.networks.testnet) {
+ network = bitcoinjs.bitcoin.networks.testnetBip49;
+ }
+ else if (network == bitcoinjs.bitcoin.networks.litecoin) {
+ network = bitcoinjs.bitcoin.networks.litecoinBip49;
+ }
+ }
+ else {
+ if (network == bitcoinjs.bitcoin.networks.bitcoinBip49) {
+ network = bitcoinjs.bitcoin.networks.bitcoin;
+ }
+ else if (network == bitcoinjs.bitcoin.networks.testnetBip49) {
+ network = bitcoinjs.bitcoin.networks.testnet;
+ }
+ else if (network == bitcoinjs.bitcoin.networks.litecoinBip49) {
+ network = bitcoinjs.bitcoin.networks.litecoin;
+ }