// Helper functions
-function testNetwork(done, params) {
+function testNetwork(done, params, comparePub = false) {
var phrase = params.phrase || 'abandon abandon ability';
driver.findElement(By.css('.phrase'))
.sendKeys(phrase);
selectNetwork(params.selectText);
driver.sleep(generateDelay).then(function() {
- getFirstAddress(function(address) {
- expect(address).toBe(params.firstAddress);
- done();
- });
+ if (!comparePub) {
+ getFirstAddress(function(address) {
+ expect(address).toBe(params.firstAddress);
+ done();
+ });
+ } else {
+ getFirstPublicKey(function(pubkey) {
+ expect(pubkey).toBe(params.firstPubKey);
+ done();
+ });
+ }
});
}
getFirstRowValue(handler, ".address");
}
+function getFirstPublicKey(handler) {
+ getFirstRowValue(handler, ".pubkey");
+}
+
function getFirstPath(handler) {
getFirstRowValue(handler, ".index");
}
};
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",
};
testNetwork(done, params);
});
+it('Allows selection of litecoin testnet', function(done) {
+ var params = {
+ selectText: "LTCt - Litecoin Testnet",
+ firstAddress: "mucaU5iiDaJDb69BHLeDv8JFfGiyg2nJKi",
+ };
+ testNetwork(done, params);
+});
it('Allows selection of ripple', function(done) {
var params = {
selectText: "XRP - Ripple",
};
testNetwork(done, params);
});
+it('Allows selection of casinocoin', function(done) {
+ var params = {
+ selectText: "CSC - CasinoCoin",
+ firstAddress: "c3P5EUb27Pzk9dcGt4s7zQDQj4sC6Y81mT",
+ phrase: "ill clump only blind unit burden thing track silver cloth review awake useful craft whale all satisfy else trophy sunset walk vanish hope valve",
+ };
+ testNetwork(done, params);
+});
it('Allows selection of dogecoin', function(done) {
var params = {
selectText: "DOGE - Dogecoin",
};
testNetwork(done, params);
});
+it('Allows selection of dogecoin testnet', function(done) {
+ var params = {
+ selectText: "DOGEt - Dogecoin Testnet",
+ firstAddress: "niHnSJKHdwDyDxRMLBJrtNqpvHEsAFWe6B",
+ };
+ testNetwork(done, params);
+});
it('Allows selection of denarius', function(done) {
var params = {
selectText: "DNR - Denarius",
});
it('Allows selection of crown', function(done) {
var params = {
- selectText: "CRW - Crown",
+ selectText: "CRW - Crown (Legacy)",
firstAddress: "18pWSwSUAQdiwMHUfFZB1fM2xue9X1FqE5",
};
testNetwork(done, params);
});
+it('Allows selection of crown', function(done) {
+ var params = {
+ selectText: "CRW - Crown",
+ firstAddress: "CRWKnVmVhvH1KWTYe6sq8xV4dFGcFpBEEkPQ",
+ };
+ testNetwork(done, params);
+});
it('Allows selection of dash', function(done) {
var params = {
selectText: "DASH - Dash",
};
testNetwork(done, params);
});
+it('Allows selection of lkrcoin', function(done) {
+ var params = {
+ selectText: "LKR - Lkrcoin",
+ firstAddress: "LfbT296e7AEEnn4bYDbL535Nd8P9g98CdJ",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of bolivarcoin', function(done) {
+ var params = {
+ selectText: "BOLI - Bolivarcoin",
+ firstAddress: "bbKzCAUR7hZ3nqfffy7VgrSz8LmAP3S5mK",
+ };
+ testNetwork(done, params);
+});
it('Allows selection of peercoin', function(done) {
var params = {
selectText: "PPC - Peercoin",
firstAddress: "0xe5815d5902Ad612d49283DEdEc02100Bd44C2772",
};
testNetwork(done, params);
- // TODO test private key and public key
});
it('Allows selection of slimcoin', function(done) {
var params = {
it('Allows selection of bitcoin cash', function(done) {
var params = {
selectText: "BCH - Bitcoin Cash",
- firstAddress: "1JKvb6wKtsjNoCRxpZ4DGrbniML7z5U16A",
+ firstAddress: "bitcoincash:qzlquk7w4hkudxypl4fgv8x279r754dkvur7jpcsps",
};
testNetwork(done, params);
});
+
+it('Allows selection of simpleledger(SLP)', function(done) {
+ var params = {
+ selectText: "SLP - Simple Ledger Protocol",
+ firstAddress: "simpleledger:qrtffz6ajfsn74gpur7y3epjquz42pvww5acewqmre",
+ };
+ testNetwork(done, params);
+});
+
it('Allows selection of myriadcoin', function(done) {
var params = {
selectText: "XMY - Myriadcoin",
};
testNetwork(done, params);
});
+it('Allows selection of FIX', function(done) {
+ var params = {
+ selectText: "FIX - FIX",
+ firstAddress: "FS5MEU8fs5dUvsaSCSusV8RQtC8j2h3JEh",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of FIX testnet', function(done) {
+ var params = {
+ selectText: "FIX - FIX Testnet",
+ firstAddress: "XpnU1HHdNG5YxvG9Rez4wjmidchxqnZaNa",
+ };
+ testNetwork(done, params);
+});
it('Allows selection of fujicoin', function(done) {
var params = {
selectText: "FJC - Fujicoin",
it('Allows selection of AXE', function(done) {
var params = {
selectText: "AXE - Axe",
- firstAddress: "XQ4HLxUVS3egk5ff1o9e2vJFJKSSsUH3B7",
+ firstAddress: "PScwtLUyPiGrqtKXrHF37DGETLXLZdw4up",
};
testNetwork(done, params);
});
};
testNetwork(done, params);
});
+it('Allows selection of Aryacoin', function(done) {
+ var params = {
+ selectText: "ARYA - Aryacoin",
+ firstAddress: "Abr6gX25KaU9BpwD34UfsL3A4n89NvYYSf",
+ };
+ testNetwork(done, params);
+});
it('Allows selection of Auroracoin', function(done) {
var params = {
selectText: "AUR - Auroracoin",
};
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 Bitcoin SV', function(done) {
+ var params = {
+ selectText: "BSV - BitcoinSV",
+ firstAddress: "1N4mgtE5yxifch9jWs7Sds6oVqxdy2t576",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Bitcoinz', function(done) {
+ var params = {
+ selectText: "BTCZ - Bitcoinz",
+ firstAddress: "t1X2YQoxs8cYRo2oaBYgVEwW5QNjCC59NYc",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of BitCloud', function(done) {
+ var params = {
+ selectText: "BTDX - BitCloud",
+ firstAddress: "BHbWitXCNgTf1BhsRDNMP186EeibuzmrBi",
+ };
+ testNetwork(done, params);
+});
it('Allows selection of Bitcore', function(done) {
var params = {
selectText: "BTX - Bitcore",
- firstAddress: "1Dg18EtqhReS11e9h8khkLjWGLHVjPM2AB",
+ firstAddress: "2Rgp5Znhpy34TK4QmPkfCiYs9r4KovfTH9",
};
testNetwork(done, params);
});
};
testNetwork(done, params);
});
+it('Allows selection of CPUchain', function(done) {
+ var params = {
+ selectText: "CPU - CPUchain",
+ firstAddress: "CWSpLpW7jS4mBHJnkz3mmL5s3yQMg93zK8",
+ };
+ testNetwork(done, params);
+});
it('Allows selection of Crave', function(done) {
var params = {
selectText: "CRAVE - Crave",
};
testNetwork(done, params);
});
+it('Allows selection of EOSIO', function(done) {
+ var params = {
+ selectText: "EOS - EOSIO",
+ firstPubKey: "EOS692VJTBK3Rmw93onNnpnZ8ZtmE9PdxjDStArvbyzoe11QUTNoy",
+ };
+ testNetwork(done, params, true);
+});
it('Allows selection of Europecoin', function(done) {
var params = {
selectText: "ERC - Europecoin",
};
testNetwork(done, params);
});
+it('Allows selection of Megacoin', function(done) {
+ var params = {
+ selectText: "MEC - Megacoin",
+ firstAddress: "MDfAj9CzkC1HpcUiVGnHp8yKTa7WXgu8AY",
+ };
+ testNetwork(done, params);
+});
it('Allows selection of Minexcoin', function(done) {
var params = {
selectText: "MNX - Minexcoin",
};
testNetwork(done, params);
});
+it('Allows selection of Nebulas', function(done) {
+ var params = {
+ selectText: "NAS - Nebulas",
+ firstAddress: "n1PbK61DGBfDoDusLw621G6sVSMfLLHdfnm",
+ };
+ testNetwork(done, params);
+});
it('Allows selection of Neoscoin', function(done) {
var params = {
selectText: "NEOS - Neoscoin",
};
testNetwork(done, params);
});
+it('Allows selection of Nix', function(done) {
+ var params = {
+ selectText: "NIX - NIX Platform",
+ firstAddress: "GgcNW2SQQXB4LWHRQTHKkQF3GzXNSLqS8u",
+ };
+ testNetwork(done, params);
+});
it('Allows selection of Neurocoin', function(done) {
var params = {
selectText: "NRO - Neurocoin",
};
testNetwork(done, params);
});
+it('Allows selection of DeepOnion', function(done) {
+ var params = {
+ selectText: "ONION - DeepOnion",
+ firstAddress: "DYREY7XCFXVqJ3x5UuN43k2JwD2s1kif48",
+ };
+ testNetwork(done, params);
+});
it('Allows selection of Pesobit', function(done) {
var params = {
selectText: "PSB - Pesobit",
};
testNetwork(done, params);
});
+it('Allows selection of Rapids', function(done) {
+ var params = {
+ selectText: "RPD - Rapids",
+ firstAddress: "Ri8XxUdZaXS5LqxmFJcFEjFinkaMbmhSUp",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Ravencoin', function(done) {
+ var params = {
+ selectText: "RVN - Ravencoin",
+ firstAddress: "RBuDoVNnzvFsEcX8XKPm8ic4mgiCzjUCNk",
+ };
+ testNetwork(done, params);
+});
it('Allows selection of Reddcoin', function(done) {
var params = {
selectText: "RDD - Reddcoin",
- firstAddress: "1M4druAcUfkXBaAcQ4cCgCLPHChiaib6kL",
+ firstAddress: "RtgRvXMBng1y51ftteveFqwNfyRG18HpxQ",
};
testNetwork(done, params);
});
};
testNetwork(done, params);
});
+it('Allows selection of Salus', function(done) {
+ var params = {
+ selectText: "SLS - Salus",
+ firstAddress: "SNzPi1CafHFm3WWjRo43aMgiaEEj3ogjww",
+ };
+ testNetwork(done, params);
+});
it('Allows selection of Smileycoin', function(done) {
var params = {
selectText: "SMLY - Smileycoin",
};
testNetwork(done, params);
});
+it('Allows selection of stash', function(done) {
+ var params = {
+ selectText: "STASH - Stash",
+ firstAddress: "XxwAsWB7REDKmAvHA85SbEZQQtpxeUDxS3",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of stash testnet', function(done) {
+ var params = {
+ selectText: "STASH - Stash Testnet",
+ firstAddress: "yWQCTSkUst7ddYuebKsqa1kSoXEjpCkGKR",
+ };
+ testNetwork(done, params);
+});
it('Allows selection of Stratis', function(done) {
var params = {
selectText: "STRAT - Stratis",
};
testNetwork(done, params);
});
+it('Allows selection of Stratis Test', function(done) {
+ var params = {
+ selectText: "TSTRAT - Stratis Testnet",
+ firstAddress: "TRLWm3dye4FRrDWouwYUSUZP96xb76mBE3",
+ };
+ testNetwork(done, params);
+});
it('Allows selection of Syscoin', function(done) {
var params = {
selectText: "SYS - Syscoin",
};
testNetwork(done, params);
});
+it('Allows selection of TWINS', function(done) {
+ var params = {
+ selectText: "TWINS - TWINS",
+ firstAddress: "WPpJnfLLubNmF7HLNxg8d8zH5haxn4wri8",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of TWINS testnet', function(done) {
+ var params = {
+ selectText: "TWINS - TWINS Testnet",
+ firstAddress: "XpnU1HHdNG5YxvG9Rez4wjmidchxqnZaNa",
+ };
+ testNetwork(done, params);
+});
it('Allows selection of Ultimatesecurecash', function(done) {
var params = {
selectText: "USC - Ultimatesecurecash",
};
testNetwork(done, params);
});
+it('Allows selection of VeChain', function(done) {
+ var params = {
+ selectText: "VET - VeChain",
+ firstAddress: "0xdba55B1B6070f3a733D5eDFf35F0da4A00E455F2",
+ };
+ testNetwork(done, params);
+});
it('Allows selection of Whitecoin', function(done) {
var params = {
selectText: "XWC - Whitecoin",
};
testNetwork(done, params);
});
+it('Allows selection of Zcash', function(done) {
+ var params = {
+ selectText: "ZEC - Zcash",
+ firstAddress: "t1Sz8AneMcVuzUg3tPJ8et5AS5LFJ7K2EF9",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Zclassic', function(done) {
+ var params = {
+ selectText: "ZCL - Zclassic",
+ firstAddress: "t1TBMxTvVJRybUbMLGWq8H4A8F4VUL7czEc",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Horizen', function(done) {
+ var params = {
+ selectText: "ZEN - Horizen",
+ firstAddress: "znWh9XASyW2dZq5tck84wFjiwuqVysi7q3p",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Energi', function(done) {
+ var params = {
+ selectText: "NRG - Energi",
+ firstAddress: "EejRy4t4nidzhGGzkJUgFP3z4HYBjhTsRt",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Ethereum Classic', function(done) {
+ var params = {
+ selectText: "ETC - Ethereum Classic",
+ firstAddress: "0x3c05e5556693808367afB62eF3b63e35d6eD249A",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Pirl', function(done) {
+ var params = {
+ selectText: "PIRL - Pirl",
+ firstAddress: "0xe77FC0723dA122B5025CA79193c28563eB47e776",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of MIX', function(done) {
+ var params = {
+ selectText: "MIX - MIX",
+ firstAddress: "0x98BC5e63aeb6A4e82d72850d20710F07E29A29F1",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Monkey Project', function(done) {
+ var params = {
+ selectText: "MONK - Monkey Project",
+ firstAddress: "MnLrcnnUzKnf7TzufjRe5DLZqQJz18oYyu",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Musicoin', function(done) {
+ var params = {
+ selectText: "MUSIC - Musicoin",
+ firstAddress: "0xDc060e4A0b0313ea83Cf6B3A39B9db2D29004897",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Poa', function(done) {
+ var params = {
+ selectText: "POA - Poa",
+ firstAddress: "0x53aF28d754e106210C3d0467Dd581eaf7e3C5e60",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Expanse', function(done) {
+ var params = {
+ selectText: "EXP - Expanse",
+ firstAddress: "0xf57FeAbf26582b6E3E666559d3B1Cc6fB2b2c5F6",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Callisto', function(done) {
+ var params = {
+ selectText: "CLO - Callisto",
+ firstAddress: "0x4f9364F7420B317266C51Dc8eB979717D4dE3f4E",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of HUSH', function(done) {
+ var params = {
+ selectText: "HUSH - Hush (Legacy)",
+ firstAddress: "t1g6rLXUnJaiJuu4q4zmJjoa9Gk4fwKpiuA",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of HUSH3', function(done) {
+ var params = {
+ selectText: "HUSH - Hush3",
+ firstAddress: "RXWSQhwvw5jHPGP8bjwJhWoRnMLBnuPDKD",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of ExchangeCoin', function(done) {
+ var params = {
+ selectText: "EXCC - ExchangeCoin",
+ firstAddress: "22txYKpFN5fwGwdSs2UBf7ywewbLM92YqK7E",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Artax', function(done) {
+ var params = {
+ selectText: "XAX - Artax",
+ firstAddress: "AYxaQPY7XLidG31V7F3yNzwxPYpYzRqG4q",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of BitcoinGreen', function(done) {
+ var params = {
+ selectText: "BITG - Bitcoin Green",
+ firstAddress: "GeNGm9SkEfwbsws3UrrUSE2sJeyWYjzraY",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of ANON', function(done) {
+ var params = {
+ selectText: "ANON - ANON",
+ firstAddress: "AnU6pijpEeUZFWSTyM2qTqZQn996Zq1Xard",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of ProjectCoin', function(done) {
+ var params = {
+ selectText: "PRJ - ProjectCoin",
+ firstAddress: "PXZG97saRseSCftfe1mcFmfAA7pf6qBbaz",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Phore', function(done) {
+ var params = {
+ selectText: "PHR - Phore",
+ firstAddress: "PJThxpoXAG6hqrmdeQQbVDX4TJtFTMMymC",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Safecoin', function(done) {
+ var params = {
+ selectText: "SAFE - Safecoin",
+ firstAddress: "RtxHpnhJz6RY8k9owP3ua5QWraunmewB1G",
+ };
+ testNetwork(done, params);
+ });
+it('Allows selection of Blocknode', function(done) {
+ var params = {
+ selectText: "BND - Blocknode",
+ firstAddress: "BG8xZSAur2jYLG9VXt8dYfkKxxeR7w9bSe",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Blocknode Testnet', function(done) {
+ var params = {
+ selectText: "tBND - Blocknode Testnet",
+ firstAddress: "bSptsFyDktFSKpWveRywJsDoJA2TC6qfHv",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of LitecoinZ', function(done) {
+ var params = {
+ selectText: "LTZ - LitecoinZ",
+ firstAddress: "L1VTXju7hLgKV4T7fGXS9sKsnm2gmtRCmyw",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of BlockStamp', function(done) {
+ var params = {
+ selectText: "BST - BlockStamp",
+ firstAddress: "15gypKtim4cVTj137ApfryG17RkvSbPazZ",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of DEXON', function(done) {
+ var params = {
+ selectText: "DXN - DEXON",
+ firstAddress: "0x136a58788033E028CCd740FbDec6734358DB56Ec",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Ellaism', function(done) {
+ var params = {
+ selectText: "ELLA - Ellaism",
+ firstAddress: "0xa8B0BeA09eeBc41062308546a01d6E544277e2Ca",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Ethersocial Network', function(done) {
+ var params = {
+ selectText: "ESN - Ethersocial Network",
+ firstAddress: "0x6EE99Be2A0C7F887a71e21C8608ACF0aa0D2b767",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Stellar', function(done) {
+ var params = {
+ selectText: "XLM - Stellar",
+ firstAddress: "GCUK3NYYUXA2QGN6KU5RR36WAKN3Y5EANZV65XNAWN4XM4CHQ3G4DMO2",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Wagerr', function(done) {
+ var params = {
+ selectText: "WGR - Wagerr",
+ firstAddress: "WYiVgQU39VcQxcnacoCiaZHZZLjDCJoS95",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Groestlcoin', function(done) {
+ var params = {
+ selectText: "GRS - Groestlcoin",
+ firstAddress: "FZycsFvZ1eH1hbtyjBpAgJSukVw1bN6PBN",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Groestlcoin Testnet', function(done) {
+ var params = {
+ selectText: "GRS - Groestlcoin Testnet",
+ firstAddress: "mucaU5iiDaJDb69BHLeDv8JFfGiygRPne9",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Elastos', function(done) {
+ var params = {
+ selectText: "ELA - Elastos",
+ firstAddress: "EMccDcsn3SwPDcfeQMf3w7utqi8ioWYtkg",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Energyweb', function(done) {
+ var params = {
+ selectText: "EWT - EnergyWeb",
+ firstAddress: "0x22171474844Fc7E8E99A3A69CCf1eDb5574FdD4c",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of Thought', function(done) {
+ var params = {
+ selectText: "THT - Thought",
+ firstAddress: "4B1Bh9GibDarFQrhtYU8krpc7WSjgGfYvo",
+ };
+ testNetwork(done, params);
+});
+it('Allows selection of EtherCore', function(done) {
+ var params = {
+ selectText: "ERE - EtherCore",
+ firstAddress: "0xDeeAD0297F06dfe6c7Ad0C1D0CF5B06D6047bEEe",
+ };
+ testNetwork(done, params);
+});
// BIP39 seed is set from phrase
it('Sets the bip39 seed from the prhase', function(done) {
});
// Setting BIP32 root key clears the existing phrase, passphrase and seed
-// TODO this doesn't work in selenium with chrome
it('Confirms the existing phrase should be cleared', function(done) {
- if (browser == "chrome") {
- pending("Selenium + Chrome headless bug for alert, see https://stackoverflow.com/q/45242264");
- }
driver.findElement(By.css('.phrase'))
.sendKeys('A non-blank but invalid value');
driver.findElement(By.css('.root-key'))
});
// Clearing of phrase, passphrase and seed can be cancelled by user
-// TODO this doesn't work in selenium with chrome
it('Allows the clearing of the phrase to be cancelled', function(done) {
- if (browser == "chrome") {
- pending("Selenium + Chrome headless bug for alert, see https://stackoverflow.com/q/45242264");
- }
driver.findElement(By.css('.phrase'))
.sendKeys('abandon abandon ability');
driver.sleep(generateDelay).then(function() {
// Github Issue 23: Part 1: Use correct derivation path when changing tabs
// https://github.com/iancoleman/bip39/issues/23
+// This test was failing for default timeout of 5000ms so changed it to +10s
it('Uses the correct derivation path when changing tabs', function(done) {
// 1) and 2) set the phrase
driver.findElement(By.css('.phrase'))
});
});
});
-});
+}, generateDelay + 10000);
// Github Issue 23 Part 2: Coin selection in derivation path
// https://github.com/iancoleman/bip39/issues/23#issuecomment-238011920
});
});
});
-}, generateDelay + 5000);
+}, generateDelay + 10000);
// Github issue 49
// padding for binary should give length with multiple of 256
useHardenedAddresses: null,
});
});
+it('Can set the derivation path on bip32 tab for coinomi/ledger', function(done) {
+ testClientSelect(done, {
+ selectValue: "3",
+ bip32path: "m/44'/0'/0'",
+ useHardenedAddresses: null,
+ });
+});
// github issue 58
// https://github.com/iancoleman/bip39/issues/58
});
});
+// Bitcoin Cash address can be set to use cashaddr format
+it('Can use cashaddr format for bitcoin cash addresses', function(done) {
+ driver.executeScript(function() {
+ $(".use-bch-cashaddr-addresses").prop("checked", true);
+ });
+ driver.findElement(By.css('.phrase'))
+ .sendKeys("abandon abandon ability");
+ selectNetwork("BCH - Bitcoin Cash");
+ driver.sleep(generateDelay).then(function() {
+ getFirstAddress(function(address) {
+ expect(address).toBe("bitcoincash:qzlquk7w4hkudxypl4fgv8x279r754dkvur7jpcsps");
+ done();
+ });
+ });
+});
+
// Bitcoin Cash address can be set to use bitpay format
it('Can use bitpay format for bitcoin cash addresses', function(done) {
driver.executeScript(function() {
- $(".use-bitpay-addresses").prop("checked", true);
+ $(".use-bch-bitpay-addresses").prop("checked", true);
});
driver.findElement(By.css('.phrase'))
.sendKeys("abandon abandon ability");
});
});
+// Bitcoin Cash address can be set to use legacy format
+it('Can use legacy format for bitcoin cash addresses', function(done) {
+ driver.executeScript(function() {
+ $(".use-bch-legacy-addresses").prop("checked", true);
+ });
+ driver.findElement(By.css('.phrase'))
+ .sendKeys("abandon abandon ability");
+ selectNetwork("BCH - Bitcoin Cash");
+ driver.sleep(generateDelay).then(function() {
+ getFirstAddress(function(address) {
+ expect(address).toBe("1JKvb6wKtsjNoCRxpZ4DGrbniML7z5U16A");
+ done();
+ });
+ });
+});
+
// End of tests ported from old suit, so no more comments above each test now
it('Can generate more addresses from a custom index', 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
});
});
+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('Shows Groestlcoin BIP49 addresses', function(done) {
+ driver.findElement(By.css('.phrase'))
+ .sendKeys('abandon abandon ability');
+ selectNetwork("GRS - Groestlcoin");
+ 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("3HXSCZwCypLyixMsF4Z1sN49noJtrm8gnX");
+ 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();
+ });
+ });
+});
+
+// Pull Request 271
+// Allow converting mnemonic back to raw entropy value
+it('Converts mnemonics into raw entropy', function(done) {
+ driver.findElement(By.css('.phrase'))
+ .sendKeys('abandon abandon about');
+ driver.sleep(generateDelay).then(function() {
+ driver.findElement(By.css('.use-entropy'))
+ .click();
+ driver.findElement(By.css('.entropy'))
+ .getAttribute("value")
+ .then(function(entropy) {
+ expect(entropy).toBe("00000001");
+ driver.findElement(By.css('.phrase'))
+ .getAttribute("value")
+ .then(function(phrase) {
+ expect(phrase).toBe("abandon abandon about");
+ done();
+ });
+ });
+ });
+});
+
+// Pull Request 279
+// Added Split Phrase Card Output
+it('Shows split prase cards', function(done) {
+ var originalPhrase = "ugly charge strong giant once anchor capable october thumb inject dwarf legal alley mixture shoot";
+ var originalWords = originalPhrase.split(' ');
+ driver.findElement(By.css('.phrase'))
+ .sendKeys(originalPhrase);
+ driver.sleep(generateDelay).then(function() {
+ driver.findElement(By.css('.phraseSplit'))
+ .getAttribute("value")
+ .then(function(cardsStr) {
+ var cards = cardsStr.split("\n");
+ expect(cards.length).toBe(3);
+ // test all 2-of-3 combos can be used to form full phrase
+ var combos = [[0,1],[0,2],[1,2]];
+ for (var i=0; i<combos.length; i++) {
+ var combo = combos[i];
+ var a = combo[0];
+ var b = combo[1];
+ var phrase = cards[a] + " " + cards[b];
+ // check all original words are present
+ for (var j=0; j<originalWords.length; j++) {
+ var originalWord = originalWords[j];
+ expect(phrase).toContain(originalWord);
+ }
+ }
+ 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();
+ });
+ });
+});
+
+// https://github.com/iancoleman/bip39/issues/388
+// Make field for bip39 seed editable
+it('Generates addresses when seed is set', function(done) {
+ driver.findElement(By.css('.seed'))
+ .sendKeys("20da140d3dd1df8713cefcc4d54ce0e445b4151027a1ab567b832f6da5fcc5afc1c3a3f199ab78b8e0ab4652efd7f414ac2c9a3b81bceb879a70f377aa0a58f3");
+ driver.sleep(generateDelay).then(function() {
+ getFirstAddress(function(address) {
+ expect(address).toBe("1Di3Vp7tBWtyQaDABLAjfWtF6V7hYKJtug");
+ done();
+ });
+ });
+});
+
+// https://github.com/iancoleman/bip39/issues/169
+it('Generates ethereum addresses from a public key', function(done) {
+ var pubkey = "xpub68UK3hrMEp2jLPxPASgXSiqiUsQsUWZHCeuu6NqcJLt259LMeWzwDyufXLN1QmjLeLRY5he4QfArDDLbsXiw3xN3kFcYtyDy74BY73RPhhW";
+ driver.findElement(By.css('.root-key'))
+ .sendKeys(pubkey);
+ driver.findElement(By.css('#bip32-tab a'))
+ .click()
+ selectNetwork('ETH - Ethereum');
+ driver.sleep(generateDelay).then(function() {
+ getFirstAddress(function(address) {
+ expect(address).toBe("0x1Bd54748903438C7E386b4a3fCbe16237A316a98");
+ done();
+ });
+ });
+});
+
});