});
},
+// Network can be set to bitcoin cash
+function() {
+page.open(url, function(status) {
+ // set the phrase and coin
+ var expected = "1JKvb6wKtsjNoCRxpZ4DGrbniML7z5U16A";
+ page.evaluate(function() {
+ $(".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();
+ });
+});
+},
+
+// Network can be set to myriadcoin
+function() {
+page.open(url, function(status) {
+ // set the phrase and coin
+ var expected = "MJEswvRR46wh9BoiVj9DzKYMBkCramhoBV";
+ page.evaluate(function() {
+ $(".phrase").val("abandon abandon ability");
+ $(".phrase").trigger("input");
+ $(".network option[selected]").removeAttr("selected");
+ $(".network option").filter(function() {
+ return $(this).html() == "XMY - Myriadcoin";
+ }).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("Myriadcoin address is incorrect");
+ console.log("Expected: " + expected);
+ console.log("Actual: " + actual);
+ fail();
+ }
+ next();
+ });
+});
+},
+
+// Network can be set to pivx
+function() {
+page.open(url, function(status) {
+ // set the phrase and coin
+ var expected = "DBxgT7faCuno7jmtKuu6KWCiwqsVPqh1tS";
+ page.evaluate(function() {
+ $(".phrase").val("abandon abandon ability");
+ $(".phrase").trigger("input");
+ $(".network option[selected]").removeAttr("selected");
+ $(".network option").filter(function() {
+ return $(this).html() == "PIVX - PIVX";
+ }).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("PIVX address is incorrect");
+ console.log("Expected: " + expected);
+ console.log("Actual: " + actual);
+ fail();
+ }
+ next();
+ });
+});
+},
+
+// Network can be set to pivx testnet
+function() {
+page.open(url, function(status) {
+ // set the phrase and coin
+ var expected = "yB5U384n6dGkVE3by5y9VdvHHPwPg68fQj";
+ page.evaluate(function() {
+ $(".phrase").val("abandon abandon ability");
+ $(".phrase").trigger("input");
+ $(".network option[selected]").removeAttr("selected");
+ $(".network option").filter(function() {
+ return $(this).html() == "PIVX - PIVX Testnet";
+ }).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("PIVX Testnet address is incorrect");
+ console.log("Expected: " + expected);
+ console.log("Actual: " + actual);
+ fail();
+ }
+ next();
+ });
+});
+},
+
+// Network can be set to maza
+function() {
+page.open(url, function(status) {
+ // set the phrase and coin
+ var expected = "MGW4Bmi2NEm4PxSjgeFwhP9vg18JHoRnfw";
+ page.evaluate(function() {
+ $(".phrase").val("abandon abandon ability");
+ $(".phrase").trigger("input");
+ $(".network option[selected]").removeAttr("selected");
+ $(".network option").filter(function() {
+ return $(this).html() == "MAZA - Maza";
+ }).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("Maza 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) {
});
},
+// github issue 43
+// Cleared mnemonic and root key still allows addresses to be generated
+// https://github.com/iancoleman/bip39/issues/43
+function() {
+page.open(url, function(status) {
+ // set the phrase
+ page.evaluate(function() {
+ $("#bip49-tab a").click();
+ $(".phrase").val("abandon abandon ability");
+ $(".phrase").trigger("input");
+ });
+ waitForGenerate(function() {
+ // clear the mnemonic and root key
+ page.evaluate(function() {
+ $(".phrase").val("");
+ $(".phrase").trigger("input");
+ $(".root-key").val("");
+ $(".root-key").trigger("input");
+ $(".more").click();
+ });
+ waitForFeedback(function() {
+ // check there are no addresses shown
+ var addressCount = page.evaluate(function() {
+ return $(".address").length;
+ });
+ if (addressCount != 0) {
+ console.log("Clearing mnemonic should not allow addresses to be generated");
+ fail();
+ }
+ next();
+ });
+ });
+});
+},
+
+// Github issue 95
+// error trying to generate addresses from xpub with hardened derivation
+function() {
+page.open(url, function(status) {
+ // set the phrase
+ page.evaluate(function() {
+ // Use bip32 tab with hardened addresses
+ $(".hardened-addresses").prop("checked", true);
+ $("#bip32-tab a").click();
+ // set xpub for account 0 of bip44 for 'abandon abandon ability'
+ var bip44AccountXpub = "xpub6CzDCPbtLrrn4VpVbyyQLHbdSMpZoHN4iuW64VswCyEpfjM2mJGdaHJ2DyuZwtst96E16VvcERb8BBeJdHSCVmAq9RhtRQg6eAZFrTKCNqf";
+ $("#root-key").val(bip44AccountXpub);
+ $("#root-key").trigger("input");
+ });
+ waitForFeedback(function() {
+ // check the error message shows
+ var expected = "Hardened derivation path is invalid with xpub key";
+ var actual = page.evaluate(function() {
+ return $(".feedback").text();
+ });
+ if (actual != expected) {
+ console.log("xpub key with hardened addresses does not show feedback");
+ 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