Compare commits

...

22 Commits
0.3.7 ... 0.3.8

Author SHA1 Message Date
Ian Coleman
e47cd1970f Release v0.3.8 2018-07-26 12:04:37 +10:00
Ian Coleman
d221cd2f37 Remove BIP84 test for litecoin 2018-07-26 12:00:07 +10:00
Ian Coleman
fe3c963b73 Remove duplicate id properties on html elements
Closes #224
2018-07-26 11:40:17 +10:00
Ian Coleman
42fcf83e9b Remove bip39-standalone from source control
It's available in the releases tab of github.
Closes #226
2018-07-26 11:28:03 +10:00
Ian Coleman
b7de1f3d89 Update bitcore network parameters
Closes #231
2018-07-26 09:53:49 +10:00
Ian Coleman
0afecfc73c Test for HUSH network 2018-07-26 09:47:08 +10:00
Ian Coleman
44a5d363c7 Test for bip32 client coinomi/ledger 2018-07-26 09:43:34 +10:00
iancoleman
f83d786dd7 Merge pull request #216 from Coinomi/ethereum-like
Add ETC, PIRL, CLO, MIX, MUSIC, POA, EXP, and coinomi/ledger client o…
2018-07-26 09:34:34 +10:00
iancoleman
83fefeaf0b Merge pull request #229 from majikandy/patch-2
Added TSTRAT
2018-07-26 09:30:19 +10:00
iancoleman
9d4e17928a Merge pull request #233 from skironDotNet/hushcoin
Add HUSH coin, same as BTCZ but diffrent bip44 coin type
2018-07-26 09:29:34 +10:00
iancoleman
0f9081e2b5 Merge pull request #232 from skironDotNet/syscoin-fix
SYScoin fix for WIF private address format
2018-07-26 09:28:27 +10:00
Pawel Cioch
60727c5175 Hush coin 2018-07-23 08:18:47 -05:00
Pawel Cioch
0d9c6c5458 SYScoin fix for WIF private address format 2018-07-23 08:02:05 -05:00
Andy Davis
c990aff819 Stratis Testnet text 2018-07-16 15:08:54 +01:00
Andy Davis
4b1be40dea Merge pull request #2 from majikandy/patch-1
Added TSTRAT test
2018-07-16 15:06:31 +01:00
Andy Davis
b4d881fbd0 Merge pull request #1 from majikandy/patch-3
Update bitcoinjs-extensions.js
2018-07-16 15:05:29 +01:00
Andy Davis
cc9ed1c575 Update bitcoinjs-extensions.js 2018-07-16 15:04:14 +01:00
Andy Davis
3b43552ceb Added TSTRAT 2018-07-16 15:01:12 +01:00
Andy Davis
e96d3876c4 TSTRAT test 2018-07-16 14:56:48 +01:00
xarakas
0f1cfea04c Merge branch 'master' into ethereum-like 2018-06-18 17:17:49 +03:00
Ian Coleman
9369eaa6d5 Add litecoin p2wpkh parameters
From electrum-ltc
48996679e1/lib/constants.py
2018-05-30 11:32:43 +10:00
xarakas
bb381a72ab Add ETC, PIRL, CLO, MIX, MUSIC, POA, EXP, and coinomi/ledger client option in bip32 tab 2018-05-15 18:19:18 +03:00
8 changed files with 244 additions and 108792 deletions

1
.gitignore vendored
View File

@@ -1 +1,2 @@
node_modules
bip39-standalone.html

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +1,12 @@
# 0.3.8
* Add p2wpkh for litecoin
* Add more networks - TSTRAT, Hush, ETC, PIRL, CLO, MIX, MUSIC, POA, EXP
* Add coinomi/ledger client to BIP32 tab
* Fix SYSCOIN and BTX parameters
* Remove bip39-standalone.html from repository
* Remove duplicate id properties on html elements
# 0.3.7
* Update AXE network parameters

View File

