X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FBIP39.git;a=blobdiff_plain;f=src%2Fjs%2Fbitcoinjs-extensions.js;h=ac9f315a7c48c20855099167602e47e95e24219e;hp=b20d6df703805479c5f521e371ebb4117f9db22d;hb=c6c86591a9c87cc85e12c8ee6591099b0f502070;hpb=cceb518d0996d3ca79f85f331cf6dc9da3720ee3 diff --git a/src/js/bitcoinjs-extensions.js b/src/js/bitcoinjs-extensions.js index b20d6df..ac9f315 100644 --- a/src/js/bitcoinjs-extensions.js +++ b/src/js/bitcoinjs-extensions.js @@ -27,7 +27,7 @@ bitcoinjs.bitcoin.networks.clam = { private: 0xa8c17826 }, pubKeyHash: 0x89, - scriptHash: 0x00, // TODO set this correctly + scriptHash: 0x0D, wif: 0x85 }; @@ -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 = { @@ -93,7 +113,7 @@ bitcoinjs.bitcoin.networks.namecoin = { private: 0x0488ade4 }, pubKeyHash: 0x34, - scriptHash: 0x00, // TODO set this correctly + scriptHash: 0x0D, wif: 0x80 }; @@ -104,7 +124,7 @@ bitcoinjs.bitcoin.networks.peercoin = { private: 0x0488ade4 }, pubKeyHash: 0x37, - scriptHash: 0x00, // TODO set this correctly + scriptHash: 0x75, wif: 0xb7 }; @@ -152,6 +172,17 @@ bitcoinjs.bitcoin.networks.dogecoin = { wif: 0x9e }; +bitcoinjs.bitcoin.networks.dogecointestnet = { + messagePrefix: '\x19Dogecoin Signed Message:\n', + bip32: { + public: 0x043587cf, + private: 0x04358394 + }, + pubKeyHash: 0x71, + scriptHash: 0xc4, + wif: 0xf1 +}; + bitcoinjs.bitcoin.networks.denarius = { messagePrefix: '\x19Denarius Signed Message:\n', bip32: { @@ -236,20 +267,30 @@ bitcoinjs.bitcoin.networks.myriadcoin = { private: 0x0488ade4 }, pubKeyHash: 0x32, - scriptHash: 0x00, // TODO set this correctly + scriptHash: 0x09, wif: 0xb2 }; +bitcoinjs.bitcoin.networks.bolivarcoin = { + messagePrefix: 'Bolivarcoin Signed Message:\n', + bip32: { + public: 0x0488b21e, + private: 0x0488ade4 + }, + pubKeyHash: 0x55, + scriptHash: 0x05, + wif: 0xD5 +}; bitcoinjs.bitcoin.networks.onixcoin = { - messagePrefix: 'unused', + messagePrefix: 'ONIX Signed Message:\n', bip32: { - public: 0x049d7cb2, - private: 0x049d7878 + public: 0x0488b21e, + private: 0x0488ade4 }, pubKeyHash: 0x4B, scriptHash: 0x05, - wif: 0x80 + wif: 0xCB }; @@ -261,7 +302,7 @@ bitcoinjs.bitcoin.networks.lkrcoin = { }, pubKeyHash: 0x30, scriptHash: 0x55, - wif: 0x80 + wif: 0xB0 }; bitcoinjs.bitcoin.networks.pivx = { @@ -286,6 +327,28 @@ bitcoinjs.bitcoin.networks.pivxtestnet = { wif: 0xef }; +bitcoinjs.bitcoin.networks.fix = { + messagePrefix: 'unused', + bip32: { + public: 0x022d2533, + private: 0x0221312b + }, + pubKeyHash: 0x23, + scriptHash: 0x5F, + wif: 0x3C +}; + +bitcoinjs.bitcoin.networks.fixtestnet = { + messagePrefix: 'unused', + bip32: { + public: 0x3a8061a0, + private: 0x3a805837 + }, + pubKeyHash: 0x4c, + scriptHash: 0x89, + wif: 0xED +}; + bitcoinjs.bitcoin.networks.fujicoin = { messagePrefix: '\x19FujiCoin Signed Message:\n', bip32: { @@ -585,7 +648,7 @@ bitcoinjs.bitcoin.networks.diamond = { }; bitcoinjs.bitcoin.networks.digibyte = { - messagePrefix: '\x18DigiByte Signed Message:\n', + messagePrefix: '\x19DigiByte Signed Message:\n', bip32: { public: 0x0488B21E, private: 0x0488ADE4, @@ -848,6 +911,17 @@ bitcoinjs.bitcoin.networks.linx = { wif: 0xcb, }; + +bitcoinjs.bitcoin.networks.litecointestnet = { + messagePrefix: '\x18Litecoin Signed Message:\n', + bip32: { + public: 0x043587cf, + private: 0x04358394, + }, + pubKeyHash: 0x6f, + scriptHash: 0xc4, + wif: 0xef, +}; bitcoinjs.bitcoin.networks.litecoincash = { messagePrefix: '\x18Litecoin Signed Message:\n', bip32: { @@ -914,6 +988,17 @@ bitcoinjs.bitcoin.networks.neoscoin = { wif: 0xb1, }; +bitcoinjs.bitcoin.networks.nix = { + messagePrefix: '\x18Nix Signed Message:\n', + bip32: { + public: 0x0488b21e, + private: 0x0488ade4, + }, + pubKeyHash: 0x26, + scriptHash: 0x35, + wif: 0x80, +}; + bitcoinjs.bitcoin.networks.neurocoin = { messagePrefix: '\x18PPCoin Signed Message:\n', bip32: { @@ -1190,6 +1275,28 @@ bitcoinjs.bitcoin.networks.toa = { wif: 0xc1, }; +bitcoinjs.bitcoin.networks.twins = { + messagePrefix: 'unused', + bip32: { + public: 0x022d2533, + private: 0x0221312b + }, + pubKeyHash: 0x49, + scriptHash: 0x53, + wif: 0x42 +}; + +bitcoinjs.bitcoin.networks.twinstestnet = { + messagePrefix: 'unused', + bip32: { + public: 0x3a8061a0, + private: 0x3a805837 + }, + pubKeyHash: 0x4c, + scriptHash: 0x89, + wif: 0xED +}; + bitcoinjs.bitcoin.networks.ultimatesecurecash = { messagePrefix: '\x18UltimateSecureCash Signed Message:\n', bip32: { @@ -1355,6 +1462,17 @@ bitcoinjs.bitcoin.networks.hush = { wif: 0x80, }; +bitcoinjs.bitcoin.networks.hush3 = { + messagePrefix: '\x18Hush Signed Message:\n', + bip32: { + public: 0x0488B21E, + private: 0x0488ADE4, + }, + pubKeyHash: 0x3C, + scriptHash: 0x55, + wif: 0xBC, +}; + bitcoinjs.bitcoin.networks.zclassic = { messagePrefix: '\x18Zcash Signed Message:\n', bip32: { @@ -1485,4 +1603,94 @@ bitcoinjs.bitcoin.networks.litecoinz = { pubKeyHash: 0x0AB3, scriptHash: 0x0AB8, wif: 0x80, -}; \ No newline at end of file +}; + +bitcoinjs.bitcoin.networks.blockstamp = { + messagePrefix: '\x18BlockStamp Signed Message:\n', + bip32: { + public: 0x0488B21E, + private: 0x0488ADE4, + }, + pubKeyHash: 0x00, + scriptHash: 0x05, + wif: 0x80, +}; + +bitcoinjs.bitcoin.networks.deeponion = { + messagePrefix: 'x18DeepOnion Signed Message:\n', + bip32: { + public: 0x0488B21E, + private: 0x0488ADE4, + }, + pubKeyHash: 0x1F, + scriptHash: 0x4E, + wif: 0x9F, +}; + + +bitcoinjs.bitcoin.networks.cpuchain = { + messagePrefix: 'x18CPUchain Signed Message:\n', + bip32: { + public: 0x0488B21E, + private: 0x0488ADE4, + }, + pubKeyHash: 0x1C, + scriptHash: 0x1E, + wif: 0x80, +}; + +bitcoinjs.bitcoin.networks.wagerr = { + messagePrefix: 'unused', + bip32: { + public: 0x022d2533, + private: 0x0221312b + }, + pubKeyHash: 0x49, + scriptHash: 0x3f, + wif: 0xc7 +}; + +bitcoinjs.bitcoin.networks.bitcoinsv = { + messagePrefix: 'unused', + bip32: { + public: 0x0488b21e, + private: 0x0488ade4 + }, + pubKeyHash: 0x00, + scriptHash: 0x05, + wif: 0x80 +}; + +bitcoinjs.bitcoin.networks.monkeyproject = { + messagePrefix: 'Monkey Signed Message:\n', + bip32: { + public: 0x0488b21e, + private: 0x0488dde4 + }, + pubKeyHash: 0x33, + scriptHash: 0x1c, + wif: 0x37 +}; + +bitcoinjs.bitcoin.networks.rapids = { + messagePrefix: 'DarkNet Signed Message:\n', + bip32: { + public: 0x0488b21e, + private: 0x0488ade4 + }, + pubKeyHash: 0x3d, + scriptHash: 0x06, + wif: 0x2e +}; + +bitcoinjs.bitcoin.networks.aryacoin = { + messagePrefix: '\x18Aryacoin Signed Message:\n', + bech32: 'arya', + bip32: { + public: 0x0488B21E, + private: 0x0488ADE4, + }, + pubKeyHash: 0x17, + scriptHash: 0x6f, + wif: 0x97 +};