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

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 +9 -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 @@
1
+ {"version":3,"file":"compressPublicKey.d.ts","sourceRoot":"","sources":["../src/compressPublicKey.ts"],"names":[],"mappings":";AAAA,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAK3D"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.compressPublicKey = void 0;
4
+ function compressPublicKey(publicKey) {
5
+ var prefix = (publicKey[64] & 1) !== 0 ? 0x03 : 0x02;
6
+ var prefixBuffer = Buffer.alloc(1);
7
+ prefixBuffer[0] = prefix;
8
+ return Buffer.concat([prefixBuffer, publicKey.slice(1, 1 + 32)]);
9
+ }
10
+ exports.compressPublicKey = compressPublicKey;
11
+ //# sourceMappingURL=compressPublicKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compressPublicKey.js","sourceRoot":"","sources":["../src/compressPublicKey.ts"],"names":[],"mappings":";;;AAAA,SAAgB,iBAAiB,CAAC,SAAiB;IACjD,IAAM,MAAM,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,IAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrC,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;IACzB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC;AALD,8CAKC"}
@@ -0,0 +1,13 @@
1
+ export declare const MAX_SCRIPT_BLOCK = 50;
2
+ export declare const DEFAULT_VERSION = 1;
3
+ export declare const DEFAULT_LOCKTIME = 0;
4
+ export declare const DEFAULT_SEQUENCE = 4294967295;
5
+ export declare const SIGHASH_ALL = 1;
6
+ export declare const OP_DUP = 118;
7
+ export declare const OP_HASH160 = 169;
8
+ export declare const HASH_SIZE = 20;
9
+ export declare const OP_EQUAL = 135;
10
+ export declare const OP_EQUALVERIFY = 136;
11
+ export declare const OP_CHECKSIG = 172;
12
+ export declare const OP_RETURN = 106;
13
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,gBAAgB,aAAa,CAAC;AAC3C,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,MAAM,MAAO,CAAC;AAC3B,eAAO,MAAM,UAAU,MAAO,CAAC;AAC/B,eAAO,MAAM,SAAS,KAAO,CAAC;AAC9B,eAAO,MAAM,QAAQ,MAAO,CAAC;AAC7B,eAAO,MAAM,cAAc,MAAO,CAAC;AACnC,eAAO,MAAM,WAAW,MAAO,CAAC;AAChC,eAAO,MAAM,SAAS,MAAO,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.OP_RETURN = exports.OP_CHECKSIG = exports.OP_EQUALVERIFY = exports.OP_EQUAL = exports.HASH_SIZE = exports.OP_HASH160 = exports.OP_DUP = exports.SIGHASH_ALL = exports.DEFAULT_SEQUENCE = exports.DEFAULT_LOCKTIME = exports.DEFAULT_VERSION = exports.MAX_SCRIPT_BLOCK = void 0;
4
+ // flow
5
+ exports.MAX_SCRIPT_BLOCK = 50;
6
+ exports.DEFAULT_VERSION = 1;
7
+ exports.DEFAULT_LOCKTIME = 0;
8
+ exports.DEFAULT_SEQUENCE = 0xffffffff;
9
+ exports.SIGHASH_ALL = 1;
10
+ exports.OP_DUP = 0x76;
11
+ exports.OP_HASH160 = 0xa9;
12
+ exports.HASH_SIZE = 0x14;
13
+ exports.OP_EQUAL = 0x87;
14
+ exports.OP_EQUALVERIFY = 0x88;
15
+ exports.OP_CHECKSIG = 0xac;
16
+ exports.OP_RETURN = 0x6a;
17
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,OAAO;AACM,QAAA,gBAAgB,GAAG,EAAE,CAAC;AACtB,QAAA,eAAe,GAAG,CAAC,CAAC;AACpB,QAAA,gBAAgB,GAAG,CAAC,CAAC;AACrB,QAAA,gBAAgB,GAAG,UAAU,CAAC;AAC9B,QAAA,WAAW,GAAG,CAAC,CAAC;AAChB,QAAA,MAAM,GAAG,IAAI,CAAC;AACd,QAAA,UAAU,GAAG,IAAI,CAAC;AAClB,QAAA,SAAS,GAAG,IAAI,CAAC;AACjB,QAAA,QAAQ,GAAG,IAAI,CAAC;AAChB,QAAA,cAAc,GAAG,IAAI,CAAC;AACtB,QAAA,WAAW,GAAG,IAAI,CAAC;AACnB,QAAA,SAAS,GAAG,IAAI,CAAC"}
@@ -0,0 +1,35 @@
1
+ /// <reference types="node" />
2
+ import type Transport from "@ledgerhq/hw-transport";
3
+ import type { AddressFormat } from "./getWalletPublicKey";
4
+ import type { Transaction } from "./types";
5
+ export type { AddressFormat };
6
+ /**
7
+ *
8
+ */
9
+ export declare type CreateTransactionArg = {
10
+ inputs: Array<[
11
+ Transaction,
12
+ number,
13
+ string | null | undefined,
14
+ number | null | undefined
15
+ ]>;
16
+ associatedKeysets: string[];
17
+ changePath?: string;
18
+ outputScriptHex: string;
19
+ lockTime?: number;
20
+ sigHashType?: number;
21
+ segwit?: boolean;
22
+ initialTimestamp?: number;
23
+ additionals: Array<string>;
24
+ expiryHeight?: Buffer;
25
+ useTrustedInputForSegwit?: boolean;
26
+ onDeviceStreaming?: (arg0: {
27
+ progress: number;
28
+ total: number;
29
+ index: number;
30
+ }) => void;
31
+ onDeviceSignatureRequested?: () => void;
32
+ onDeviceSignatureGranted?: () => void;
33
+ };
34
+ export declare function createTransaction(transport: Transport, arg: CreateTransactionArg): Promise<string>;
35
+ //# sourceMappingURL=createTransaction.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,411 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (_) try {
29
+ 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;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __values = (this && this.__values) || function(o) {
50
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
51
+ if (m) return m.call(o);
52
+ if (o && typeof o.length === "number") return {
53
+ next: function () {
54
+ if (o && i >= o.length) o = void 0;
55
+ return { value: o && o[i++], done: !o };
56
+ }
57
+ };
58
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
59
+ };
60
+ exports.__esModule = true;
61
+ exports.createTransaction = void 0;
62
+ var logs_1 = require("@ledgerhq/logs");
63
+ var hashPublicKey_1 = require("./hashPublicKey");
64
+ var getWalletPublicKey_1 = require("./getWalletPublicKey");
65
+ var getTrustedInput_1 = require("./getTrustedInput");
66
+ var startUntrustedHashTransactionInput_1 = require("./startUntrustedHashTransactionInput");
67
+ var serializeTransaction_1 = require("./serializeTransaction");
68
+ var getTrustedInputBIP143_1 = require("./getTrustedInputBIP143");
69
+ var compressPublicKey_1 = require("./compressPublicKey");
70
+ var signTransaction_1 = require("./signTransaction");
71
+ var finalizeInput_1 = require("./finalizeInput");
72
+ var getAppAndVersion_1 = require("./getAppAndVersion");
73
+ var constants_1 = require("./constants");
74
+ var shouldUseTrustedInputForSegwit_1 = require("./shouldUseTrustedInputForSegwit");
75
+ var defaultsSignTransaction = {
76
+ lockTime: constants_1.DEFAULT_LOCKTIME,
77
+ sigHashType: constants_1.SIGHASH_ALL,
78
+ segwit: false,
79
+ additionals: [],
80
+ onDeviceStreaming: function (_e) { },
81
+ onDeviceSignatureGranted: function () { },
82
+ onDeviceSignatureRequested: function () { }
83
+ };
84
+ function createTransaction(transport, arg) {
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;
87
+ var e_2, _a;
88
+ return __generator(this, function (_b) {
89
+ switch (_b.label) {
90
+ case 0:
91
+ signTx = __assign(__assign({}, defaultsSignTransaction), arg);
92
+ 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;
93
+ useTrustedInputForSegwit = signTx.useTrustedInputForSegwit;
94
+ if (!(useTrustedInputForSegwit === undefined)) return [3 /*break*/, 4];
95
+ _b.label = 1;
96
+ case 1:
97
+ _b.trys.push([1, 3, , 4]);
98
+ return [4 /*yield*/, (0, getAppAndVersion_1.getAppAndVersion)(transport)];
99
+ case 2:
100
+ a = _b.sent();
101
+ useTrustedInputForSegwit = (0, shouldUseTrustedInputForSegwit_1.shouldUseTrustedInputForSegwit)(a);
102
+ return [3 /*break*/, 4];
103
+ case 3:
104
+ e_1 = _b.sent();
105
+ if (e_1.statusCode === 0x6d00) {
106
+ useTrustedInputForSegwit = false;
107
+ }
108
+ else {
109
+ throw e_1;
110
+ }
111
+ return [3 /*break*/, 4];
112
+ case 4:
113
+ notify = function (loop, i) {
114
+ var length = inputs.length;
115
+ if (length < 3)
116
+ return; // there is not enough significant event to worth notifying (aka just use a spinner)
117
+ var index = length * loop + i;
118
+ var total = 2 * length;
119
+ var progress = index / total;
120
+ onDeviceStreaming({
121
+ progress: progress,
122
+ total: total,
123
+ index: index
124
+ });
125
+ };
126
+ isDecred = additionals.includes("decred");
127
+ isXST = additionals.includes("stealthcoin");
128
+ startTime = Date.now();
129
+ sapling = additionals.includes("sapling");
130
+ bech32 = segwit && additionals.includes("bech32");
131
+ useBip143 = segwit ||
132
+ (!!additionals &&
133
+ (additionals.includes("abc") ||
134
+ additionals.includes("gold") ||
135
+ additionals.includes("bip143"))) ||
136
+ (!!expiryHeight && !isDecred);
137
+ nullScript = Buffer.alloc(0);
138
+ nullPrevout = Buffer.alloc(0);
139
+ defaultVersion = Buffer.alloc(4);
140
+ !!expiryHeight && !isDecred
141
+ ? defaultVersion.writeUInt32LE(sapling ? 0x80000004 : 0x80000003, 0)
142
+ : isXST
143
+ ? defaultVersion.writeUInt32LE(2, 0)
144
+ : defaultVersion.writeUInt32LE(1, 0);
145
+ trustedInputs = [];
146
+ regularOutputs = [];
147
+ signatures = [];
148
+ publicKeys = [];
149
+ firstRun = true;
150
+ resuming = false;
151
+ targetTransaction = {
152
+ inputs: [],
153
+ version: defaultVersion,
154
+ timestamp: Buffer.alloc(0)
155
+ };
156
+ getTrustedInputCall = useBip143 && !useTrustedInputForSegwit
157
+ ? getTrustedInputBIP143_1.getTrustedInputBIP143
158
+ : getTrustedInput_1.getTrustedInput;
159
+ outputScript = Buffer.from(outputScriptHex, "hex");
160
+ notify(0, 0);
161
+ _b.label = 5;
162
+ case 5:
163
+ _b.trys.push([5, 11, 12, 13]);
164
+ inputs_1 = __values(inputs), inputs_1_1 = inputs_1.next();
165
+ _b.label = 6;
166
+ case 6:
167
+ if (!!inputs_1_1.done) return [3 /*break*/, 10];
168
+ input = inputs_1_1.value;
169
+ if (!!resuming) return [3 /*break*/, 8];
170
+ return [4 /*yield*/, getTrustedInputCall(transport, input[1], input[0], additionals)];
171
+ case 7:
172
+ trustedInput = _b.sent();
173
+ (0, logs_1.log)("hw", "got trustedInput=" + trustedInput);
174
+ sequence = Buffer.alloc(4);
175
+ sequence.writeUInt32LE(input.length >= 4 && typeof input[3] === "number"
176
+ ? input[3]
177
+ : constants_1.DEFAULT_SEQUENCE, 0);
178
+ trustedInputs.push({
179
+ trustedInput: true,
180
+ value: Buffer.from(trustedInput, "hex"),
181
+ sequence: sequence
182
+ });
183
+ _b.label = 8;
184
+ case 8:
185
+ outputs = input[0].outputs;
186
+ index = input[1];
187
+ if (outputs && index <= outputs.length - 1) {
188
+ regularOutputs.push(outputs[index]);
189
+ }
190
+ if (expiryHeight && !isDecred) {
191
+ targetTransaction.nVersionGroupId = Buffer.from(sapling ? [0x85, 0x20, 0x2f, 0x89] : [0x70, 0x82, 0xc4, 0x03]);
192
+ targetTransaction.nExpiryHeight = expiryHeight;
193
+ // For sapling : valueBalance (8), nShieldedSpend (1), nShieldedOutput (1), nJoinSplit (1)
194
+ // Overwinter : use nJoinSplit (1)
195
+ targetTransaction.extraData = Buffer.from(sapling
196
+ ? [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]
197
+ : [0x00]);
198
+ }
199
+ else if (isDecred) {
200
+ targetTransaction.nExpiryHeight = expiryHeight;
201
+ }
202
+ _b.label = 9;
203
+ case 9:
204
+ inputs_1_1 = inputs_1.next();
205
+ return [3 /*break*/, 6];
206
+ case 10: return [3 /*break*/, 13];
207
+ case 11:
208
+ e_2_1 = _b.sent();
209
+ e_2 = { error: e_2_1 };
210
+ return [3 /*break*/, 13];
211
+ case 12:
212
+ try {
213
+ if (inputs_1_1 && !inputs_1_1.done && (_a = inputs_1["return"])) _a.call(inputs_1);
214
+ }
215
+ finally { if (e_2) throw e_2.error; }
216
+ return [7 /*endfinally*/];
217
+ case 13:
218
+ targetTransaction.inputs = inputs.map(function (input) {
219
+ var sequence = Buffer.alloc(4);
220
+ sequence.writeUInt32LE(input.length >= 4 && typeof input[3] === "number"
221
+ ? input[3]
222
+ : constants_1.DEFAULT_SEQUENCE, 0);
223
+ return {
224
+ script: nullScript,
225
+ prevout: nullPrevout,
226
+ sequence: sequence
227
+ };
228
+ });
229
+ if (!!resuming) return [3 /*break*/, 18];
230
+ result_1 = [];
231
+ i = 0;
232
+ _b.label = 14;
233
+ case 14:
234
+ if (!(i < inputs.length)) return [3 /*break*/, 17];
235
+ return [4 /*yield*/, (0, getWalletPublicKey_1.getWalletPublicKey)(transport, {
236
+ path: associatedKeysets[i]
237
+ })];
238
+ case 15:
239
+ r = _b.sent();
240
+ notify(0, i + 1);
241
+ result_1.push(r);
242
+ _b.label = 16;
243
+ case 16:
244
+ i++;
245
+ return [3 /*break*/, 14];
246
+ case 17:
247
+ for (i = 0; i < result_1.length; i++) {
248
+ publicKeys.push((0, compressPublicKey_1.compressPublicKey)(Buffer.from(result_1[i].publicKey, "hex")));
249
+ }
250
+ _b.label = 18;
251
+ case 18:
252
+ if (initialTimestamp !== undefined) {
253
+ targetTransaction.timestamp = Buffer.alloc(4);
254
+ targetTransaction.timestamp.writeUInt32LE(Math.floor(initialTimestamp + (Date.now() - startTime) / 1000), 0);
255
+ }
256
+ onDeviceSignatureRequested();
257
+ if (!useBip143) return [3 /*break*/, 23];
258
+ // Do the first run with all inputs
259
+ return [4 /*yield*/, (0, startUntrustedHashTransactionInput_1.startUntrustedHashTransactionInput)(transport, true, targetTransaction, trustedInputs, true, !!expiryHeight, additionals, useTrustedInputForSegwit)];
260
+ case 19:
261
+ // Do the first run with all inputs
262
+ _b.sent();
263
+ if (!(!resuming && changePath)) return [3 /*break*/, 21];
264
+ return [4 /*yield*/, (0, finalizeInput_1.provideOutputFullChangePath)(transport, changePath)];
265
+ case 20:
266
+ _b.sent();
267
+ _b.label = 21;
268
+ case 21: return [4 /*yield*/, (0, finalizeInput_1.hashOutputFull)(transport, outputScript)];
269
+ case 22:
270
+ _b.sent();
271
+ _b.label = 23;
272
+ case 23:
273
+ if (!(!!expiryHeight && !isDecred)) return [3 /*break*/, 25];
274
+ return [4 /*yield*/, (0, signTransaction_1.signTransaction)(transport, "", lockTime, constants_1.SIGHASH_ALL, expiryHeight)];
275
+ case 24:
276
+ _b.sent();
277
+ _b.label = 25;
278
+ case 25:
279
+ i = 0;
280
+ _b.label = 26;
281
+ case 26:
282
+ if (!(i < inputs.length)) return [3 /*break*/, 34];
283
+ input = inputs[i];
284
+ script = inputs[i].length >= 3 && typeof input[2] === "string"
285
+ ? Buffer.from(input[2], "hex")
286
+ : !segwit
287
+ ? regularOutputs[i].script
288
+ : Buffer.concat([
289
+ Buffer.from([constants_1.OP_DUP, constants_1.OP_HASH160, constants_1.HASH_SIZE]),
290
+ (0, hashPublicKey_1.hashPublicKey)(publicKeys[i]),
291
+ Buffer.from([constants_1.OP_EQUALVERIFY, constants_1.OP_CHECKSIG]),
292
+ ]);
293
+ pseudoTX = Object.assign({}, targetTransaction);
294
+ pseudoTrustedInputs = useBip143 ? [trustedInputs[i]] : trustedInputs;
295
+ if (useBip143) {
296
+ pseudoTX.inputs = [__assign(__assign({}, pseudoTX.inputs[i]), { script: script })];
297
+ }
298
+ else {
299
+ pseudoTX.inputs[i].script = script;
300
+ }
301
+ return [4 /*yield*/, (0, startUntrustedHashTransactionInput_1.startUntrustedHashTransactionInput)(transport, !useBip143 && firstRun, pseudoTX, pseudoTrustedInputs, useBip143, !!expiryHeight && !isDecred, additionals, useTrustedInputForSegwit)];
302
+ case 27:
303
+ _b.sent();
304
+ if (!!useBip143) return [3 /*break*/, 31];
305
+ if (!(!resuming && changePath)) return [3 /*break*/, 29];
306
+ return [4 /*yield*/, (0, finalizeInput_1.provideOutputFullChangePath)(transport, changePath)];
307
+ case 28:
308
+ _b.sent();
309
+ _b.label = 29;
310
+ case 29: return [4 /*yield*/, (0, finalizeInput_1.hashOutputFull)(transport, outputScript, additionals)];
311
+ case 30:
312
+ _b.sent();
313
+ _b.label = 31;
314
+ case 31:
315
+ if (firstRun) {
316
+ onDeviceSignatureGranted();
317
+ notify(1, 0);
318
+ }
319
+ return [4 /*yield*/, (0, signTransaction_1.signTransaction)(transport, associatedKeysets[i], lockTime, sigHashType, expiryHeight, additionals)];
320
+ case 32:
321
+ signature = _b.sent();
322
+ notify(1, i + 1);
323
+ signatures.push(signature);
324
+ targetTransaction.inputs[i].script = nullScript;
325
+ if (firstRun) {
326
+ firstRun = false;
327
+ }
328
+ _b.label = 33;
329
+ case 33:
330
+ i++;
331
+ return [3 /*break*/, 26];
332
+ case 34:
333
+ // Populate the final input scripts
334
+ for (i = 0; i < inputs.length; i++) {
335
+ if (segwit) {
336
+ targetTransaction.witness = Buffer.alloc(0);
337
+ if (!bech32) {
338
+ targetTransaction.inputs[i].script = Buffer.concat([
339
+ Buffer.from("160014", "hex"),
340
+ (0, hashPublicKey_1.hashPublicKey)(publicKeys[i]),
341
+ ]);
342
+ }
343
+ }
344
+ else {
345
+ signatureSize = Buffer.alloc(1);
346
+ keySize = Buffer.alloc(1);
347
+ signatureSize[0] = signatures[i].length;
348
+ keySize[0] = publicKeys[i].length;
349
+ targetTransaction.inputs[i].script = Buffer.concat([
350
+ signatureSize,
351
+ signatures[i],
352
+ keySize,
353
+ publicKeys[i],
354
+ ]);
355
+ }
356
+ offset = useBip143 && !useTrustedInputForSegwit ? 0 : 4;
357
+ targetTransaction.inputs[i].prevout = trustedInputs[i].value.slice(offset, offset + 0x24);
358
+ }
359
+ lockTimeBuffer = Buffer.alloc(4);
360
+ lockTimeBuffer.writeUInt32LE(lockTime, 0);
361
+ result = Buffer.concat([
362
+ (0, serializeTransaction_1.serializeTransaction)(targetTransaction, false, targetTransaction.timestamp, additionals),
363
+ outputScript,
364
+ ]);
365
+ if (segwit && !isDecred) {
366
+ witness = Buffer.alloc(0);
367
+ for (i = 0; i < inputs.length; i++) {
368
+ tmpScriptData = Buffer.concat([
369
+ Buffer.from("02", "hex"),
370
+ Buffer.from([signatures[i].length]),
371
+ signatures[i],
372
+ Buffer.from([publicKeys[i].length]),
373
+ publicKeys[i],
374
+ ]);
375
+ witness = Buffer.concat([witness, tmpScriptData]);
376
+ }
377
+ result = Buffer.concat([result, witness]);
378
+ }
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
+ ]);
390
+ }
391
+ if (isDecred) {
392
+ decredWitness_1 = Buffer.from([targetTransaction.inputs.length]);
393
+ inputs.forEach(function (input, inputIndex) {
394
+ decredWitness_1 = Buffer.concat([
395
+ decredWitness_1,
396
+ Buffer.from([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]),
397
+ Buffer.from([0x00, 0x00, 0x00, 0x00]),
398
+ Buffer.from([0xff, 0xff, 0xff, 0xff]),
399
+ Buffer.from([targetTransaction.inputs[inputIndex].script.length]),
400
+ targetTransaction.inputs[inputIndex].script,
401
+ ]);
402
+ });
403
+ result = Buffer.concat([result, decredWitness_1]);
404
+ }
405
+ return [2 /*return*/, result.toString("hex")];
406
+ }
407
+ });
408
+ });
409
+ }
410
+ exports.createTransaction = createTransaction;
411
+ //# sourceMappingURL=createTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTransaction.js","sourceRoot":"","sources":["../src/createTransaction.ts"],"names":[],"mappings":"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"}
package/lib/debug.d.ts ADDED
@@ -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"}
package/lib/debug.js ADDED
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.displayTransactionDebug = exports.formatTransactionDebug = void 0;
4
+ function formatTransactionDebug(transaction) {
5
+ var str = "TX";
6
+ str += " version " + transaction.version.toString("hex");
7
+ if (transaction.locktime) {
8
+ str += " locktime " + transaction.locktime.toString("hex");
9
+ }
10
+ if (transaction.witness) {
11
+ str += " witness " + transaction.witness.toString("hex");
12
+ }
13
+ if (transaction.timestamp) {
14
+ str += " timestamp " + transaction.timestamp.toString("hex");
15
+ }
16
+ if (transaction.nVersionGroupId) {
17
+ str += " nVersionGroupId " + transaction.nVersionGroupId.toString("hex");
18
+ }
19
+ if (transaction.nExpiryHeight) {
20
+ str += " nExpiryHeight " + transaction.nExpiryHeight.toString("hex");
21
+ }
22
+ if (transaction.extraData) {
23
+ str += " extraData " + transaction.extraData.toString("hex");
24
+ }
25
+ transaction.inputs.forEach(function (_a, i) {
26
+ var prevout = _a.prevout, script = _a.script, sequence = _a.sequence;
27
+ str += "\ninput ".concat(i, ":");
28
+ str += " prevout ".concat(prevout.toString("hex"));
29
+ str += " script ".concat(script.toString("hex"));
30
+ str += " sequence ".concat(sequence.toString("hex"));
31
+ });
32
+ (transaction.outputs || []).forEach(function (_a, i) {
33
+ var amount = _a.amount, script = _a.script;
34
+ str += "\noutput ".concat(i, ":");
35
+ str += " amount ".concat(amount.toString("hex"));
36
+ str += " script ".concat(script.toString("hex"));
37
+ });
38
+ return str;
39
+ }
40
+ exports.formatTransactionDebug = formatTransactionDebug;
41
+ function displayTransactionDebug(transaction) {
42
+ console.log(formatTransactionDebug(transaction));
43
+ }
44
+ exports.displayTransactionDebug = displayTransactionDebug;
45
+ //# sourceMappingURL=debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":";;;AACA,SAAgB,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;AAxCD,wDAwCC;AACD,SAAgB,uBAAuB,CAAC,WAAwB;IAC9D,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC;AACnD,CAAC;AAFD,0DAEC"}
@@ -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"}