]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/blobdiff - tests/spec/tests.js
Parse extended root key regardless of prefix
[perso/Immae/Projets/Cryptomonnaies/BIP39.git] / tests / spec / tests.js
index adaeb6c42ae79e9d2b19acfea8223ec022447096..b90906b2c79e74b4886677bc644140d8f4d68770 100644 (file)
@@ -690,6 +690,20 @@ it('Allows selection of Bitcoinplus', function(done) {
     };
     testNetwork(done, params);
 });
+it('Allows selection of Bitcoin Private', function(done) {
+    var params = {
+        selectText: "BTCP - Bitcoin Private",
+        firstAddress: "b1M3PbiXXyN6Hdivdw5rJv5VKpLjPzhm4jM",
+    };
+    testNetwork(done, params);
+});
+it('Allows selection of Bitcoinz', function(done) {
+    var params = {
+        selectText: "BTCZ - Bitcoinz",
+        firstAddress: "t1X2YQoxs8cYRo2oaBYgVEwW5QNjCC59NYc",
+    };
+    testNetwork(done, params);
+});
 it('Allows selection of Bitcore', function(done) {
     var params = {
         selectText: "BTX - Bitcore",
@@ -1173,6 +1187,27 @@ it('Allows selection of Zcash', function(done) {
     };
     testNetwork(done, params);
 });
+it('Allows selection of Zclassic', function(done) {
+    var params = {
+        selectText: "ZCL - Zclassic",
+        firstAddress: "t1TBMxTvVJRybUbMLGWq8H4A8F4VUL7czEc",
+    };
+    testNetwork(done, params);
+});
+it('Allows selection of Zencash', function(done) {
+    var params = {
+        selectText: "ZEN - Zencash",
+        firstAddress: "znWh9XASyW2dZq5tck84wFjiwuqVysi7q3p",
+    };
+    testNetwork(done, params);
+});
+it('Allows selection of Energi', function(done) {
+    var params = {
+        selectText: "NRG - Energi",
+        firstAddress: "EejRy4t4nidzhGGzkJUgFP3z4HYBjhTsRt",
+    };
+    testNetwork(done, params);
+});
 
 
 // BIP39 seed is set from phrase
@@ -3608,4 +3643,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();
+        });
+    });
+});
+
 });