X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=tests%2Fspec%2Ftests.js;h=07b7b1aba31dd03099c001c9c1ffb2b4d0fef33d;hb=4e9b492ca4e1f90b985cfc2da94bddc60a36e386;hp=f3ffbbfcdb3d0bdd2e6385c80d59a7d2bc7c4739;hpb=0fd67b5915a08168d31caaa581f55cf86591be73;p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FBIP39.git diff --git a/tests/spec/tests.js b/tests/spec/tests.js index f3ffbbf..07b7b1a 100644 --- a/tests/spec/tests.js +++ b/tests/spec/tests.js @@ -492,6 +492,13 @@ it('Allows selection of game', function(done) { }; testNetwork(done, params); }); +it('Allows selection of komodo', function(done) { + var params = { + selectText: "KMD - Komodo", + firstAddress: "RJL777dmaB3PYqHEJGMJKWWkLPdu1ypGi4", + }; + testNetwork(done, params); +}); it('Allows selection of namecoin', function(done) { var params = { selectText: "NMC - Namecoin", @@ -499,6 +506,13 @@ it('Allows selection of namecoin', function(done) { }; testNetwork(done, params); }); +it('Allows selection of onixcoin', function(done) { + var params = { + selectText: "ONX - Onixcoin", + firstAddress: "XGwMqddeKjT3ddgX73QokjVbCL3aK6Yxfk", + }; + testNetwork(done, params); +}); it('Allows selection of peercoin', function(done) { var params = { selectText: "PPC - Peercoin", @@ -2596,4 +2610,226 @@ it('Can generate more addresses from a custom index', function(done) { }); }); +it('Can generate BIP141 addresses with P2WPKH-in-P2SH semanitcs', function(done) { + // Sourced from BIP49 official test specs + driver.findElement(By.css('#bip141-tab a')) + .click(); + driver.findElement(By.css('.bip141-path')) + .clear(); + driver.findElement(By.css('.bip141-path')) + .sendKeys("m/49'/1'/0'/0"); + selectNetwork("BTC - Bitcoin Testnet"); + driver.findElement(By.css(".phrase")) + .sendKeys("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about"); + driver.sleep(generateDelay).then(function() { + getFirstAddress(function(address) { + expect(address).toBe("2Mww8dCYPUpKHofjgcXcBCEGmniw9CoaiD2"); + 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 + // https://github.com/bitcoinjs/bitcoinjs-lib/blob/9c8503cab0c6c30a95127042703bc18e8d28c76d/test/integration/addresses.js#L50 + // so whilst not directly comparable, substituting the private key produces + // identical results between this tool and the bitcoinjs-lib test. + // Private key generated is: + // L3L8Nu9whawPBNLGtFqDhKut9DKKfG3CQoysupT7BimqVCZsLFNP + driver.findElement(By.css('#bip141-tab a')) + .click(); + // Choose P2WPKH + driver.executeScript(function() { + $(".bip141-semantics option[selected]").removeAttr("selected"); + $(".bip141-semantics option").filter(function(i,e) { + return $(e).html() == "P2WPKH"; + }).prop("selected", true); + $(".bip141-semantics").trigger("change"); + }); + driver.findElement(By.css(".phrase")) + .sendKeys("abandon abandon ability"); + driver.sleep(generateDelay).then(function() { + getFirstAddress(function(address) { + expect(address).toBe("bc1qfwu6a5a3evygrk8zvdxxvz4547lmpyx5vsfxe9"); + done(); + }); + }); +}); + +it('Shows the entropy used by the PRNG when clicking generate', function(done) { + driver.findElement(By.css('.generate')).click(); + driver.sleep(generateDelay).then(function() { + driver.findElement(By.css('.entropy')) + .getAttribute("value") + .then(function(entropy) { + expect(entropy).not.toBe(""); + done(); + }); + }); +}); + +it('Shows the index of each word in the mnemonic', function(done) { + driver.findElement(By.css('.phrase')) + .sendKeys("abandon abandon ability"); + driver.sleep(generateDelay).then(function() { + driver.findElement(By.css('.use-entropy')) + .click(); + driver.findElement(By.css('.word-indexes')) + .getText() + .then(function(indexes) { + expect(indexes).toBe("0, 0, 1"); + done(); + }); + }); +}); + +it('Shows the derivation path for bip84 tab', function(done) { + driver.findElement(By.css('#bip84-tab a')) + .click() + driver.findElement(By.css('.phrase')) + .sendKeys('abandon abandon ability'); + driver.sleep(generateDelay).then(function() { + driver.findElement(By.css('#bip84 .path')) + .getAttribute("value") + .then(function(path) { + expect(path).toBe("m/84'/0'/0'/0"); + done(); + }) + }); +}); + +it('Shows the extended private key for bip84 tab', function(done) { + driver.findElement(By.css('#bip84-tab a')) + .click() + driver.findElement(By.css('.phrase')) + .sendKeys('abandon abandon ability'); + driver.sleep(generateDelay).then(function() { + driver.findElement(By.css('.extended-priv-key')) + .getAttribute("value") + .then(function(path) { + expect(path).toBe("zprvAev3RKrZ3QVKiUFCfdeMRen1BPDJgdNt1XpxiDy8acSs4kkAGTCvq7HeRYRNNpo8EtEjCFQBWavJwtCUR29y4TUCH4X5RXMcyq48uN8y9BP"); + done(); + }) + }); +}); + +it('Shows the extended public key for bip84 tab', function(done) { + driver.findElement(By.css('#bip84-tab a')) + .click() + driver.findElement(By.css('.phrase')) + .sendKeys('abandon abandon ability'); + driver.sleep(generateDelay).then(function() { + driver.findElement(By.css('.extended-pub-key')) + .getAttribute("value") + .then(function(path) { + expect(path).toBe("zpub6suPpqPSsn3cvxKfmfBMnnijjR3o666jNkkZWcNk8wyqwZ5JozXBNuc8Gs7DB3uLwTDvGVTspVEAUQcEjKF3pZHgywVbubdTqbXTUg7usyx"); + done(); + }) + }); +}); + +it('Changes the address list if bip84 account is changed', function(done) { + driver.findElement(By.css('#bip84-tab a')) + .click() + driver.findElement(By.css('#bip84 .account')) + .sendKeys('1'); + driver.findElement(By.css('.phrase')) + .sendKeys('abandon abandon ability'); + driver.sleep(generateDelay).then(function() { + getFirstAddress(function(address) { + expect(address).toBe("bc1qp7vv669t2fy965jdzvqwrraana89ctd5ewc662"); + done(); + }); + }); +}); + +it('Changes the address list if bip84 change is changed', function(done) { + driver.findElement(By.css('#bip84-tab a')) + .click() + driver.findElement(By.css('#bip84 .change')) + .sendKeys('1'); + driver.findElement(By.css('.phrase')) + .sendKeys('abandon abandon ability'); + driver.sleep(generateDelay).then(function() { + getFirstAddress(function(address) { + expect(address).toBe("bc1qr39vj6rh06ff05m53uxq8uazehwhccswylhrs2"); + done(); + }); + }); +}); + +it('Passes the official BIP84 test spec for rootpriv', function(done) { + driver.findElement(By.css('#bip84-tab a')) + .click() + driver.findElement(By.css('.phrase')) + .sendKeys('abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about'); + driver.sleep(generateDelay).then(function() { + driver.findElement(By.css(".root-key")) + .getAttribute("value") + .then(function(rootKey) { + expect(rootKey).toBe("zprvAWgYBBk7JR8Gjrh4UJQ2uJdG1r3WNRRfURiABBE3RvMXYSrRJL62XuezvGdPvG6GFBZduosCc1YP5wixPox7zhZLfiUm8aunE96BBa4Kei5"); + done(); + }) + }); +}); + +it('Passes the official BIP84 test spec for account 0 xprv', function(done) { + driver.findElement(By.css('#bip84-tab a')) + .click() + driver.findElement(By.css('.phrase')) + .sendKeys('abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about'); + driver.sleep(generateDelay).then(function() { + driver.findElement(By.css("#bip84 .account-xprv")) + .getAttribute("value") + .then(function(rootKey) { + expect(rootKey).toBe("zprvAdG4iTXWBoARxkkzNpNh8r6Qag3irQB8PzEMkAFeTRXxHpbF9z4QgEvBRmfvqWvGp42t42nvgGpNgYSJA9iefm1yYNZKEm7z6qUWCroSQnE"); + done(); + }) + }); +}); + +it('Passes the official BIP84 test spec for account 0 xpub', function(done) { + driver.findElement(By.css('#bip84-tab a')) + .click() + driver.findElement(By.css('.phrase')) + .sendKeys('abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about'); + driver.sleep(generateDelay).then(function() { + driver.findElement(By.css("#bip84 .account-xpub")) + .getAttribute("value") + .then(function(rootKey) { + expect(rootKey).toBe("zpub6rFR7y4Q2AijBEqTUquhVz398htDFrtymD9xYYfG1m4wAcvPhXNfE3EfH1r1ADqtfSdVCToUG868RvUUkgDKf31mGDtKsAYz2oz2AGutZYs"); + done(); + }) + }); +}); + +it('Passes the official BIP84 test spec for account 0 first address', function(done) { + driver.findElement(By.css('#bip84-tab a')) + .click() + driver.findElement(By.css('.phrase')) + .sendKeys('abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about'); + driver.sleep(generateDelay).then(function() { + getFirstAddress(function(address) { + expect(address).toBe("bc1qcr8te4kr609gcawutmrza0j4xv80jy8z306fyu"); + done(); + }); + }); +}); + +it('Passes the official BIP84 test spec for account 0 first change address', function(done) { + driver.findElement(By.css('#bip84-tab a')) + .click() + driver.findElement(By.css('.phrase')) + .sendKeys('abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about'); + driver.findElement(By.css('#bip84 .change')) + .sendKeys('1'); + driver.sleep(generateDelay).then(function() { + getFirstAddress(function(address) { + expect(address).toBe("bc1q8c6fshw2dlwun7ekn9qwf37cu2rn755upcp6el"); + done(); + }); + }); +}); + });