@ledgerhq/hw-app-btc 6.24.2-monorepo.0 → 6.24.2-monorepo.4

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.
Files changed (283) hide show
  1. package/.turbo/turbo-build.log +5 -1
  2. package/CHANGELOG.md +36 -0
  3. package/lib/Btc.d.ts +149 -0
  4. package/lib/Btc.d.ts.map +1 -0
  5. package/lib/Btc.js +357 -0
  6. package/lib/Btc.js.map +1 -0
  7. package/lib/BtcNew.d.ts +122 -0
  8. package/lib/BtcNew.d.ts.map +1 -0
  9. package/lib/BtcNew.js +451 -0
  10. package/lib/BtcNew.js.map +1 -0
  11. package/lib/BtcOld.d.ts +120 -0
  12. package/lib/BtcOld.d.ts.map +1 -0
  13. package/lib/BtcOld.js +263 -0
  14. package/lib/BtcOld.js.map +1 -0
  15. package/lib/bip32.d.ts +13 -0
  16. package/lib/bip32.d.ts.map +1 -0
  17. package/lib/bip32.js +57 -0
  18. package/lib/bip32.js.map +1 -0
  19. package/lib/buffertools.d.ts +30 -0
  20. package/lib/buffertools.d.ts.map +1 -0
  21. package/lib/buffertools.js +132 -0
  22. package/lib/buffertools.js.map +1 -0
  23. package/lib/compressPublicKey.d.ts +3 -0
  24. package/lib/compressPublicKey.d.ts.map +1 -0
  25. package/lib/compressPublicKey.js +11 -0
  26. package/lib/compressPublicKey.js.map +1 -0
  27. package/lib/constants.d.ts +13 -0
  28. package/lib/constants.d.ts.map +1 -0
  29. package/lib/constants.js +17 -0
  30. package/lib/constants.js.map +1 -0
  31. package/lib/createTransaction.d.ts +35 -0
  32. package/lib/createTransaction.d.ts.map +1 -0
  33. package/lib/createTransaction.js +411 -0
  34. package/lib/createTransaction.js.map +1 -0
  35. package/lib/debug.d.ts +4 -0
  36. package/lib/debug.d.ts.map +1 -0
  37. package/lib/debug.js +45 -0
  38. package/lib/debug.js.map +1 -0
  39. package/lib/finalizeInput.d.ts +5 -0
  40. package/lib/finalizeInput.d.ts.map +1 -0
  41. package/lib/finalizeInput.js +81 -0
  42. package/lib/finalizeInput.js.map +1 -0
  43. package/lib/getAppAndVersion.d.ts +9 -0
  44. package/lib/getAppAndVersion.d.ts.map +1 -0
  45. package/lib/getAppAndVersion.js +69 -0
  46. package/lib/getAppAndVersion.js.map +1 -0
  47. package/lib/getTrustedInput.d.ts +6 -0
  48. package/lib/getTrustedInput.d.ts.map +1 -0
  49. package/lib/getTrustedInput.js +275 -0
  50. package/lib/getTrustedInput.js.map +1 -0
  51. package/lib/getTrustedInputBIP143.d.ts +4 -0
  52. package/lib/getTrustedInputBIP143.d.ts.map +1 -0
  53. package/lib/getTrustedInputBIP143.js +34 -0
  54. package/lib/getTrustedInputBIP143.js.map +1 -0
  55. package/lib/getWalletPublicKey.d.ts +15 -0
  56. package/lib/getWalletPublicKey.d.ts.map +1 -0
  57. package/lib/getWalletPublicKey.js +93 -0
  58. package/lib/getWalletPublicKey.js.map +1 -0
  59. package/lib/hashPublicKey.d.ts +3 -0
  60. package/lib/hashPublicKey.d.ts.map +1 -0
  61. package/lib/hashPublicKey.js +13 -0
  62. package/lib/hashPublicKey.js.map +1 -0
  63. package/lib/index.d.ts +3 -0
  64. package/lib/index.d.ts.map +1 -0
  65. package/lib/index.js +8 -0
  66. package/lib/index.js.map +1 -0
  67. package/lib/newops/accounttype.d.ts +110 -0
  68. package/lib/newops/accounttype.d.ts.map +1 -0
  69. package/lib/newops/accounttype.js +236 -0
  70. package/lib/newops/accounttype.js.map +1 -0
  71. package/lib/newops/appClient.d.ts +18 -0
  72. package/lib/newops/appClient.d.ts.map +1 -0
  73. package/lib/newops/appClient.js +243 -0
  74. package/lib/newops/appClient.js.map +1 -0
  75. package/lib/newops/clientCommands.d.ts +77 -0
  76. package/lib/newops/clientCommands.d.ts.map +1 -0
  77. package/lib/newops/clientCommands.js +353 -0
  78. package/lib/newops/clientCommands.js.map +1 -0
  79. package/lib/newops/merkelizedPsbt.d.ts +26 -0
  80. package/lib/newops/merkelizedPsbt.d.ts.map +1 -0
  81. package/lib/newops/merkelizedPsbt.js +102 -0
  82. package/lib/newops/merkelizedPsbt.js.map +1 -0
  83. package/lib/newops/merkle.d.ts +34 -0
  84. package/lib/newops/merkle.d.ts.map +1 -0
  85. package/lib/newops/merkle.js +138 -0
  86. package/lib/newops/merkle.js.map +1 -0
  87. package/lib/newops/merkleMap.d.ts +25 -0
  88. package/lib/newops/merkleMap.d.ts.map +1 -0
  89. package/lib/newops/merkleMap.js +47 -0
  90. package/lib/newops/merkleMap.js.map +1 -0
  91. package/lib/newops/policy.d.ts +22 -0
  92. package/lib/newops/policy.d.ts.map +1 -0
  93. package/lib/newops/policy.js +48 -0
  94. package/lib/newops/policy.js.map +1 -0
  95. package/lib/newops/psbtExtractor.d.ts +10 -0
  96. package/lib/newops/psbtExtractor.d.ts.map +1 -0
  97. package/lib/newops/psbtExtractor.js +42 -0
  98. package/lib/newops/psbtExtractor.js.map +1 -0
  99. package/lib/newops/psbtFinalizer.d.ts +17 -0
  100. package/lib/newops/psbtFinalizer.d.ts.map +1 -0
  101. package/lib/newops/psbtFinalizer.js +135 -0
  102. package/lib/newops/psbtFinalizer.js.map +1 -0
  103. package/lib/newops/psbtv2.d.ts +149 -0
  104. package/lib/newops/psbtv2.d.ts.map +1 -0
  105. package/lib/newops/psbtv2.js +506 -0
  106. package/lib/newops/psbtv2.js.map +1 -0
  107. package/lib/serializeTransaction.d.ts +10 -0
  108. package/lib/serializeTransaction.d.ts.map +1 -0
  109. package/lib/serializeTransaction.js +72 -0
  110. package/lib/serializeTransaction.js.map +1 -0
  111. package/lib/shouldUseTrustedInputForSegwit.d.ts +5 -0
  112. package/lib/shouldUseTrustedInputForSegwit.d.ts.map +1 -0
  113. package/lib/shouldUseTrustedInputForSegwit.js +17 -0
  114. package/lib/shouldUseTrustedInputForSegwit.js.map +1 -0
  115. package/lib/signMessage.d.ts +10 -0
  116. package/lib/signMessage.d.ts.map +1 -0
  117. package/lib/signMessage.js +118 -0
  118. package/lib/signMessage.js.map +1 -0
  119. package/lib/signP2SHTransaction.d.ts +21 -0
  120. package/lib/signP2SHTransaction.d.ts.map +1 -0
  121. package/lib/signP2SHTransaction.js +208 -0
  122. package/lib/signP2SHTransaction.js.map +1 -0
  123. package/lib/signTransaction.d.ts +4 -0
  124. package/lib/signTransaction.d.ts.map +1 -0
  125. package/lib/signTransaction.js +36 -0
  126. package/lib/signTransaction.js.map +1 -0
  127. package/lib/splitTransaction.d.ts +3 -0
  128. package/lib/splitTransaction.d.ts.map +1 -0
  129. package/lib/splitTransaction.js +142 -0
  130. package/lib/splitTransaction.js.map +1 -0
  131. package/lib/startUntrustedHashTransactionInput.d.ts +9 -0
  132. package/lib/startUntrustedHashTransactionInput.d.ts.map +1 -0
  133. package/lib/startUntrustedHashTransactionInput.js +197 -0
  134. package/lib/startUntrustedHashTransactionInput.js.map +1 -0
  135. package/lib/types.d.ts +34 -0
  136. package/lib/types.d.ts.map +1 -0
  137. package/lib/types.js +3 -0
  138. package/lib/types.js.map +1 -0
  139. package/lib/varint.d.ts +4 -0
  140. package/lib/varint.d.ts.map +1 -0
  141. package/lib/varint.js +45 -0
  142. package/lib/varint.js.map +1 -0
  143. package/lib-es/Btc.d.ts +149 -0
  144. package/lib-es/Btc.d.ts.map +1 -0
  145. package/lib-es/Btc.js +329 -0
  146. package/lib-es/Btc.js.map +1 -0
  147. package/lib-es/BtcNew.d.ts +122 -0
  148. package/lib-es/BtcNew.d.ts.map +1 -0
  149. package/lib-es/BtcNew.js +444 -0
  150. package/lib-es/BtcNew.js.map +1 -0
  151. package/lib-es/BtcOld.d.ts +120 -0
  152. package/lib-es/BtcOld.d.ts.map +1 -0
  153. package/lib-es/BtcOld.js +258 -0
  154. package/lib-es/BtcOld.js.map +1 -0
  155. package/lib-es/bip32.d.ts +13 -0
  156. package/lib-es/bip32.d.ts.map +1 -0
  157. package/lib-es/bip32.js +44 -0
  158. package/lib-es/bip32.js.map +1 -0
  159. package/lib-es/buffertools.d.ts +30 -0
  160. package/lib-es/buffertools.d.ts.map +1 -0
  161. package/lib-es/buffertools.js +124 -0
  162. package/lib-es/buffertools.js.map +1 -0
  163. package/lib-es/compressPublicKey.d.ts +3 -0
  164. package/lib-es/compressPublicKey.d.ts.map +1 -0
  165. package/lib-es/compressPublicKey.js +7 -0
  166. package/lib-es/compressPublicKey.js.map +1 -0
  167. package/lib-es/constants.d.ts +13 -0
  168. package/lib-es/constants.d.ts.map +1 -0
  169. package/lib-es/constants.js +14 -0
  170. package/lib-es/constants.js.map +1 -0
  171. package/lib-es/createTransaction.d.ts +35 -0
  172. package/lib-es/createTransaction.d.ts.map +1 -0
  173. package/lib-es/createTransaction.js +407 -0
  174. package/lib-es/createTransaction.js.map +1 -0
  175. package/lib-es/debug.d.ts +4 -0
  176. package/lib-es/debug.d.ts.map +1 -0
  177. package/lib-es/debug.js +40 -0
  178. package/lib-es/debug.js.map +1 -0
  179. package/lib-es/finalizeInput.d.ts +5 -0
  180. package/lib-es/finalizeInput.d.ts.map +1 -0
  181. package/lib-es/finalizeInput.js +76 -0
  182. package/lib-es/finalizeInput.js.map +1 -0
  183. package/lib-es/getAppAndVersion.d.ts +9 -0
  184. package/lib-es/getAppAndVersion.d.ts.map +1 -0
  185. package/lib-es/getAppAndVersion.js +62 -0
  186. package/lib-es/getAppAndVersion.js.map +1 -0
  187. package/lib-es/getTrustedInput.d.ts +6 -0
  188. package/lib-es/getTrustedInput.d.ts.map +1 -0
  189. package/lib-es/getTrustedInput.js +267 -0
  190. package/lib-es/getTrustedInput.js.map +1 -0
  191. package/lib-es/getTrustedInputBIP143.d.ts +4 -0
  192. package/lib-es/getTrustedInputBIP143.d.ts.map +1 -0
  193. package/lib-es/getTrustedInputBIP143.js +27 -0
  194. package/lib-es/getTrustedInputBIP143.js.map +1 -0
  195. package/lib-es/getWalletPublicKey.d.ts +15 -0
  196. package/lib-es/getWalletPublicKey.d.ts.map +1 -0
  197. package/lib-es/getWalletPublicKey.js +89 -0
  198. package/lib-es/getWalletPublicKey.js.map +1 -0
  199. package/lib-es/hashPublicKey.d.ts +3 -0
  200. package/lib-es/hashPublicKey.d.ts.map +1 -0
  201. package/lib-es/hashPublicKey.js +6 -0
  202. package/lib-es/hashPublicKey.js.map +1 -0
  203. package/lib-es/index.d.ts +3 -0
  204. package/lib-es/index.d.ts.map +1 -0
  205. package/lib-es/index.js +3 -0
  206. package/lib-es/index.js.map +1 -0
  207. package/lib-es/newops/accounttype.d.ts +110 -0
  208. package/lib-es/newops/accounttype.d.ts.map +1 -0
  209. package/lib-es/newops/accounttype.js +233 -0
  210. package/lib-es/newops/accounttype.js.map +1 -0
  211. package/lib-es/newops/appClient.d.ts +18 -0
  212. package/lib-es/newops/appClient.d.ts.map +1 -0
  213. package/lib-es/newops/appClient.js +240 -0
  214. package/lib-es/newops/appClient.js.map +1 -0
  215. package/lib-es/newops/clientCommands.d.ts +77 -0
  216. package/lib-es/newops/clientCommands.d.ts.map +1 -0
  217. package/lib-es/newops/clientCommands.js +350 -0
  218. package/lib-es/newops/clientCommands.js.map +1 -0
  219. package/lib-es/newops/merkelizedPsbt.d.ts +26 -0
  220. package/lib-es/newops/merkelizedPsbt.d.ts.map +1 -0
  221. package/lib-es/newops/merkelizedPsbt.js +99 -0
  222. package/lib-es/newops/merkelizedPsbt.js.map +1 -0
  223. package/lib-es/newops/merkle.d.ts +34 -0
  224. package/lib-es/newops/merkle.d.ts.map +1 -0
  225. package/lib-es/newops/merkle.js +134 -0
  226. package/lib-es/newops/merkle.js.map +1 -0
  227. package/lib-es/newops/merkleMap.d.ts +25 -0
  228. package/lib-es/newops/merkleMap.d.ts.map +1 -0
  229. package/lib-es/newops/merkleMap.js +44 -0
  230. package/lib-es/newops/merkleMap.js.map +1 -0
  231. package/lib-es/newops/policy.d.ts +22 -0
  232. package/lib-es/newops/policy.d.ts.map +1 -0
  233. package/lib-es/newops/policy.js +44 -0
  234. package/lib-es/newops/policy.js.map +1 -0
  235. package/lib-es/newops/psbtExtractor.d.ts +10 -0
  236. package/lib-es/newops/psbtExtractor.d.ts.map +1 -0
  237. package/lib-es/newops/psbtExtractor.js +38 -0
  238. package/lib-es/newops/psbtExtractor.js.map +1 -0
  239. package/lib-es/newops/psbtFinalizer.d.ts +17 -0
  240. package/lib-es/newops/psbtFinalizer.d.ts.map +1 -0
  241. package/lib-es/newops/psbtFinalizer.js +131 -0
  242. package/lib-es/newops/psbtFinalizer.js.map +1 -0
  243. package/lib-es/newops/psbtv2.d.ts +149 -0
  244. package/lib-es/newops/psbtv2.d.ts.map +1 -0
  245. package/lib-es/newops/psbtv2.js +503 -0
  246. package/lib-es/newops/psbtv2.js.map +1 -0
  247. package/lib-es/serializeTransaction.d.ts +10 -0
  248. package/lib-es/serializeTransaction.d.ts.map +1 -0
  249. package/lib-es/serializeTransaction.js +67 -0
  250. package/lib-es/serializeTransaction.js.map +1 -0
  251. package/lib-es/shouldUseTrustedInputForSegwit.d.ts +5 -0
  252. package/lib-es/shouldUseTrustedInputForSegwit.d.ts.map +1 -0
  253. package/lib-es/shouldUseTrustedInputForSegwit.js +10 -0
  254. package/lib-es/shouldUseTrustedInputForSegwit.js.map +1 -0
  255. package/lib-es/signMessage.d.ts +10 -0
  256. package/lib-es/signMessage.d.ts.map +1 -0
  257. package/lib-es/signMessage.js +111 -0
  258. package/lib-es/signMessage.js.map +1 -0
  259. package/lib-es/signP2SHTransaction.d.ts +21 -0
  260. package/lib-es/signP2SHTransaction.d.ts.map +1 -0
  261. package/lib-es/signP2SHTransaction.js +204 -0
  262. package/lib-es/signP2SHTransaction.js.map +1 -0
  263. package/lib-es/signTransaction.d.ts +4 -0
  264. package/lib-es/signTransaction.d.ts.map +1 -0
  265. package/lib-es/signTransaction.js +32 -0
  266. package/lib-es/signTransaction.js.map +1 -0
  267. package/lib-es/splitTransaction.d.ts +3 -0
  268. package/lib-es/splitTransaction.d.ts.map +1 -0
  269. package/lib-es/splitTransaction.js +138 -0
  270. package/lib-es/splitTransaction.js.map +1 -0
  271. package/lib-es/startUntrustedHashTransactionInput.d.ts +9 -0
  272. package/lib-es/startUntrustedHashTransactionInput.d.ts.map +1 -0
  273. package/lib-es/startUntrustedHashTransactionInput.js +192 -0
  274. package/lib-es/startUntrustedHashTransactionInput.js.map +1 -0
  275. package/lib-es/types.d.ts +34 -0
  276. package/lib-es/types.d.ts.map +1 -0
  277. package/lib-es/types.js +2 -0
  278. package/lib-es/types.js.map +1 -0
  279. package/lib-es/varint.d.ts +4 -0
  280. package/lib-es/varint.d.ts.map +1 -0
  281. package/lib-es/varint.js +40 -0
  282. package/lib-es/varint.js.map +1 -0
  283. package/package.json +5 -5
