// 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 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",
});
it('Allows selection of dogecoin testnet', function(done) {
var params = {
- selectText: "DOGEt - Dogecoin testnet",
+ selectText: "DOGEt - Dogecoin Testnet",
firstAddress: "niHnSJKHdwDyDxRMLBJrtNqpvHEsAFWe6B",
};
testNetwork(done, params);
};
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",
};
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 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",
};
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",
it('Allows selection of DeepOnion', function(done) {
var params = {
selectText: "ONION - DeepOnion",
- firstAddress: "DVioZ2Rjc9krDf5bbHuixznSDumzvGpzVw",
+ firstAddress: "DYREY7XCFXVqJ3x5UuN43k2JwD2s1kif48",
};
testNetwork(done, params);
});
};
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",
};
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 Zencash', function(done) {
+it('Allows selection of Horizen', function(done) {
var params = {
- selectText: "ZEN - Zencash",
+ selectText: "ZEN - Horizen",
firstAddress: "znWh9XASyW2dZq5tck84wFjiwuqVysi7q3p",
};
testNetwork(done, params);
};
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",
});
it('Allows selection of HUSH', function(done) {
var params = {
- selectText: "HUSH - Hush",
+ 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",
};
testNetwork(done, params);
});
-it('Allows selection of Monkey Project', function(done) {
+it('Allows selection of Stellar', function(done) {
var params = {
- selectText: "MONK - Monkey Project",
- firstAddress: "MnLrcnnUzKnf7TzufjRe5DLZqQJz18oYyu",
+ 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);
+});
+fit('Allows selection of Energyweb', function(done) {
+ var params = {
+ selectText: "EWT - EnergyWeb",
+ firstAddress: "0x190aCfa6dA6Ff2D0a28Fbd0e02Aec493bCa5D7f7",
};
testNetwork(done, params);
});
// 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
});
});
+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.
});
});
+// Pull Request 271
+// Allow converting mnemonic back to raw entropy value
+fit('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("00000000000000000000000000000001");
+ 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
+fit('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();
+ });
+ });
+});
+
});