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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. package/.turbo/turbo-build.log +1 -0
  2. package/CHANGELOG.md +10 -0
  3. package/jest.config.ts +6 -0
  4. package/package.json +15 -6
  5. package/src/bip32.ts +5 -3
  6. package/src/getTrustedInput.ts +2 -8
  7. package/src/newops/appClient.ts +8 -4
  8. package/src/newops/psbtv2.ts +13 -9
  9. package/LICENSE +0 -202
  10. package/lib/Btc.d.ts +0 -149
  11. package/lib/Btc.d.ts.map +0 -1
  12. package/lib/Btc.js +0 -353
  13. package/lib/Btc.js.map +0 -1
  14. package/lib/BtcNew.d.ts +0 -122
  15. package/lib/BtcNew.d.ts.map +0 -1
  16. package/lib/BtcNew.js +0 -451
  17. package/lib/BtcNew.js.map +0 -1
  18. package/lib/BtcOld.d.ts +0 -120
  19. package/lib/BtcOld.d.ts.map +0 -1
  20. package/lib/BtcOld.js +0 -263
  21. package/lib/BtcOld.js.map +0 -1
  22. package/lib/bip32.d.ts +0 -13
  23. package/lib/bip32.d.ts.map +0 -1
  24. package/lib/bip32.js +0 -57
  25. package/lib/bip32.js.map +0 -1
  26. package/lib/buffertools.d.ts +0 -30
  27. package/lib/buffertools.d.ts.map +0 -1
  28. package/lib/buffertools.js +0 -132
  29. package/lib/buffertools.js.map +0 -1
  30. package/lib/compressPublicKey.d.ts +0 -3
  31. package/lib/compressPublicKey.d.ts.map +0 -1
  32. package/lib/compressPublicKey.js +0 -11
  33. package/lib/compressPublicKey.js.map +0 -1
  34. package/lib/constants.d.ts +0 -13
  35. package/lib/constants.d.ts.map +0 -1
  36. package/lib/constants.js +0 -17
  37. package/lib/constants.js.map +0 -1
  38. package/lib/createTransaction.d.ts +0 -35
  39. package/lib/createTransaction.d.ts.map +0 -1
  40. package/lib/createTransaction.js +0 -411
  41. package/lib/createTransaction.js.map +0 -1
  42. package/lib/debug.d.ts +0 -4
  43. package/lib/debug.d.ts.map +0 -1
  44. package/lib/debug.js +0 -45
  45. package/lib/debug.js.map +0 -1
  46. package/lib/finalizeInput.d.ts +0 -5
  47. package/lib/finalizeInput.d.ts.map +0 -1
  48. package/lib/finalizeInput.js +0 -81
  49. package/lib/finalizeInput.js.map +0 -1
  50. package/lib/getAppAndVersion.d.ts +0 -9
  51. package/lib/getAppAndVersion.d.ts.map +0 -1
  52. package/lib/getAppAndVersion.js +0 -69
  53. package/lib/getAppAndVersion.js.map +0 -1
  54. package/lib/getTrustedInput.d.ts +0 -6
  55. package/lib/getTrustedInput.d.ts.map +0 -1
  56. package/lib/getTrustedInput.js +0 -275
  57. package/lib/getTrustedInput.js.map +0 -1
  58. package/lib/getTrustedInputBIP143.d.ts +0 -4
  59. package/lib/getTrustedInputBIP143.d.ts.map +0 -1
  60. package/lib/getTrustedInputBIP143.js +0 -34
  61. package/lib/getTrustedInputBIP143.js.map +0 -1
  62. package/lib/getWalletPublicKey.d.ts +0 -15
  63. package/lib/getWalletPublicKey.d.ts.map +0 -1
  64. package/lib/getWalletPublicKey.js +0 -93
  65. package/lib/getWalletPublicKey.js.map +0 -1
  66. package/lib/hashPublicKey.d.ts +0 -3
  67. package/lib/hashPublicKey.d.ts.map +0 -1
  68. package/lib/hashPublicKey.js +0 -13
  69. package/lib/hashPublicKey.js.map +0 -1
  70. package/lib/index.d.ts +0 -3
  71. package/lib/index.d.ts.map +0 -1
  72. package/lib/index.js +0 -8
  73. package/lib/index.js.map +0 -1
  74. package/lib/newops/accounttype.d.ts +0 -110
  75. package/lib/newops/accounttype.d.ts.map +0 -1
  76. package/lib/newops/accounttype.js +0 -236
  77. package/lib/newops/accounttype.js.map +0 -1
  78. package/lib/newops/appClient.d.ts +0 -18
  79. package/lib/newops/appClient.d.ts.map +0 -1
  80. package/lib/newops/appClient.js +0 -246
  81. package/lib/newops/appClient.js.map +0 -1
  82. package/lib/newops/clientCommands.d.ts +0 -77
  83. package/lib/newops/clientCommands.d.ts.map +0 -1
  84. package/lib/newops/clientCommands.js +0 -353
  85. package/lib/newops/clientCommands.js.map +0 -1
  86. package/lib/newops/merkelizedPsbt.d.ts +0 -26
  87. package/lib/newops/merkelizedPsbt.d.ts.map +0 -1
  88. package/lib/newops/merkelizedPsbt.js +0 -102
  89. package/lib/newops/merkelizedPsbt.js.map +0 -1
  90. package/lib/newops/merkle.d.ts +0 -34
  91. package/lib/newops/merkle.d.ts.map +0 -1
  92. package/lib/newops/merkle.js +0 -138
  93. package/lib/newops/merkle.js.map +0 -1
  94. package/lib/newops/merkleMap.d.ts +0 -25
  95. package/lib/newops/merkleMap.d.ts.map +0 -1
  96. package/lib/newops/merkleMap.js +0 -47
  97. package/lib/newops/merkleMap.js.map +0 -1
  98. package/lib/newops/policy.d.ts +0 -22
  99. package/lib/newops/policy.d.ts.map +0 -1
  100. package/lib/newops/policy.js +0 -48
  101. package/lib/newops/policy.js.map +0 -1
  102. package/lib/newops/psbtExtractor.d.ts +0 -10
  103. package/lib/newops/psbtExtractor.d.ts.map +0 -1
  104. package/lib/newops/psbtExtractor.js +0 -42
  105. package/lib/newops/psbtExtractor.js.map +0 -1
  106. package/lib/newops/psbtFinalizer.d.ts +0 -17
  107. package/lib/newops/psbtFinalizer.d.ts.map +0 -1
  108. package/lib/newops/psbtFinalizer.js +0 -135
  109. package/lib/newops/psbtFinalizer.js.map +0 -1
  110. package/lib/newops/psbtv2.d.ts +0 -149
  111. package/lib/newops/psbtv2.d.ts.map +0 -1
  112. package/lib/newops/psbtv2.js +0 -506
  113. package/lib/newops/psbtv2.js.map +0 -1
  114. package/lib/serializeTransaction.d.ts +0 -10
  115. package/lib/serializeTransaction.d.ts.map +0 -1
  116. package/lib/serializeTransaction.js +0 -72
  117. package/lib/serializeTransaction.js.map +0 -1
  118. package/lib/shouldUseTrustedInputForSegwit.d.ts +0 -5
  119. package/lib/shouldUseTrustedInputForSegwit.d.ts.map +0 -1
  120. package/lib/shouldUseTrustedInputForSegwit.js +0 -17
  121. package/lib/shouldUseTrustedInputForSegwit.js.map +0 -1
  122. package/lib/signMessage.d.ts +0 -10
  123. package/lib/signMessage.d.ts.map +0 -1
  124. package/lib/signMessage.js +0 -118
  125. package/lib/signMessage.js.map +0 -1
  126. package/lib/signP2SHTransaction.d.ts +0 -21
  127. package/lib/signP2SHTransaction.d.ts.map +0 -1
  128. package/lib/signP2SHTransaction.js +0 -208
  129. package/lib/signP2SHTransaction.js.map +0 -1
  130. package/lib/signTransaction.d.ts +0 -4
  131. package/lib/signTransaction.d.ts.map +0 -1
  132. package/lib/signTransaction.js +0 -36
  133. package/lib/signTransaction.js.map +0 -1
  134. package/lib/splitTransaction.d.ts +0 -3
  135. package/lib/splitTransaction.d.ts.map +0 -1
  136. package/lib/splitTransaction.js +0 -142
  137. package/lib/splitTransaction.js.map +0 -1
  138. package/lib/startUntrustedHashTransactionInput.d.ts +0 -9
  139. package/lib/startUntrustedHashTransactionInput.d.ts.map +0 -1
  140. package/lib/startUntrustedHashTransactionInput.js +0 -197
  141. package/lib/startUntrustedHashTransactionInput.js.map +0 -1
  142. package/lib/types.d.ts +0 -34
  143. package/lib/types.d.ts.map +0 -1
  144. package/lib/types.js +0 -3
  145. package/lib/types.js.map +0 -1
  146. package/lib/varint.d.ts +0 -4
  147. package/lib/varint.d.ts.map +0 -1
  148. package/lib/varint.js +0 -45
  149. package/lib/varint.js.map +0 -1
  150. package/lib-es/Btc.d.ts +0 -149
  151. package/lib-es/Btc.d.ts.map +0 -1
  152. package/lib-es/Btc.js +0 -329
  153. package/lib-es/Btc.js.map +0 -1
  154. package/lib-es/BtcNew.d.ts +0 -122
  155. package/lib-es/BtcNew.d.ts.map +0 -1
  156. package/lib-es/BtcNew.js +0 -444
  157. package/lib-es/BtcNew.js.map +0 -1
  158. package/lib-es/BtcOld.d.ts +0 -120
  159. package/lib-es/BtcOld.d.ts.map +0 -1
  160. package/lib-es/BtcOld.js +0 -258
  161. package/lib-es/BtcOld.js.map +0 -1
  162. package/lib-es/bip32.d.ts +0 -13
  163. package/lib-es/bip32.d.ts.map +0 -1
  164. package/lib-es/bip32.js +0 -44
  165. package/lib-es/bip32.js.map +0 -1
  166. package/lib-es/buffertools.d.ts +0 -30
  167. package/lib-es/buffertools.d.ts.map +0 -1
  168. package/lib-es/buffertools.js +0 -124
  169. package/lib-es/buffertools.js.map +0 -1
  170. package/lib-es/compressPublicKey.d.ts +0 -3
  171. package/lib-es/compressPublicKey.d.ts.map +0 -1
  172. package/lib-es/compressPublicKey.js +0 -7
  173. package/lib-es/compressPublicKey.js.map +0 -1
  174. package/lib-es/constants.d.ts +0 -13
  175. package/lib-es/constants.d.ts.map +0 -1
  176. package/lib-es/constants.js +0 -14
  177. package/lib-es/constants.js.map +0 -1
  178. package/lib-es/createTransaction.d.ts +0 -35
  179. package/lib-es/createTransaction.d.ts.map +0 -1
  180. package/lib-es/createTransaction.js +0 -407
  181. package/lib-es/createTransaction.js.map +0 -1
  182. package/lib-es/debug.d.ts +0 -4
  183. package/lib-es/debug.d.ts.map +0 -1
  184. package/lib-es/debug.js +0 -40
  185. package/lib-es/debug.js.map +0 -1
  186. package/lib-es/finalizeInput.d.ts +0 -5
  187. package/lib-es/finalizeInput.d.ts.map +0 -1
  188. package/lib-es/finalizeInput.js +0 -76
  189. package/lib-es/finalizeInput.js.map +0 -1
  190. package/lib-es/getAppAndVersion.d.ts +0 -9
  191. package/lib-es/getAppAndVersion.d.ts.map +0 -1
  192. package/lib-es/getAppAndVersion.js +0 -62
  193. package/lib-es/getAppAndVersion.js.map +0 -1
  194. package/lib-es/getTrustedInput.d.ts +0 -6
  195. package/lib-es/getTrustedInput.d.ts.map +0 -1
  196. package/lib-es/getTrustedInput.js +0 -267
  197. package/lib-es/getTrustedInput.js.map +0 -1
  198. package/lib-es/getTrustedInputBIP143.d.ts +0 -4
  199. package/lib-es/getTrustedInputBIP143.d.ts.map +0 -1
  200. package/lib-es/getTrustedInputBIP143.js +0 -27
  201. package/lib-es/getTrustedInputBIP143.js.map +0 -1
  202. package/lib-es/getWalletPublicKey.d.ts +0 -15
  203. package/lib-es/getWalletPublicKey.d.ts.map +0 -1
  204. package/lib-es/getWalletPublicKey.js +0 -89
  205. package/lib-es/getWalletPublicKey.js.map +0 -1
  206. package/lib-es/hashPublicKey.d.ts +0 -3
  207. package/lib-es/hashPublicKey.d.ts.map +0 -1
  208. package/lib-es/hashPublicKey.js +0 -6
  209. package/lib-es/hashPublicKey.js.map +0 -1
  210. package/lib-es/index.d.ts +0 -3
  211. package/lib-es/index.d.ts.map +0 -1
  212. package/lib-es/index.js +0 -3
  213. package/lib-es/index.js.map +0 -1
  214. package/lib-es/newops/accounttype.d.ts +0 -110
  215. package/lib-es/newops/accounttype.d.ts.map +0 -1
  216. package/lib-es/newops/accounttype.js +0 -233
  217. package/lib-es/newops/accounttype.js.map +0 -1
  218. package/lib-es/newops/appClient.d.ts +0 -18
  219. package/lib-es/newops/appClient.d.ts.map +0 -1
  220. package/lib-es/newops/appClient.js +0 -243
  221. package/lib-es/newops/appClient.js.map +0 -1
  222. package/lib-es/newops/clientCommands.d.ts +0 -77
  223. package/lib-es/newops/clientCommands.d.ts.map +0 -1
  224. package/lib-es/newops/clientCommands.js +0 -350
  225. package/lib-es/newops/clientCommands.js.map +0 -1
  226. package/lib-es/newops/merkelizedPsbt.d.ts +0 -26
  227. package/lib-es/newops/merkelizedPsbt.d.ts.map +0 -1
  228. package/lib-es/newops/merkelizedPsbt.js +0 -99
  229. package/lib-es/newops/merkelizedPsbt.js.map +0 -1
  230. package/lib-es/newops/merkle.d.ts +0 -34
  231. package/lib-es/newops/merkle.d.ts.map +0 -1
  232. package/lib-es/newops/merkle.js +0 -134
  233. package/lib-es/newops/merkle.js.map +0 -1
  234. package/lib-es/newops/merkleMap.d.ts +0 -25
  235. package/lib-es/newops/merkleMap.d.ts.map +0 -1
  236. package/lib-es/newops/merkleMap.js +0 -44
  237. package/lib-es/newops/merkleMap.js.map +0 -1
  238. package/lib-es/newops/policy.d.ts +0 -22
  239. package/lib-es/newops/policy.d.ts.map +0 -1
  240. package/lib-es/newops/policy.js +0 -44
  241. package/lib-es/newops/policy.js.map +0 -1
  242. package/lib-es/newops/psbtExtractor.d.ts +0 -10
  243. package/lib-es/newops/psbtExtractor.d.ts.map +0 -1
  244. package/lib-es/newops/psbtExtractor.js +0 -38
  245. package/lib-es/newops/psbtExtractor.js.map +0 -1
  246. package/lib-es/newops/psbtFinalizer.d.ts +0 -17
  247. package/lib-es/newops/psbtFinalizer.d.ts.map +0 -1
  248. package/lib-es/newops/psbtFinalizer.js +0 -131
  249. package/lib-es/newops/psbtFinalizer.js.map +0 -1
  250. package/lib-es/newops/psbtv2.d.ts +0 -149
  251. package/lib-es/newops/psbtv2.d.ts.map +0 -1
  252. package/lib-es/newops/psbtv2.js +0 -503
  253. package/lib-es/newops/psbtv2.js.map +0 -1
  254. package/lib-es/serializeTransaction.d.ts +0 -10
  255. package/lib-es/serializeTransaction.d.ts.map +0 -1
  256. package/lib-es/serializeTransaction.js +0 -67
  257. package/lib-es/serializeTransaction.js.map +0 -1
  258. package/lib-es/shouldUseTrustedInputForSegwit.d.ts +0 -5
  259. package/lib-es/shouldUseTrustedInputForSegwit.d.ts.map +0 -1
  260. package/lib-es/shouldUseTrustedInputForSegwit.js +0 -10
  261. package/lib-es/shouldUseTrustedInputForSegwit.js.map +0 -1
  262. package/lib-es/signMessage.d.ts +0 -10
  263. package/lib-es/signMessage.d.ts.map +0 -1
  264. package/lib-es/signMessage.js +0 -111
  265. package/lib-es/signMessage.js.map +0 -1
  266. package/lib-es/signP2SHTransaction.d.ts +0 -21
  267. package/lib-es/signP2SHTransaction.d.ts.map +0 -1
  268. package/lib-es/signP2SHTransaction.js +0 -204
  269. package/lib-es/signP2SHTransaction.js.map +0 -1
  270. package/lib-es/signTransaction.d.ts +0 -4
  271. package/lib-es/signTransaction.d.ts.map +0 -1
  272. package/lib-es/signTransaction.js +0 -32
  273. package/lib-es/signTransaction.js.map +0 -1
  274. package/lib-es/splitTransaction.d.ts +0 -3
  275. package/lib-es/splitTransaction.d.ts.map +0 -1
  276. package/lib-es/splitTransaction.js +0 -138
  277. package/lib-es/splitTransaction.js.map +0 -1
  278. package/lib-es/startUntrustedHashTransactionInput.d.ts +0 -9
  279. package/lib-es/startUntrustedHashTransactionInput.d.ts.map +0 -1
  280. package/lib-es/startUntrustedHashTransactionInput.js +0 -192
  281. package/lib-es/startUntrustedHashTransactionInput.js.map +0 -1
  282. package/lib-es/types.d.ts +0 -34
  283. package/lib-es/types.d.ts.map +0 -1
  284. package/lib-es/types.js +0 -2
  285. package/lib-es/types.js.map +0 -1
  286. package/lib-es/varint.d.ts +0 -4
  287. package/lib-es/varint.d.ts.map +0 -1
  288. package/lib-es/varint.js +0 -40
  289. package/lib-es/varint.js.map +0 -1
