]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/blobdiff - tests.js
Allow BitPay address format for bitcoin cash
[perso/Immae/Projets/Cryptomonnaies/BIP39.git] / tests.js
index f192f991a9064cf9a9e936422dd369761fea47c9..c0f7df78377972a221f6707c322c254e69aef081 100644 (file)
--- a/tests.js
+++ b/tests.js
@@ -1022,6 +1022,66 @@ page.open(url, function(status) {
 });
 },
 
+// Network can be set to fujicoin
+function() {
+page.open(url, function(status) {
+    // set the phrase and coin
+    var expected = "FgiaLpG7C99DyR4WnPxXedRVHXSfKzUDhF";
+    page.evaluate(function() {
+        $(".phrase").val("abandon abandon ability");
+        $(".phrase").trigger("input");
+        $(".network option[selected]").removeAttr("selected");
+        $(".network option").filter(function() {
+            return $(this).html() == "FJC - Fujicoin";
+        }).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("Fujicoin address is incorrect");
+            console.log("Expected: " + expected);
+            console.log("Actual: " + actual);
+            fail();
+        }
+        next();
+    });
+});
+},
+
+// Network can be set to nubits
+function() {
+page.open(url, function(status) {
+    // set the phrase and coin
+    var expected = "BLxkabXuZSJSdesLD7KxZdqovd4YwyBTU6";
+    page.evaluate(function() {
+        $(".phrase").val("abandon abandon ability");
+        $(".phrase").trigger("input");
+        $(".network option[selected]").removeAttr("selected");
+        $(".network option").filter(function() {
+            return $(this).html() == "USNBT - NuBits";
+        }).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("NuBits address is incorrect");
+            console.log("Expected: " + expected);
+            console.log("Actual: " + actual);
+            fail();
+        }
+        next();
+    });
+});
+},
+
 // BIP39 seed is set from phrase
 function() {
 page.open(url, function(status) {
@@ -4267,6 +4327,114 @@ page.open(url, function(status) {
 });
 },
 
+// BIP32 tab can use P2WPKH Nested In P2SH
+// github issue 91 part 2
+// https://github.com/iancoleman/bip39/issues/91
+// generate new addresses from xpub?
+function() {
+page.open(url, function(status) {
+    // set the xpub and coin and select bip32 tab with p2wpkh addresses
+    page.evaluate(function() {
+        // use p2wpkh addresses
+        $(".p2wpkh-nested-in-p2sh").prop("checked", true);
+        // use bip32 tab
+        $("#bip32-tab a").click();
+        // use testnet
+        $(".network option[selected]").removeAttr("selected");
+        $(".network option").filter(function() {
+            return $(this).html() == "BTC - Bitcoin Testnet";
+        }).prop("selected", true);
+        $(".network").trigger("change");
+        // Set root xpub to BIP49 official test vector account 0
+        $(".root-key").val("tpubDD7tXK8KeQ3YY83yWq755fHY2JW8Ha8Q765tknUM5rSvjPcGWfUppDFMpQ1ScziKfW3ZNtZvAD7M3u7bSs7HofjTD3KP3YxPK7X6hwV8Rk2");
+        $(".root-key").trigger("input");
+    });
+    // check the address is generated correctly
+    waitForGenerate(function() {
+        var expected = "2Mww8dCYPUpKHofjgcXcBCEGmniw9CoaiD2";
+        var actual = page.evaluate(function() {
+            return $(".address:first").text();
+        });
+        if (actual != expected) {
+            console.log("BIP32 tab cannot generate P2WPKH Nested In P2SH addresses");
+            console.log("Expected: " + expected);
+            console.log("Actual: " + actual);
+            fail();
+        }
+        next();
+    });
+});
+},
+
+// github issue 99
+// https://github.com/iancoleman/bip39/issues/99#issuecomment-327094159
+// "warn me emphatically when they have detected invalid input" to the entropy field
+// A warning is shown when entropy is filtered and discarded
+function() {
+page.open(url, function(status) {
+    // use entropy
+    page.evaluate(function() {
+        $(".use-entropy").prop("checked", true).trigger("change");
+        $(".entropy").val("00000000 00000000 00000000 00000000").trigger("input");
+    });
+    // check the filter warning does not show
+    waitForGenerate(function() {
+        var warningIsHidden = page.evaluate(function() {
+            return $(".entropy-container .filter-warning").hasClass("hidden");
+        });
+        if (!warningIsHidden) {
+            console.log("Entropy filter warning is showing when it should not");
+            fail();
+        }
+        page.evaluate(function() {
+            $(".entropy").val("10000000 zxcvbn 00000000 00000000 00000000").trigger("input");
+        });
+        // check the filter warning shows
+        waitForEntropyFeedback(function() {
+            var warningIsHidden = page.evaluate(function() {
+                return $(".entropy-container .filter-warning").hasClass("hidden");
+            });
+            if (warningIsHidden) {
+                console.log("Entropy filter warning is not showing when it should");
+                fail();
+            }
+            next();
+        });
+    });
+});
+},
+
+// 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