Merge branch 'master' into master

This commit is contained in:
iancoleman
2021-05-07 09:51:28 +10:00
committed by GitHub
5 changed files with 147 additions and 21 deletions
+1
View File
@@ -1104,6 +1104,7 @@
<script src="js/cosmos-util.js"></script>
<script src="js/eos-util.js"></script>
<script src="js/fio-util.js"></script>
<script src="js/xwc-util.js"></script>
<script src="js/sjcl-bip39.js"></script>
<script src="js/wordlist_english.js"></script>
<script src="js/wordlist_japanese.js"></script>
+11
View File
@@ -1531,6 +1531,17 @@ libs.bitcoin.networks.bitcoinprivate = {
wif: 0x80,
};
libs.bitcoin.networks.bitcoinprivatetestnet = {
messagePrefix: '\x18BitcoinPrivate Signed Message:\n',
bip32: {
public: 0x043587CF,
private: 0x04358394,
},
pubKeyHash: 0x1957,
scriptHash: 0x19E0,
wif: 0xEF,
};
libs.bitcoin.networks.bitcoinz = {
messagePrefix: '\x18BitcoinZ Signed Message:\n',
bip32: {
+65 -19
View File
@@ -209,12 +209,7 @@
var network = networks[networkIndex];
network.onSelect();
adjustNetworkForSegwit();
if (seed != null) {
phraseChanged();
}
else {
rootKeyChanged();
}
rootKeyChanged();
}
function bip32ClientChanged(e) {
@@ -495,13 +490,16 @@
var app = DOM.bip85application.val();
var phrase = DOM.phrase.val();
var passphrase = DOM.passphrase.val();
if (!phrase) {
var rootKeyBase58 = DOM.rootKey.val();
if (!rootKeyBase58) {
return;
}
try {
var master = libs.bip85.BIP85.fromMnemonic(phrase, passphrase);
// try parsing using base network params
// The bip85 lib only understands xpubs, so compute it
var rootKey = libs.bitcoin.HDNode.fromBase58(rootKeyBase58, network);
rootKey.keyPair.network = libs.bitcoin.networks['bitcoin']
var master = libs.bip85.BIP85.fromBase58(rootKey.toBase58());
var result;
@@ -1350,21 +1348,21 @@
}
// ZooBC address format may vary
if (networks[DOM.network.val()].name == "ZBC - ZooBlockchain") {
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');
}
@@ -1425,15 +1423,35 @@
pubkey = CosmosBufferToPublic(keyPair.getPublicKeyBuffer(), hrp);
privkey = keyPair.d.toBuffer().toString("base64");
}
if (networks[DOM.network.val()].name == "RUNE - THORChain") {
const hrp = "thor";
address = CosmosBufferToAddress(keyPair.getPublicKeyBuffer(), hrp);
pubkey = keyPair.getPublicKeyBuffer().toString("hex");
privkey = keyPair.d.toBuffer().toString("hex");
}
}
if (networks[DOM.network.val()].name == "XWC - Whitecoin"){
address = XWCbufferToAddress(keyPair.getPublicKeyBuffer());
pubkey = XWCbufferToPublic(keyPair.getPublicKeyBuffer());
privkey = XWCbufferToPrivate(keyPair.d.toBuffer(32));
}
//Groestlcoin Addresses are different
if (networks[DOM.network.val()].name == "LUNA - Terra") {
const hrp = "terra";
address = CosmosBufferToAddress(keyPair.getPublicKeyBuffer(), hrp);
pubkey = keyPair.getPublicKeyBuffer().toString("hex");
privkey = keyPair.d.toBuffer().toString("hex");
}
if (networks[DOM.network.val()].name == "IOV - Starname") {
const hrp = "star";
address = CosmosBufferToAddress(keyPair.getPublicKeyBuffer(), hrp);
pubkey = CosmosBufferToPublic(keyPair.getPublicKeyBuffer(), hrp);
privkey = keyPair.d.toBuffer().toString("base64");
}
//Groestlcoin Addresses are different
if(isGRS()) {
if (isSegwit) {
@@ -2397,6 +2415,13 @@
setHdCoin(183);
},
},
{
name: "BTCPt - Bitcoin Private Testnet",
onSelect: function() {
network = libs.bitcoin.networks.bitcoinprivatetestnet;
setHdCoin(1);
},
},
{
name: "BSC - Binance Smart Chain",
onSelect: function() {
@@ -2859,6 +2884,13 @@
},
},
{
name: "IOV - Starname",
onSelect: function() {
network = libs.bitcoin.networks.bitcoin;
setHdCoin(234);
},
},
{
name: "IXC - Ixcoin",
onSelect: function() {
network = libs.bitcoin.networks.ixcoin;
@@ -2947,6 +2979,13 @@
setHdCoin(221);
},
},
{
name: "LUNA - Terra",
onSelect: function() {
network = libs.bitcoin.networks.bitcoin;
setHdCoin(330);
},
},
{
name: "LYNX - Lynx",
onSelect: function() {
@@ -3583,7 +3622,7 @@
},
},
{
name: "XWC - Whitecoin",
name: "XWCC - Whitecoin Classic",
onSelect: function() {
network = libs.bitcoin.networks.whitecoin;
setHdCoin(155);
@@ -3624,6 +3663,13 @@
setHdCoin(121);
},
},
{
name: "XWC - Whitecoin",
onSelect: function() {
network = libs.bitcoin.networks.bitcoin;
setHdCoin(559);
},
}
]
var clients = [
+28
View File
@@ -0,0 +1,28 @@
function XWCbufferToAddress(pubBuf){
const Buffer = libs.buffer.Buffer;
const XWC_ADDRESS_PREFIX = "XWC";
const XWC_NORMAL_ADDRESS_VERSION = "35"
let addrData = libs.createHash("rmd160").update( libs.createHash("sha512").update(pubBuf).digest()).digest();
let addrBuf = Buffer.concat([Buffer.from(XWC_NORMAL_ADDRESS_VERSION, "hex") ,addrData])
let checksum = libs.createHash("rmd160").update(addrBuf).digest("hex").slice(0, 8);
addrBuf = Buffer.concat([addrBuf, Buffer.from(checksum, "hex")]);
return XWC_ADDRESS_PREFIX.concat(libs.bs58.encode(addrBuf));
}
function XWCbufferToPublic(pubBuf) {
const Buffer = libs.buffer.Buffer;
const XWC_PUBLIC_PREFIX = "XWC";
let checksum = libs.createHash("rmd160").update(pubBuf).digest("hex").slice(0, 8);
pubBuf = Buffer.concat([pubBuf, Buffer.from(checksum, "hex")]);
return XWC_PUBLIC_PREFIX.concat(libs.bs58.encode(pubBuf));
}
function XWCbufferToPrivate(privBuf) {
const Buffer = libs.buffer.Buffer;
const XWC_PRIVATE_PREFIX = "80";
privBuf = Buffer.concat([Buffer.from(XWC_PRIVATE_PREFIX, "hex"), privBuf]);
let tmp = libs.createHash("sha256").update(privBuf).digest();
let checksum = libs.createHash("sha256").update(tmp).digest("hex").slice(0, 8);
privBuf = Buffer.concat([privBuf, Buffer.from(checksum, "hex")]);
return libs.bs58.encode(privBuf);
}