From: Ian Coleman Date: Tue, 17 Dec 2019 22:51:00 +0000 (+1100) Subject: Add bitcoin regtest params X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FBIP39.git;a=commitdiff_plain;h=f12242014d1ed5c7606c3350a9780c3883abc565 Add bitcoin regtest params --- diff --git a/src/js/bitcoinjs-extensions.js b/src/js/bitcoinjs-extensions.js index 4536783..0d58bb9 100644 --- a/src/js/bitcoinjs-extensions.js +++ b/src/js/bitcoinjs-extensions.js @@ -1738,3 +1738,16 @@ bitcoinjs.bitcoin.networks.elastos = { scriptHash: 0xc4, // TODO set this correctly, same as BTC for now wif: 0xef // TODO set this correctly, same as BTC for now }; + +// https://github.com/bitcoinjs/bitcoinjs-lib/blob/3f6f5ef97a1ee1b8337865209282c0095e22b2e7/src/networks.js +bitcoinjs.bitcoin.networks.regtest = { + messagePrefix: '\x18Bitcoin Signed Message:\n', + bech32: 'bcrt', + bip32: { + public: 0x043587cf, + private: 0x04358394, + }, + pubKeyHash: 0x6f, + scriptHash: 0xc4, + wif: 0xef, +}; diff --git a/src/js/index.js b/src/js/index.js index c9e7b44..d169ed2 100644 --- a/src/js/index.js +++ b/src/js/index.js @@ -2099,6 +2099,15 @@ setHdCoin(0); }, }, + { + name: "BTC - Bitcoin RegTest", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.regtest; + // Using hd coin value 1 based on bip44_coin_type + // https://github.com/chaintope/bitcoinrb/blob/f1014406f6b8f9b4edcecedc18df70c80df06f11/lib/bitcoin/chainparams/regtest.yml + setHdCoin(1); + }, + }, { name: "BTC - Bitcoin Testnet", onSelect: function() { diff --git a/src/js/segwit-parameters.js b/src/js/segwit-parameters.js index 83d49da..9641d71 100644 --- a/src/js/segwit-parameters.js +++ b/src/js/segwit-parameters.js @@ -28,6 +28,19 @@ bitcoinjs.bitcoin.networks.testnet.p2wpkh = { wif: 0xef }; +bitcoinjs.bitcoin.networks.regtest.p2wpkh = { + baseNetwork: "regtest", + messagePrefix: '\x18Bitcoin Signed Message:\n', + bech32: 'bcrt', + bip32: { + public: 0x045f1cf6, + private: 0x045f18bc + }, + pubKeyHash: 0x6f, + scriptHash: 0xc4, + wif: 0xef +}; + // p2wpkh in p2sh bitcoinjs.bitcoin.networks.bitcoin.p2wpkhInP2sh = { @@ -56,6 +69,19 @@ bitcoinjs.bitcoin.networks.testnet.p2wpkhInP2sh = { wif: 0xef }; +bitcoinjs.bitcoin.networks.regtest.p2wpkhInP2sh = { + baseNetwork: "regtest", + messagePrefix: '\x18Bitcoin Signed Message:\n', + bech32: 'bcrt', + bip32: { + public: 0x044a5262, + private: 0x044a4e28 + }, + pubKeyHash: 0x6f, + scriptHash: 0xc4, + wif: 0xef +}; + // p2wsh bitcoinjs.bitcoin.networks.bitcoin.p2wsh = { @@ -84,6 +110,19 @@ bitcoinjs.bitcoin.networks.testnet.p2wsh = { wif: 0xef }; +bitcoinjs.bitcoin.networks.regtest.p2wsh = { + baseNetwork: "regtest", + messagePrefix: '\x18Bitcoin Signed Message:\n', + bech32: 'bcrt', + bip32: { + public: 0x02575483, + private: 0x02575048 + }, + pubKeyHash: 0x6f, + scriptHash: 0xc4, + wif: 0xef +}; + // p2wsh in p2sh bitcoinjs.bitcoin.networks.bitcoin.p2wshInP2sh = { @@ -112,6 +151,19 @@ bitcoinjs.bitcoin.networks.testnet.p2wshInP2sh = { wif: 0xef }; +bitcoinjs.bitcoin.networks.regtest.p2wshInP2sh = { + baseNetwork: "regtest", + messagePrefix: '\x18Bitcoin Signed Message:\n', + bech32: 'bcrt', + bip32: { + public: 0x024289ef, + private: 0x024285b5 + }, + pubKeyHash: 0x6f, + scriptHash: 0xc4, + wif: 0xef +}; + bitcoinjs.bitcoin.networks.litecoin.p2wpkh = { baseNetwork: "litecoin", messagePrefix: '\x19Litecoin Signed Message:\n', diff --git a/tests/spec/tests.js b/tests/spec/tests.js index fefb8b7..260ff2c 100644 --- a/tests/spec/tests.js +++ b/tests/spec/tests.js @@ -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",