@sidhujag/sysweb3-keyring 1.0.547 → 1.0.548

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 (210) hide show
  1. package/package.json +2 -27
  2. package/coverage/clover.xml +0 -2875
  3. package/coverage/coverage-final.json +0 -29468
  4. package/coverage/lcov-report/base.css +0 -354
  5. package/coverage/lcov-report/block-navigation.js +0 -85
  6. package/coverage/lcov-report/favicon.png +0 -0
  7. package/coverage/lcov-report/index.html +0 -320
  8. package/coverage/lcov-report/prettify.css +0 -101
  9. package/coverage/lcov-report/prettify.js +0 -1008
  10. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  11. package/coverage/lcov-report/sorter.js +0 -191
  12. package/coverage/lcov-report/src/index.html +0 -276
  13. package/coverage/lcov-report/src/index.ts.html +0 -114
  14. package/coverage/lcov-report/src/initial-state.ts.html +0 -558
  15. package/coverage/lcov-report/src/keyring-manager.ts.html +0 -6279
  16. package/coverage/lcov-report/src/ledger/bitcoin_client/index.html +0 -178
  17. package/coverage/lcov-report/src/ledger/bitcoin_client/index.ts.html +0 -144
  18. package/coverage/lcov-report/src/ledger/bitcoin_client/lib/appClient.ts.html +0 -1560
  19. package/coverage/lcov-report/src/ledger/bitcoin_client/lib/bip32.ts.html +0 -276
  20. package/coverage/lcov-report/src/ledger/bitcoin_client/lib/buffertools.ts.html +0 -495
  21. package/coverage/lcov-report/src/ledger/bitcoin_client/lib/clientCommands.ts.html +0 -1138
  22. package/coverage/lcov-report/src/ledger/bitcoin_client/lib/index.html +0 -363
  23. package/coverage/lcov-report/src/ledger/bitcoin_client/lib/merkelizedPsbt.ts.html +0 -289
  24. package/coverage/lcov-report/src/ledger/bitcoin_client/lib/merkle.ts.html +0 -486
  25. package/coverage/lcov-report/src/ledger/bitcoin_client/lib/merkleMap.ts.html +0 -240
  26. package/coverage/lcov-report/src/ledger/bitcoin_client/lib/policy.ts.html +0 -342
  27. package/coverage/lcov-report/src/ledger/bitcoin_client/lib/psbtv2.ts.html +0 -2388
  28. package/coverage/lcov-report/src/ledger/bitcoin_client/lib/varint.ts.html +0 -453
  29. package/coverage/lcov-report/src/ledger/consts.ts.html +0 -177
  30. package/coverage/lcov-report/src/ledger/index.html +0 -216
  31. package/coverage/lcov-report/src/ledger/index.ts.html +0 -1371
  32. package/coverage/lcov-report/src/ledger/utils.ts.html +0 -102
  33. package/coverage/lcov-report/src/signers.ts.html +0 -591
  34. package/coverage/lcov-report/src/storage.ts.html +0 -198
  35. package/coverage/lcov-report/src/transactions/ethereum.ts.html +0 -5826
  36. package/coverage/lcov-report/src/transactions/index.html +0 -216
  37. package/coverage/lcov-report/src/transactions/index.ts.html +0 -93
  38. package/coverage/lcov-report/src/transactions/syscoin.ts.html +0 -1521
  39. package/coverage/lcov-report/src/trezor/index.html +0 -176
  40. package/coverage/lcov-report/src/trezor/index.ts.html +0 -2655
  41. package/coverage/lcov-report/src/types.ts.html +0 -1443
  42. package/coverage/lcov-report/src/utils/derivation-paths.ts.html +0 -486
  43. package/coverage/lcov-report/src/utils/index.html +0 -196
  44. package/coverage/lcov-report/src/utils/psbt.ts.html +0 -159
  45. package/coverage/lcov-report/test/helpers/constants.ts.html +0 -627
  46. package/coverage/lcov-report/test/helpers/index.html +0 -176
  47. package/coverage/lcov.info +0 -4832
  48. package/dist/package.json +0 -50
  49. package/examples/basic-usage.js +0 -140
  50. package/jest.config.js +0 -32
  51. package/readme.md +0 -201
  52. package/src/declare.d.ts +0 -7
  53. package/src/errorUtils.ts +0 -83
  54. package/src/hardware-wallet-manager.ts +0 -655
  55. package/src/index.ts +0 -12
  56. package/src/initial-state.ts +0 -108
  57. package/src/keyring-manager.ts +0 -2698
  58. package/src/ledger/bitcoin_client/index.ts +0 -19
  59. package/src/ledger/bitcoin_client/lib/appClient.ts +0 -405
  60. package/src/ledger/bitcoin_client/lib/bip32.ts +0 -61
  61. package/src/ledger/bitcoin_client/lib/buffertools.ts +0 -134
  62. package/src/ledger/bitcoin_client/lib/clientCommands.ts +0 -356
  63. package/src/ledger/bitcoin_client/lib/constants.ts +0 -12
  64. package/src/ledger/bitcoin_client/lib/merkelizedPsbt.ts +0 -65
  65. package/src/ledger/bitcoin_client/lib/merkle.ts +0 -136
  66. package/src/ledger/bitcoin_client/lib/merkleMap.ts +0 -49
  67. package/src/ledger/bitcoin_client/lib/policy.ts +0 -91
  68. package/src/ledger/bitcoin_client/lib/psbtv2.ts +0 -768
  69. package/src/ledger/bitcoin_client/lib/varint.ts +0 -120
  70. package/src/ledger/consts.ts +0 -3
  71. package/src/ledger/index.ts +0 -685
  72. package/src/ledger/types.ts +0 -74
  73. package/src/network-utils.ts +0 -99
  74. package/src/providers.ts +0 -345
  75. package/src/signers.ts +0 -158
  76. package/src/storage.ts +0 -63
  77. package/src/transactions/__tests__/integration.test.ts +0 -303
  78. package/src/transactions/__tests__/syscoin.test.ts +0 -409
  79. package/src/transactions/ethereum.ts +0 -2503
  80. package/src/transactions/index.ts +0 -2
  81. package/src/transactions/syscoin.ts +0 -542
  82. package/src/trezor/index.ts +0 -1050
  83. package/src/types.ts +0 -366
  84. package/src/utils/derivation-paths.ts +0 -133
  85. package/src/utils/psbt.ts +0 -24
  86. package/src/utils.ts +0 -191
  87. package/test/README.md +0 -158
  88. package/test/__mocks__/ledger-mock.js +0 -20
  89. package/test/__mocks__/trezor-mock.js +0 -75
  90. package/test/cleanup-summary.md +0 -167
  91. package/test/helpers/README.md +0 -78
  92. package/test/helpers/constants.ts +0 -79
  93. package/test/helpers/setup.ts +0 -714
  94. package/test/integration/import-validation.spec.ts +0 -588
  95. package/test/unit/hardware/ledger.spec.ts +0 -869
  96. package/test/unit/hardware/trezor.spec.ts +0 -828
  97. package/test/unit/keyring-manager/account-management.spec.ts +0 -970
  98. package/test/unit/keyring-manager/import-watchonly.spec.ts +0 -181
  99. package/test/unit/keyring-manager/import-wif.spec.ts +0 -126
  100. package/test/unit/keyring-manager/initialization.spec.ts +0 -782
  101. package/test/unit/keyring-manager/key-derivation.spec.ts +0 -996
  102. package/test/unit/keyring-manager/security.spec.ts +0 -505
  103. package/test/unit/keyring-manager/state-management.spec.ts +0 -375
  104. package/test/unit/network/network-management.spec.ts +0 -372
  105. package/test/unit/transactions/ethereum-transactions.spec.ts +0 -382
  106. package/test/unit/transactions/syscoin-transactions.spec.ts +0 -615
  107. package/tsconfig.json +0 -14
  108. /package/{dist/README.md → README.md} +0 -0
  109. /package/{dist/cjs → cjs}/errorUtils.js +0 -0
  110. /package/{dist/cjs → cjs}/errorUtils.js.map +0 -0
  111. /package/{dist/cjs → cjs}/hardware-wallet-manager.js +0 -0
  112. /package/{dist/cjs → cjs}/hardware-wallet-manager.js.map +0 -0
  113. /package/{dist/cjs → cjs}/index.js +0 -0
  114. /package/{dist/cjs → cjs}/index.js.map +0 -0
  115. /package/{dist/cjs → cjs}/initial-state.js +0 -0
  116. /package/{dist/cjs → cjs}/initial-state.js.map +0 -0
  117. /package/{dist/cjs → cjs}/keyring-manager.js +0 -0
  118. /package/{dist/cjs → cjs}/keyring-manager.js.map +0 -0
  119. /package/{dist/cjs → cjs}/ledger/bitcoin_client/index.js +0 -0
  120. /package/{dist/cjs → cjs}/ledger/bitcoin_client/index.js.map +0 -0
  121. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/appClient.js +0 -0
  122. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/appClient.js.map +0 -0
  123. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/bip32.js +0 -0
  124. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/bip32.js.map +0 -0
  125. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/buffertools.js +0 -0
  126. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/buffertools.js.map +0 -0
  127. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/clientCommands.js +0 -0
  128. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/clientCommands.js.map +0 -0
  129. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/constants.js +0 -0
  130. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/constants.js.map +0 -0
  131. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/merkelizedPsbt.js +0 -0
  132. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/merkelizedPsbt.js.map +0 -0
  133. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/merkle.js +0 -0
  134. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/merkle.js.map +0 -0
  135. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/merkleMap.js +0 -0
  136. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/merkleMap.js.map +0 -0
  137. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/policy.js +0 -0
  138. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/policy.js.map +0 -0
  139. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/psbtv2.js +0 -0
  140. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/psbtv2.js.map +0 -0
  141. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/varint.js +0 -0
  142. /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/varint.js.map +0 -0
  143. /package/{dist/cjs → cjs}/ledger/consts.js +0 -0
  144. /package/{dist/cjs → cjs}/ledger/consts.js.map +0 -0
  145. /package/{dist/cjs → cjs}/ledger/index.js +0 -0
  146. /package/{dist/cjs → cjs}/ledger/index.js.map +0 -0
  147. /package/{dist/cjs → cjs}/ledger/types.js +0 -0
  148. /package/{dist/cjs → cjs}/ledger/types.js.map +0 -0
  149. /package/{dist/cjs → cjs}/network-utils.js +0 -0
  150. /package/{dist/cjs → cjs}/network-utils.js.map +0 -0
  151. /package/{dist/cjs → cjs}/providers.js +0 -0
  152. /package/{dist/cjs → cjs}/providers.js.map +0 -0
  153. /package/{dist/cjs → cjs}/signers.js +0 -0
  154. /package/{dist/cjs → cjs}/signers.js.map +0 -0
  155. /package/{dist/cjs → cjs}/storage.js +0 -0
  156. /package/{dist/cjs → cjs}/storage.js.map +0 -0
  157. /package/{dist/cjs → cjs}/transactions/__tests__/integration.test.js +0 -0
  158. /package/{dist/cjs → cjs}/transactions/__tests__/integration.test.js.map +0 -0
  159. /package/{dist/cjs → cjs}/transactions/__tests__/syscoin.test.js +0 -0
  160. /package/{dist/cjs → cjs}/transactions/__tests__/syscoin.test.js.map +0 -0
  161. /package/{dist/cjs → cjs}/transactions/ethereum.js +0 -0
  162. /package/{dist/cjs → cjs}/transactions/ethereum.js.map +0 -0
  163. /package/{dist/cjs → cjs}/transactions/index.js +0 -0
  164. /package/{dist/cjs → cjs}/transactions/index.js.map +0 -0
  165. /package/{dist/cjs → cjs}/transactions/syscoin.js +0 -0
  166. /package/{dist/cjs → cjs}/transactions/syscoin.js.map +0 -0
  167. /package/{dist/cjs → cjs}/trezor/index.js +0 -0
  168. /package/{dist/cjs → cjs}/trezor/index.js.map +0 -0
  169. /package/{dist/cjs → cjs}/types.js +0 -0
  170. /package/{dist/cjs → cjs}/types.js.map +0 -0
  171. /package/{dist/cjs → cjs}/utils/derivation-paths.js +0 -0
  172. /package/{dist/cjs → cjs}/utils/derivation-paths.js.map +0 -0
  173. /package/{dist/cjs → cjs}/utils/psbt.js +0 -0
  174. /package/{dist/cjs → cjs}/utils/psbt.js.map +0 -0
  175. /package/{dist/cjs → cjs}/utils.js +0 -0
  176. /package/{dist/cjs → cjs}/utils.js.map +0 -0
  177. /package/{dist/types → types}/errorUtils.d.ts +0 -0
  178. /package/{dist/types → types}/hardware-wallet-manager.d.ts +0 -0
  179. /package/{dist/types → types}/index.d.ts +0 -0
  180. /package/{dist/types → types}/initial-state.d.ts +0 -0
  181. /package/{dist/types → types}/keyring-manager.d.ts +0 -0
  182. /package/{dist/types → types}/ledger/bitcoin_client/index.d.ts +0 -0
  183. /package/{dist/types → types}/ledger/bitcoin_client/lib/appClient.d.ts +0 -0
  184. /package/{dist/types → types}/ledger/bitcoin_client/lib/bip32.d.ts +0 -0
  185. /package/{dist/types → types}/ledger/bitcoin_client/lib/buffertools.d.ts +0 -0
  186. /package/{dist/types → types}/ledger/bitcoin_client/lib/clientCommands.d.ts +0 -0
  187. /package/{dist/types → types}/ledger/bitcoin_client/lib/constants.d.ts +0 -0
  188. /package/{dist/types → types}/ledger/bitcoin_client/lib/merkelizedPsbt.d.ts +0 -0
  189. /package/{dist/types → types}/ledger/bitcoin_client/lib/merkle.d.ts +0 -0
  190. /package/{dist/types → types}/ledger/bitcoin_client/lib/merkleMap.d.ts +0 -0
  191. /package/{dist/types → types}/ledger/bitcoin_client/lib/policy.d.ts +0 -0
  192. /package/{dist/types → types}/ledger/bitcoin_client/lib/psbtv2.d.ts +0 -0
  193. /package/{dist/types → types}/ledger/bitcoin_client/lib/varint.d.ts +0 -0
  194. /package/{dist/types → types}/ledger/consts.d.ts +0 -0
  195. /package/{dist/types → types}/ledger/index.d.ts +0 -0
  196. /package/{dist/types → types}/ledger/types.d.ts +0 -0
  197. /package/{dist/types → types}/network-utils.d.ts +0 -0
  198. /package/{dist/types → types}/providers.d.ts +0 -0
  199. /package/{dist/types → types}/signers.d.ts +0 -0
  200. /package/{dist/types → types}/storage.d.ts +0 -0
  201. /package/{dist/types → types}/transactions/__tests__/integration.test.d.ts +0 -0
  202. /package/{dist/types → types}/transactions/__tests__/syscoin.test.d.ts +0 -0
  203. /package/{dist/types → types}/transactions/ethereum.d.ts +0 -0
  204. /package/{dist/types → types}/transactions/index.d.ts +0 -0
  205. /package/{dist/types → types}/transactions/syscoin.d.ts +0 -0
  206. /package/{dist/types → types}/trezor/index.d.ts +0 -0
  207. /package/{dist/types → types}/types.d.ts +0 -0
  208. /package/{dist/types → types}/utils/derivation-paths.d.ts +0 -0
  209. /package/{dist/types → types}/utils/psbt.d.ts +0 -0
  210. /package/{dist/types → types}/utils.d.ts +0 -0