@@ -15,7 +15,7 @@
<div class="container">
<h1 class="text-center">Mnemonic Code Converter</h1>
<p class="version">v0.3.7</p>
<p class="version">v0.3.8</p>
<hr>
<div class="row">
<div class="col-md-12">
@@ -245,35 +245,35 @@
</p>
</div>
<div class="form-group">
<label for="purpose" class="col-sm-2 control-label">
<label for="purpose-bip44" class="col-sm-2 control-label">
<a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target="_blank">Purpose</a>
</label>
<div class="col-sm-10">
<input id="purpose" type="text" class="purpose form-control" value="44" readonly>
<input id="purpose-bip44" type="text" class="purpose form-control" value="44" readonly>
</div>
</div>
<div class="form-group">
<label for="coin" class="col-sm-2 control-label">
<label for="coin-bip44" class="col-sm-2 control-label">
<a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target="_blank">Coin</a>
</label>
<div class="col-sm-10">
<input id="coin" type="text" class="coin form-control" value="0" readonly>
<input id="coin-bip44" type="text" class="coin form-control" value="0" readonly>
</div>
</div>
<div class="form-group">
<label for="account" class="col-sm-2 control-label">
<label for="account-bip44" class="col-sm-2 control-label">
<a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target="_blank">Account</a>
</label>
<div class="col-sm-10">
<input id="account" type="text" class="account form-control" value="0">
<input id="account-bip44" type="text" class="account form-control" value="0">
</div>
</div>
<div class="form-group">
<label for="change" class="col-sm-2 control-label">
<label for="change-bip44" class="col-sm-2 control-label">
<a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target="_blank">External / Internal</a>
</label>
<div class="col-sm-10">
<input id="change" type="text" class="change form-control" value="0">
<input id="change-bip44" type="text" class="change form-control" value="0">
</div>
</div>
<div class="form-group">
@@ -288,7 +288,7 @@
<span>Account Extended Private Key</span>
</label>
<div class="col-sm-10">
<textarea id="account-xprv" type="text" class="account-xprv private-data form-control" readonly data-show-qr></textarea>
<textarea id="account-xprv-bip44" type="text" class="account-xprv private-data form-control" readonly data-show-qr></textarea>
</div>
</div>
<div class="form-group">
@@ -296,7 +296,7 @@
<span>Account Extended Public Key</span>
</label>
<div class="col-sm-10">
<textarea id="account-xpub" type="text" class="account-xpub form-control" readonly data-show-qr></textarea>
<textarea id="account-xpub-bip44" type="text" class="account-xpub form-control" readonly data-show-qr></textarea>
</div>
</div>
<div class="form-group">
@@ -405,35 +405,35 @@
</p>
</div>
<div class="form-group">
<label for="purpose" class="col-sm-2 control-label">
<label for="purpose-bip49" class="col-sm-2 control-label">
<a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target="_blank">Purpose</a>
</label>
<div class="col-sm-10">
<input id="purpose" type="text" class="purpose form-control" value="49" readonly>
<input id="purpose-bip49" type="text" class="purpose form-control" value="49" readonly>
</div>
</div>
<div class="form-group">
<label for="coin" class="col-sm-2 control-label">
<label for="coin-bip49" class="col-sm-2 control-label">
<a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target="_blank">Coin</a>
</label>
<div class="col-sm-10">
<input id="coin" type="text" class="coin form-control" value="0" readonly>
<input id="coin-bip49" type="text" class="coin form-control" value="0" readonly>
</div>
</div>
<div class="form-group">
<label for="account" class="col-sm-2 control-label">
<label for="account-bip49" class="col-sm-2 control-label">
<a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target="_blank">Account</a>
</label>
<div class="col-sm-10">
<input id="account" type="text" class="account form-control" value="0">
<input id="account-bip49" type="text" class="account form-control" value="0">
</div>
</div>
<div class="form-group">
<label for="change" class="col-sm-2 control-label">
<label for="change-bip49" class="col-sm-2 control-label">
<a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target="_blank">External / Internal</a>
</label>
<div class="col-sm-10">
<input id="change" type="text" class="change form-control" value="0">
<input id="change-bip49" type="text" class="change form-control" value="0">
</div>
</div>
<div class="form-group">
@@ -448,7 +448,7 @@
<span>Account Extended Private Key</span>
</label>
<div class="col-sm-10">
<textarea id="account-xprv" type="text" class="account-xprv private-data form-control" readonly data-show-qr></textarea>
<textarea id="account-xprv-bip49" type="text" class="account-xprv private-data form-control" readonly data-show-qr></textarea>
</div>
</div>
<div class="form-group">
@@ -456,7 +456,7 @@
<span>Account Extended Public Key</span>
</label>
<div class="col-sm-10">
<textarea id="account-xpub" type="text" class="account-xpub form-control" readonly data-show-qr></textarea>
<textarea id="account-xpub-bip49" type="text" class="account-xpub form-control" readonly data-show-qr></textarea>
</div>
</div>
<div class="form-group">
@@ -532,35 +532,35 @@
</p>
</div>
<div class="form-group">
<label for="purpose" class="col-sm-2 control-label">
<label for="purpose-bip84" class="col-sm-2 control-label">
Purpose
</label>
<div class="col-sm-10">
<input id="purpose" type="text" class="purpose form-control" value="84" readonly>
<input id="purpose-bip84" type="text" class="purpose form-control" value="84" readonly>
</div>
</div>
<div class="form-group">
<label for="coin" class="col-sm-2 control-label">
<label for="coin-bip84" class="col-sm-2 control-label">
Coin
</label>
<div class="col-sm-10">
<input id="coin" type="text" class="coin form-control" value="0" readonly>
<input id="coin-bip84" type="text" class="coin form-control" value="0" readonly>
</div>
</div>
<div class="form-group">
<label for="account" class="col-sm-2 control-label">
<label for="account-bip84" class="col-sm-2 control-label">
Account
</label>
<div class="col-sm-10">
<input id="account" type="text" class="account form-control" value="0">
<input id="account-bip84" type="text" class="account form-control" value="0">
</div>
</div>
<div class="form-group">
<label for="change" class="col-sm-2 control-label">
<label for="change-bip84" class="col-sm-2 control-label">
External / Internal
</label>
<div class="col-sm-10">
<input id="change" type="text" class="change form-control" value="0">
<input id="change-bip84" type="text" class="change form-control" value="0">
</div>
</div>
<div class="form-group">
@@ -575,7 +575,7 @@
<span>Account Extended Private Key</span>
</label>
<div class="col-sm-10">
<textarea id="account-xprv" type="text" class="account-xprv private-data form-control" readonly data-show-qr></textarea>
<textarea id="account-xprv-bip84" type="text" class="account-xprv private-data form-control" readonly data-show-qr></textarea>
</div>
</div>
<div class="form-group">
@@ -583,7 +583,7 @@
<span>Account Extended Public Key</span>
</label>
<div class="col-sm-10">
<textarea id="account-xpub" type="text" class="account-xpub form-control" readonly data-show-qr></textarea>
<textarea id="account-xpub-bip84" type="text" class="account-xpub form-control" readonly data-show-qr></textarea>
</div>
</div>
<div class="form-group">

