From 0cb81e1117053c93debfa501a5bdb11169636dd2 Mon Sep 17 00:00:00 2001 From: jhonkus Date: Fri, 27 Nov 2020 06:27:21 +0800 Subject: Add ZooBC coin support --- src/js/bitcoinjs-extensions.js | 12 ++++++++++++ src/js/index.js | 7 +++++++ 2 files changed, 19 insertions(+) (limited to 'src/js') diff --git a/src/js/bitcoinjs-extensions.js b/src/js/bitcoinjs-extensions.js index 08a6be8..7e637e3 100644 --- a/src/js/bitcoinjs-extensions.js +++ b/src/js/bitcoinjs-extensions.js @@ -1553,6 +1553,18 @@ libs.bitcoin.networks.hush3 = { wif: 0xBC, }; +libs.bitcoin.networks.zoobc = { + messagePrefix: '\x18ZooBC Signed Message:\n', + bech32: 'bc', + bip32: { + public: 0x0488b21e, + private: 0x0488ade4, + }, + pubKeyHash: 0x00, + scriptHash: 0x05, + wif: 0x80, +}; + libs.bitcoin.networks.zclassic = { messagePrefix: '\x18Zcash Signed Message:\n', bip32: { diff --git a/src/js/index.js b/src/js/index.js index fd8c16b..61a2dd5 100644 --- a/src/js/index.js +++ b/src/js/index.js @@ -3540,6 +3540,13 @@ setHdCoin(136); }, }, + { + name: "ZBC - ZooBlockchain", + onSelect: function () { + network = libs.bitcoin.networks.zoobc; + setHdCoin(883); + }, + }, { name: "ZCL - Zclassic", onSelect: function() { -- cgit v1.2.3 From 6d2e202083c4166aa4be8557789a8a461df6bd5c Mon Sep 17 00:00:00 2001 From: jhonkus Date: Mon, 7 Dec 2020 20:25:25 +0800 Subject: Add ZooBC address format --- src/js/index.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/js') diff --git a/src/js/index.js b/src/js/index.js index 61a2dd5..1f4cc1f 100644 --- a/src/js/index.js +++ b/src/js/index.js @@ -1348,6 +1348,27 @@ address = libs.bchaddrSlp.toSlpAddress(address); } } + + // ZooBC address format may vary + if (networks[DOM.network.val()].name == "ZBC - ZooBlockchain") { + + var purpose = parseIntNoNaN(DOM.bip44purpose.val(), 44); + var coin = parseIntNoNaN(DOM.bip44coin.val(), 0); + var path = "m/"; + path += purpose + "'/"; + path += coin + "'/" + index + "'"; + var result = libs.zoobcUtil.getKeypair(path, seed); + + let publicKey = result.pubKey.slice(1, 33); + let privateKey = result.key; + + privkey = privateKey.toString('hex'); + pubkey = publicKey.toString('hex'); + + indexText = path; + address = libs.zoobcUtil.getZBCAddress(publicKey, 'ZBC'); + } + // Segwit addresses are different if (isSegwit) { if (!segwitAvailable) { -- cgit v1.2.3