@@ -1,240 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <title>
5
- Code coverage report for src/ledger/bitcoin_client/lib/merkleMap.ts
6
- </title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../../../prettify.css" />
9
- <link rel="stylesheet" href="../../../../base.css" />
10
- <link
11
- rel="shortcut icon"
12
- type="image/x-icon"
13
- href="../../../../favicon.png"
14
- />
15
- <meta name="viewport" content="width=device-width, initial-scale=1" />
16
- <style type="text/css">
17
- .coverage-summary .sorter {
18
- background-image: url(../../../../sort-arrow-sprite.png);
19
- }
20
- </style>
21
- </head>
22
-
23
- <body>
24
- <div class="wrapper">
25
- <div class="pad1">
26
- <h1>
27
- <a href="../../../../index.html">All files</a> /
28
- <a href="index.html">src/ledger/bitcoin_client/lib</a> merkleMap.ts
29
- </h1>
30
- <div class="clearfix">
31
- <div class="fl pad1y space-right2">
32
- <span class="strong">18.75% </span>
33
- <span class="quiet">Statements</span>
34
- <span class="fraction">3/16</span>
35
- </div>
36
-
37
- <div class="fl pad1y space-right2">
38
- <span class="strong">0% </span>
39
- <span class="quiet">Branches</span>
40
- <span class="fraction">0/2</span>
41
- </div>
42
-
43
- <div class="fl pad1y space-right2">
44
- <span class="strong">0% </span>
45
- <span class="quiet">Functions</span>
46
- <span class="fraction">0/4</span>
47
- </div>
48
-
49
- <div class="fl pad1y space-right2">
50
- <span class="strong">23.07% </span>
51
- <span class="quiet">Lines</span>
52
- <span class="fraction">3/13</span>
53
- </div>
54
- </div>
55
- <p class="quiet">
56
- Press <em>n</em> or <em>j</em> to go to the next uncovered block,
57
- <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
58
- </p>
59
- <template id="filterTemplate">
60
- <div class="quiet">
61
- Filter:
62
- <input type="search" id="fileSearch" />
63
- </div>
64
- </template>
65
- </div>
66
- <div class="status-line low"></div>
67
- <pre><table class="coverage">
68
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
69
- <a name='L2'></a><a href='#L2'>2</a>
70
- <a name='L3'></a><a href='#L3'>3</a>
71
- <a name='L4'></a><a href='#L4'>4</a>
72
- <a name='L5'></a><a href='#L5'>5</a>
73
- <a name='L6'></a><a href='#L6'>6</a>
74
- <a name='L7'></a><a href='#L7'>7</a>
75
- <a name='L8'></a><a href='#L8'>8</a>
76
- <a name='L9'></a><a href='#L9'>9</a>
77
- <a name='L10'></a><a href='#L10'>10</a>
78
- <a name='L11'></a><a href='#L11'>11</a>
79
- <a name='L12'></a><a href='#L12'>12</a>
80
- <a name='L13'></a><a href='#L13'>13</a>
81
- <a name='L14'></a><a href='#L14'>14</a>
82
- <a name='L15'></a><a href='#L15'>15</a>
83
- <a name='L16'></a><a href='#L16'>16</a>
84
- <a name='L17'></a><a href='#L17'>17</a>
85
- <a name='L18'></a><a href='#L18'>18</a>
86
- <a name='L19'></a><a href='#L19'>19</a>
87
- <a name='L20'></a><a href='#L20'>20</a>
88
- <a name='L21'></a><a href='#L21'>21</a>
89
- <a name='L22'></a><a href='#L22'>22</a>
90
- <a name='L23'></a><a href='#L23'>23</a>
91
- <a name='L24'></a><a href='#L24'>24</a>
92
- <a name='L25'></a><a href='#L25'>25</a>
93
- <a name='L26'></a><a href='#L26'>26</a>
94
- <a name='L27'></a><a href='#L27'>27</a>
95
- <a name='L28'></a><a href='#L28'>28</a>
96
- <a name='L29'></a><a href='#L29'>29</a>
97
- <a name='L30'></a><a href='#L30'>30</a>
98
- <a name='L31'></a><a href='#L31'>31</a>
99
- <a name='L32'></a><a href='#L32'>32</a>
100
- <a name='L33'></a><a href='#L33'>33</a>
101
- <a name='L34'></a><a href='#L34'>34</a>
102
- <a name='L35'></a><a href='#L35'>35</a>
103
- <a name='L36'></a><a href='#L36'>36</a>
104
- <a name='L37'></a><a href='#L37'>37</a>
105
- <a name='L38'></a><a href='#L38'>38</a>
106
- <a name='L39'></a><a href='#L39'>39</a>
107
- <a name='L40'></a><a href='#L40'>40</a>
108
- <a name='L41'></a><a href='#L41'>41</a>
109
- <a name='L42'></a><a href='#L42'>42</a>
110
- <a name='L43'></a><a href='#L43'>43</a>
111
- <a name='L44'></a><a href='#L44'>44</a>
112
- <a name='L45'></a><a href='#L45'>45</a>
113
- <a name='L46'></a><a href='#L46'>46</a>
114
- <a name='L47'></a><a href='#L47'>47</a>
115
- <a name='L48'></a><a href='#L48'>48</a>
116
- <a name='L49'></a><a href='#L49'>49</a>
117
- <a name='L50'></a><a href='#L50'>50</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
118
- <span class="cline-any cline-yes">2x</span>
119
- <span class="cline-any cline-neutral">&nbsp;</span>
120
- <span class="cline-any cline-neutral">&nbsp;</span>
121
- <span class="cline-any cline-neutral">&nbsp;</span>
122
- <span class="cline-any cline-neutral">&nbsp;</span>
123
- <span class="cline-any cline-neutral">&nbsp;</span>
124
- <span class="cline-any cline-neutral">&nbsp;</span>
125
- <span class="cline-any cline-neutral">&nbsp;</span>
126
- <span class="cline-any cline-neutral">&nbsp;</span>
127
- <span class="cline-any cline-neutral">&nbsp;</span>
128
- <span class="cline-any cline-neutral">&nbsp;</span>
129
- <span class="cline-any cline-neutral">&nbsp;</span>
130
- <span class="cline-any cline-yes">2x</span>
131
- <span class="cline-any cline-neutral">&nbsp;</span>
132
- <span class="cline-any cline-neutral">&nbsp;</span>
133
- <span class="cline-any cline-neutral">&nbsp;</span>
134
- <span class="cline-any cline-neutral">&nbsp;</span>
135
- <span class="cline-any cline-neutral">&nbsp;</span>
136
- <span class="cline-any cline-neutral">&nbsp;</span>
137
- <span class="cline-any cline-neutral">&nbsp;</span>
138
- <span class="cline-any cline-neutral">&nbsp;</span>
139
- <span class="cline-any cline-neutral">&nbsp;</span>
140
- <span class="cline-any cline-no">&nbsp;</span>
141
- <span class="cline-any cline-no">&nbsp;</span>
142
- <span class="cline-any cline-neutral">&nbsp;</span>
143
- <span class="cline-any cline-neutral">&nbsp;</span>
144
- <span class="cline-any cline-neutral">&nbsp;</span>
145
- <span class="cline-any cline-no">&nbsp;</span>
146
- <span class="cline-any cline-no">&nbsp;</span>
147
- <span class="cline-any cline-no">&nbsp;</span>
148
- <span class="cline-any cline-neutral">&nbsp;</span>
149
- <span class="cline-any cline-neutral">&nbsp;</span>
150
- <span class="cline-any cline-neutral">&nbsp;</span>
151
- <span class="cline-any cline-no">&nbsp;</span>
152
- <span class="cline-any cline-no">&nbsp;</span>
153
- <span class="cline-any cline-no">&nbsp;</span>
154
- <span class="cline-any cline-no">&nbsp;</span>
155
- <span class="cline-any cline-neutral">&nbsp;</span>
156
- <span class="cline-any cline-neutral">&nbsp;</span>
157
- <span class="cline-any cline-neutral">&nbsp;</span>
158
- <span class="cline-any cline-neutral">&nbsp;</span>
159
- <span class="cline-any cline-no">&nbsp;</span>
160
- <span class="cline-any cline-neutral">&nbsp;</span>
161
- <span class="cline-any cline-neutral">&nbsp;</span>
162
- <span class="cline-any cline-neutral">&nbsp;</span>
163
- <span class="cline-any cline-neutral">&nbsp;</span>
164
- <span class="cline-any cline-neutral">&nbsp;</span>
165
- <span class="cline-any cline-neutral">&nbsp;</span>
166
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { hashLeaf, Merkle } from './merkle';
167
- import { createVarint } from './varint';
168
- &nbsp;
169
- /**
170
- * This implements "Merkelized Maps", documented at
171
- * https://github.com/LedgerHQ/app-bitcoin-new/blob/master/doc/merkle.md#merkleized-maps
172
- *
173
- * A merkelized map consist of two merkle trees, one for the keys of
174
- * a map and one for the values of the same map, thus the two merkle
175
- * trees have the same shape. The commitment is the number elements
176
- * in the map followed by the keys' merkle root followed by the
177
- * values' merkle root.
178
- */
179
- export class MerkleMap {
180
- readonly keys: readonly Buffer[];
181
- readonly keysTree: Merkle;
182
- readonly values: readonly Buffer[];
183
- readonly valuesTree: Merkle;
184
- /**
185
- * @param keys Sorted list of (unhashed) keys
186
- * @param values values, in corresponding order as the keys, and of equal length
187
- */
188
- <span class="fstat-no" title="function not covered" > constructor(k</span>eys: readonly Buffer[], values: readonly Buffer[]) {
189
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (keys.length != values.length) {</span>
190
- <span class="cstat-no" title="statement not covered" > throw new Error('keys and values should have the same length');</span>
191
- }
192
- &nbsp;
193
- // Sanity check: verify that keys are actually sorted and with no duplicates
194
- <span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i &lt; keys.length - 1; i++) {</span>
195
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (keys[i].toString('hex') &gt;= keys[i + 1].toString('hex')) {</span>
196
- <span class="cstat-no" title="statement not covered" > throw new Error('keys must be in strictly increasing order');</span>
197
- }
198
- }
199
- &nbsp;
200
- <span class="cstat-no" title="statement not covered" > this.keys = keys;</span>
201
- <span class="cstat-no" title="statement not covered" > this.keysTree = new Merkle(keys.map(<span class="fstat-no" title="function not covered" >(k</span>) =&gt; <span class="cstat-no" title="statement not covered" >hashLeaf(k))</span>);</span>
202
- <span class="cstat-no" title="statement not covered" > this.values = values;</span>
203
- <span class="cstat-no" title="statement not covered" > this.valuesTree = new Merkle(values.map(<span class="fstat-no" title="function not covered" >(v</span>) =&gt; <span class="cstat-no" title="statement not covered" >hashLeaf(v))</span>);</span>
204
- }
205
- &nbsp;
206
- <span class="fstat-no" title="function not covered" > commitment(</span>): Buffer {
207
- // returns a buffer between 65 and 73 (included) bytes long
208
- <span class="cstat-no" title="statement not covered" > return Buffer.concat([</span>
209
- createVarint(this.keys.length),
210
- this.keysTree.getRoot(),
211
- this.valuesTree.getRoot(),
212
- ]);
213
- }
214
- }
215
- &nbsp;</pre></td></tr></table></pre>
216
-
217
- <div class="push"></div>
218
- <!-- for sticky footer -->
219
- </div>
220
- <!-- /wrapper -->
221
- <div class="footer quiet pad2 space-top1 center small">
222
- Code coverage generated by
223
- <a
224
- href="https://istanbul.js.org/"
225
- target="_blank"
226
- rel="noopener noreferrer"
227
- >istanbul</a
228
- >
229
- at 2025-06-20T17:45:56.456Z
230
- </div>
231
- <script src="../../../../prettify.js"></script>
232
- <script>
233
- window.onload = function () {
234
- prettyPrint();
235
- };
236
- </script>
237
- <script src="../../../../sorter.js"></script>
238
- <script src="../../../../block-navigation.js"></script>
239
- </body>
240
- </html>
@@ -1,342 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <title>
5
- Code coverage report for src/ledger/bitcoin_client/lib/policy.ts
6
- </title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../../../prettify.css" />
9
- <link rel="stylesheet" href="../../../../base.css" />
10
- <link
11
- rel="shortcut icon"
12
- type="image/x-icon"
13
- href="../../../../favicon.png"
14
- />
15
- <meta name="viewport" content="width=device-width, initial-scale=1" />
16
- <style type="text/css">
17
- .coverage-summary .sorter {
18
- background-image: url(../../../../sort-arrow-sprite.png);
19
- }
20
- </style>
21
- </head>
22
-
23
- <body>
24
- <div class="wrapper">
25
- <div class="pad1">
26
- <h1>
27
- <a href="../../../../index.html">All files</a> /
28
- <a href="index.html">src/ledger/bitcoin_client/lib</a> policy.ts
29
- </h1>
30
- <div class="clearfix">
31
- <div class="fl pad1y space-right2">
32
- <span class="strong">43.47% </span>
33
- <span class="quiet">Statements</span>
34
- <span class="fraction">10/23</span>
35
- </div>
36
-
37
- <div class="fl pad1y space-right2">
38
- <span class="strong">100% </span>
39
- <span class="quiet">Branches</span>
40
- <span class="fraction">0/0</span>
41
- </div>
42
-
43
- <div class="fl pad1y space-right2">
44
- <span class="strong">33.33% </span>
45
- <span class="quiet">Functions</span>
46
- <span class="fraction">2/6</span>
47
- </div>
48
-
49
- <div class="fl pad1y space-right2">
50
- <span class="strong">47.61% </span>
51
- <span class="quiet">Lines</span>
52
- <span class="fraction">10/21</span>
53
- </div>
54
- </div>
55
- <p class="quiet">
56
- Press <em>n</em> or <em>j</em> to go to the next uncovered block,
57
- <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
58
- </p>
59
- <template id="filterTemplate">
60
- <div class="quiet">
61
- Filter:
62
- <input type="search" id="fileSearch" />
63
- </div>
64
- </template>
65
- </div>
66
- <div class="status-line low"></div>
67
- <pre><table class="coverage">
68
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
69
- <a name='L2'></a><a href='#L2'>2</a>
70
- <a name='L3'></a><a href='#L3'>3</a>
71
- <a name='L4'></a><a href='#L4'>4</a>
72
- <a name='L5'></a><a href='#L5'>5</a>
73
- <a name='L6'></a><a href='#L6'>6</a>
74
- <a name='L7'></a><a href='#L7'>7</a>
75
- <a name='L8'></a><a href='#L8'>8</a>
76
- <a name='L9'></a><a href='#L9'>9</a>
77
- <a name='L10'></a><a href='#L10'>10</a>
78
- <a name='L11'></a><a href='#L11'>11</a>
79
- <a name='L12'></a><a href='#L12'>12</a>
80
- <a name='L13'></a><a href='#L13'>13</a>
81
- <a name='L14'></a><a href='#L14'>14</a>
82
- <a name='L15'></a><a href='#L15'>15</a>
83
- <a name='L16'></a><a href='#L16'>16</a>
84
- <a name='L17'></a><a href='#L17'>17</a>
85
- <a name='L18'></a><a href='#L18'>18</a>
86
- <a name='L19'></a><a href='#L19'>19</a>
87
- <a name='L20'></a><a href='#L20'>20</a>
88
- <a name='L21'></a><a href='#L21'>21</a>
89
- <a name='L22'></a><a href='#L22'>22</a>
90
- <a name='L23'></a><a href='#L23'>23</a>
91
- <a name='L24'></a><a href='#L24'>24</a>
92
- <a name='L25'></a><a href='#L25'>25</a>
93
- <a name='L26'></a><a href='#L26'>26</a>
94
- <a name='L27'></a><a href='#L27'>27</a>
95
- <a name='L28'></a><a href='#L28'>28</a>
96
- <a name='L29'></a><a href='#L29'>29</a>
97
- <a name='L30'></a><a href='#L30'>30</a>
98
- <a name='L31'></a><a href='#L31'>31</a>
99
- <a name='L32'></a><a href='#L32'>32</a>
100
- <a name='L33'></a><a href='#L33'>33</a>
101
- <a name='L34'></a><a href='#L34'>34</a>
102
- <a name='L35'></a><a href='#L35'>35</a>
103
- <a name='L36'></a><a href='#L36'>36</a>
104
- <a name='L37'></a><a href='#L37'>37</a>
105
- <a name='L38'></a><a href='#L38'>38</a>
106
- <a name='L39'></a><a href='#L39'>39</a>
107
- <a name='L40'></a><a href='#L40'>40</a>
108
- <a name='L41'></a><a href='#L41'>41</a>
109
- <a name='L42'></a><a href='#L42'>42</a>
110
- <a name='L43'></a><a href='#L43'>43</a>
111
- <a name='L44'></a><a href='#L44'>44</a>
112
- <a name='L45'></a><a href='#L45'>45</a>
113
- <a name='L46'></a><a href='#L46'>46</a>
114
- <a name='L47'></a><a href='#L47'>47</a>
115
- <a name='L48'></a><a href='#L48'>48</a>
116
- <a name='L49'></a><a href='#L49'>49</a>
117
- <a name='L50'></a><a href='#L50'>50</a>
118
- <a name='L51'></a><a href='#L51'>51</a>
119
- <a name='L52'></a><a href='#L52'>52</a>
120
- <a name='L53'></a><a href='#L53'>53</a>
121
- <a name='L54'></a><a href='#L54'>54</a>
122
- <a name='L55'></a><a href='#L55'>55</a>
123
- <a name='L56'></a><a href='#L56'>56</a>
124
- <a name='L57'></a><a href='#L57'>57</a>
125
- <a name='L58'></a><a href='#L58'>58</a>
126
- <a name='L59'></a><a href='#L59'>59</a>
127
- <a name='L60'></a><a href='#L60'>60</a>
128
- <a name='L61'></a><a href='#L61'>61</a>
129
- <a name='L62'></a><a href='#L62'>62</a>
130
- <a name='L63'></a><a href='#L63'>63</a>
131
- <a name='L64'></a><a href='#L64'>64</a>
132
- <a name='L65'></a><a href='#L65'>65</a>
133
- <a name='L66'></a><a href='#L66'>66</a>
134
- <a name='L67'></a><a href='#L67'>67</a>
135
- <a name='L68'></a><a href='#L68'>68</a>
136
- <a name='L69'></a><a href='#L69'>69</a>
137
- <a name='L70'></a><a href='#L70'>70</a>
138
- <a name='L71'></a><a href='#L71'>71</a>
139
- <a name='L72'></a><a href='#L72'>72</a>
140
- <a name='L73'></a><a href='#L73'>73</a>
141
- <a name='L74'></a><a href='#L74'>74</a>
142
- <a name='L75'></a><a href='#L75'>75</a>
143
- <a name='L76'></a><a href='#L76'>76</a>
144
- <a name='L77'></a><a href='#L77'>77</a>
145
- <a name='L78'></a><a href='#L78'>78</a>
146
- <a name='L79'></a><a href='#L79'>79</a>
147
- <a name='L80'></a><a href='#L80'>80</a>
148
- <a name='L81'></a><a href='#L81'>81</a>
149
- <a name='L82'></a><a href='#L82'>82</a>
150
- <a name='L83'></a><a href='#L83'>83</a>
151
- <a name='L84'></a><a href='#L84'>84</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
152
- <span class="cline-any cline-neutral">&nbsp;</span>
153
- <span class="cline-any cline-yes">2x</span>
154
- <span class="cline-any cline-yes">2x</span>
155
- <span class="cline-any cline-neutral">&nbsp;</span>
156
- <span class="cline-any cline-yes">2x</span>
157
- <span class="cline-any cline-neutral">&nbsp;</span>
158
- <span class="cline-any cline-neutral">&nbsp;</span>
159
- <span class="cline-any cline-neutral">&nbsp;</span>
160
- <span class="cline-any cline-neutral">&nbsp;</span>
161
- <span class="cline-any cline-neutral">&nbsp;</span>
162
- <span class="cline-any cline-neutral">&nbsp;</span>
163
- <span class="cline-any cline-neutral">&nbsp;</span>
164
- <span class="cline-any cline-neutral">&nbsp;</span>
165
- <span class="cline-any cline-neutral">&nbsp;</span>
166
- <span class="cline-any cline-yes">2x</span>
167
- <span class="cline-any cline-neutral">&nbsp;</span>
168
- <span class="cline-any cline-neutral">&nbsp;</span>
169
- <span class="cline-any cline-neutral">&nbsp;</span>
170
- <span class="cline-any cline-neutral">&nbsp;</span>
171
- <span class="cline-any cline-neutral">&nbsp;</span>
172
- <span class="cline-any cline-neutral">&nbsp;</span>
173
- <span class="cline-any cline-neutral">&nbsp;</span>
174
- <span class="cline-any cline-neutral">&nbsp;</span>
175
- <span class="cline-any cline-neutral">&nbsp;</span>
176
- <span class="cline-any cline-neutral">&nbsp;</span>
177
- <span class="cline-any cline-neutral">&nbsp;</span>
178
- <span class="cline-any cline-neutral">&nbsp;</span>
179
- <span class="cline-any cline-neutral">&nbsp;</span>
180
- <span class="cline-any cline-neutral">&nbsp;</span>
181
- <span class="cline-any cline-yes">1x</span>
182
- <span class="cline-any cline-yes">1x</span>
183
- <span class="cline-any cline-yes">1x</span>
184
- <span class="cline-any cline-neutral">&nbsp;</span>
185
- <span class="cline-any cline-neutral">&nbsp;</span>
186
- <span class="cline-any cline-neutral">&nbsp;</span>
187
- <span class="cline-any cline-neutral">&nbsp;</span>
188
- <span class="cline-any cline-neutral">&nbsp;</span>
189
- <span class="cline-any cline-neutral">&nbsp;</span>
190
- <span class="cline-any cline-no">&nbsp;</span>
191
- <span class="cline-any cline-neutral">&nbsp;</span>
192
- <span class="cline-any cline-neutral">&nbsp;</span>
193
- <span class="cline-any cline-neutral">&nbsp;</span>
194
- <span class="cline-any cline-neutral">&nbsp;</span>
195
- <span class="cline-any cline-neutral">&nbsp;</span>
196
- <span class="cline-any cline-neutral">&nbsp;</span>
197
- <span class="cline-any cline-neutral">&nbsp;</span>
198
- <span class="cline-any cline-no">&nbsp;</span>
199
- <span class="cline-any cline-no">&nbsp;</span>
200
- <span class="cline-any cline-neutral">&nbsp;</span>
201
- <span class="cline-any cline-no">&nbsp;</span>
202
- <span class="cline-any cline-no">&nbsp;</span>
203
- <span class="cline-any cline-neutral">&nbsp;</span>
204
- <span class="cline-any cline-neutral">&nbsp;</span>
205
- <span class="cline-any cline-no">&nbsp;</span>
206
- <span class="cline-any cline-neutral">&nbsp;</span>
207
- <span class="cline-any cline-neutral">&nbsp;</span>
208
- <span class="cline-any cline-no">&nbsp;</span>
209
- <span class="cline-any cline-neutral">&nbsp;</span>
210
- <span class="cline-any cline-no">&nbsp;</span>
211
- <span class="cline-any cline-neutral">&nbsp;</span>
212
- <span class="cline-any cline-neutral">&nbsp;</span>
213
- <span class="cline-any cline-no">&nbsp;</span>
214
- <span class="cline-any cline-neutral">&nbsp;</span>
215
- <span class="cline-any cline-no">&nbsp;</span>
216
- <span class="cline-any cline-no">&nbsp;</span>
217
- <span class="cline-any cline-neutral">&nbsp;</span>
218
- <span class="cline-any cline-neutral">&nbsp;</span>
219
- <span class="cline-any cline-neutral">&nbsp;</span>
220
- <span class="cline-any cline-neutral">&nbsp;</span>
221
- <span class="cline-any cline-neutral">&nbsp;</span>
222
- <span class="cline-any cline-neutral">&nbsp;</span>
223
- <span class="cline-any cline-neutral">&nbsp;</span>
224
- <span class="cline-any cline-neutral">&nbsp;</span>
225
- <span class="cline-any cline-neutral">&nbsp;</span>
226
- <span class="cline-any cline-neutral">&nbsp;</span>
227
- <span class="cline-any cline-neutral">&nbsp;</span>
228
- <span class="cline-any cline-neutral">&nbsp;</span>
229
- <span class="cline-any cline-yes">2x</span>
230
- <span class="cline-any cline-neutral">&nbsp;</span>
231
- <span class="cline-any cline-yes">1x</span>
232
- <span class="cline-any cline-neutral">&nbsp;</span>
233
- <span class="cline-any cline-neutral">&nbsp;</span>
234
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { crypto } from 'bitcoinjs-lib';
235
- &nbsp;
236
- import { BufferWriter } from './buffertools';
237
- import { hashLeaf, Merkle } from './merkle';
238
- &nbsp;
239
- const WALLET_POLICY_V2 = 2;
240
- &nbsp;
241
- /**
242
- * The Bitcon hardware app uses a descriptors-like thing to describe
243
- * how to construct output scripts from keys. A "Wallet Policy" consists
244
- * of a "Descriptor Template" and a list of "keys". A key is basically
245
- * a serialized BIP32 extended public key with some added derivation path
246
- * information. This is documented at
247
- * https://github.com/LedgerHQ/app-bitcoin-new/blob/master/doc/wallet.md
248
- */
249
- export class WalletPolicy {
250
- readonly name: string;
251
- readonly descriptorTemplate: string;
252
- readonly keys: readonly string[];
253
- /**
254
- * Creates and instance of a wallet policy.
255
- * @param name an ascii string, up to 16 bytes long; it must be an empty string for default wallet policies
256
- * @param descriptorTemplate the wallet policy template
257
- * @param keys and array of the keys, with the key derivation information
258
- */
259
- constructor(
260
- name: string,
261
- descriptorTemplate: string,
262
- keys: readonly string[]
263
- ) {
264
- this.name = name;
265
- this.descriptorTemplate = descriptorTemplate;
266
- this.keys = keys;
267
- }
268
- &nbsp;
269
- /**
270
- * Returns the unique 32-bytes id of this wallet policy.
271
- */
272
- <span class="fstat-no" title="function not covered" > getId(</span>): Buffer {
273
- <span class="cstat-no" title="statement not covered" > return crypto.sha256(this.serialize());</span>
274
- }
275
- &nbsp;
276
- /**
277
- * Serializes the wallet policy for transmission via the hardware wallet protocol.
278
- * @returns the serialized wallet policy
279
- */
280
- <span class="fstat-no" title="function not covered" > serialize(</span>): Buffer {
281
- const keyBuffers = <span class="cstat-no" title="statement not covered" >this.keys.map(<span class="fstat-no" title="function not covered" >(k</span>) =&gt; <span class="cstat-no" title="statement not covered" >Buffer.from(k, 'ascii'))</span>;</span>
282
- const m = <span class="cstat-no" title="statement not covered" >new Merkle(keyBuffers.map(<span class="fstat-no" title="function not covered" >(k</span>) =&gt; <span class="cstat-no" title="statement not covered" >hashLeaf(k))</span>);</span>
283
- &nbsp;
284
- const buf = <span class="cstat-no" title="statement not covered" >new BufferWriter();</span>
285
- <span class="cstat-no" title="statement not covered" > buf.writeUInt8(WALLET_POLICY_V2); </span>// wallet version
286
- &nbsp;
287
- // length of wallet name, and wallet name
288
- <span class="cstat-no" title="statement not covered" > buf.writeVarSlice(Buffer.from(this.name, 'ascii'));</span>
289
- &nbsp;
290
- // length of descriptor template
291
- <span class="cstat-no" title="statement not covered" > buf.writeVarInt(this.descriptorTemplate.length);</span>
292
- // sha256 hash of descriptor template
293
- <span class="cstat-no" title="statement not covered" > buf.writeSlice(crypto.sha256(Buffer.from(this.descriptorTemplate)));</span>
294
- &nbsp;
295
- // number of keys
296
- <span class="cstat-no" title="statement not covered" > buf.writeVarInt(this.keys.length);</span>
297
- // root of Merkle tree of keys
298
- <span class="cstat-no" title="statement not covered" > buf.writeSlice(m.getRoot());</span>
299
- <span class="cstat-no" title="statement not covered" > return buf.buffer();</span>
300
- }
301
- }
302
- &nbsp;
303
- export type DefaultDescriptorTemplate =
304
- | 'pkh(@0/**)'
305
- | 'sh(wpkh(@0/**))'
306
- | 'wpkh(@0/**)'
307
- | 'tr(@0/**)';
308
- &nbsp;
309
- /**
310
- * Simplified class to handle default wallet policies that can be used without policy registration.
311
- */
312
- export class DefaultWalletPolicy extends WalletPolicy {
313
- constructor(descriptorTemplate: DefaultDescriptorTemplate, key: string) {
314
- super('', descriptorTemplate, [key]);
315
- }
316
- }
317
- &nbsp;</pre></td></tr></table></pre>
318
-
319
- <div class="push"></div>
320
- <!-- for sticky footer -->
321
- </div>
322
- <!-- /wrapper -->
323
- <div class="footer quiet pad2 space-top1 center small">
324
- Code coverage generated by
325
- <a
326
- href="https://istanbul.js.org/"
327
- target="_blank"
328
- rel="noopener noreferrer"
329
- >istanbul</a
330
- >
331
- at 2025-06-20T17:45:56.456Z
332
- </div>
333
- <script src="../../../../prettify.js"></script>
334
- <script>
335
- window.onload = function () {
336
- prettyPrint();
337
- };
338
- </script>
339
- <script src="../../../../sorter.js"></script>
340
- <script src="../../../../block-navigation.js"></script>
341
- </body>
342
- </html>