View File

@@ -446,8 +446,8 @@ bitcoinjs.bitcoin.networks.bitcore = {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x00,
scriptHash: 0x05,
pubKeyHash: 0x03,
scriptHash: 0x7D,
wif: 0x80,
};
@@ -1056,6 +1056,17 @@ bitcoinjs.bitcoin.networks.stratis = {
wif: 0xbf,
};
bitcoinjs.bitcoin.networks.stratistest = {
messagePrefix: '\x18Stratis Test Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x41,
scriptHash: 0x7d,
wif: 0xbf,
};
bitcoinjs.bitcoin.networks.syscoin = {
messagePrefix: '\x18Syscoin Signed Message:\n',
bip32: {
@@ -1064,7 +1075,7 @@ bitcoinjs.bitcoin.networks.syscoin = {
},
pubKeyHash: 0x3f,
scriptHash: 0x05,
wif: 0xbf,
wif: 0x80,
};
@@ -1233,6 +1244,17 @@ bitcoinjs.bitcoin.networks.bitcoinz = {
wif: 0x80,
};
bitcoinjs.bitcoin.networks.hush = {
messagePrefix: '\x18Hush Signed Message:\n',
bip32: {
public: 0x0488B21E,
private: 0x0488ADE4,
},
pubKeyHash: 0x1CB8,
scriptHash: 0x1CBD,
wif: 0x80,
};
bitcoinjs.bitcoin.networks.zclassic = {
messagePrefix: '\x18Zcash Signed Message:\n',
bip32: {
@@ -1264,4 +1286,4 @@ bitcoinjs.bitcoin.networks.energi = {
pubKeyHash: 0x21,
scriptHash: 0x35,
wif: 0x6a,
};
};

View File

@@ -910,7 +910,14 @@
indexText = indexText + "'";
}
// Ethereum values are different
if (networks[DOM.network.val()].name == "ETH - Ethereum") {
if ((networks[DOM.network.val()].name == "ETH - Ethereum")
|| (networks[DOM.network.val()].name == "ETC - Ethereum Classic")
|| (networks[DOM.network.val()].name == "PIRL - Pirl")
|| (networks[DOM.network.val()].name == "MIX - MIX")
|| (networks[DOM.network.val()].name == "MUSIC - Musicoin")
|| (networks[DOM.network.val()].name == "POA - Poa")
|| (networks[DOM.network.val()].name == "EXP - Expanse")
|| (networks[DOM.network.val()].name == "CLO - Callisto")) {
var privKeyBuffer = keyPair.d.toBuffer(32);
privkey = privKeyBuffer.toString('hex');
var addressBuffer = ethUtil.privateToAddress(privKeyBuffer);
@@ -1772,6 +1779,14 @@
setHdCoin(23);
},
},
{
name: "CLO - Callisto",
segwitAvailable: false,
onSelect: function() {
network = bitcoinjs.bitcoin.networks.bitcoin;
setHdCoin(820);
},
},
{
name: "CLUB - Clubcoin",
onSelect: function() {
@@ -1891,6 +1906,14 @@
setHdCoin(151);
},
},
{
name: "ETC - Ethereum Classic",
segwitAvailable: false,
onSelect: function() {
network = bitcoinjs.bitcoin.networks.bitcoin;
setHdCoin(61);
},
},
{
name: "ETH - Ethereum",
onSelect: function() {
@@ -1905,6 +1928,14 @@
setHdCoin(190);
},
},
{
name: "EXP - Expanse",
segwitAvailable: false,
onSelect: function() {
network = bitcoinjs.bitcoin.networks.bitcoin;
setHdCoin(40);
},
},
{
name: "FJC - Fujicoin",
onSelect: function() {
@@ -1967,6 +1998,13 @@
network = bitcoinjs.bitcoin.networks.helleniccoin;
setHdCoin(168);
},
},
{
name: "HUSH - Hush",
onSelect: function() {
network = bitcoinjs.bitcoin.networks.hush;
setHdCoin(197);
},
},
{
name: "INSN - Insane",
@@ -2062,6 +2100,14 @@
setHdCoin(13);
},
},
{
name: "MIX - MIX",
segwitAvailable: false,
onSelect: function() {
network = bitcoinjs.bitcoin.networks.bitcoin;
setHdCoin(76);
},
},
{
name: "MNX - Minexcoin",
onSelect: function() {
@@ -2076,6 +2122,14 @@
setHdCoin(22);
},
},
{
name: "MUSIC - Musicoin",
segwitAvailable: false,
onSelect: function() {
network = bitcoinjs.bitcoin.networks.bitcoin;
setHdCoin(184);
},
},
{
name: "NAV - Navcoin",
onSelect: function() {
@@ -2174,6 +2228,14 @@
setHdCoin(117);
},
},
{
name: "PIRL - Pirl",
segwitAvailable: false,
onSelect: function() {
network = bitcoinjs.bitcoin.networks.bitcoin;
setHdCoin(164);
},
},
{
name: "PIVX - PIVX",
onSelect: function() {
@@ -2188,6 +2250,14 @@
setHdCoin(1);
},
},
{
name: "POA - Poa",
segwitAvailable: false,
onSelect: function() {
network = bitcoinjs.bitcoin.networks.bitcoin;
setHdCoin(178);
},
},
{
name: "POSW - POSWcoin",
onSelect: function() {
@@ -2293,6 +2363,13 @@
setHdCoin(105);
},
},
{
name: "TSTRAT - Stratis Testnet",
onSelect: function() {
network = bitcoinjs.bitcoin.networks.stratistest;
setHdCoin(105);
},
},
{
name: "SYS - Syscoin",
onSelect: function() {
@@ -2412,6 +2489,14 @@
setHdCoin(77);
},
},
{
name: "XUEZ - Xuez",
segwitAvailable: false,
onSelect: function() {
network = bitcoinjs.bitcoin.networks.xuez;
setHdCoin(225);
},
},
{
name: "XWC - Whitecoin",
onSelect: function() {
@@ -2440,13 +2525,6 @@
setHdCoin(133);
},
},
{
name: "XUEZ - Xuez",
onSelect: function() {
network = bitcoinjs.bitcoin.networks.xuez;
setHdCoin(225);
},
},
{
name: "ZEN - Zencash",
onSelect: function() {
@@ -2477,6 +2555,13 @@
DOM.bip32path.val("m/0'/0");
DOM.hardenedAddresses.prop('checked', false);
},
},
{
name: "Coinomi, Ledger",
onSelect: function() {
DOM.bip32path.val("m/44'/"+DOM.bip44coin.val()+"'/0'");
DOM.hardenedAddresses.prop('checked', false);
},
}
]