@@ -0,0 +1,407 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (_) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ var __values = (this && this.__values) || function(o) {
49
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
50
+ if (m) return m.call(o);
51
+ if (o && typeof o.length === "number") return {
52
+ next: function () {
53
+ if (o && i >= o.length) o = void 0;
54
+ return { value: o && o[i++], done: !o };
55
+ }
56
+ };
57
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
58
+ };
59
+ import { log } from "@ledgerhq/logs";
60
+ import { hashPublicKey } from "./hashPublicKey";
61
+ import { getWalletPublicKey } from "./getWalletPublicKey";
62
+ import { getTrustedInput } from "./getTrustedInput";
63
+ import { startUntrustedHashTransactionInput } from "./startUntrustedHashTransactionInput";
64
+ import { serializeTransaction } from "./serializeTransaction";
65
+ import { getTrustedInputBIP143 } from "./getTrustedInputBIP143";
66
+ import { compressPublicKey } from "./compressPublicKey";
67
+ import { signTransaction } from "./signTransaction";
68
+ import { hashOutputFull, provideOutputFullChangePath } from "./finalizeInput";
69
+ import { getAppAndVersion } from "./getAppAndVersion";
70
+ import { DEFAULT_LOCKTIME, DEFAULT_SEQUENCE, SIGHASH_ALL, OP_DUP, OP_HASH160, HASH_SIZE, OP_EQUALVERIFY, OP_CHECKSIG, } from "./constants";
71
+ import { shouldUseTrustedInputForSegwit } from "./shouldUseTrustedInputForSegwit";
72
+ var defaultsSignTransaction = {
73
+ lockTime: DEFAULT_LOCKTIME,
74
+ sigHashType: SIGHASH_ALL,
75
+ segwit: false,
76
+ additionals: [],
77
+ onDeviceStreaming: function (_e) { },
78
+ onDeviceSignatureGranted: function () { },
79
+ onDeviceSignatureRequested: function () { }
80
+ };
81
+ export function createTransaction(transport, arg) {
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;
84
+ var e_2, _a;
85
+ return __generator(this, function (_b) {
86
+ switch (_b.label) {
87
+ case 0:
88
+ signTx = __assign(__assign({}, defaultsSignTransaction), arg);
89
+ inputs = signTx.inputs, associatedKeysets = signTx.associatedKeysets, changePath = signTx.changePath, outputScriptHex = signTx.outputScriptHex, lockTime = signTx.lockTime, sigHashType = signTx.sigHashType, segwit = signTx.segwit, initialTimestamp = signTx.initialTimestamp, additionals = signTx.additionals, expiryHeight = signTx.expiryHeight, onDeviceStreaming = signTx.onDeviceStreaming, onDeviceSignatureGranted = signTx.onDeviceSignatureGranted, onDeviceSignatureRequested = signTx.onDeviceSignatureRequested;
90
+ useTrustedInputForSegwit = signTx.useTrustedInputForSegwit;
91
+ if (!(useTrustedInputForSegwit === undefined)) return [3 /*break*/, 4];
92
+ _b.label = 1;
93
+ case 1:
94
+ _b.trys.push([1, 3, , 4]);
95
+ return [4 /*yield*/, getAppAndVersion(transport)];
96
+ case 2:
97
+ a = _b.sent();
98
+ useTrustedInputForSegwit = shouldUseTrustedInputForSegwit(a);
99
+ return [3 /*break*/, 4];
100
+ case 3:
101
+ e_1 = _b.sent();
102
+ if (e_1.statusCode === 0x6d00) {
103
+ useTrustedInputForSegwit = false;
104
+ }
105
+ else {
106
+ throw e_1;
107
+ }
108
+ return [3 /*break*/, 4];
109
+ case 4:
110
+ notify = function (loop, i) {
111
+ var length = inputs.length;
112
+ if (length < 3)
113
+ return; // there is not enough significant event to worth notifying (aka just use a spinner)
114
+ var index = length * loop + i;
115
+ var total = 2 * length;
116
+ var progress = index / total;
117
+ onDeviceStreaming({
118
+ progress: progress,
119
+ total: total,
120
+ index: index
121
+ });
122
+ };
123
+ isDecred = additionals.includes("decred");
124
+ isXST = additionals.includes("stealthcoin");
125
+ startTime = Date.now();
126
+ sapling = additionals.includes("sapling");
127
+ bech32 = segwit && additionals.includes("bech32");
128
+ useBip143 = segwit ||
129
+ (!!additionals &&
130
+ (additionals.includes("abc") ||
131
+ additionals.includes("gold") ||
132
+ additionals.includes("bip143"))) ||
133
+ (!!expiryHeight && !isDecred);
134
+ nullScript = Buffer.alloc(0);
135
+ nullPrevout = Buffer.alloc(0);
136
+ defaultVersion = Buffer.alloc(4);
137
+ !!expiryHeight && !isDecred
138
+ ? defaultVersion.writeUInt32LE(sapling ? 0x80000004 : 0x80000003, 0)
139
+ : isXST
140
+ ? defaultVersion.writeUInt32LE(2, 0)
141
+ : defaultVersion.writeUInt32LE(1, 0);
142
+ trustedInputs = [];
143
+ regularOutputs = [];
144
+ signatures = [];
145
+ publicKeys = [];
146
+ firstRun = true;
147
+ resuming = false;
148
+ targetTransaction = {
149
+ inputs: [],
150
+ version: defaultVersion,
151
+ timestamp: Buffer.alloc(0)
152
+ };
153
+ getTrustedInputCall = useBip143 && !useTrustedInputForSegwit
154
+ ? getTrustedInputBIP143
155
+ : getTrustedInput;
156
+ outputScript = Buffer.from(outputScriptHex, "hex");
157
+ notify(0, 0);
158
+ _b.label = 5;
159
+ case 5:
160
+ _b.trys.push([5, 11, 12, 13]);
161
+ inputs_1 = __values(inputs), inputs_1_1 = inputs_1.next();
162
+ _b.label = 6;
163
+ case 6:
164
+ if (!!inputs_1_1.done) return [3 /*break*/, 10];
165
+ input = inputs_1_1.value;
166
+ if (!!resuming) return [3 /*break*/, 8];
167
+ return [4 /*yield*/, getTrustedInputCall(transport, input[1], input[0], additionals)];
168
+ case 7:
169
+ trustedInput = _b.sent();
170
+ log("hw", "got trustedInput=" + trustedInput);
171
+ sequence = Buffer.alloc(4);
172
+ sequence.writeUInt32LE(input.length >= 4 && typeof input[3] === "number"
173
+ ? input[3]
174
+ : DEFAULT_SEQUENCE, 0);
175
+ trustedInputs.push({
176
+ trustedInput: true,
177
+ value: Buffer.from(trustedInput, "hex"),
178
+ sequence: sequence
179
+ });
180
+ _b.label = 8;
181
+ case 8:
182
+ outputs = input[0].outputs;
183
+ index = input[1];
184
+ if (outputs && index <= outputs.length - 1) {
185
+ regularOutputs.push(outputs[index]);
186
+ }
187
+ if (expiryHeight && !isDecred) {
188
+ targetTransaction.nVersionGroupId = Buffer.from(sapling ? [0x85, 0x20, 0x2f, 0x89] : [0x70, 0x82, 0xc4, 0x03]);
189
+ targetTransaction.nExpiryHeight = expiryHeight;
190
+ // For sapling : valueBalance (8), nShieldedSpend (1), nShieldedOutput (1), nJoinSplit (1)
191
+ // Overwinter : use nJoinSplit (1)
192
+ targetTransaction.extraData = Buffer.from(sapling
193
+ ? [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]
194
+ : [0x00]);
195
+ }
196
+ else if (isDecred) {
197
+ targetTransaction.nExpiryHeight = expiryHeight;
198
+ }
199
+ _b.label = 9;
200
+ case 9:
201
+ inputs_1_1 = inputs_1.next();
202
+ return [3 /*break*/, 6];
203
+ case 10: return [3 /*break*/, 13];
204
+ case 11:
205
+ e_2_1 = _b.sent();
206
+ e_2 = { error: e_2_1 };
207
+ return [3 /*break*/, 13];
208
+ case 12:
209
+ try {
210
+ if (inputs_1_1 && !inputs_1_1.done && (_a = inputs_1["return"])) _a.call(inputs_1);
211
+ }
212
+ finally { if (e_2) throw e_2.error; }
213
+ return [7 /*endfinally*/];
214
+ case 13:
215
+ targetTransaction.inputs = inputs.map(function (input) {
216
+ var sequence = Buffer.alloc(4);
217
+ sequence.writeUInt32LE(input.length >= 4 && typeof input[3] === "number"
218
+ ? input[3]
219
+ : DEFAULT_SEQUENCE, 0);
220
+ return {
221
+ script: nullScript,
222
+ prevout: nullPrevout,
223
+ sequence: sequence
224
+ };
225
+ });
226
+ if (!!resuming) return [3 /*break*/, 18];
227
+ result_1 = [];
228
+ i = 0;
229
+ _b.label = 14;
230
+ case 14:
231
+ if (!(i < inputs.length)) return [3 /*break*/, 17];
232
+ return [4 /*yield*/, getWalletPublicKey(transport, {
233
+ path: associatedKeysets[i]
234
+ })];
235
+ case 15:
236
+ r = _b.sent();
237
+ notify(0, i + 1);
238
+ result_1.push(r);
239
+ _b.label = 16;
240
+ case 16:
241
+ i++;
242
+ return [3 /*break*/, 14];
243
+ case 17:
244
+ for (i = 0; i < result_1.length; i++) {
245
+ publicKeys.push(compressPublicKey(Buffer.from(result_1[i].publicKey, "hex")));
246
+ }
247
+ _b.label = 18;
248
+ case 18:
249
+ if (initialTimestamp !== undefined) {
250
+ targetTransaction.timestamp = Buffer.alloc(4);
251
+ targetTransaction.timestamp.writeUInt32LE(Math.floor(initialTimestamp + (Date.now() - startTime) / 1000), 0);
252
+ }
253
+ onDeviceSignatureRequested();
254
+ if (!useBip143) return [3 /*break*/, 23];
255
+ // Do the first run with all inputs
256
+ return [4 /*yield*/, startUntrustedHashTransactionInput(transport, true, targetTransaction, trustedInputs, true, !!expiryHeight, additionals, useTrustedInputForSegwit)];
257
+ case 19:
258
+ // Do the first run with all inputs
259
+ _b.sent();
260
+ if (!(!resuming && changePath)) return [3 /*break*/, 21];
261
+ return [4 /*yield*/, provideOutputFullChangePath(transport, changePath)];
262
+ case 20:
263
+ _b.sent();
264
+ _b.label = 21;
265
+ case 21: return [4 /*yield*/, hashOutputFull(transport, outputScript)];
266
+ case 22:
267
+ _b.sent();
268
+ _b.label = 23;
269
+ case 23:
270
+ if (!(!!expiryHeight && !isDecred)) return [3 /*break*/, 25];
271
+ return [4 /*yield*/, signTransaction(transport, "", lockTime, SIGHASH_ALL, expiryHeight)];
272
+ case 24:
273
+ _b.sent();
274
+ _b.label = 25;
275
+ case 25:
276
+ i = 0;
277
+ _b.label = 26;
278
+ case 26:
279
+ if (!(i < inputs.length)) return [3 /*break*/, 34];
280
+ input = inputs[i];
281
+ script = inputs[i].length >= 3 && typeof input[2] === "string"
282
+ ? Buffer.from(input[2], "hex")
283
+ : !segwit
284
+ ? regularOutputs[i].script
285
+ : Buffer.concat([
286
+ Buffer.from([OP_DUP, OP_HASH160, HASH_SIZE]),
287
+ hashPublicKey(publicKeys[i]),
288
+ Buffer.from([OP_EQUALVERIFY, OP_CHECKSIG]),
289
+ ]);
290
+ pseudoTX = Object.assign({}, targetTransaction);
291
+ pseudoTrustedInputs = useBip143 ? [trustedInputs[i]] : trustedInputs;
292
+ if (useBip143) {
293
+ pseudoTX.inputs = [__assign(__assign({}, pseudoTX.inputs[i]), { script: script })];
294
+ }
295
+ else {
296
+ pseudoTX.inputs[i].script = script;
297
+ }
298
+ return [4 /*yield*/, startUntrustedHashTransactionInput(transport, !useBip143 && firstRun, pseudoTX, pseudoTrustedInputs, useBip143, !!expiryHeight && !isDecred, additionals, useTrustedInputForSegwit)];
299
+ case 27:
300
+ _b.sent();
301
+ if (!!useBip143) return [3 /*break*/, 31];
302
+ if (!(!resuming && changePath)) return [3 /*break*/, 29];
303
+ return [4 /*yield*/, provideOutputFullChangePath(transport, changePath)];
304
+ case 28:
305
+ _b.sent();
306
+ _b.label = 29;
307
+ case 29: return [4 /*yield*/, hashOutputFull(transport, outputScript, additionals)];
308
+ case 30:
309
+ _b.sent();
310
+ _b.label = 31;
311
+ case 31:
312
+ if (firstRun) {
313
+ onDeviceSignatureGranted();
314
+ notify(1, 0);
315
+ }
316
+ return [4 /*yield*/, signTransaction(transport, associatedKeysets[i], lockTime, sigHashType, expiryHeight, additionals)];
317
+ case 32:
318
+ signature = _b.sent();
319
+ notify(1, i + 1);
320
+ signatures.push(signature);
321
+ targetTransaction.inputs[i].script = nullScript;
322
+ if (firstRun) {
323
+ firstRun = false;
324
+ }
325
+ _b.label = 33;
326
+ case 33:
327
+ i++;
328
+ return [3 /*break*/, 26];
329
+ case 34:
330
+ // Populate the final input scripts
331
+ for (i = 0; i < inputs.length; i++) {
332
+ if (segwit) {
333
+ targetTransaction.witness = Buffer.alloc(0);
334
+ if (!bech32) {
335
+ targetTransaction.inputs[i].script = Buffer.concat([
336
+ Buffer.from("160014", "hex"),
337
+ hashPublicKey(publicKeys[i]),
338
+ ]);
339
+ }
340
+ }
341
+ else {
342
+ signatureSize = Buffer.alloc(1);
343
+ keySize = Buffer.alloc(1);
344
+ signatureSize[0] = signatures[i].length;
345
+ keySize[0] = publicKeys[i].length;
346
+ targetTransaction.inputs[i].script = Buffer.concat([
347
+ signatureSize,
348
+ signatures[i],
349
+ keySize,
350
+ publicKeys[i],
351
+ ]);
352
+ }
353
+ offset = useBip143 && !useTrustedInputForSegwit ? 0 : 4;
354
+ targetTransaction.inputs[i].prevout = trustedInputs[i].value.slice(offset, offset + 0x24);
355
+ }
356
+ lockTimeBuffer = Buffer.alloc(4);
357
+ lockTimeBuffer.writeUInt32LE(lockTime, 0);
358
+ result = Buffer.concat([
359
+ serializeTransaction(targetTransaction, false, targetTransaction.timestamp, additionals),
360
+ outputScript,
361
+ ]);
362
+ if (segwit && !isDecred) {
363
+ witness = Buffer.alloc(0);
364
+ for (i = 0; i < inputs.length; i++) {
365
+ tmpScriptData = Buffer.concat([
366
+ Buffer.from("02", "hex"),
367
+ Buffer.from([signatures[i].length]),
368
+ signatures[i],
369
+ Buffer.from([publicKeys[i].length]),
370
+ publicKeys[i],
371
+ ]);
372
+ witness = Buffer.concat([witness, tmpScriptData]);
373
+ }
374
+ result = Buffer.concat([result, witness]);
375
+ }
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
+ ]);
387
+ }
388
+ if (isDecred) {
389
+ decredWitness_1 = Buffer.from([targetTransaction.inputs.length]);
390
+ inputs.forEach(function (input, inputIndex) {
391
+ decredWitness_1 = Buffer.concat([
392
+ decredWitness_1,
393
+ Buffer.from([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]),
394
+ Buffer.from([0x00, 0x00, 0x00, 0x00]),
395
+ Buffer.from([0xff, 0xff, 0xff, 0xff]),
396
+ Buffer.from([targetTransaction.inputs[inputIndex].script.length]),
397
+ targetTransaction.inputs[inputIndex].script,
398
+ ]);
399
+ });
400
+ result = Buffer.concat([result, decredWitness_1]);
401
+ }
402
+ return [2 /*return*/, result.toString("hex")];
403
+ }
404
+ });
405
+ });
406
+ }
407
+ //# sourceMappingURL=createTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTransaction.js","sourceRoot":"","sources":["../src/createTransaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,MAAM,EACN,UAAU,EACV,SAAS,EACT,cAAc,EACd,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,IAAM,uBAAuB,GAAG;IAC9B,QAAQ,EAAE,gBAAgB;IAC1B,WAAW,EAAE,WAAW;IACxB,MAAM,EAAE,KAAK;IACb,WAAW,EAAE,EAAE;IACf,iBAAiB,EAAE,UAAC,EAAE,IAAM,CAAC;IAC7B,wBAAwB,EAAE,cAAO,CAAC;IAClC,0BAA0B,EAAE,cAAO,CAAC;CACrC,CAAC;AA2BF,MAAM,UAAgB,iBAAiB,CACrC,SAAoB,EACpB,GAAyB;;;;;;;oBAEnB,MAAM,yBAAQ,uBAAuB,GAAK,GAAG,CAAE,CAAC;oBAEpD,MAAM,GAaJ,MAAM,OAbF,EACN,iBAAiB,GAYf,MAAM,kBAZS,EACjB,UAAU,GAWR,MAAM,WAXE,EACV,eAAe,GAUb,MAAM,gBAVO,EACf,QAAQ,GASN,MAAM,SATA,EACR,WAAW,GAQT,MAAM,YARG,EACX,MAAM,GAOJ,MAAM,OAPF,EACN,gBAAgB,GAMd,MAAM,iBANQ,EAChB,WAAW,GAKT,MAAM,YALG,EACX,YAAY,GAIV,MAAM,aAJI,EACZ,iBAAiB,GAGf,MAAM,kBAHS,EACjB,wBAAwB,GAEtB,MAAM,yBAFgB,EACxB,0BAA0B,GACxB,MAAM,2BADkB,CACjB;oBACP,wBAAwB,GAAG,MAAM,CAAC,wBAAwB,CAAC;yBAE3D,CAAA,wBAAwB,KAAK,SAAS,CAAA,EAAtC,wBAAsC;;;;oBAE5B,qBAAM,gBAAgB,CAAC,SAAS,CAAC,EAAA;;oBAArC,CAAC,GAAG,SAAiC;oBAC3C,wBAAwB,GAAG,8BAA8B,CAAC,CAAC,CAAC,CAAC;;;;oBAE7D,IAAI,GAAC,CAAC,UAAU,KAAK,MAAM,EAAE;wBAC3B,wBAAwB,GAAG,KAAK,CAAC;qBAClC;yBAAM;wBACL,MAAM,GAAC,CAAC;qBACT;;;oBAQC,MAAM,GAAG,UAAC,IAAI,EAAE,CAAC;wBACb,IAAA,MAAM,GAAK,MAAM,OAAX,CAAY;wBAC1B,IAAI,MAAM,GAAG,CAAC;4BAAE,OAAO,CAAC,oFAAoF;wBAE5G,IAAM,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;wBAChC,IAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC;wBACzB,IAAM,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;wBAC/B,iBAAiB,CAAC;4BAChB,QAAQ,UAAA;4BACR,KAAK,OAAA;4BACL,KAAK,OAAA;yBACN,CAAC,CAAC;oBACL,CAAC,CAAC;oBAEI,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAC1C,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;oBAC5C,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACvB,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBAC1C,MAAM,GAAG,MAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAClD,SAAS,GACb,MAAM;wBACN,CAAC,CAAC,CAAC,WAAW;4BACZ,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;gCAC1B,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;gCAC5B,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;wBACpC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAG1B,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC7B,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC9B,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACvC,CAAC,CAAC,YAAY,IAAI,CAAC,QAAQ;wBACzB,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;wBACpE,CAAC,CAAC,KAAK;4BACP,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;4BACpC,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAEjC,aAAa,GAAe,EAAE,CAAC;oBAC/B,cAAc,GAA6B,EAAE,CAAC;oBAC9C,UAAU,GAAa,EAAE,CAAC;oBAC1B,UAAU,GAAa,EAAE,CAAC;oBAC5B,QAAQ,GAAG,IAAI,CAAC;oBACd,QAAQ,GAAG,KAAK,CAAC;oBACjB,iBAAiB,GAAgB;wBACrC,MAAM,EAAE,EAAE;wBACV,OAAO,EAAE,cAAc;wBACvB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;qBAC3B,CAAC;oBACI,mBAAmB,GACvB,SAAS,IAAI,CAAC,wBAAwB;wBACpC,CAAC,CAAC,qBAAqB;wBACvB,CAAC,CAAC,eAAe,CAAC;oBAChB,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;oBACzD,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;;;oBAGO,WAAA,SAAA,MAAM,CAAA;;;;oBAAf,KAAK;yBACV,CAAC,QAAQ,EAAT,wBAAS;oBACU,qBAAM,mBAAmB,CAC5C,SAAS,EACT,KAAK,CAAC,CAAC,CAAC,EACR,KAAK,CAAC,CAAC,CAAC,EACR,WAAW,CACZ,EAAA;;oBALK,YAAY,GAAG,SAKpB;oBACD,GAAG,CAAC,IAAI,EAAE,mBAAmB,GAAG,YAAY,CAAC,CAAC;oBACxC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACjC,QAAQ,CAAC,aAAa,CACpB,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ;wBAC/C,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBACV,CAAC,CAAC,gBAAgB,EACpB,CAAC,CACF,CAAC;oBACF,aAAa,CAAC,IAAI,CAAC;wBACjB,YAAY,EAAE,IAAI;wBAClB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC;wBACvC,QAAQ,UAAA;qBACT,CAAC,CAAC;;;oBAGG,OAAO,GAAK,KAAK,CAAC,CAAC,CAAC,QAAb,CAAc;oBACvB,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBAEvB,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC1C,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;qBACrC;oBAED,IAAI,YAAY,IAAI,CAAC,QAAQ,EAAE;wBAC7B,iBAAiB,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAC7C,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAC9D,CAAC;wBACF,iBAAiB,CAAC,aAAa,GAAG,YAAY,CAAC;wBAC/C,0FAA0F;wBAC1F,kCAAkC;wBAClC,iBAAiB,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CACvC,OAAO;4BACL,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;4BACpE,CAAC,CAAC,CAAC,IAAI,CAAC,CACX,CAAC;qBACH;yBAAM,IAAI,QAAQ,EAAE;wBACnB,iBAAiB,CAAC,aAAa,GAAG,YAAY,CAAC;qBAChD;;;;;;;;;;;;;;;;;oBAGH,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,KAAK;wBAC1C,IAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACjC,QAAQ,CAAC,aAAa,CACpB,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ;4BAC/C,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;4BACV,CAAC,CAAC,gBAAgB,EACpB,CAAC,CACF,CAAC;wBACF,OAAO;4BACL,MAAM,EAAE,UAAU;4BAClB,OAAO,EAAE,WAAW;4BACpB,QAAQ,UAAA;yBACT,CAAC;oBACJ,CAAC,CAAC,CAAC;yBAEC,CAAC,QAAQ,EAAT,yBAAS;oBAEL,WAIA,EAAE,CAAC;oBAEA,CAAC,GAAG,CAAC;;;yBAAE,CAAA,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;oBACrB,qBAAM,kBAAkB,CAAC,SAAS,EAAE;4BAC5C,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC;yBAC3B,CAAC,EAAA;;oBAFI,CAAC,GAAG,SAER;oBACF,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjB,QAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;oBALkB,CAAC,EAAE,CAAA;;;oBAQtC,KAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACtC,UAAU,CAAC,IAAI,CACb,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAC3D,CAAC;qBACH;;;oBAGH,IAAI,gBAAgB,KAAK,SAAS,EAAE;wBAClC,iBAAiB,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC9C,iBAAiB,CAAC,SAAS,CAAC,aAAa,CACvC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,EAC9D,CAAC,CACF,CAAC;qBACH;oBAED,0BAA0B,EAAE,CAAC;yBAEzB,SAAS,EAAT,yBAAS;oBACX,mCAAmC;oBACnC,qBAAM,kCAAkC,CACtC,SAAS,EACT,IAAI,EACJ,iBAAiB,EACjB,aAAa,EACb,IAAI,EACJ,CAAC,CAAC,YAAY,EACd,WAAW,EACX,wBAAwB,CACzB,EAAA;;oBAVD,mCAAmC;oBACnC,SASC,CAAC;yBAEE,CAAA,CAAC,QAAQ,IAAI,UAAU,CAAA,EAAvB,yBAAuB;oBACzB,qBAAM,2BAA2B,CAAC,SAAS,EAAE,UAAU,CAAC,EAAA;;oBAAxD,SAAwD,CAAC;;yBAG3D,qBAAM,cAAc,CAAC,SAAS,EAAE,YAAY,CAAC,EAAA;;oBAA7C,SAA6C,CAAC;;;yBAG5C,CAAA,CAAC,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAA,EAA3B,yBAA2B;oBAC7B,qBAAM,eAAe,CAAC,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,EAAA;;oBAAzE,SAAyE,CAAC;;;oBAInE,CAAC,GAAG,CAAC;;;yBAAE,CAAA,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;oBACzB,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBAClB,MAAM,GACV,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ;wBACnD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;wBAC9B,CAAC,CAAC,CAAC,MAAM;4BACT,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM;4BAC1B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gCACZ,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;gCAC5C,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gCAC5B,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;6BAC3C,CAAC,CAAC;oBACH,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;oBAChD,mBAAmB,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;oBAE3E,IAAI,SAAS,EAAE;wBACb,QAAQ,CAAC,MAAM,GAAG,uBAAM,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAE,MAAM,QAAA,IAAG,CAAC;qBACvD;yBAAM;wBACL,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;qBACpC;oBAED,qBAAM,kCAAkC,CACtC,SAAS,EACT,CAAC,SAAS,IAAI,QAAQ,EACtB,QAAQ,EACR,mBAAmB,EACnB,SAAS,EACT,CAAC,CAAC,YAAY,IAAI,CAAC,QAAQ,EAC3B,WAAW,EACX,wBAAwB,CACzB,EAAA;;oBATD,SASC,CAAC;yBAEE,CAAC,SAAS,EAAV,yBAAU;yBACR,CAAA,CAAC,QAAQ,IAAI,UAAU,CAAA,EAAvB,yBAAuB;oBACzB,qBAAM,2BAA2B,CAAC,SAAS,EAAE,UAAU,CAAC,EAAA;;oBAAxD,SAAwD,CAAC;;yBAG3D,qBAAM,cAAc,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC,EAAA;;oBAA1D,SAA0D,CAAC;;;oBAG7D,IAAI,QAAQ,EAAE;wBACZ,wBAAwB,EAAE,CAAC;wBAC3B,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qBACd;oBAEiB,qBAAM,eAAe,CACrC,SAAS,EACT,iBAAiB,CAAC,CAAC,CAAC,EACpB,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,WAAW,CACZ,EAAA;;oBAPK,SAAS,GAAG,SAOjB;oBACD,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC3B,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC;oBAEhD,IAAI,QAAQ,EAAE;wBACZ,QAAQ,GAAG,KAAK,CAAC;qBAClB;;;oBA3DgC,CAAC,EAAE,CAAA;;;oBA8DtC,mCAAmC;oBACnC,KAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACtC,IAAI,MAAM,EAAE;4BACV,iBAAiB,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;4BAE5C,IAAI,CAAC,MAAM,EAAE;gCACX,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;oCACjD,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;oCAC5B,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;iCAC7B,CAAC,CAAC;6BACJ;yBACF;6BAAM;4BACC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;4BAChC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;4BAChC,aAAa,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;4BACxC,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;4BAClC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gCACjD,aAAa;gCACb,UAAU,CAAC,CAAC,CAAC;gCACb,OAAO;gCACP,UAAU,CAAC,CAAC,CAAC;6BACd,CAAC,CAAC;yBACJ;wBAEK,MAAM,GAAG,SAAS,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC9D,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAChE,MAAM,EACN,MAAM,GAAG,IAAI,CACd,CAAC;qBACH;oBAEK,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACvC,cAAc,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;oBACtC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;wBACzB,oBAAoB,CAClB,iBAAiB,EACjB,KAAK,EACL,iBAAiB,CAAC,SAAS,EAC3B,WAAW,CACZ;wBACD,YAAY;qBACb,CAAC,CAAC;oBAEH,IAAI,MAAM,IAAI,CAAC,QAAQ,EAAE;wBACnB,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAE9B,KAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BAChC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;gCAClC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;gCACxB,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gCACnC,UAAU,CAAC,CAAC,CAAC;gCACb,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gCACnC,UAAU,CAAC,CAAC,CAAC;6BACd,CAAC,CAAC;4BACH,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;yBACnD;wBAED,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;qBAC3C;oBAED,2EAA2E;oBAC3E,iFAAiF;oBACjF,8EAA8E;oBAC9E,kCAAkC;oBAClC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;oBAEjD,IAAI,YAAY,EAAE;wBAChB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;4BACrB,MAAM;4BACN,iBAAiB,CAAC,aAAa,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;4BAClD,iBAAiB,CAAC,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;yBAC/C,CAAC,CAAC;qBACJ;oBAED,IAAI,QAAQ,EAAE;wBACR,kBAAgB,MAAM,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;wBACnE,MAAM,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,UAAU;4BAC/B,eAAa,GAAG,MAAM,CAAC,MAAM,CAAC;gCAC5B,eAAa;gCACb,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gCAC7D,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gCACrC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gCACrC,MAAM,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gCACjE,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM;6BAC5C,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;wBACH,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,eAAa,CAAC,CAAC,CAAC;qBACjD;oBAED,sBAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAC;;;;CAC/B"}
@@ -0,0 +1,4 @@
1
+ import type { Transaction } from "./types";
2
+ export declare function formatTransactionDebug(transaction: Transaction): string;
3
+ export declare function displayTransactionDebug(transaction: Transaction): void;
4
+ //# sourceMappingURL=debug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAwCvE;AACD,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAEtE"}
@@ -0,0 +1,40 @@
1
+ export function formatTransactionDebug(transaction) {
2
+ var str = "TX";
3
+ str += " version " + transaction.version.toString("hex");
4
+ if (transaction.locktime) {
5
+ str += " locktime " + transaction.locktime.toString("hex");
6
+ }
7
+ if (transaction.witness) {
8
+ str += " witness " + transaction.witness.toString("hex");
9
+ }
10
+ if (transaction.timestamp) {
11
+ str += " timestamp " + transaction.timestamp.toString("hex");
12
+ }
13
+ if (transaction.nVersionGroupId) {
14
+ str += " nVersionGroupId " + transaction.nVersionGroupId.toString("hex");
15
+ }
16
+ if (transaction.nExpiryHeight) {
17
+ str += " nExpiryHeight " + transaction.nExpiryHeight.toString("hex");
18
+ }
19
+ if (transaction.extraData) {
20
+ str += " extraData " + transaction.extraData.toString("hex");
21
+ }
22
+ transaction.inputs.forEach(function (_a, i) {
23
+ var prevout = _a.prevout, script = _a.script, sequence = _a.sequence;
24
+ str += "\ninput ".concat(i, ":");
25
+ str += " prevout ".concat(prevout.toString("hex"));
26
+ str += " script ".concat(script.toString("hex"));
27
+ str += " sequence ".concat(sequence.toString("hex"));
28
+ });
29
+ (transaction.outputs || []).forEach(function (_a, i) {
30
+ var amount = _a.amount, script = _a.script;
31
+ str += "\noutput ".concat(i, ":");
32
+ str += " amount ".concat(amount.toString("hex"));
33
+ str += " script ".concat(script.toString("hex"));
34
+ });
35
+ return str;
36
+ }
37
+ export function displayTransactionDebug(transaction) {
38
+ console.log(formatTransactionDebug(transaction));
39
+ }
40
+ //# sourceMappingURL=debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,sBAAsB,CAAC,WAAwB;IAC7D,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,GAAG,IAAI,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEzD,IAAI,WAAW,CAAC,QAAQ,EAAE;QACxB,GAAG,IAAI,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC5D;IAED,IAAI,WAAW,CAAC,OAAO,EAAE;QACvB,GAAG,IAAI,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC1D;IAED,IAAI,WAAW,CAAC,SAAS,EAAE;QACzB,GAAG,IAAI,aAAa,GAAG,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC9D;IAED,IAAI,WAAW,CAAC,eAAe,EAAE;QAC/B,GAAG,IAAI,mBAAmB,GAAG,WAAW,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC1E;IAED,IAAI,WAAW,CAAC,aAAa,EAAE;QAC7B,GAAG,IAAI,iBAAiB,GAAG,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACtE;IAED,IAAI,WAAW,CAAC,SAAS,EAAE;QACzB,GAAG,IAAI,aAAa,GAAG,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC9D;IAED,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,UAAC,EAA6B,EAAE,CAAC;YAA9B,OAAO,aAAA,EAAE,MAAM,YAAA,EAAE,QAAQ,cAAA;QACrD,GAAG,IAAI,kBAAW,CAAC,MAAG,CAAC;QACvB,GAAG,IAAI,mBAAY,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAE,CAAC;QAC7C,GAAG,IAAI,kBAAW,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAE,CAAC;QAC3C,GAAG,IAAI,oBAAa,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAE,CAAC;IACjD,CAAC,CAAC,CAAC;IACH,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAC,EAAkB,EAAE,CAAC;YAAnB,MAAM,YAAA,EAAE,MAAM,YAAA;QACnD,GAAG,IAAI,mBAAY,CAAC,MAAG,CAAC;QACxB,GAAG,IAAI,kBAAW,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAE,CAAC;QAC3C,GAAG,IAAI,kBAAW,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AACD,MAAM,UAAU,uBAAuB,CAAC,WAAwB;IAC9D,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="node" />
2
+ import Transport from "@ledgerhq/hw-transport";
3
+ export declare function provideOutputFullChangePath(transport: Transport, path: string): Promise<Buffer>;
4
+ export declare function hashOutputFull(transport: Transport, outputScript: Buffer, additionals?: Array<string>): Promise<Buffer | void>;
5
+ //# sourceMappingURL=finalizeInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finalizeInput.d.ts","sourceRoot":"","sources":["../src/finalizeInput.ts"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAG/C,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAGjB;AACD,wBAAsB,cAAc,CAClC,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,MAAM,EACpB,WAAW,GAAE,KAAK,CAAC,MAAM,CAAM,GAC9B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqBxB"}
@@ -0,0 +1,76 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (_) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { bip32asBuffer } from "./bip32";
38
+ import { MAX_SCRIPT_BLOCK } from "./constants";
39
+ export function provideOutputFullChangePath(transport, path) {
40
+ var buffer = bip32asBuffer(path);
41
+ return transport.send(0xe0, 0x4a, 0xff, 0x00, buffer);
42
+ }
43
+ export function hashOutputFull(transport, outputScript, additionals) {
44
+ if (additionals === void 0) { additionals = []; }
45
+ return __awaiter(this, void 0, void 0, function () {
46
+ var offset, p1, isDecred, blockSize, p1_1, data;
47
+ return __generator(this, function (_a) {
48
+ switch (_a.label) {
49
+ case 0:
50
+ offset = 0;
51
+ p1 = Number(0x80);
52
+ isDecred = additionals.includes("decred");
53
+ ///WARNING: Decred works only with one call (without chunking)
54
+ //TODO: test without this for Decred
55
+ if (isDecred) {
56
+ return [2 /*return*/, transport.send(0xe0, 0x4a, p1, 0x00, outputScript)];
57
+ }
58
+ _a.label = 1;
59
+ case 1:
60
+ if (!(offset < outputScript.length)) return [3 /*break*/, 3];
61
+ blockSize = offset + MAX_SCRIPT_BLOCK >= outputScript.length
62
+ ? outputScript.length - offset
63
+ : MAX_SCRIPT_BLOCK;
64
+ p1_1 = offset + blockSize === outputScript.length ? 0x80 : 0x00;
65
+ data = outputScript.slice(offset, offset + blockSize);
66
+ return [4 /*yield*/, transport.send(0xe0, 0x4a, p1_1, 0x00, data)];
67
+ case 2:
68
+ _a.sent();
69
+ offset += blockSize;
70
+ return [3 /*break*/, 1];
71
+ case 3: return [2 /*return*/];
72
+ }
73
+ });
74
+ });
75
+ }
76
+ //# sourceMappingURL=finalizeInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finalizeInput.js","sourceRoot":"","sources":["../src/finalizeInput.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,MAAM,UAAU,2BAA2B,CACzC,SAAoB,EACpB,IAAY;IAEZ,IAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC;AACD,MAAM,UAAgB,cAAc,CAClC,SAAoB,EACpB,YAAoB,EACpB,WAA+B;IAA/B,4BAAA,EAAA,gBAA+B;;;;;;oBAE3B,MAAM,GAAG,CAAC,CAAC;oBACT,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;oBAClB,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAEhD,8DAA8D;oBAC9D,oCAAoC;oBACpC,IAAI,QAAQ,EAAE;wBACZ,sBAAO,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,EAAC;qBAC3D;;;yBAEM,CAAA,MAAM,GAAG,YAAY,CAAC,MAAM,CAAA;oBAC3B,SAAS,GACb,MAAM,GAAG,gBAAgB,IAAI,YAAY,CAAC,MAAM;wBAC9C,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,MAAM;wBAC9B,CAAC,CAAC,gBAAgB,CAAC;oBACjB,OAAK,MAAM,GAAG,SAAS,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC9D,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;oBAC5D,qBAAM,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAE,EAAE,IAAI,EAAE,IAAI,CAAC,EAAA;;oBAAhD,SAAgD,CAAC;oBACjD,MAAM,IAAI,SAAS,CAAC;;;;;;CAEvB"}
@@ -0,0 +1,9 @@
1
+ /// <reference types="node" />
2
+ import Transport from "@ledgerhq/hw-transport";
3
+ export declare type AppAndVersion = {
4
+ name: string;
5
+ version: string;
6
+ flags: number | Buffer;
7
+ };
8
+ export declare const getAppAndVersion: (transport: Transport) => Promise<AppAndVersion>;
9
+ //# sourceMappingURL=getAppAndVersion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAppAndVersion.d.ts","sourceRoot":"","sources":["../src/getAppAndVersion.ts"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAE/C,oBAAY,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,gBAAgB,cAChB,SAAS,KACnB,QAAQ,aAAa,CAgBvB,CAAC"}