X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FBIP39.git;a=blobdiff_plain;f=src%2Fjs%2Fbitcoinjs-extensions.js;h=24438297fbc9dff88760cad717205d08a507b72d;hp=d44ca0da2f3369b5f1a7a5349facba7b00ed9136;hb=e2186682ac0cfa1f301c226408cdfb438f7b4d6e;hpb=1e2cc748b083c7a172c20ddc574c2aa1c2d8c5f2 diff --git a/src/js/bitcoinjs-extensions.js b/src/js/bitcoinjs-extensions.js index d44ca0d..2443829 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,42 @@ 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 +}; + + +bitcoinjs.bitcoin.networks.lkrcoin = { + messagePrefix: '\x18LKRcoin Signed Message:\n', + bip32: { + public: 0x0488b21e, + private: 0x0488ade4, + }, + pubKeyHash: 0x30, + scriptHash: 0x55, + wif: 0xB0 }; bitcoinjs.bitcoin.networks.pivx = { @@ -274,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: { @@ -297,7 +372,7 @@ bitcoinjs.bitcoin.networks.nubits = { }; bitcoinjs.bitcoin.networks.bgold = { - messagePrefix: 'unused', + messagePrefix: '\x1DBitcoin Gold Signed Message:\n', bip32: { public: 0x0488b21e, private: 0x0488ade4 @@ -440,14 +515,25 @@ bitcoinjs.bitcoin.networks.bitcoinplus = { wif: 0x99, }; +bitcoinjs.bitcoin.networks.bitcloud = { + messagePrefix: '\x18BitCloud Signed Message:\n', + bip32: { + public: 0x0488B21E, + private: 0x0488ADE4, + }, + pubKeyHash: 0x19, + scriptHash: 0x05, + wif: 0x99, +}; + bitcoinjs.bitcoin.networks.bitcore = { messagePrefix: '\x18BitCore Signed Message:\n', bip32: { public: 0x0488B21E, private: 0x0488ADE4, }, - pubKeyHash: 0x00, - scriptHash: 0x05, + pubKeyHash: 0x03, + scriptHash: 0x7D, wif: 0x80, }; @@ -495,6 +581,17 @@ bitcoinjs.bitcoin.networks.cannacoin = { wif: 0x9c, }; +bitcoinjs.bitcoin.networks.cryptoescudo = { + messagePrefix: '\x18Cryptoescudo Signed Message:\n', + bip32: { + public: 0x0488b21e, + private: 0x0488ade4, + }, + pubKeyHash: 0x1c, + scriptHash: 0x05, + wif: 0x9c, +}; + bitcoinjs.bitcoin.networks.clubcoin = { messagePrefix: '\x18ClubCoin Signed Message:\n', bip32: { @@ -551,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, @@ -814,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: { @@ -836,6 +944,17 @@ bitcoinjs.bitcoin.networks.lynx = { wif: 0xad, }; +bitcoinjs.bitcoin.networks.megacoin = { + messagePrefix: '\x18Megacoin Signed Message:\n', + bip32: { + public: 0x0488B21E, + private: 0x0488ADE4, + }, + pubKeyHash: 0x32, + scriptHash: 0x05, + wif: 0xB2, +}; + bitcoinjs.bitcoin.networks.minexcoin = { messagePrefix: '\x18Bitcoin Signed Message:\n', bip32: { @@ -869,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: { @@ -990,6 +1120,17 @@ bitcoinjs.bitcoin.networks.putincoin = { wif: 0xb7, }; +bitcoinjs.bitcoin.networks.ravencoin = { + messagePrefix: '\x16Raven Signed Message:\n', + bip32: { + public: 0x0488B21E, + private: 0x0488ADE4, + }, + pubKeyHash: 0x3c, + scriptHash: 0x7a, + wif: 0x80, +}; + bitcoinjs.bitcoin.networks.reddcoin = { messagePrefix: '\x18Reddcoin Signed Message:\n', bip32: { @@ -1023,6 +1164,28 @@ bitcoinjs.bitcoin.networks.rubycoin = { wif: 0xbc, }; +bitcoinjs.bitcoin.networks.safecoin = { + messagePrefix: '\x18Safecoin Signed Message:\n', + bip32: { + public: 0x0488b21e, + private: 0x0488ade4, + }, + pubKeyHash: 0x3d, + scriptHash: 0x56, + wif: 0xbd, +}; + +bitcoinjs.bitcoin.networks.salus = { +messagePrefix: '\x18Salus Signed Message:\n', +bip32: { + public: 0x0488B21E, + private: 0x0488ADE4, +}, +pubKeyHash: 0x3f, +scriptHash: 0xc4, +wif: 0xbf, +}; + bitcoinjs.bitcoin.networks.smileycoin = { messagePrefix: '\x18Smileycoin Signed Message:\n', bip32: { @@ -1045,6 +1208,28 @@ bitcoinjs.bitcoin.networks.solarcoin = { wif: 0x92, }; +bitcoinjs.bitcoin.networks.stash = { + messagePrefix: '\x18Stash Signed Message:\n', + bip32: { + public: 0x0488b21e, + private: 0x0488ade4 + }, + pubKeyHash: 0x4c, + scriptHash: 0x10, + wif: 0xcc +}; + +bitcoinjs.bitcoin.networks.stashtn = { + messagePrefix: '\x18Stash Test Signed Message:\n', + bip32: { + public: 0x043587cf, + private: 0x04358394 + }, + pubKeyHash: 0x8c, + scriptHash: 0x13, + wif: 0xef +}; + bitcoinjs.bitcoin.networks.stratis = { messagePrefix: '\x18Stratis Signed Message:\n', bip32: { @@ -1056,6 +1241,17 @@ bitcoinjs.bitcoin.networks.stratis = { wif: 0xbf, }; +bitcoinjs.bitcoin.networks.stratistest = { + messagePrefix: '\x18Stratis Test Signed Message:\n', + bip32: { + public: 0x0488B21E, + private: 0x0488ADE4, + }, + pubKeyHash: 0x41, + scriptHash: 0x7d, + wif: 0xbf, +}; + bitcoinjs.bitcoin.networks.syscoin = { messagePrefix: '\x18Syscoin Signed Message:\n', bip32: { @@ -1064,7 +1260,7 @@ bitcoinjs.bitcoin.networks.syscoin = { }, pubKeyHash: 0x3f, scriptHash: 0x05, - wif: 0xbf, + wif: 0x80, }; @@ -1079,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: { @@ -1233,6 +1451,17 @@ bitcoinjs.bitcoin.networks.bitcoinz = { wif: 0x80, }; +bitcoinjs.bitcoin.networks.hush = { + messagePrefix: '\x18Hush Signed Message:\n', + bip32: { + public: 0x0488B21E, + private: 0x0488ADE4, + }, + pubKeyHash: 0x1CB8, + scriptHash: 0x1CBD, + wif: 0x80, +}; + bitcoinjs.bitcoin.networks.zclassic = { messagePrefix: '\x18Zcash Signed Message:\n', bip32: { @@ -1264,4 +1493,125 @@ bitcoinjs.bitcoin.networks.energi = { pubKeyHash: 0x21, scriptHash: 0x35, wif: 0x6a, -}; \ No newline at end of file +}; + +bitcoinjs.bitcoin.networks.exchangecoin = { + messagePrefix: 'ExchangeCoin Signed Message:\n', + bip32: { + public: 0x0488B21E, + private: 0x0488ADE4, + }, + pubKeyHash: 0x21B9, + scriptHash: 0x34AF, + wif: 0x80, +}; + +bitcoinjs.bitcoin.networks.artax = { + messagePrefix: '\x18Artax Signed Message:\n', + bip32: { + public: 0x0488B21E, + private: 0x0488ADE4, + }, + pubKeyHash: 0x17, + scriptHash: 0x1CBD, + wif: 0x97, +}; + +bitcoinjs.bitcoin.networks.bitcoingreen = { + messagePrefix: '\x18BitcoinGreen Signed Message:\n', + bip32: { + public: 0x0488B21E, + private: 0x0488ADE4, + }, + pubKeyHash: 0x26, + scriptHash: 0x1CBD, + wif: 0x2E, +}; + +bitcoinjs.bitcoin.networks.anon = { + messagePrefix: '\x18ANON Signed Message:\n', + bip32: { + public: 0x0488b21e, + private: 0x0488ade4 + }, + pubKeyHash: 0x0582, + scriptHash: 0x5389, + wif: 0x80 +}; + +bitcoinjs.bitcoin.networks.projectcoin = { + messagePrefix: '\x18ProjectCoin Signed Message:\n', + bip32: { + public: 0x022D2533, + private: 0x0221312B, + }, + pubKeyHash: 0x37, + scriptHash: 0x08, + wif: 0x75, +}; + +bitcoinjs.bitcoin.networks.phore = { + messagePrefix: '\x18Phore Signed Message:\n', + bip32: { + public: 0x022D2533, + private: 0x0221312B, + }, + pubKeyHash: 0x37, + scriptHash: 0x0D, + wif: 0xD4, +}; + +bitcoinjs.bitcoin.networks.blocknode = { + messagePrefix: '\x18Blocknode Signed Message:\n', + bip32: { + public: 0x0488b21e, + private: 0x0488ade4 + }, + pubKeyHash: 0x19, + scriptHash: 0x3F, + wif: 0x4b, +}; + +bitcoinjs.bitcoin.networks.blocknode_testnet = { + messagePrefix: '\x18Blocknode Testnet Signed Message:\n', + bip32: { + public: 0x043587cf, + private: 0x04358394 + }, + pubKeyHash: 0x55, + scriptHash: 0x7d, + wif: 0x89, +}; + +bitcoinjs.bitcoin.networks.litecoinz = { + messagePrefix: '\x18LitecoinZ Signed Message:\n', + bip32: { + public: 0x0488B21E, + private: 0x0488ADE3, + }, + pubKeyHash: 0x0AB3, + scriptHash: 0x0AB8, + wif: 0x80, +}; + +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, +};