@ledgerhq/hw-app-btc 8.0.2 → 8.1.0-nightly.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- @ledgerhq/hw-app-btc:build: cache hit, replaying output baaf096648659cb9
1
+ @ledgerhq/hw-app-btc:build: cache hit, replaying output d4ce1e38c9b9af8e
2
2
  @ledgerhq/hw-app-btc:build:
3
3
  @ledgerhq/hw-app-btc:build: > @ledgerhq/hw-app-btc@8.0.2 build /home/runner/work/ledger-live/ledger-live/libs/ledgerjs/packages/hw-app-btc
4
4
  @ledgerhq/hw-app-btc:build: > tsc && tsc -m ES6 --outDir lib-es
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # @ledgerhq/hw-app-btc
2
2
 
3
+ ## 8.1.0-nightly.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#836](https://github.com/LedgerHQ/ledger-live/pull/836) [`68a0b01efc`](https://github.com/LedgerHQ/ledger-live/commit/68a0b01efcfd481cb8fe71ec22a2fc7217f25ec9) Thanks [@hzheng-ledger](https://github.com/hzheng-ledger)! - Support zcash v5 format transaction
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies []:
12
+ - @ledgerhq/hw-transport@6.27.5-nightly.0
13
+
3
14
  ## 8.0.2
4
15
 