View File

@@ -56,6 +56,19 @@ bitcoinjs.bitcoin.networks.testnet.p2wpkhInP2sh = {
wif: 0xef
};
bitcoinjs.bitcoin.networks.litecoin.p2wpkh = {
baseNetwork: "litecoin",
messagePrefix: '\x19Litecoin Signed Message:\n',
bech32: 'ltc',
bip32: {
public: 0x04b24746,
private: 0x04b2430c
},
pubKeyHash: 0x30,
scriptHash: 0x32,
wif: 0xb0
};
bitcoinjs.bitcoin.networks.litecoin.p2wpkhInP2sh = {
baseNetwork: "litecoin",
messagePrefix: '\x19Litecoin Signed Message:\n',

View File

@@ -707,7 +707,7 @@ it('Allows selection of Bitcoinz', function(done) {
it('Allows selection of Bitcore', function(done) {
var params = {
selectText: "BTX - Bitcore",
firstAddress: "1Dg18EtqhReS11e9h8khkLjWGLHVjPM2AB",
firstAddress: "2Rgp5Znhpy34TK4QmPkfCiYs9r4KovfTH9",
};
testNetwork(done, params);
});
@@ -1096,6 +1096,13 @@ it('Allows selection of Stratis', function(done) {
};
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",
@@ -1208,6 +1215,62 @@ it('Allows selection of Energi', function(done) {
};
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 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",
firstAddress: "t1g6rLXUnJaiJuu4q4zmJjoa9Gk4fwKpiuA",
};
testNetwork(done, params);
});
// BIP39 seed is set from phrase
@@ -2821,6 +2884,13 @@ it('Can set the derivation path on bip32 tab for multibit', function(done) {
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
@@ -3643,23 +3713,6 @@ 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');