]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/commitdiff
Add zcash support
authorxarakas <harilakas@gmail.com>
Mon, 30 Apr 2018 14:40:27 +0000 (17:40 +0300)
committerxarakas <harilakas@gmail.com>
Mon, 30 Apr 2018 14:41:05 +0000 (17:41 +0300)
src/js/bitcoinjs-3.3.2.js
src/js/bitcoinjs-extensions.js
src/js/index.js
tests/spec/tests.js

index de75eaf033f5f21a2d9d0269af4c2c645f08e1ad..23901688cd68493b16fc14d3bb8e3b0805d2d77a 100644 (file)
@@ -8662,13 +8662,24 @@ function fromBech32 (address) {
 }
 
 function toBase58Check (hash, version) {
-  typeforce(types.tuple(types.Hash160bit, types.UInt8), arguments)
+  if (version < 256){
+    typeforce(types.tuple(types.Hash160bit, types.UInt8), arguments)
 
-  var payload = Buffer.allocUnsafe(21)
-  payload.writeUInt8(version, 0)
-  hash.copy(payload, 1)
+    var payload = Buffer.allocUnsafe(21)
+    payload.writeUInt8(version, 0)
+    hash.copy(payload, 1)
 
-  return bs58check.encode(payload)
+    return bs58check.encode(payload)
+  }
+  else{
+    typeforce(types.tuple(types.Hash160bit, types.UInt16), arguments)
+
+    var payload = Buffer.allocUnsafe(22)
+    payload.writeUInt16BE(version, 0)
+    hash.copy(payload, 2)
+
+    return bs58check.encode(payload)
+  }
 }
 
 function toBech32 (data, version, prefix) {
@@ -12162,8 +12173,8 @@ var Network = typeforce.compile({
     public: typeforce.UInt32,
     private: typeforce.UInt32
   },
-  pubKeyHash: typeforce.UInt8,
-  scriptHash: typeforce.UInt8,
+  pubKeyHash: typeforce.oneOf(typeforce.UInt8, typeforce.UInt16),
+  scriptHash: typeforce.oneOf(typeforce.UInt8, typeforce.UInt16),
   wif: typeforce.UInt8
 })
 
index b556f424432b3fc329ff1b3a74f4d0db92e2a01c..8c0f79e1c7a8b43ef63024cb419a7ee77ad457f8 100644 (file)
@@ -1199,3 +1199,14 @@ bitcoinjs.bitcoin.networks.zcoin = {
   scriptHash: 0x07,
   wif: 0xd2,
 };
+
+bitcoinjs.bitcoin.networks.zcash = {
+  messagePrefix: '\x18Zcash Signed Message:\n',
+  bip32: {
+    public: 0x0488B21E,
+    private: 0x0488ADE4,
+  },
+  pubKeyHash: 0x1CB8,
+  scriptHash: 0x1CBD,
+  wif: 0x80,
+};
index 758b8402b3ddd8983e0eaf5089a6452d990bd3b6..fc7e13b0e10822e8695e604948c58d89b51255f9 100644 (file)
                 setHdCoin(136);
             },
         },
+        {
+            name: "ZEC - Zcash",
+            segwitAvailable: false,
+            onSelect: function() {
+                network = bitcoinjs.bitcoin.networks.zcash;
+                setHdCoin(133);
+            },
+        },
     ]
 
     var clients = [
index ac2151e9ba08e6e59818726f1df17cb47e8f7522..fe8344728df264add221d84ed75596daac87f264 100644 (file)
@@ -1166,6 +1166,13 @@ it('Allows selection of Zcoin', function(done) {
     };
     testNetwork(done, params);
 });
+it('Allows selection of Zcash', function(done) {
+    var params = {
+        selectText: "ZEC - Zcash",
+        firstAddress: "t1Sz8AneMcVuzUg3tPJ8et5AS5LFJ7K2EF9",
+    };
+    testNetwork(done, params);
+});
 
 
 // BIP39 seed is set from phrase