mirror of
https://github.com/OneKeyHQ/bip39.git
synced 2026-04-05 18:43:47 +00:00
new Crown address format. May not be elegant solution, but bitcoinjs has limitation of network prefix length and I don't want to modify it. This approach is isolated and does not affect others
This commit is contained in:
@@ -39,7 +39,27 @@ bitcoinjs.bitcoin.networks.crown = {
|
||||
},
|
||||
pubKeyHash: 0x00,
|
||||
scriptHash: 0x05,
|
||||
wif: 0x80
|
||||
wif: 0x80,
|
||||
toNewAddress: function(oldAddress)
|
||||
{
|
||||
var ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
|
||||
var b58 = basex(ALPHABET);
|
||||
|
||||
var addrBytes = b58.decode(oldAddress);
|
||||
|
||||
var hash160 = new Uint16Array(23);
|
||||
hash160[0]= 0x01; //C
|
||||
hash160[1]= 0x75; //R
|
||||
hash160[2]= 0x07; //W
|
||||
addrBytes.copy(hash160, 3, 1, 21);
|
||||
|
||||
var checksum = bitcoinjs.bitcoin.crypto.hash256(hash160).subarray(0, 4);
|
||||
var binaryAddr = new Uint16Array(27);
|
||||
binaryAddr.set(hash160,0);
|
||||
checksum.copy(binaryAddr, 23, 0, 4);
|
||||
var newAddress = b58.encode(binaryAddr);
|
||||
return newAddress;
|
||||
}
|
||||
};
|
||||
|
||||
bitcoinjs.bitcoin.networks.dash = {
|
||||
|
||||
@@ -977,6 +977,11 @@
|
||||
address = bitcoinjs.bitcoin.address.fromOutputScript(scriptpubkey, network)
|
||||
}
|
||||
}
|
||||
|
||||
if ((networks[DOM.network.val()].name == "CRW - Crown")) {
|
||||
address = bitcoinjs.bitcoin.networks.crown.toNewAddress(address);
|
||||
}
|
||||
|
||||
addAddressToList(indexText, address, pubkey, privkey);
|
||||
if (isLast) {
|
||||
hidePending();
|
||||
@@ -1874,6 +1879,13 @@
|
||||
setHdCoin(186);
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "CRW - Crown (Legacy)",
|
||||
onSelect: function() {
|
||||
network = bitcoinjs.bitcoin.networks.crown;
|
||||
setHdCoin(72);
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "CRW - Crown",
|
||||
onSelect: function() {
|
||||
|
||||
@@ -472,10 +472,17 @@ it('Allows selection of clam', function(done) {
|
||||
};
|
||||
testNetwork(done, params);
|
||||
});
|
||||
it('Allows selection of crown', function(done) {
|
||||
var params = {
|
||||
selectText: "CRW - Crown (Legacy)",
|
||||
firstAddress: "18pWSwSUAQdiwMHUfFZB1fM2xue9X1FqE5",
|
||||
};
|
||||
testNetwork(done, params);
|
||||
});
|
||||
it('Allows selection of crown', function(done) {
|
||||
var params = {
|
||||
selectText: "CRW - Crown",
|
||||
firstAddress: "18pWSwSUAQdiwMHUfFZB1fM2xue9X1FqE5",
|
||||
firstAddress: "CRWKnVmVhvH1KWTYe6sq8xV4dFGcFpBEEkPQ",
|
||||
};
|
||||
testNetwork(done, params);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user