@@ -1,77 +0,0 @@
1
- /// <reference types="node" />
2
- import { Merkle } from "./merkle";
3
- import { MerkleMap } from "./merkleMap";
4
- declare enum ClientCommandCode {
5
- YIELD = 16,
6
- GET_PREIMAGE = 64,
7
- GET_MERKLE_LEAF_PROOF = 65,
8
- GET_MERKLE_LEAF_INDEX = 66,
9
- GET_MORE_ELEMENTS = 160
10
- }
11
- declare abstract class ClientCommand {
12
- abstract code: ClientCommandCode;
13
- abstract execute(request: Buffer): Buffer;
14
- }
15
- export declare class YieldCommand extends ClientCommand {
16
- private progressCallback;
17
- private results;
18
- code: ClientCommandCode;
19
- constructor(results: Buffer[], progressCallback: () => void);
20
- execute(request: Buffer): Buffer;
21
- }
22
- export declare class GetPreimageCommand extends ClientCommand {
23
- private known_preimages;
24
- private queue;
25
- code: ClientCommandCode;
26
- constructor(known_preimages: Map<string, Buffer>, queue: Buffer[]);
27
- execute(request: Buffer): Buffer;
28
- }
29
- export declare class GetMerkleLeafProofCommand extends ClientCommand {
30
- private known_trees;
31
- private queue;
32
- code: ClientCommandCode;
33
- constructor(known_trees: Map<string, Merkle>, queue: Buffer[]);
34
- execute(request: Buffer): Buffer;
35
- }
36
- export declare class GetMerkleLeafIndexCommand extends ClientCommand {
37
- private known_trees;
38
- code: ClientCommandCode;
39
- constructor(known_trees: Map<string, Merkle>);
40
- execute(request: Buffer): Buffer;
41
- }
42
- export declare class GetMoreElementsCommand extends ClientCommand {
43
- queue: Buffer[];
44
- code: ClientCommandCode;
45
- constructor(queue: Buffer[]);
46
- execute(request: Buffer): Buffer;
47
- }
48
- /**
49
- * This class will dispatch a client command coming from the hardware device to
50
- * the appropriate client command implementation. Those client commands
51
- * typically requests data from a merkle tree or merkelized maps.
52
- *
53
- * A ClientCommandInterpreter is prepared by adding the merkle trees and
54
- * merkelized maps it should be able to serve to the hardware device. This class
55
- * doesn't know anything about the semantics of the data it holds, it just
56
- * serves merkle data. It doesn't even know in what context it is being
57
- * executed, ie SignPsbt, getWalletAddress, etc.
58
- *
59
- * If the command yelds results to the client, as signPsbt does, the yielded
60
- * data will be accessible after the command completed by calling getYielded(),
61
- * which will return the yields in the same order as they came in.
62
- */
63
- export declare class ClientCommandInterpreter {
64
- private roots;
65
- private preimages;
66
- private yielded;
67
- private queue;
68
- private commands;
69
- constructor(progressCallback: () => void);
70
- getYielded(): Buffer[];
71
- addKnownPreimage(preimage: Buffer): void;
72
- addKnownList(elements: Buffer[]): void;
73
- addKnownMapping(mm: MerkleMap): void;
74
- execute(request: Buffer): Buffer;
75
- }
76
- export {};
77
- //# sourceMappingURL=clientCommands.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clientCommands.d.ts","sourceRoot":"","sources":["../../src/newops/clientCommands.ts"],"names":[],"mappings":";AAGA,OAAO,EAAY,MAAM,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,aAAK,iBAAiB;IACpB,KAAK,KAAO;IACZ,YAAY,KAAO;IACnB,qBAAqB,KAAO;IAC5B,qBAAqB,KAAO;IAC5B,iBAAiB,MAAO;CACzB;AAED,uBAAe,aAAa;IAC1B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAC1C;AAED,qBAAa,YAAa,SAAQ,aAAa;IAKd,OAAO,CAAC,gBAAgB;IAJvD,OAAO,CAAC,OAAO,CAAW;IAE1B,IAAI,oBAA2B;gBAEnB,OAAO,EAAE,MAAM,EAAE,EAAU,gBAAgB,EAAE,MAAM,IAAI;IAKnE,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAKjC;AAED,qBAAa,kBAAmB,SAAQ,aAAa;IACnD,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,KAAK,CAAW;IAExB,IAAI,oBAAkC;gBAE1B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;IAMjE,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CA4CjC;AAED,qBAAa,yBAA0B,SAAQ,aAAa;IAC1D,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,KAAK,CAAW;IAExB,IAAI,oBAA2C;gBAEnC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;IAM7D,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAyDjC;AAED,qBAAa,yBAA0B,SAAQ,aAAa;IAC1D,OAAO,CAAC,WAAW,CAAsB;IAEzC,IAAI,oBAA2C;gBAEnC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAK5C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAuCjC;AAED,qBAAa,sBAAuB,SAAQ,aAAa;IACvD,KAAK,EAAE,MAAM,EAAE,CAAC;IAEhB,IAAI,oBAAuC;gBAE/B,KAAK,EAAE,MAAM,EAAE;IAK3B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CA4BjC;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,SAAS,CAAkC;IAEnD,OAAO,CAAC,OAAO,CAAgB;IAE/B,OAAO,CAAC,KAAK,CAAgB;IAE7B,OAAO,CAAC,QAAQ,CAAoD;gBAExD,gBAAgB,EAAE,MAAM,IAAI;IAiBxC,UAAU,IAAI,MAAM,EAAE;IAItB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIxC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAStC,eAAe,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAKpC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAajC"}
@@ -1,353 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __read = (this && this.__read) || function (o, n) {
18
- var m = typeof Symbol === "function" && o[Symbol.iterator];
19
- if (!m) return o;
20
- var i = m.call(o), r, ar = [], e;
21
- try {
22
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
23
- }
24
- catch (error) { e = { error: error }; }
25
- finally {
26
- try {
27
- if (r && !r.done && (m = i["return"])) m.call(i);
28
- }
29
- finally { if (e) throw e.error; }
30
- }
31
- return ar;
32
- };
33
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
34
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
35
- if (ar || !(i in from)) {
36
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
37
- ar[i] = from[i];
38
- }
39
- }
40
- return to.concat(ar || Array.prototype.slice.call(from));
41
- };
42
- var __values = (this && this.__values) || function(o) {
43
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
44
- if (m) return m.call(o);
45
- if (o && typeof o.length === "number") return {
46
- next: function () {
47
- if (o && i >= o.length) o = void 0;
48
- return { value: o && o[i++], done: !o };
49
- }
50
- };
51
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
52
- };
53
- exports.__esModule = true;
54
- exports.ClientCommandInterpreter = exports.GetMoreElementsCommand = exports.GetMerkleLeafIndexCommand = exports.GetMerkleLeafProofCommand = exports.GetPreimageCommand = exports.YieldCommand = void 0;
55
- var bitcoinjs_lib_1 = require("bitcoinjs-lib");
56
- var buffertools_1 = require("../buffertools");
57
- var varint_1 = require("../varint");
58
- var merkle_1 = require("./merkle");
59
- var ClientCommandCode;
60
- (function (ClientCommandCode) {
61
- ClientCommandCode[ClientCommandCode["YIELD"] = 16] = "YIELD";
62
- ClientCommandCode[ClientCommandCode["GET_PREIMAGE"] = 64] = "GET_PREIMAGE";
63
- ClientCommandCode[ClientCommandCode["GET_MERKLE_LEAF_PROOF"] = 65] = "GET_MERKLE_LEAF_PROOF";
64
- ClientCommandCode[ClientCommandCode["GET_MERKLE_LEAF_INDEX"] = 66] = "GET_MERKLE_LEAF_INDEX";
65
- ClientCommandCode[ClientCommandCode["GET_MORE_ELEMENTS"] = 160] = "GET_MORE_ELEMENTS";
66
- })(ClientCommandCode || (ClientCommandCode = {}));
67
- var ClientCommand = /** @class */ (function () {
68
- function ClientCommand() {
69
- }
70
- return ClientCommand;
71
- }());
72
- var YieldCommand = /** @class */ (function (_super) {
73
- __extends(YieldCommand, _super);
74
- function YieldCommand(results, progressCallback) {
75
- var _this = _super.call(this) || this;
76
- _this.progressCallback = progressCallback;
77
- _this.code = ClientCommandCode.YIELD;
78
- _this.results = results;
79
- return _this;
80
- }
81
- YieldCommand.prototype.execute = function (request) {
82
- this.results.push(Buffer.from(request.subarray(1)));
83
- this.progressCallback();
84
- return Buffer.from("");
85
- };
86
- return YieldCommand;
87
- }(ClientCommand));
88
- exports.YieldCommand = YieldCommand;
89
- var GetPreimageCommand = /** @class */ (function (_super) {
90
- __extends(GetPreimageCommand, _super);
91
- function GetPreimageCommand(known_preimages, queue) {
92
- var _this = _super.call(this) || this;
93
- _this.code = ClientCommandCode.GET_PREIMAGE;
94
- _this.known_preimages = known_preimages;
95
- _this.queue = queue;
96
- return _this;
97
- }
98
- GetPreimageCommand.prototype.execute = function (request) {
99
- var req = Buffer.from(request.subarray(1));
100
- // we expect no more data to read
101
- if (req.length != 1 + 32) {
102
- throw new Error("Invalid request, unexpected trailing data");
103
- }
104
- if (req[0] != 0) {
105
- throw new Error("Unsupported request, the first byte should be 0");
106
- }
107
- // read the hash
108
- var hash = Buffer.alloc(32);
109
- for (var i = 0; i < 32; i++) {
110
- hash[i] = req[1 + i];
111
- }
112
- var req_hash_hex = hash.toString("hex");
113
- var known_preimage = this.known_preimages.get(req_hash_hex);
114
- if (known_preimage != undefined) {
115
- var preimage_len_varint = (0, varint_1.createVarint)(known_preimage.length);
116
- // We can send at most 255 - len(preimage_len_out) - 1 bytes in a single message;
117
- // the rest will be stored in the queue for GET_MORE_ELEMENTS
118
- var max_payload_size = 255 - preimage_len_varint.length - 1;
119
- var payload_size = Math.min(max_payload_size, known_preimage.length);
120
- if (payload_size < known_preimage.length) {
121
- for (var i = payload_size; i < known_preimage.length; i++) {
122
- this.queue.push(Buffer.from([known_preimage[i]]));
123
- }
124
- }
125
- return Buffer.concat([
126
- preimage_len_varint,
127
- Buffer.from([payload_size]),
128
- Buffer.from(known_preimage.subarray(0, payload_size)),
129
- ]);
130
- }
131
- throw Error("Requested unknown preimage for: ".concat(req_hash_hex));
132
- };
133
- return GetPreimageCommand;
134
- }(ClientCommand));
135
- exports.GetPreimageCommand = GetPreimageCommand;
136
- var GetMerkleLeafProofCommand = /** @class */ (function (_super) {
137
- __extends(GetMerkleLeafProofCommand, _super);
138
- function GetMerkleLeafProofCommand(known_trees, queue) {
139
- var _this = _super.call(this) || this;
140
- _this.code = ClientCommandCode.GET_MERKLE_LEAF_PROOF;
141
- _this.known_trees = known_trees;
142
- _this.queue = queue;
143
- return _this;
144
- }
145
- GetMerkleLeafProofCommand.prototype.execute = function (request) {
146
- var _a;
147
- var req = Buffer.from(request.subarray(1));
148
- if (req.length < 32 + 1 + 1) {
149
- throw new Error("Invalid request, expected at least 34 bytes");
150
- }
151
- var reqBuf = new buffertools_1.BufferReader(req);
152
- var hash = reqBuf.readSlice(32);
153
- var hash_hex = hash.toString("hex");
154
- var tree_size;
155
- var leaf_index;
156
- try {
157
- tree_size = reqBuf.readVarInt();
158
- leaf_index = reqBuf.readVarInt();
159
- }
160
- catch (e) {
161
- throw new Error("Invalid request, couldn't parse tree_size or leaf_index");
162
- }
163
- var mt = this.known_trees.get(hash_hex);
164
- if (!mt) {
165
- throw Error("Requested Merkle leaf proof for unknown tree: ".concat(hash_hex));
166
- }
167
- if (leaf_index >= tree_size || mt.size() != tree_size) {
168
- throw Error("Invalid index or tree size.");
169
- }
170
- if (this.queue.length != 0) {
171
- throw Error("This command should not execute when the queue is not empty.");
172
- }
173
- var proof = mt.getProof(leaf_index);
174
- var n_response_elements = Math.min(Math.floor((255 - 32 - 1 - 1) / 32), proof.length);
175
- var n_leftover_elements = proof.length - n_response_elements;
176
- // Add to the queue any proof elements that do not fit the response
177
- if (n_leftover_elements > 0) {
178
- (_a = this.queue).push.apply(_a, __spreadArray([], __read(proof.slice(-n_leftover_elements)), false));
179
- }
180
- return Buffer.concat(__spreadArray([
181
- mt.getLeafHash(leaf_index),
182
- Buffer.from([proof.length]),
183
- Buffer.from([n_response_elements])
184
- ], __read(proof.slice(0, n_response_elements)), false));
185
- };
186
- return GetMerkleLeafProofCommand;
187
- }(ClientCommand));
188
- exports.GetMerkleLeafProofCommand = GetMerkleLeafProofCommand;
189
- var GetMerkleLeafIndexCommand = /** @class */ (function (_super) {
190
- __extends(GetMerkleLeafIndexCommand, _super);
191
- function GetMerkleLeafIndexCommand(known_trees) {
192
- var _this = _super.call(this) || this;
193
- _this.code = ClientCommandCode.GET_MERKLE_LEAF_INDEX;
194
- _this.known_trees = known_trees;
195
- return _this;
196
- }
197
- GetMerkleLeafIndexCommand.prototype.execute = function (request) {
198
- var req = Buffer.from(request.subarray(1));
199
- if (req.length != 32 + 32) {
200
- throw new Error("Invalid request, unexpected trailing data");
201
- }
202
- // read the root hash
203
- var root_hash = Buffer.alloc(32);
204
- for (var i = 0; i < 32; i++) {
205
- root_hash[i] = req.readUInt8(i);
206
- }
207
- var root_hash_hex = root_hash.toString("hex");
208
- // read the leaf hash
209
- var leef_hash = Buffer.alloc(32);
210
- for (var i = 0; i < 32; i++) {
211
- leef_hash[i] = req.readUInt8(32 + i);
212
- }
213
- var leef_hash_hex = leef_hash.toString("hex");
214
- var mt = this.known_trees.get(root_hash_hex);
215
- if (!mt) {
216
- throw Error("Requested Merkle leaf index for unknown root: ".concat(root_hash_hex));
217
- }
218
- var leaf_index = 0;
219
- var found = 0;
220
- for (var i = 0; i < mt.size(); i++) {
221
- if (mt.getLeafHash(i).toString("hex") == leef_hash_hex) {
222
- found = 1;
223
- leaf_index = i;
224
- break;
225
- }
226
- }
227
- return Buffer.concat([Buffer.from([found]), (0, varint_1.createVarint)(leaf_index)]);
228
- };
229
- return GetMerkleLeafIndexCommand;
230
- }(ClientCommand));
231
- exports.GetMerkleLeafIndexCommand = GetMerkleLeafIndexCommand;
232
- var GetMoreElementsCommand = /** @class */ (function (_super) {
233
- __extends(GetMoreElementsCommand, _super);
234
- function GetMoreElementsCommand(queue) {
235
- var _this = _super.call(this) || this;
236
- _this.code = ClientCommandCode.GET_MORE_ELEMENTS;
237
- _this.queue = queue;
238
- return _this;
239
- }
240
- GetMoreElementsCommand.prototype.execute = function (request) {
241
- if (request.length != 1) {
242
- throw new Error("Invalid request, unexpected trailing data");
243
- }
244
- if (this.queue.length === 0) {
245
- throw new Error("No elements to get");
246
- }
247
- // all elements should have the same length
248
- var element_len = this.queue[0].length;
249
- if (this.queue.some(function (el) { return el.length != element_len; })) {
250
- throw new Error("The queue contains elements with different byte length, which is not expected");
251
- }
252
- var max_elements = Math.floor(253 / element_len);
253
- var n_returned_elements = Math.min(max_elements, this.queue.length);
254
- var returned_elements = this.queue.splice(0, n_returned_elements);
255
- return Buffer.concat(__spreadArray([
256
- Buffer.from([n_returned_elements]),
257
- Buffer.from([element_len])
258
- ], __read(returned_elements), false));
259
- };
260
- return GetMoreElementsCommand;
261
- }(ClientCommand));
262
- exports.GetMoreElementsCommand = GetMoreElementsCommand;
263
- /**
264
- * This class will dispatch a client command coming from the hardware device to
265
- * the appropriate client command implementation. Those client commands
266
- * typically requests data from a merkle tree or merkelized maps.
267
- *
268
- * A ClientCommandInterpreter is prepared by adding the merkle trees and
269
- * merkelized maps it should be able to serve to the hardware device. This class
270
- * doesn't know anything about the semantics of the data it holds, it just
271
- * serves merkle data. It doesn't even know in what context it is being
272
- * executed, ie SignPsbt, getWalletAddress, etc.
273
- *
274
- * If the command yelds results to the client, as signPsbt does, the yielded
275
- * data will be accessible after the command completed by calling getYielded(),
276
- * which will return the yields in the same order as they came in.
277
- */
278
- var ClientCommandInterpreter = /** @class */ (function () {
279
- function ClientCommandInterpreter(progressCallback) {
280
- var e_1, _a;
281
- this.roots = new Map();
282
- this.preimages = new Map();
283
- this.yielded = [];
284
- this.queue = [];
285
- this.commands = new Map();
286
- var commands = [
287
- new YieldCommand(this.yielded, progressCallback),
288
- new GetPreimageCommand(this.preimages, this.queue),
289
- new GetMerkleLeafIndexCommand(this.roots),
290
- new GetMerkleLeafProofCommand(this.roots, this.queue),
291
- new GetMoreElementsCommand(this.queue),
292
- ];
293
- try {
294
- for (var commands_1 = __values(commands), commands_1_1 = commands_1.next(); !commands_1_1.done; commands_1_1 = commands_1.next()) {
295
- var cmd = commands_1_1.value;
296
- if (this.commands.has(cmd.code)) {
297
- throw new Error("Multiple commands with code ".concat(cmd.code));
298
- }
299
- this.commands.set(cmd.code, cmd);
300
- }
301
- }
302
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
303
- finally {
304
- try {
305
- if (commands_1_1 && !commands_1_1.done && (_a = commands_1["return"])) _a.call(commands_1);
306
- }
307
- finally { if (e_1) throw e_1.error; }
308
- }
309
- }
310
- ClientCommandInterpreter.prototype.getYielded = function () {
311
- return this.yielded;
312
- };
313
- ClientCommandInterpreter.prototype.addKnownPreimage = function (preimage) {
314
- this.preimages.set(bitcoinjs_lib_1.crypto.sha256(preimage).toString("hex"), preimage);
315
- };
316
- ClientCommandInterpreter.prototype.addKnownList = function (elements) {
317
- var e_2, _a;
318
- try {
319
- for (var elements_1 = __values(elements), elements_1_1 = elements_1.next(); !elements_1_1.done; elements_1_1 = elements_1.next()) {
320
- var el = elements_1_1.value;
321
- var preimage = Buffer.concat([Buffer.from([0]), el]);
322
- this.addKnownPreimage(preimage);
323
- }
324
- }
325
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
326
- finally {
327
- try {
328
- if (elements_1_1 && !elements_1_1.done && (_a = elements_1["return"])) _a.call(elements_1);
329
- }
330
- finally { if (e_2) throw e_2.error; }
331
- }
332
- var mt = new merkle_1.Merkle(elements.map(function (el) { return (0, merkle_1.hashLeaf)(el); }));
333
- this.roots.set(mt.getRoot().toString("hex"), mt);
334
- };
335
- ClientCommandInterpreter.prototype.addKnownMapping = function (mm) {
336
- this.addKnownList(mm.keys);
337
- this.addKnownList(mm.values);
338
- };
339
- ClientCommandInterpreter.prototype.execute = function (request) {
340
- if (request.length == 0) {
341
- throw new Error("Unexpected empty command");
342
- }
343
- var cmdCode = request[0];
344
- var cmd = this.commands.get(cmdCode);
345
- if (!cmd) {
346
- throw new Error("Unexpected command code ".concat(cmdCode));
347
- }
348
- return cmd.execute(request);
349
- };
350
- return ClientCommandInterpreter;
351
- }());
352
- exports.ClientCommandInterpreter = ClientCommandInterpreter;
353
- //# sourceMappingURL=clientCommands.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clientCommands.js","sourceRoot":"","sources":["../../src/newops/clientCommands.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- /// <reference types="node" />
2
- import { MerkleMap } from "./merkleMap";
3
- import { PsbtV2 } from "./psbtv2";
4
- /**
5
- * This class merkelizes a PSBTv2, by merkelizing the different
6
- * maps of the psbt. This is used during the transaction signing process,
7
- * where the hardware app can request specific parts of the psbt from the
8
- * client code and be sure that the response data actually belong to the psbt.
9
- * The reason for this is the limited amount of memory available to the app,
10
- * so it can't always store the full psbt in memory.
11
- *
12
- * The signing process is documented at
13
- * https://github.com/LedgerHQ/app-bitcoin-new/blob/master/doc/bitcoin.md#sign_psbt
14
- */
15
- export declare class MerkelizedPsbt extends PsbtV2 {
16
- globalMerkleMap: MerkleMap;
17
- inputMerkleMaps: MerkleMap[];
18
- outputMerkleMaps: MerkleMap[];
19
- inputMapCommitments: Buffer[];
20
- outputMapCommitments: Buffer[];
21
- constructor(psbt: PsbtV2);
22
- getGlobalSize(): number;
23
- getGlobalKeysValuesRoot(): Buffer;
24
- private static createMerkleMap;
25
- }
26
- //# sourceMappingURL=merkelizedPsbt.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"merkelizedPsbt.d.ts","sourceRoot":"","sources":["../../src/newops/merkelizedPsbt.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;;;;;;;;GAUG;AACH,qBAAa,cAAe,SAAQ,MAAM;IACjC,eAAe,EAAE,SAAS,CAAC;IAC3B,eAAe,EAAE,SAAS,EAAE,CAAM;IAClC,gBAAgB,EAAE,SAAS,EAAE,CAAM;IACnC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,oBAAoB,EAAE,MAAM,EAAE,CAAC;gBAC1B,IAAI,EAAE,MAAM;IAwBxB,aAAa,IAAI,MAAM;IAGvB,uBAAuB,IAAI,MAAM;IAIjC,OAAO,CAAC,MAAM,CAAC,eAAe;CAc/B"}
@@ -1,102 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __read = (this && this.__read) || function (o, n) {
18
- var m = typeof Symbol === "function" && o[Symbol.iterator];
19
- if (!m) return o;
20
- var i = m.call(o), r, ar = [], e;
21
- try {
22
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
23
- }
24
- catch (error) { e = { error: error }; }
25
- finally {
26
- try {
27
- if (r && !r.done && (m = i["return"])) m.call(i);
28
- }
29
- finally { if (e) throw e.error; }
30
- }
31
- return ar;
32
- };
33
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
34
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
35
- if (ar || !(i in from)) {
36
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
37
- ar[i] = from[i];
38
- }
39
- }
40
- return to.concat(ar || Array.prototype.slice.call(from));
41
- };
42
- exports.__esModule = true;
43
- exports.MerkelizedPsbt = void 0;
44
- var merkleMap_1 = require("./merkleMap");
45
- var psbtv2_1 = require("./psbtv2");
46
- /**
47
- * This class merkelizes a PSBTv2, by merkelizing the different
48
- * maps of the psbt. This is used during the transaction signing process,
49
- * where the hardware app can request specific parts of the psbt from the
50
- * client code and be sure that the response data actually belong to the psbt.
51
- * The reason for this is the limited amount of memory available to the app,
52
- * so it can't always store the full psbt in memory.
53
- *
54
- * The signing process is documented at
55
- * https://github.com/LedgerHQ/app-bitcoin-new/blob/master/doc/bitcoin.md#sign_psbt
56
- */
57
- var MerkelizedPsbt = /** @class */ (function (_super) {
58
- __extends(MerkelizedPsbt, _super);
59
- function MerkelizedPsbt(psbt) {
60
- var _this = _super.call(this) || this;
61
- _this.inputMerkleMaps = [];
62
- _this.outputMerkleMaps = [];
63
- psbt.copy(_this);
64
- _this.globalMerkleMap = MerkelizedPsbt.createMerkleMap(_this.globalMap);
65
- for (var i = 0; i < _this.getGlobalInputCount(); i++) {
66
- _this.inputMerkleMaps.push(MerkelizedPsbt.createMerkleMap(_this.inputMaps[i]));
67
- }
68
- _this.inputMapCommitments = __spreadArray([], __read(_this.inputMerkleMaps.values()), false).map(function (v) {
69
- return v.commitment();
70
- });
71
- for (var i = 0; i < _this.getGlobalOutputCount(); i++) {
72
- _this.outputMerkleMaps.push(MerkelizedPsbt.createMerkleMap(_this.outputMaps[i]));
73
- }
74
- _this.outputMapCommitments = __spreadArray([], __read(_this.outputMerkleMaps.values()), false).map(function (v) {
75
- return v.commitment();
76
- });
77
- return _this;
78
- }
79
- // These public functions are for MerkelizedPsbt.
80
- MerkelizedPsbt.prototype.getGlobalSize = function () {
81
- return this.globalMap.size;
82
- };
83
- MerkelizedPsbt.prototype.getGlobalKeysValuesRoot = function () {
84
- return this.globalMerkleMap.commitment();
85
- };
86
- MerkelizedPsbt.createMerkleMap = function (map) {
87
- var sortedKeysStrings = __spreadArray([], __read(map.keys()), false).sort();
88
- var values = sortedKeysStrings.map(function (k) {
89
- var v = map.get(k);
90
- if (!v) {
91
- throw new Error("No value for key " + k);
92
- }
93
- return v;
94
- });
95
- var sortedKeys = sortedKeysStrings.map(function (k) { return Buffer.from(k, "hex"); });
96
- var merkleMap = new merkleMap_1.MerkleMap(sortedKeys, values);
97
- return merkleMap;
98
- };
99
- return MerkelizedPsbt;
100
- }(psbtv2_1.PsbtV2));
101
- exports.MerkelizedPsbt = MerkelizedPsbt;
102
- //# sourceMappingURL=merkelizedPsbt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"merkelizedPsbt.js","sourceRoot":"","sources":["../../src/newops/merkelizedPsbt.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAwC;AACxC,mCAAkC;AAElC;;;;;;;;;;GAUG;AACH;IAAoC,kCAAM;IAMxC,wBAAY,IAAY;QAAxB,YACE,iBAAO,SAqBR;QA1BM,qBAAe,GAAgB,EAAE,CAAC;QAClC,sBAAgB,GAAgB,EAAE,CAAC;QAKxC,IAAI,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;QAChB,KAAI,CAAC,eAAe,GAAG,cAAc,CAAC,eAAe,CAAC,KAAI,CAAC,SAAS,CAAC,CAAC;QAEtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC,EAAE,EAAE;YACnD,KAAI,CAAC,eAAe,CAAC,IAAI,CACvB,cAAc,CAAC,eAAe,CAAC,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAClD,CAAC;SACH;QACD,KAAI,CAAC,mBAAmB,GAAG,yBAAI,KAAI,CAAC,eAAe,CAAC,MAAM,EAAE,UAAE,GAAG,CAAC,UAAC,CAAC;YAClE,OAAA,CAAC,CAAC,UAAU,EAAE;QAAd,CAAc,CACf,CAAC;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC,EAAE,EAAE;YACpD,KAAI,CAAC,gBAAgB,CAAC,IAAI,CACxB,cAAc,CAAC,eAAe,CAAC,KAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CACnD,CAAC;SACH;QACD,KAAI,CAAC,oBAAoB,GAAG,yBAAI,KAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAE,GAAG,CAAC,UAAC,CAAC;YACpE,OAAA,CAAC,CAAC,UAAU,EAAE;QAAd,CAAc,CACf,CAAC;;IACJ,CAAC;IACD,iDAAiD;IACjD,sCAAa,GAAb;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,CAAC;IACD,gDAAuB,GAAvB;QACE,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;IAC3C,CAAC;IAEc,8BAAe,GAA9B,UAA+B,GAAwB;QACrD,IAAM,iBAAiB,GAAG,yBAAI,GAAG,CAAC,IAAI,EAAE,UAAE,IAAI,EAAE,CAAC;QACjD,IAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAC,CAAC;YACrC,IAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,CAAC,EAAE;gBACN,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;aAC1C;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QACH,IAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,EAArB,CAAqB,CAAC,CAAC;QAEvE,IAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACpD,OAAO,SAAS,CAAC;IACnB,CAAC;IACH,qBAAC;AAAD,CAAC,AAnDD,CAAoC,eAAM,GAmDzC;AAnDY,wCAAc"}
@@ -1,34 +0,0 @@
1
- /// <reference types="node" />
2
- /**
3
- * This class implements the merkle tree used by Ledger Bitcoin app v2+,
4
- * which is documented at
5
- * https://github.com/LedgerHQ/app-bitcoin-new/blob/master/doc/merkle.md
6
- */
7
- export declare class Merkle {
8
- private leaves;
9
- private rootNode;
10
- private leafNodes;
11
- private h;
12
- constructor(leaves: Buffer[], hasher?: (buf: Buffer) => Buffer);
13
- getRoot(): Buffer;
14
- size(): number;
15
- getLeaves(): Buffer[];
16
- getLeafHash(index: number): Buffer;
17
- getProof(index: number): Buffer[];
18
- calculateRoot(leaves: Buffer[]): {
19
- root: Node;
20
- leaves: Node[];
21
- };
22
- hashNode(left: Buffer, right: Buffer): Buffer;
23
- }
24
- export declare function hashLeaf(buf: Buffer, hashFunction?: (buf: Buffer) => Buffer): Buffer;
25
- declare class Node {
26
- leftChild?: Node;
27
- rightChild?: Node;
28
- parent?: Node;
29
- hash: Buffer;
30
- constructor(left: Node | undefined, right: Node | undefined, hash: Buffer);
31
- isLeaf(): boolean;
32
- }
33
- export {};
34
- //# sourceMappingURL=merkle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"merkle.d.ts","sourceRoot":"","sources":["../../src/newops/merkle.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,QAAQ,CAAO;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,CAAC,CAA0B;gBAEjC,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAsB;IAQjD,OAAO,IAAI,MAAM;IAGjB,IAAI,IAAI,MAAM;IAGd,SAAS,IAAI,MAAM,EAAE;IAGrB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAGlC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAKjC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,IAAI,EAAE,CAAA;KAAE;IAwB/D,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;CAG9C;AAED,wBAAgB,QAAQ,CACtB,GAAG,EAAE,MAAM,EACX,YAAY,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAsB,GACpD,MAAM,CAER;AAUD,cAAM,IAAI;IACR,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;gBACD,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM;IAKzE,MAAM,IAAI,OAAO;CAGlB"}