5
16
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"createTransaction.d.ts","sourceRoot":"","sources":["../src/createTransaction.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AAGpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAS1D,OAAO,KAAK,EAAqB,WAAW,EAAE,MAAM,SAAS,CAAC;AAY9D,YAAY,EAAE,aAAa,EAAE,CAAC;AAW9B;;GAEG;AACH,oBAAY,oBAAoB,GAAG;IACjC,MAAM,EAAE,KAAK,CACX;QAAC,WAAW;QAAE,MAAM;QAAE,MAAM,GAAG,IAAI,GAAG,SAAS;QAAE,MAAM,GAAG,IAAI,GAAG,SAAS;KAAC,CAC5E,CAAC;IACF,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,KAAK,IAAI,CAAC;IACX,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;CACvC,CAAC;AACF,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,oBAAoB,GACxB,OAAO,CAAC,MAAM,CAAC,CA4WjB"}
1
+ {"version":3,"file":"createTransaction.d.ts","sourceRoot":"","sources":["../src/createTransaction.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AAGpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAS1D,OAAO,KAAK,EAAqB,WAAW,EAAE,MAAM,SAAS,CAAC;AAY9D,YAAY,EAAE,aAAa,EAAE,CAAC;AAW9B;;GAEG;AACH,oBAAY,oBAAoB,GAAG;IACjC,MAAM,EAAE,KAAK,CACX;QAAC,WAAW;QAAE,MAAM;QAAE,MAAM,GAAG,IAAI,GAAG,SAAS;QAAE,MAAM,GAAG,IAAI,GAAG,SAAS;KAAC,CAC5E,CAAC;IACF,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,KAAK,IAAI,CAAC;IACX,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;CACvC,CAAC;AACF,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,oBAAoB,GACxB,OAAO,CAAC,MAAM,CAAC,CAmXjB"}
@@ -83,7 +83,7 @@ var defaultsSignTransaction = {
83
83
  };
84
84
  function createTransaction(transport, arg) {
85
85
  return __awaiter(this, void 0, void 0, function () {
86
- var signTx, inputs, associatedKeysets, changePath, outputScriptHex, lockTime, sigHashType, segwit, initialTimestamp, additionals, expiryHeight, onDeviceStreaming, onDeviceSignatureGranted, onDeviceSignatureRequested, useTrustedInputForSegwit, a, e_1, notify, isDecred, isXST, startTime, sapling, bech32, useBip143, nullScript, nullPrevout, defaultVersion, trustedInputs, regularOutputs, signatures, publicKeys, firstRun, resuming, targetTransaction, getTrustedInputCall, outputScript, inputs_1, inputs_1_1, input, trustedInput, sequence, outputs, index, e_2_1, result_1, i, r, i, i, input, script, pseudoTX, pseudoTrustedInputs, signature, i, signatureSize, keySize, offset, lockTimeBuffer, result, witness, i, tmpScriptData, decredWitness_1;
86
+ var signTx, inputs, associatedKeysets, changePath, outputScriptHex, lockTime, sigHashType, segwit, initialTimestamp, additionals, expiryHeight, onDeviceStreaming, onDeviceSignatureGranted, onDeviceSignatureRequested, useTrustedInputForSegwit, a, e_1, notify, isDecred, isZcash, isXST, startTime, sapling, bech32, useBip143, lockTimeBuffer, nullScript, nullPrevout, defaultVersion, trustedInputs, regularOutputs, signatures, publicKeys, firstRun, resuming, targetTransaction, getTrustedInputCall, outputScript, inputs_1, inputs_1_1, input, trustedInput, sequence, outputs, index, e_2_1, result_1, i, r, i, i, input, script, pseudoTX, pseudoTrustedInputs, signature, i, signatureSize, keySize, offset, result, witness, i, tmpScriptData, decredWitness_1;
87
87
  var e_2, _a;
88
88
  return __generator(this, function (_b) {
89
89
  switch (_b.label) {
@@ -124,6 +124,7 @@ function createTransaction(transport, arg) {
124
124
  });
125
125
  };
126
126
  isDecred = additionals.includes("decred");
127
+ isZcash = additionals.includes("zcash");
127
128
  isXST = additionals.includes("stealthcoin");
128
129
  startTime = Date.now();
129
130
  sapling = additionals.includes("sapling");
@@ -134,11 +135,13 @@ function createTransaction(transport, arg) {
134
135
  additionals.includes("gold") ||
135
136
  additionals.includes("bip143"))) ||
136
137
  (!!expiryHeight && !isDecred);
138
+ lockTimeBuffer = Buffer.alloc(4);
139
+ lockTimeBuffer.writeUInt32LE(lockTime, 0);
137
140
  nullScript = Buffer.alloc(0);
138
141
  nullPrevout = Buffer.alloc(0);
139
142
  defaultVersion = Buffer.alloc(4);
140
143
  !!expiryHeight && !isDecred
141
- ? defaultVersion.writeUInt32LE(sapling ? 0x80000004 : 0x80000003, 0)
144
+ ? defaultVersion.writeUInt32LE(isZcash ? 0x80000005 : sapling ? 0x80000004 : 0x80000003, 0) // v5 format for zcash refer to https://zips.z.cash/zip-0225
142
145
  : isXST
143
146
  ? defaultVersion.writeUInt32LE(2, 0)
144
147
  : defaultVersion.writeUInt32LE(1, 0);
@@ -188,7 +191,13 @@ function createTransaction(transport, arg) {
188
191
  regularOutputs.push(outputs[index]);
189
192
  }
190
193
  if (expiryHeight && !isDecred) {
191
- targetTransaction.nVersionGroupId = Buffer.from(sapling ? [0x85, 0x20, 0x2f, 0x89] : [0x70, 0x82, 0xc4, 0x03]);
194
+ targetTransaction.nVersionGroupId = Buffer.from(
195
+ // nVersionGroupId is 0x26A7270A for zcash from https://z.cash/upgrade/nu5/
196
+ isZcash
197
+ ? [0x0a, 0x27, 0xa7, 0x26]
198
+ : sapling
199
+ ? [0x85, 0x20, 0x2f, 0x89]
200
+ : [0x70, 0x82, 0xc4, 0x03]);
192
201
  targetTransaction.nExpiryHeight = expiryHeight;
193
202
  // For sapling : valueBalance (8), nShieldedSpend (1), nShieldedOutput (1), nJoinSplit (1)
194
203
  // Overwinter : use nJoinSplit (1)
@@ -215,13 +224,13 @@ function createTransaction(transport, arg) {
215
224
  finally { if (e_2) throw e_2.error; }
216
225
  return [7 /*endfinally*/];
217
226
  case 13:
218
- targetTransaction.inputs = inputs.map(function (input) {
227
+ targetTransaction.inputs = inputs.map(function (input, idx) {
219
228
  var sequence = Buffer.alloc(4);
220
229
  sequence.writeUInt32LE(input.length >= 4 && typeof input[3] === "number"
221
230
  ? input[3]
222
231
  : constants_1.DEFAULT_SEQUENCE, 0);
223
232
  return {
224
- script: nullScript,
233
+ script: isZcash ? regularOutputs[idx].script : nullScript,
225
234
  prevout: nullPrevout,
226
235
  sequence: sequence
227
236
  };
@@ -356,8 +365,7 @@ function createTransaction(transport, arg) {
356
365
  offset = useBip143 && !useTrustedInputForSegwit ? 0 : 4;
357
366
  targetTransaction.inputs[i].prevout = trustedInputs[i].value.slice(offset, offset + 0x24);
358
367
  }
359
- lockTimeBuffer = Buffer.alloc(4);
360
- lockTimeBuffer.writeUInt32LE(lockTime, 0);
368
+ targetTransaction.locktime = lockTimeBuffer;
361
369
  result = Buffer.concat([
362
370
  (0, serializeTransaction_1.serializeTransaction)(targetTransaction, false, targetTransaction.timestamp, additionals),
363
371
  outputScript,
@@ -376,17 +384,16 @@ function createTransaction(transport, arg) {
376
384
  }
377
385
  result = Buffer.concat([result, witness]);
378
386
  }
379
- // FIXME: In ZEC or KMD sapling lockTime is serialized before expiryHeight.
380
- // expiryHeight is used only in overwinter/sapling so I moved lockTimeBuffer here
381
- // and it should not break other coins because expiryHeight is false for them.
382
- // Don't know about Decred though.
383
- result = Buffer.concat([result, lockTimeBuffer]);
384
- if (expiryHeight) {
385
- result = Buffer.concat([
386
- result,
387
- targetTransaction.nExpiryHeight || Buffer.alloc(0),
388
- targetTransaction.extraData || Buffer.alloc(0),
389
- ]);
387
+ // from to https://zips.z.cash/zip-0225, zcash is different with other coins, the lock_time and nExpiryHeight fields are before the inputs and outputs
388
+ if (!isZcash) {
389
+ result = Buffer.concat([result, lockTimeBuffer]);
390
+ if (expiryHeight) {
391
+ result = Buffer.concat([
392
+ result,
393
+ targetTransaction.nExpiryHeight || Buffer.alloc(0),
394
+ targetTransaction.extraData || Buffer.alloc(0),
395
+ ]);
396
+ }
390
397
  }
391
398
  if (isDecred) {
392
399
  decredWitness_1 = Buffer.from([targetTransaction.inputs.length]);
@@ -402,6 +409,9 @@ function createTransaction(transport, arg) {
402
409
  });
403
410
  result = Buffer.concat([result, decredWitness_1]);
404
411
  }
412
+ if (isZcash) {
413
+ result = Buffer.concat([result, Buffer.from([0x00, 0x00, 0x00])]);
414
+ }
405
415
  return [2 /*return*/, result.toString("hex")];
406
416
  }
407
417
  });
@@ -1 +1 @@
1
- {"version":3,"file":"createTransaction.js","sourceRoot":"","sources":["../src/createTransaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createTransaction.js","sourceRoot":"","sources":["../src/createTransaction.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"serializeTransaction.d.ts","sourceRoot":"","sources":["../src/serializeTransaction.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C;;;;IAII;AACJ,wBAAgB,2BAA2B,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,GAAG,MAAM,CAgB5E;AACD,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,OAAO,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,GAAE,MAAM,EAAO,UAgD3B"}
1
+ {"version":3,"file":"serializeTransaction.d.ts","sourceRoot":"","sources":["../src/serializeTransaction.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C;;;;IAII;AACJ,wBAAgB,2BAA2B,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,GAAG,MAAM,CAgB5E;AACD,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,OAAO,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,GAAE,MAAM,EAAO,UA8D3B"}
@@ -27,6 +27,7 @@ exports.serializeTransactionOutputs = serializeTransactionOutputs;
27
27
  function serializeTransaction(transaction, skipWitness, timestamp, additionals) {
28
28
  if (additionals === void 0) { additionals = []; }
29
29
  var isDecred = additionals.includes("decred");
30
+ var isZcash = additionals.includes("zcash");
30
31
  var isBech32 = additionals.includes("bech32");
31
32
  var inputBuffer = Buffer.alloc(0);
32
33
  var useWitness = typeof transaction["witness"] != "undefined" && !skipWitness;
@@ -58,6 +59,20 @@ function serializeTransaction(transaction, skipWitness, timestamp, additionals)
58
59
  transaction.extraData || Buffer.alloc(0),
59
60
  ]);
60
61
  }
62
+ // from to https://zips.z.cash/zip-0225, zcash is different with other coins, the lock_time and nExpiryHeight fields are before the inputs and outputs
63
+ if (isZcash) {
64
+ return Buffer.concat([
65
+ transaction.version,
66
+ transaction.nVersionGroupId || Buffer.alloc(0),
67
+ Buffer.from([0xb4, 0xd0, 0xd6, 0xc2]),
68
+ transaction.locktime || Buffer.from([0x00, 0x00, 0x00, 0x00]),
69
+ transaction.nExpiryHeight || Buffer.from([0x00, 0x00, 0x00, 0x00]),
70
+ useWitness ? Buffer.from("0001", "hex") : Buffer.alloc(0),
71
+ (0, varint_1.createVarint)(transaction.inputs.length),
72
+ inputBuffer,
73
+ outputBuffer,
74
+ ]);
75
+ }
61
76
  return Buffer.concat([
62
77
  transaction.version,
63
78
  timestamp ? timestamp : Buffer.alloc(0),
@@ -1 +1 @@
1
- {"version":3,"file":"serializeTransaction.js","sourceRoot":"","sources":["../src/serializeTransaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serializeTransaction.js","sourceRoot":"","sources":["../src/serializeTransaction.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"splitTransaction.d.ts","sourceRoot":"","sources":["../src/splitTransaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAuC,MAAM,SAAS,CAAC;AAGhF,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,MAAM,EACtB,iBAAiB,GAAE,OAAO,GAAG,IAAI,GAAG,SAAiB,EACrD,YAAY,UAAQ,EACpB,YAAY,UAAQ,EACpB,WAAW,GAAE,KAAK,CAAC,MAAM,CAAM,GAC9B,WAAW,CA0Jb"}
1
+ {"version":3,"file":"splitTransaction.d.ts","sourceRoot":"","sources":["../src/splitTransaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAuC,MAAM,SAAS,CAAC;AAGhF,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,MAAM,EACtB,iBAAiB,GAAE,OAAO,GAAG,IAAI,GAAG,SAAiB,EACrD,YAAY,UAAQ,EACpB,YAAY,UAAQ,EACpB,WAAW,GAAE,KAAK,CAAC,MAAM,CAAM,GAC9B,WAAW,CA+Jb"}
@@ -17,12 +17,16 @@ function splitTransaction(transactionHex, isSegwitSupported, hasTimestamp, hasEx
17
17
  var nExpiryHeight = Buffer.alloc(0);
18
18
  var nVersionGroupId = Buffer.alloc(0);
19
19
  var extraData = Buffer.alloc(0);
20
+ var witnessScript, locktime;
20
21
  var isDecred = additionals.includes("decred");
21
22
  var isZencash = additionals.includes("zencash");
23
+ var isZcash = additionals.includes("zcash");
22
24
  var transaction = Buffer.from(transactionHex, "hex");
23
25
  var version = transaction.slice(offset, offset + 4);
24
26
  var overwinter = version.equals(Buffer.from([0x03, 0x00, 0x00, 0x80])) ||
25
- version.equals(Buffer.from([0x04, 0x00, 0x00, 0x80]));
27
+ version.equals(Buffer.from([0x04, 0x00, 0x00, 0x80])) ||
28
+ version.equals(Buffer.from([0x05, 0x00, 0x00, 0x80]));
29
+ var isZcashv5 = isZcash && version.equals(Buffer.from([0x05, 0x00, 0x00, 0x80]));
26
30
  offset += 4;
27
31
  if (!hasTimestamp &&
28
32
  isSegwitSupported &&
@@ -40,6 +44,11 @@ function splitTransaction(transactionHex, isSegwitSupported, hasTimestamp, hasEx
40
44
  nVersionGroupId = transaction.slice(offset, 4 + offset);
41
45
  offset += 4;
42
46
  }
47
+ if (isZcashv5) {
48
+ locktime = transaction.slice(offset + 4, offset + 8);
49
+ nExpiryHeight = transaction.slice(offset + 8, offset + 12);
50
+ offset += 12;
51
+ }
43
52
  var varint = (0, varint_1.getVarint)(transaction, offset);
44
53
  var numberInputs = varint[0];
45
54
  offset += varint[1];
@@ -88,16 +97,15 @@ function splitTransaction(transactionHex, isSegwitSupported, hasTimestamp, hasEx
88
97
  script: script
89
98
  });
90
99
  }
91
- var witnessScript, locktime;
92
100
  if (witness) {
93
101
  witnessScript = transaction.slice(offset, -4);
94
102
  locktime = transaction.slice(transaction.length - 4);
95
103
  }
96
- else {
104
+ else if (!isZcashv5) {
97
105
  locktime = transaction.slice(offset, offset + 4);
98
106
  }
99
107
  offset += 4;
100
- if (overwinter || isDecred) {
108
+ if ((overwinter || isDecred) && !isZcashv5) {
101
109
  nExpiryHeight = transaction.slice(offset, offset + 4);
102
110
  offset += 4;
103
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"splitTransaction.js","sourceRoot":"","sources":["../src/splitTransaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"splitTransaction.js","sourceRoot":"","sources":["../src/splitTransaction.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"createTransaction.d.ts","sourceRoot":"","sources":["../src/createTransaction.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AAGpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAS1D,OAAO,KAAK,EAAqB,WAAW,EAAE,MAAM,SAAS,CAAC;AAY9D,YAAY,EAAE,aAAa,EAAE,CAAC;AAW9B;;GAEG;AACH,oBAAY,oBAAoB,GAAG;IACjC,MAAM,EAAE,KAAK,CACX;QAAC,WAAW;QAAE,MAAM;QAAE,MAAM,GAAG,IAAI,GAAG,SAAS;QAAE,MAAM,GAAG,IAAI,GAAG,SAAS;KAAC,CAC5E,CAAC;IACF,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,KAAK,IAAI,CAAC;IACX,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;CACvC,CAAC;AACF,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,oBAAoB,GACxB,OAAO,CAAC,MAAM,CAAC,CA4WjB"}
1
+ {"version":3,"file":"createTransaction.d.ts","sourceRoot":"","sources":["../src/createTransaction.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AAGpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAS1D,OAAO,KAAK,EAAqB,WAAW,EAAE,MAAM,SAAS,CAAC;AAY9D,YAAY,EAAE,aAAa,EAAE,CAAC;AAW9B;;GAEG;AACH,oBAAY,oBAAoB,GAAG;IACjC,MAAM,EAAE,KAAK,CACX;QAAC,WAAW;QAAE,MAAM;QAAE,MAAM,GAAG,IAAI,GAAG,SAAS;QAAE,MAAM,GAAG,IAAI,GAAG,SAAS;KAAC,CAC5E,CAAC;IACF,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,KAAK,IAAI,CAAC;IACX,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;CACvC,CAAC;AACF,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,oBAAoB,GACxB,OAAO,CAAC,MAAM,CAAC,CAmXjB"}
@@ -80,7 +80,7 @@ var defaultsSignTransaction = {
80
80
  };
81
81
  export function createTransaction(transport, arg) {
82
82
  return __awaiter(this, void 0, void 0, function () {
83
- var signTx, inputs, associatedKeysets, changePath, outputScriptHex, lockTime, sigHashType, segwit, initialTimestamp, additionals, expiryHeight, onDeviceStreaming, onDeviceSignatureGranted, onDeviceSignatureRequested, useTrustedInputForSegwit, a, e_1, notify, isDecred, isXST, startTime, sapling, bech32, useBip143, nullScript, nullPrevout, defaultVersion, trustedInputs, regularOutputs, signatures, publicKeys, firstRun, resuming, targetTransaction, getTrustedInputCall, outputScript, inputs_1, inputs_1_1, input, trustedInput, sequence, outputs, index, e_2_1, result_1, i, r, i, i, input, script, pseudoTX, pseudoTrustedInputs, signature, i, signatureSize, keySize, offset, lockTimeBuffer, result, witness, i, tmpScriptData, decredWitness_1;
83
+ var signTx, inputs, associatedKeysets, changePath, outputScriptHex, lockTime, sigHashType, segwit, initialTimestamp, additionals, expiryHeight, onDeviceStreaming, onDeviceSignatureGranted, onDeviceSignatureRequested, useTrustedInputForSegwit, a, e_1, notify, isDecred, isZcash, isXST, startTime, sapling, bech32, useBip143, lockTimeBuffer, nullScript, nullPrevout, defaultVersion, trustedInputs, regularOutputs, signatures, publicKeys, firstRun, resuming, targetTransaction, getTrustedInputCall, outputScript, inputs_1, inputs_1_1, input, trustedInput, sequence, outputs, index, e_2_1, result_1, i, r, i, i, input, script, pseudoTX, pseudoTrustedInputs, signature, i, signatureSize, keySize, offset, result, witness, i, tmpScriptData, decredWitness_1;
84
84
  var e_2, _a;
85
85
  return __generator(this, function (_b) {
86
86
  switch (_b.label) {
@@ -121,6 +121,7 @@ export function createTransaction(transport, arg) {
121
121
  });
122
122
  };
123
123
  isDecred = additionals.includes("decred");
124
+ isZcash = additionals.includes("zcash");
124
125
  isXST = additionals.includes("stealthcoin");
125
126
  startTime = Date.now();
126
127
  sapling = additionals.includes("sapling");
@@ -131,11 +132,13 @@ export function createTransaction(transport, arg) {
131
132
  additionals.includes("gold") ||
132
133
  additionals.includes("bip143"))) ||
133
134
  (!!expiryHeight && !isDecred);
135
+ lockTimeBuffer = Buffer.alloc(4);
136
+ lockTimeBuffer.writeUInt32LE(lockTime, 0);
134
137
  nullScript = Buffer.alloc(0);
135
138
  nullPrevout = Buffer.alloc(0);
136
139
  defaultVersion = Buffer.alloc(4);
137
140
  !!expiryHeight && !isDecred
138
- ? defaultVersion.writeUInt32LE(sapling ? 0x80000004 : 0x80000003, 0)
141
+ ? defaultVersion.writeUInt32LE(isZcash ? 0x80000005 : sapling ? 0x80000004 : 0x80000003, 0) // v5 format for zcash refer to https://zips.z.cash/zip-0225
139
142
  : isXST
140
143
  ? defaultVersion.writeUInt32LE(2, 0)
141
144
  : defaultVersion.writeUInt32LE(1, 0);
@@ -185,7 +188,13 @@ export function createTransaction(transport, arg) {
185
188
  regularOutputs.push(outputs[index]);
186
189
  }
187
190
  if (expiryHeight && !isDecred) {
188
- targetTransaction.nVersionGroupId = Buffer.from(sapling ? [0x85, 0x20, 0x2f, 0x89] : [0x70, 0x82, 0xc4, 0x03]);
191
+ targetTransaction.nVersionGroupId = Buffer.from(
192
+ // nVersionGroupId is 0x26A7270A for zcash from https://z.cash/upgrade/nu5/
193
+ isZcash
194
+ ? [0x0a, 0x27, 0xa7, 0x26]
195
+ : sapling
196
+ ? [0x85, 0x20, 0x2f, 0x89]
197
+ : [0x70, 0x82, 0xc4, 0x03]);
189
198
  targetTransaction.nExpiryHeight = expiryHeight;
190
199
  // For sapling : valueBalance (8), nShieldedSpend (1), nShieldedOutput (1), nJoinSplit (1)
191
200
  // Overwinter : use nJoinSplit (1)
@@ -212,13 +221,13 @@ export function createTransaction(transport, arg) {
212
221
  finally { if (e_2) throw e_2.error; }
213
222
  return [7 /*endfinally*/];
214
223
  case 13:
215
- targetTransaction.inputs = inputs.map(function (input) {
224
+ targetTransaction.inputs = inputs.map(function (input, idx) {
216
225
  var sequence = Buffer.alloc(4);
217
226
  sequence.writeUInt32LE(input.length >= 4 && typeof input[3] === "number"
218
227
  ? input[3]
219
228
  : DEFAULT_SEQUENCE, 0);
220
229
  return {
221
- script: nullScript,
230
+ script: isZcash ? regularOutputs[idx].script : nullScript,
222
231
  prevout: nullPrevout,
223
232
  sequence: sequence
224
233
  };
@@ -353,8 +362,7 @@ export function createTransaction(transport, arg) {
353
362
  offset = useBip143 && !useTrustedInputForSegwit ? 0 : 4;
354
363
  targetTransaction.inputs[i].prevout = trustedInputs[i].value.slice(offset, offset + 0x24);
355
364
  }
356
- lockTimeBuffer = Buffer.alloc(4);
357
- lockTimeBuffer.writeUInt32LE(lockTime, 0);
365
+ targetTransaction.locktime = lockTimeBuffer;
358
366
  result = Buffer.concat([
359
367
  serializeTransaction(targetTransaction, false, targetTransaction.timestamp, additionals),
360
368
  outputScript,
@@ -373,17 +381,16 @@ export function createTransaction(transport, arg) {
373
381
  }
374
382
  result = Buffer.concat([result, witness]);
375
383
  }
376
- // FIXME: In ZEC or KMD sapling lockTime is serialized before expiryHeight.
377
- // expiryHeight is used only in overwinter/sapling so I moved lockTimeBuffer here
378
- // and it should not break other coins because expiryHeight is false for them.
379
- // Don't know about Decred though.
380
- result = Buffer.concat([result, lockTimeBuffer]);
381
- if (expiryHeight) {
382
- result = Buffer.concat([
383
- result,
384
- targetTransaction.nExpiryHeight || Buffer.alloc(0),
385
- targetTransaction.extraData || Buffer.alloc(0),
386
- ]);
384
+ // from to https://zips.z.cash/zip-0225, zcash is different with other coins, the lock_time and nExpiryHeight fields are before the inputs and outputs
385
+ if (!isZcash) {
386
+ result = Buffer.concat([result, lockTimeBuffer]);
387
+ if (expiryHeight) {
388
+ result = Buffer.concat([
389
+ result,
390
+ targetTransaction.nExpiryHeight || Buffer.alloc(0),
391
+ targetTransaction.extraData || Buffer.alloc(0),
392
+ ]);
393
+ }
387
394
  }
388
395
  if (isDecred) {
389
396
  decredWitness_1 = Buffer.from([targetTransaction.inputs.length]);
@@ -399,6 +406,9 @@ export function createTransaction(transport, arg) {
399
406
  });
400
407
  result = Buffer.concat([result, decredWitness_1]);
401
408
  }
409
+ if (isZcash) {
410
+ result = Buffer.concat([result, Buffer.from([0x00, 0x00, 0x00])]);
411
+ }
402
412
  return [2 /*return*/, result.toString("hex")];
403
413
  }
404
414
  });
@@ -1 +1 @@
1
- {"version":3,"file":"createTransaction.js","sourceRoot":"","sources":["../src/createTransaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createTransaction.js","sourceRoot":"","sources":["../src/createTransaction.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"serializeTransaction.d.ts","sourceRoot":"","sources":["../src/serializeTransaction.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C;;;;IAII;AACJ,wBAAgB,2BAA2B,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,GAAG,MAAM,CAgB5E;AACD,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,OAAO,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,GAAE,MAAM,EAAO,UAgD3B"}
1
+ {"version":3,"file":"serializeTransaction.d.ts","sourceRoot":"","sources":["../src/serializeTransaction.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C;;;;IAII;AACJ,wBAAgB,2BAA2B,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,GAAG,MAAM,CAgB5E;AACD,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,OAAO,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,GAAE,MAAM,EAAO,UA8D3B"}
@@ -23,6 +23,7 @@ export function serializeTransactionOutputs(_a) {
23
23
  export function serializeTransaction(transaction, skipWitness, timestamp, additionals) {
24
24
  if (additionals === void 0) { additionals = []; }
25
25
  var isDecred = additionals.includes("decred");
26
+ var isZcash = additionals.includes("zcash");
26
27
  var isBech32 = additionals.includes("bech32");
27
28
  var inputBuffer = Buffer.alloc(0);
28
29
  var useWitness = typeof transaction["witness"] != "undefined" && !skipWitness;
@@ -54,6 +55,20 @@ export function serializeTransaction(transaction, skipWitness, timestamp, additi
54
55
  transaction.extraData || Buffer.alloc(0),
55
56
  ]);
56
57
  }
58
+ // from to https://zips.z.cash/zip-0225, zcash is different with other coins, the lock_time and nExpiryHeight fields are before the inputs and outputs
59
+ if (isZcash) {
60
+ return Buffer.concat([
61
+ transaction.version,
62
+ transaction.nVersionGroupId || Buffer.alloc(0),
63
+ Buffer.from([0xb4, 0xd0, 0xd6, 0xc2]),
64
+ transaction.locktime || Buffer.from([0x00, 0x00, 0x00, 0x00]),
65
+ transaction.nExpiryHeight || Buffer.from([0x00, 0x00, 0x00, 0x00]),
66
+ useWitness ? Buffer.from("0001", "hex") : Buffer.alloc(0),
67
+ createVarint(transaction.inputs.length),
68
+ inputBuffer,
69
+ outputBuffer,
70
+ ]);
71
+ }
57
72
  return Buffer.concat([
58
73
  transaction.version,
59
74
  timestamp ? timestamp : Buffer.alloc(0),
@@ -1 +1 @@
1
- {"version":3,"file":"serializeTransaction.js","sourceRoot":"","sources":["../src/serializeTransaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serializeTransaction.js","sourceRoot":"","sources":["../src/serializeTransaction.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"splitTransaction.d.ts","sourceRoot":"","sources":["../src/splitTransaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAuC,MAAM,SAAS,CAAC;AAGhF,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,MAAM,EACtB,iBAAiB,GAAE,OAAO,GAAG,IAAI,GAAG,SAAiB,EACrD,YAAY,UAAQ,EACpB,YAAY,UAAQ,EACpB,WAAW,GAAE,KAAK,CAAC,MAAM,CAAM,GAC9B,WAAW,CA0Jb"}
1
+ {"version":3,"file":"splitTransaction.d.ts","sourceRoot":"","sources":["../src/splitTransaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAuC,MAAM,SAAS,CAAC;AAGhF,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,MAAM,EACtB,iBAAiB,GAAE,OAAO,GAAG,IAAI,GAAG,SAAiB,EACrD,YAAY,UAAQ,EACpB,YAAY,UAAQ,EACpB,WAAW,GAAE,KAAK,CAAC,MAAM,CAAM,GAC9B,WAAW,CA+Jb"}
@@ -14,12 +14,16 @@ export function splitTransaction(transactionHex, isSegwitSupported, hasTimestamp
14
14
  var nExpiryHeight = Buffer.alloc(0);
15
15
  var nVersionGroupId = Buffer.alloc(0);
16
16
  var extraData = Buffer.alloc(0);
17
+ var witnessScript, locktime;
17
18
  var isDecred = additionals.includes("decred");
18
19
  var isZencash = additionals.includes("zencash");
20
+ var isZcash = additionals.includes("zcash");
19
21
  var transaction = Buffer.from(transactionHex, "hex");
20
22
  var version = transaction.slice(offset, offset + 4);
21
23
  var overwinter = version.equals(Buffer.from([0x03, 0x00, 0x00, 0x80])) ||
22
- version.equals(Buffer.from([0x04, 0x00, 0x00, 0x80]));
24
+ version.equals(Buffer.from([0x04, 0x00, 0x00, 0x80])) ||
25
+ version.equals(Buffer.from([0x05, 0x00, 0x00, 0x80]));
26
+ var isZcashv5 = isZcash && version.equals(Buffer.from([0x05, 0x00, 0x00, 0x80]));
23
27
  offset += 4;
24
28
  if (!hasTimestamp &&
25
29
  isSegwitSupported &&
@@ -37,6 +41,11 @@ export function splitTransaction(transactionHex, isSegwitSupported, hasTimestamp
37
41
  nVersionGroupId = transaction.slice(offset, 4 + offset);
38
42
  offset += 4;
39
43
  }
44
+ if (isZcashv5) {
45
+ locktime = transaction.slice(offset + 4, offset + 8);
46
+ nExpiryHeight = transaction.slice(offset + 8, offset + 12);
47
+ offset += 12;
48
+ }
40
49
  var varint = getVarint(transaction, offset);
41
50
  var numberInputs = varint[0];
42
51
  offset += varint[1];
@@ -85,16 +94,15 @@ export function splitTransaction(transactionHex, isSegwitSupported, hasTimestamp
85
94
  script: script
86
95
  });
87
96
  }
88
- var witnessScript, locktime;
89
97
  if (witness) {
90
98
  witnessScript = transaction.slice(offset, -4);
91
99
  locktime = transaction.slice(transaction.length - 4);
92
100
  }
93
- else {
101
+ else if (!isZcashv5) {
94
102
  locktime = transaction.slice(offset, offset + 4);
95
103
  }
96
104
  offset += 4;
97
- if (overwinter || isDecred) {
105
+ if ((overwinter || isDecred) && !isZcashv5) {
98
106
  nExpiryHeight = transaction.slice(offset, offset + 4);
99
107
  offset += 4;
100
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"splitTransaction.js","sourceRoot":"","sources":["../src/splitTransaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"splitTransaction.js","sourceRoot":"","sources":["../src/splitTransaction.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/hw-app-btc",
3
- "version": "8.0.2",
3
+ "version": "8.1.0-nightly.0",
4
4
  "description": "Ledger Hardware Wallet Bitcoin Application API",
5
5
  "keywords": [
6
6
  "Ledger",
@@ -69,8 +69,8 @@
69
69
  },
70
70
  "license": "Apache-2.0",
71
71
  "dependencies": {
72
- "@ledgerhq/hw-transport": "^6.27.4",
73
- "@ledgerhq/logs": "^6.10.0",
72
+ "@ledgerhq/hw-transport": "^6.27.5-nightly.0",
73
+ "@ledgerhq/logs": "^6.10.1-nightly.0",
74
74
  "bip32-path": "^0.4.2",
75
75
  "bitcoinjs-lib": "^5.2.0",
76
76
  "bs58": "^4.0.1",
@@ -83,8 +83,8 @@
83
83
  "varuint-bitcoin": "1.1.2"
84
84
  },
85
85
  "devDependencies": {
86
- "@ledgerhq/hw-transport-mocker": "^6.27.4",
87
- "@ledgerhq/hw-transport-node-speculos": "^6.27.4",
86
+ "@ledgerhq/hw-transport-mocker": "^6.27.5-nightly.0",
87
+ "@ledgerhq/hw-transport-node-speculos": "^6.27.5-nightly.0",
88
88
  "axios": "^0.25.0"
89
89
  },
90
90
  "gitHead": "dd0dea64b58e5a9125c8a422dcffd29e5ef6abec",
@@ -113,6 +113,7 @@ export async function createTransaction(
113
113
  };
114
114
 
115
115
  const isDecred = additionals.includes("decred");
116
+ const isZcash = additionals.includes("zcash");
116
117
  const isXST = additionals.includes("stealthcoin");
117
118
  const startTime = Date.now();
118
119
  const sapling = additionals.includes("sapling");
@@ -126,11 +127,16 @@ export async function createTransaction(
126
127
  (!!expiryHeight && !isDecred);
127
128
  // Inputs are provided as arrays of [transaction, output_index, optional redeem script, optional sequence]
128
129
  // associatedKeysets are provided as arrays of [path]
130
+ const lockTimeBuffer = Buffer.alloc(4);
131
+ lockTimeBuffer.writeUInt32LE(lockTime, 0);
129
132
  const nullScript = Buffer.alloc(0);
130
133
  const nullPrevout = Buffer.alloc(0);
131
134
  const defaultVersion = Buffer.alloc(4);
132
135
  !!expiryHeight && !isDecred
133
- ? defaultVersion.writeUInt32LE(sapling ? 0x80000004 : 0x80000003, 0)
136
+ ? defaultVersion.writeUInt32LE(
137
+ isZcash ? 0x80000005 : sapling ? 0x80000004 : 0x80000003,
138
+ 0
139
+ ) // v5 format for zcash refer to https://zips.z.cash/zip-0225
134
140
  : isXST
135
141
  ? defaultVersion.writeUInt32LE(2, 0)
136
142
  : defaultVersion.writeUInt32LE(1, 0);
@@ -152,7 +158,6 @@ export async function createTransaction(
152
158
  : getTrustedInput;
153
159
  const outputScript = Buffer.from(outputScriptHex, "hex");
154
160
  notify(0, 0);
155
-
156
161
  // first pass on inputs to get trusted inputs
157
162
  for (const input of inputs) {
158
163
  if (!resuming) {
@@ -186,7 +191,12 @@ export async function createTransaction(
186
191
 
187
192
  if (expiryHeight && !isDecred) {
188
193
  targetTransaction.nVersionGroupId = Buffer.from(
189
- sapling ? [0x85, 0x20, 0x2f, 0x89] : [0x70, 0x82, 0xc4, 0x03]
194
+ // nVersionGroupId is 0x26A7270A for zcash from https://z.cash/upgrade/nu5/
195
+ isZcash
196
+ ? [0x0a, 0x27, 0xa7, 0x26]
197
+ : sapling
198
+ ? [0x85, 0x20, 0x2f, 0x89]
199
+ : [0x70, 0x82, 0xc4, 0x03]
190
200
  );
191
201
  targetTransaction.nExpiryHeight = expiryHeight;
192
202
  // For sapling : valueBalance (8), nShieldedSpend (1), nShieldedOutput (1), nJoinSplit (1)
@@ -201,7 +211,7 @@ export async function createTransaction(
201
211
  }
202
212
  }
203
213
 
204
- targetTransaction.inputs = inputs.map((input) => {
214
+ targetTransaction.inputs = inputs.map((input, idx) => {
205
215
  const sequence = Buffer.alloc(4);
206
216
  sequence.writeUInt32LE(
207
217
  input.length >= 4 && typeof input[3] === "number"
@@ -210,7 +220,7 @@ export async function createTransaction(
210
220
  0
211
221
  );
212
222
  return {
213
- script: nullScript,
223
+ script: isZcash ? regularOutputs[idx].script : nullScript,
214
224
  prevout: nullPrevout,
215
225
  sequence,
216
226
  };
@@ -366,9 +376,7 @@ export async function createTransaction(
366
376
  offset + 0x24
367
377
  );
368
378
  }
369
-
370
- const lockTimeBuffer = Buffer.alloc(4);
371
- lockTimeBuffer.writeUInt32LE(lockTime, 0);
379
+ targetTransaction.locktime = lockTimeBuffer;
372
380
  let result = Buffer.concat([
373
381
  serializeTransaction(
374
382
  targetTransaction,
@@ -396,20 +404,17 @@ export async function createTransaction(
396
404
  result = Buffer.concat([result, witness]);
397
405
  }
398
406
 
399
- // FIXME: In ZEC or KMD sapling lockTime is serialized before expiryHeight.
400
- // expiryHeight is used only in overwinter/sapling so I moved lockTimeBuffer here
401
- // and it should not break other coins because expiryHeight is false for them.
402
- // Don't know about Decred though.
403
- result = Buffer.concat([result, lockTimeBuffer]);
404
-
405
- if (expiryHeight) {
406
- result = Buffer.concat([
407
- result,
408
- targetTransaction.nExpiryHeight || Buffer.alloc(0),
409
- targetTransaction.extraData || Buffer.alloc(0),
410
- ]);
407
+ // from to https://zips.z.cash/zip-0225, zcash is different with other coins, the lock_time and nExpiryHeight fields are before the inputs and outputs
408
+ if (!isZcash) {
409
+ result = Buffer.concat([result, lockTimeBuffer]);
410
+ if (expiryHeight) {
411
+ result = Buffer.concat([
412
+ result,
413
+ targetTransaction.nExpiryHeight || Buffer.alloc(0),
414
+ targetTransaction.extraData || Buffer.alloc(0),
415
+ ]);
416
+ }
411
417
  }
412
-
413
418
  if (isDecred) {
414
419
  let decredWitness = Buffer.from([targetTransaction.inputs.length]);
415
420
  inputs.forEach((input, inputIndex) => {
@@ -424,6 +429,8 @@ export async function createTransaction(
424
429
  });
425
430
  result = Buffer.concat([result, decredWitness]);
426
431
  }
427
-
432
+ if (isZcash) {
433
+ result = Buffer.concat([result, Buffer.from([0x00, 0x00, 0x00])]);
434
+ }
428
435
  return result.toString("hex");
429
436
  }
@@ -30,6 +30,7 @@ export function serializeTransaction(
30
30
  additionals: string[] = []
31
31
  ) {
32
32
  const isDecred = additionals.includes("decred");
33
+ const isZcash = additionals.includes("zcash");
33
34
  const isBech32 = additionals.includes("bech32");
34
35
  let inputBuffer = Buffer.alloc(0);
35
36
  const useWitness =
@@ -65,7 +66,20 @@ export function serializeTransaction(
65
66
  transaction.extraData || Buffer.alloc(0),
66
67
  ]);
67
68
  }
68
-
69
+ // from to https://zips.z.cash/zip-0225, zcash is different with other coins, the lock_time and nExpiryHeight fields are before the inputs and outputs
70
+ if (isZcash) {
71
+ return Buffer.concat([
72
+ transaction.version,
73
+ transaction.nVersionGroupId || Buffer.alloc(0),
74
+ Buffer.from([0xb4, 0xd0, 0xd6, 0xc2]), // Zcash Consensus Branch ID: 0xC2D6D0B4 refer to https://z.cash/upgrade/nu5/
75
+ transaction.locktime || Buffer.from([0x00, 0x00, 0x00, 0x00]),
76
+ transaction.nExpiryHeight || Buffer.from([0x00, 0x00, 0x00, 0x00]),
77
+ useWitness ? Buffer.from("0001", "hex") : Buffer.alloc(0),
78
+ createVarint(transaction.inputs.length),
79
+ inputBuffer,
80
+ outputBuffer,
81
+ ]);
82
+ }
69
83
  return Buffer.concat([
70
84
  transaction.version,
71
85
  timestamp ? timestamp : Buffer.alloc(0),
@@ -17,13 +17,18 @@ export function splitTransaction(
17
17
  let nExpiryHeight = Buffer.alloc(0);
18
18
  let nVersionGroupId = Buffer.alloc(0);
19
19
  let extraData = Buffer.alloc(0);
20
+ let witnessScript, locktime;
20
21
  const isDecred = additionals.includes("decred");
21
22
  const isZencash = additionals.includes("zencash");
23
+ const isZcash = additionals.includes("zcash");
22
24
  const transaction = Buffer.from(transactionHex, "hex");
23
25
  const version = transaction.slice(offset, offset + 4);
24
26
  const overwinter =
25
27
  version.equals(Buffer.from([0x03, 0x00, 0x00, 0x80])) ||
26
- version.equals(Buffer.from([0x04, 0x00, 0x00, 0x80]));
28
+ version.equals(Buffer.from([0x04, 0x00, 0x00, 0x80])) ||
29
+ version.equals(Buffer.from([0x05, 0x00, 0x00, 0x80]));
30
+ const isZcashv5 =
31
+ isZcash && version.equals(Buffer.from([0x05, 0x00, 0x00, 0x80]));
27
32
  offset += 4;
28
33
  if (
29
34
  !hasTimestamp &&
@@ -45,7 +50,11 @@ export function splitTransaction(
45
50
  nVersionGroupId = transaction.slice(offset, 4 + offset);
46
51
  offset += 4;
47
52
  }
48
-
53
+ if (isZcashv5) {
54
+ locktime = transaction.slice(offset + 4, offset + 8);
55
+ nExpiryHeight = transaction.slice(offset + 8, offset + 12);
56
+ offset += 12;
57
+ }
49
58
  let varint = getVarint(transaction, offset);
50
59
  const numberInputs = varint[0];
51
60
  offset += varint[1];
@@ -77,11 +86,9 @@ export function splitTransaction(
77
86
  tree,
78
87
  });
79
88
  }
80
-
81
89
  varint = getVarint(transaction, offset);
82
90
  const numberOutputs = varint[0];
83
91
  offset += varint[1];
84
-
85
92
  for (let i = 0; i < numberOutputs; i++) {
86
93
  const amount = transaction.slice(offset, offset + 8);
87
94
  offset += 8;
@@ -101,18 +108,16 @@ export function splitTransaction(
101
108
  });
102
109
  }
103
110
 
104
- let witnessScript, locktime;
105
-
106
111
  if (witness) {
107
112
  witnessScript = transaction.slice(offset, -4);
108
113
  locktime = transaction.slice(transaction.length - 4);
109
- } else {
114
+ } else if (!isZcashv5) {
110
115
  locktime = transaction.slice(offset, offset + 4);
111
116
  }
112
117
 
113
118
  offset += 4;
114
119
 
115
- if (overwinter || isDecred) {
120
+ if ((overwinter || isDecred) && !isZcashv5) {
116
121
  nExpiryHeight = transaction.slice(offset, offset + 4);
117
122
  offset += 4;
118
123
  }