]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/blobdiff - tests/spec/tests.js
Add bitcoin regtest params
[perso/Immae/Projets/Cryptomonnaies/BIP39.git] / tests / spec / tests.js
index 660249169ccda481913a3df4ffc11c2fad2c5223..260ff2c73a72b9eadfb44e6047387de18784bf14 100644 (file)
@@ -412,6 +412,13 @@ it('Allows selection of bitcoin testnet', function(done) {
     };
     testNetwork(done, params);
 });
+it('Allows selection of bitcoin regtest', function(done) {
+    var params = {
+        selectText: "BTC - Bitcoin RegTest",
+        firstAddress: "mucaU5iiDaJDb69BHLeDv8JFfGiyg2nJKi",
+    };
+    testNetwork(done, params);
+});
 it('Allows selection of litecoin', function(done) {
     var params = {
         selectText: "LTC - Litecoin",
@@ -585,7 +592,7 @@ it('Allows selection of peercoin', function(done) {
 it('Allows selection of ethereum', function(done) {
     var params = {
         selectText: "ETH - Ethereum",
-        firstAddress: "0x20Bb0CD7dd4a255f558bCD1A34D21E27061Ac2CF",
+        firstAddress: "0xe5815d5902Ad612d49283DEdEc02100Bd44C2772",
     };
     testNetwork(done, params);
     // TODO test private key and public key
@@ -1358,7 +1365,7 @@ it('Allows selection of Vpncoin', function(done) {
 it('Allows selection of VeChain', function(done) {
     var params = {
         selectText: "VET - VeChain",
-        firstAddress: "0x993680FDF7f4a6AbcD4b9Db23b92Bc6B08AF9e48",
+        firstAddress: "0xdba55B1B6070f3a733D5eDFf35F0da4A00E455F2",
     };
     testNetwork(done, params);
 });
@@ -1414,21 +1421,21 @@ it('Allows selection of Energi', function(done) {
 it('Allows selection of Ethereum Classic', function(done) {
     var params = {
         selectText: "ETC - Ethereum Classic",
-        firstAddress: "0x8Ad2bc632591bb442CfBEA19AC919ef16480B162",
+        firstAddress: "0x3c05e5556693808367afB62eF3b63e35d6eD249A",
     };
     testNetwork(done, params);
 });
 it('Allows selection of Pirl', function(done) {
     var params = {
         selectText: "PIRL - Pirl",
-        firstAddress: "0xc85E5dc7287F759394E53e5ba62510a35cE0DcFF",
+        firstAddress: "0xe77FC0723dA122B5025CA79193c28563eB47e776",
     };
     testNetwork(done, params);
 });
 it('Allows selection of MIX', function(done) {
     var params = {
         selectText: "MIX - MIX",
-        firstAddress: "0x325C6118DD0f788B50998591B2a7A35FB0a4a402",
+        firstAddress: "0x98BC5e63aeb6A4e82d72850d20710F07E29A29F1",
     };
     testNetwork(done, params);
 });
@@ -1443,28 +1450,28 @@ it('Allows selection of Monkey Project', function(done) {
 it('Allows selection of Musicoin', function(done) {
     var params = {
         selectText: "MUSIC - Musicoin",
-        firstAddress: "0x600c481Fa6100531357dD49B3aa042A8F56F6AB5",
+        firstAddress: "0xDc060e4A0b0313ea83Cf6B3A39B9db2D29004897",
     };
     testNetwork(done, params);
 });
 it('Allows selection of Poa', function(done) {
     var params = {
         selectText: "POA - Poa",
-        firstAddress: "0x6F0d9bA6fda8EAA31f24A9c9fef3321F9851329D",
+        firstAddress: "0x53aF28d754e106210C3d0467Dd581eaf7e3C5e60",
     };
     testNetwork(done, params);
 });
 it('Allows selection of Expanse', function(done) {
     var params = {
         selectText: "EXP - Expanse",
-        firstAddress: "0xEc6e7f6782a29353c32A9A104E849605a01546e4",
+        firstAddress: "0xf57FeAbf26582b6E3E666559d3B1Cc6fB2b2c5F6",
     };
     testNetwork(done, params);
 });
 it('Allows selection of Callisto', function(done) {
     var params = {
         selectText: "CLO - Callisto",
-        firstAddress: "0x57bE971d6E61315fB957a2BFC9202fbE31f49e89",
+        firstAddress: "0x4f9364F7420B317266C51Dc8eB979717D4dE3f4E",
     };
     testNetwork(done, params);
 });
@@ -1562,21 +1569,21 @@ it('Allows selection of BlockStamp', function(done) {
 it('Allows selection of DEXON', function(done) {
     var params = {
         selectText: "DXN - DEXON",
-        firstAddress: "0x7c444Dd705c6Ecd6a4F926aFd38bC96d6BdcC3D5",
+        firstAddress: "0x136a58788033E028CCd740FbDec6734358DB56Ec",
     };
     testNetwork(done, params);
 });
 it('Allows selection of Ellaism', function(done) {
     var params = {
         selectText: "ELLA - Ellaism",
-        firstAddress: "0x9DA7b90b0c0Cf7a2EbbE1A20f9d9A663451a2F8D",
+        firstAddress: "0xa8B0BeA09eeBc41062308546a01d6E544277e2Ca",
     };
     testNetwork(done, params);
 });
 it('Allows selection of Ethersocial Network', function(done) {
     var params = {
         selectText: "ESN - Ethersocial Network",
-        firstAddress: "0x0685439123f9a1767Bad9b99258d72733783f64C",
+        firstAddress: "0x6EE99Be2A0C7F887a71e21C8608ACF0aa0D2b767",
     };
     testNetwork(done, params);
 });
@@ -1618,7 +1625,7 @@ it('Allows selection of Elastos', function(done) {
 it('Allows selection of Energyweb', function(done) {
     var params = {
         selectText: "EWT - EnergyWeb",
-        firstAddress: "0x190aCfa6dA6Ff2D0a28Fbd0e02Aec493bCa5D7f7",
+        firstAddress: "0x22171474844Fc7E8E99A3A69CCf1eDb5574FdD4c",
     };
     testNetwork(done, params);
 });
@@ -3694,6 +3701,106 @@ it('Can generate BIP141 addresses with P2WPKH-in-P2SH semanitcs', function(done)
     });
 });
 
+it('Can generate BIP141 addresses with P2WSH semanitcs', function(done) {
+    driver.findElement(By.css('#bip141-tab a'))
+        .click();
+    // Choose P2WSH
+    driver.executeScript(function() {
+        $(".bip141-semantics option[selected]").removeAttr("selected");
+        $(".bip141-semantics option").filter(function(i,e) {
+            return $(e).html() == "P2WSH (1-of-1 multisig)";
+        }).prop("selected", true);
+        $(".bip141-semantics").trigger("change");
+    });
+    driver.findElement(By.css(".phrase"))
+        .sendKeys("abandon abandon ability");
+    driver.sleep(generateDelay).then(function() {
+        driver.findElement(By.css("#root-key"))
+        .getAttribute("value")
+        .then(function(rootKey) {
+            expect(rootKey).toBe("ZprvAhadJRUYsNge9uHspaggavxU1BUQ8QwfT4Z9UGq5sKF2mSt1mVy8EckLAaoBdmLHyP5eYDJ3LxtmzMNnLg2MRFe7QN2ueF4NCH4s5PrCDR6");
+            getFirstAddress(function(address) {
+                expect(address).toBe("bc1q2qhee847pv438tgg8hc7mjy38n8dklleshettn344l0tgs0kj5hskz9p9r");
+                done();
+            });
+        })
+    });
+});
+
+it('Can generate BIP141 addresses with P2WSH-in-P2SH semanitcs', function(done) {
+    driver.findElement(By.css('#bip141-tab a'))
+        .click();
+    // Choose P2WSH-in-P2SH
+    driver.executeScript(function() {
+        $(".bip141-semantics option[selected]").removeAttr("selected");
+        $(".bip141-semantics option").filter(function(i,e) {
+            return $(e).html() == "P2WSH nested in P2SH (1-of-1 multisig)";
+        }).prop("selected", true);
+        $(".bip141-semantics").trigger("change");
+    });
+    driver.findElement(By.css(".phrase"))
+        .sendKeys("abandon abandon ability");
+    driver.sleep(generateDelay).then(function() {
+        driver.findElement(By.css("#root-key"))
+        .getAttribute("value")
+        .then(function(rootKey) {
+            expect(rootKey).toBe("YprvANkMzkodih9AJc6kzDu4NqrxqDKxBnxAXx2vgswCVJs9iM4nWqoZcZ6C9NqbdrgNZjxqnjhUtJYE74mDcycLd1xWY2LV4LEsvZ1DgqxuAKe");
+            getFirstAddress(function(address) {
+                expect(address).toBe("343DLC4vGDyHBbBr9myL8zzZA1MdN9TM1G");
+                done();
+            });
+        })
+    });
+});
+
+it('Uses Vprv for bitcoin testnet p2wsh', function(done) {
+    selectNetwork("BTC - Bitcoin Testnet");
+    driver.findElement(By.css('#bip141-tab a'))
+        .click()
+    // Choose P2WSH
+    driver.executeScript(function() {
+        $(".bip141-semantics option[selected]").removeAttr("selected");
+        $(".bip141-semantics option").filter(function(i,e) {
+            return $(e).html() == "P2WSH (1-of-1 multisig)";
+        }).prop("selected", true);
+        $(".bip141-semantics").trigger("change");
+    });
+    driver.findElement(By.css('.phrase'))
+        .sendKeys('abandon abandon ability');
+    driver.sleep(generateDelay).then(function() {
+        driver.findElement(By.css('.root-key'))
+            .getAttribute("value")
+            .then(function(path) {
+                expect(path).toBe("Vprv16YtLrHXxePM5ja5hXQbiJs5JKDAc4WcaXo5rZcrVMU6bMhUg1oY7fpPku3i819gvMcHvq1h8aELDsyfCEs19vj1Q3iDHRrESWyJConkoT1");
+                done();
+            })
+    });
+});
+
+it('Uses Uprv for bitcoin testnet p2wsh-in-p2sh', function(done) {
+    selectNetwork("BTC - Bitcoin Testnet");
+    driver.findElement(By.css('#bip141-tab a'))
+        .click()
+    // Choose P2WSH-in-P2SH
+    driver.executeScript(function() {
+        $(".bip141-semantics option[selected]").removeAttr("selected");
+        $(".bip141-semantics option").filter(function(i,e) {
+            return $(e).html() == "P2WSH nested in P2SH (1-of-1 multisig)";
+        }).prop("selected", true);
+        $(".bip141-semantics").trigger("change");
+    });
+    driver.findElement(By.css('.phrase'))
+        .sendKeys('abandon abandon ability');
+    driver.sleep(generateDelay).then(function() {
+        driver.findElement(By.css('.root-key'))
+            .getAttribute("value")
+            .then(function(path) {
+                expect(path).toBe("Uprv95RJn67y7xyEuRLHenkZYVUx9LkARJzAsVx3ZJMeyHMdVwosWD9K8JTe4Z1FeE4gwBVcnqKF3f82ZvJxkBxHS5E74fYnigxvqeke8ZV3Fp2");
+                done();
+            })
+    });
+});
+
 it('Can generate BIP141 addresses with P2WPKH semanitcs', function(done) {
     // This result tested against bitcoinjs-lib test spec for segwit address
     // using the first private key of this mnemonic and default path m/0
@@ -4143,7 +4250,7 @@ it('Converts mnemonics into raw entropy', function(done) {
         driver.findElement(By.css('.entropy'))
             .getAttribute("value")
             .then(function(entropy) {
-                expect(entropy).toBe("00000000000000000000000000000001");
+                expect(entropy).toBe("00000001");
                 driver.findElement(By.css('.phrase'))
                     .getAttribute("value")
                     .then(function(phrase) {
@@ -4185,4 +4292,48 @@ it('Shows split prase cards', function(done) {
     });
 });
 
+// It allows manually specifying the entropy type
+it('Allows entropy type to be manually selected', function(done) {
+    driver.findElement(By.css('.use-entropy'))
+        .click();
+    // use decimal entropy
+    driver.findElement(By.css('.entropy'))
+        .sendKeys("91");
+    // manually change to binary entropy
+    driver.executeScript(function() {
+        $(".entropy-container input[value='binary']").click();
+    });
+    driver.sleep(entropyFeedbackDelay).then(function() {
+        driver.findElement(By.css('.entropy-container'))
+            .getText()
+            .then(function(text) {
+                // overide 91 to be just 1
+                var key = "Filtered Entropy";
+                var value = "1";
+                var reText = key + "\\s+" + value;
+                var re = new RegExp(reText);
+                expect(text).toMatch(re);
+                // overide automatic decimal to binary
+                var key = "Entropy Type";
+                var value = "binary";
+                var reText = key + "\\s+" + value;
+                var re = new RegExp(reText);
+                expect(text).toMatch(re);
+                // overide 2 events to 1
+                var key = "Event Count";
+                var value = 1;
+                var reText = key + "\\s+" + value;
+                var re = new RegExp(reText);
+                expect(text).toMatch(re);
+                // overide log2(10)*2 bits to 1 bit
+                var key = "Total Bits";
+                var value = 1;
+                var reText = key + "\\s+" + value;
+                var re = new RegExp(reText);
+                expect(text).toMatch(re);
+                done();
+            });
+    });
+});
+
 });