bsv-bap 0.0.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 (62) hide show
  1. package/.babelrc +20 -0
  2. package/.eslintrc +46 -0
  3. package/LICENSE +25 -0
  4. package/README.md +819 -0
  5. package/babel.config.js +6 -0
  6. package/bun.lockb +0 -0
  7. package/coverage/clover.xml +6 -0
  8. package/coverage/coverage-final.json +1 -0
  9. package/coverage/lcov-report/base.css +224 -0
  10. package/coverage/lcov-report/block-navigation.js +87 -0
  11. package/coverage/lcov-report/favicon.png +0 -0
  12. package/coverage/lcov-report/index.html +101 -0
  13. package/coverage/lcov-report/prettify.css +1 -0
  14. package/coverage/lcov-report/prettify.js +2 -0
  15. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  16. package/coverage/lcov-report/sorter.js +196 -0
  17. package/coverage/lcov-report/src/constants.ts.html +113 -0
  18. package/coverage/lcov-report/src/id.ts.html +2207 -0
  19. package/coverage/lcov-report/src/index.html +156 -0
  20. package/coverage/lcov-report/src/index.ts.html +1877 -0
  21. package/coverage/lcov-report/src/utils.ts.html +404 -0
  22. package/coverage/lcov-report/tests/data/index.html +111 -0
  23. package/coverage/lcov-report/tests/data/keys.js.html +86 -0
  24. package/coverage/lcov.info +0 -0
  25. package/dist/jest.config.d.ts +8 -0
  26. package/dist/src/constants.d.ts +8 -0
  27. package/dist/src/id.d.ts +295 -0
  28. package/dist/src/index.d.ts +238 -0
  29. package/dist/src/interface.d.ts +23 -0
  30. package/dist/src/poa.d.ts +6 -0
  31. package/dist/src/utils.d.ts +54 -0
  32. package/dist/typescript-npm-package.cjs.d.ts +554 -0
  33. package/dist/typescript-npm-package.cjs.js +1320 -0
  34. package/dist/typescript-npm-package.cjs.js.map +1 -0
  35. package/dist/typescript-npm-package.esm.d.ts +554 -0
  36. package/dist/typescript-npm-package.esm.js +1312 -0
  37. package/dist/typescript-npm-package.esm.js.map +1 -0
  38. package/dist/typescript-npm-package.umd.d.ts +554 -0
  39. package/dist/typescript-npm-package.umd.js +110193 -0
  40. package/dist/typescript-npm-package.umd.js.map +1 -0
  41. package/jest.config.ts +196 -0
  42. package/jsdoc.json +16 -0
  43. package/package.json +80 -0
  44. package/rollup.config.js +64 -0
  45. package/setup-jest.js +1 -0
  46. package/src/README.md +80 -0
  47. package/src/attributes.json +119 -0
  48. package/src/constants.ts +11 -0
  49. package/src/id.ts +783 -0
  50. package/src/index.ts +631 -0
  51. package/src/interface.ts +26 -0
  52. package/src/poa.ts +9 -0
  53. package/src/utils.ts +111 -0
  54. package/tests/data/ids.json +30 -0
  55. package/tests/data/keys.js +2 -0
  56. package/tests/data/old-ids.json +25 -0
  57. package/tests/data/test-vectors.json +122 -0
  58. package/tests/id.test.js +286 -0
  59. package/tests/index.test.js +335 -0
  60. package/tests/regression.test.js +28 -0
  61. package/tests/utils.test.js +27 -0
  62. package/tsconfig.json +17 -0
@@ -0,0 +1,404 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/utils.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../prettify.css" />
9
+ <link rel="stylesheet" href="../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../index.html">All files</a> / <a href="index.html">src</a> utils.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">30.3% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>10/33</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">21.05% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>4/19</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">25% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>2/8</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">31.25% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>10/32</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ </div>
58
+ <div class='status-line low'></div>
59
+ <pre><table class="coverage">
60
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
+ <a name='L2'></a><a href='#L2'>2</a>
62
+ <a name='L3'></a><a href='#L3'>3</a>
63
+ <a name='L4'></a><a href='#L4'>4</a>
64
+ <a name='L5'></a><a href='#L5'>5</a>
65
+ <a name='L6'></a><a href='#L6'>6</a>
66
+ <a name='L7'></a><a href='#L7'>7</a>
67
+ <a name='L8'></a><a href='#L8'>8</a>
68
+ <a name='L9'></a><a href='#L9'>9</a>
69
+ <a name='L10'></a><a href='#L10'>10</a>
70
+ <a name='L11'></a><a href='#L11'>11</a>
71
+ <a name='L12'></a><a href='#L12'>12</a>
72
+ <a name='L13'></a><a href='#L13'>13</a>
73
+ <a name='L14'></a><a href='#L14'>14</a>
74
+ <a name='L15'></a><a href='#L15'>15</a>
75
+ <a name='L16'></a><a href='#L16'>16</a>
76
+ <a name='L17'></a><a href='#L17'>17</a>
77
+ <a name='L18'></a><a href='#L18'>18</a>
78
+ <a name='L19'></a><a href='#L19'>19</a>
79
+ <a name='L20'></a><a href='#L20'>20</a>
80
+ <a name='L21'></a><a href='#L21'>21</a>
81
+ <a name='L22'></a><a href='#L22'>22</a>
82
+ <a name='L23'></a><a href='#L23'>23</a>
83
+ <a name='L24'></a><a href='#L24'>24</a>
84
+ <a name='L25'></a><a href='#L25'>25</a>
85
+ <a name='L26'></a><a href='#L26'>26</a>
86
+ <a name='L27'></a><a href='#L27'>27</a>
87
+ <a name='L28'></a><a href='#L28'>28</a>
88
+ <a name='L29'></a><a href='#L29'>29</a>
89
+ <a name='L30'></a><a href='#L30'>30</a>
90
+ <a name='L31'></a><a href='#L31'>31</a>
91
+ <a name='L32'></a><a href='#L32'>32</a>
92
+ <a name='L33'></a><a href='#L33'>33</a>
93
+ <a name='L34'></a><a href='#L34'>34</a>
94
+ <a name='L35'></a><a href='#L35'>35</a>
95
+ <a name='L36'></a><a href='#L36'>36</a>
96
+ <a name='L37'></a><a href='#L37'>37</a>
97
+ <a name='L38'></a><a href='#L38'>38</a>
98
+ <a name='L39'></a><a href='#L39'>39</a>
99
+ <a name='L40'></a><a href='#L40'>40</a>
100
+ <a name='L41'></a><a href='#L41'>41</a>
101
+ <a name='L42'></a><a href='#L42'>42</a>
102
+ <a name='L43'></a><a href='#L43'>43</a>
103
+ <a name='L44'></a><a href='#L44'>44</a>
104
+ <a name='L45'></a><a href='#L45'>45</a>
105
+ <a name='L46'></a><a href='#L46'>46</a>
106
+ <a name='L47'></a><a href='#L47'>47</a>
107
+ <a name='L48'></a><a href='#L48'>48</a>
108
+ <a name='L49'></a><a href='#L49'>49</a>
109
+ <a name='L50'></a><a href='#L50'>50</a>
110
+ <a name='L51'></a><a href='#L51'>51</a>
111
+ <a name='L52'></a><a href='#L52'>52</a>
112
+ <a name='L53'></a><a href='#L53'>53</a>
113
+ <a name='L54'></a><a href='#L54'>54</a>
114
+ <a name='L55'></a><a href='#L55'>55</a>
115
+ <a name='L56'></a><a href='#L56'>56</a>
116
+ <a name='L57'></a><a href='#L57'>57</a>
117
+ <a name='L58'></a><a href='#L58'>58</a>
118
+ <a name='L59'></a><a href='#L59'>59</a>
119
+ <a name='L60'></a><a href='#L60'>60</a>
120
+ <a name='L61'></a><a href='#L61'>61</a>
121
+ <a name='L62'></a><a href='#L62'>62</a>
122
+ <a name='L63'></a><a href='#L63'>63</a>
123
+ <a name='L64'></a><a href='#L64'>64</a>
124
+ <a name='L65'></a><a href='#L65'>65</a>
125
+ <a name='L66'></a><a href='#L66'>66</a>
126
+ <a name='L67'></a><a href='#L67'>67</a>
127
+ <a name='L68'></a><a href='#L68'>68</a>
128
+ <a name='L69'></a><a href='#L69'>69</a>
129
+ <a name='L70'></a><a href='#L70'>70</a>
130
+ <a name='L71'></a><a href='#L71'>71</a>
131
+ <a name='L72'></a><a href='#L72'>72</a>
132
+ <a name='L73'></a><a href='#L73'>73</a>
133
+ <a name='L74'></a><a href='#L74'>74</a>
134
+ <a name='L75'></a><a href='#L75'>75</a>
135
+ <a name='L76'></a><a href='#L76'>76</a>
136
+ <a name='L77'></a><a href='#L77'>77</a>
137
+ <a name='L78'></a><a href='#L78'>78</a>
138
+ <a name='L79'></a><a href='#L79'>79</a>
139
+ <a name='L80'></a><a href='#L80'>80</a>
140
+ <a name='L81'></a><a href='#L81'>81</a>
141
+ <a name='L82'></a><a href='#L82'>82</a>
142
+ <a name='L83'></a><a href='#L83'>83</a>
143
+ <a name='L84'></a><a href='#L84'>84</a>
144
+ <a name='L85'></a><a href='#L85'>85</a>
145
+ <a name='L86'></a><a href='#L86'>86</a>
146
+ <a name='L87'></a><a href='#L87'>87</a>
147
+ <a name='L88'></a><a href='#L88'>88</a>
148
+ <a name='L89'></a><a href='#L89'>89</a>
149
+ <a name='L90'></a><a href='#L90'>90</a>
150
+ <a name='L91'></a><a href='#L91'>91</a>
151
+ <a name='L92'></a><a href='#L92'>92</a>
152
+ <a name='L93'></a><a href='#L93'>93</a>
153
+ <a name='L94'></a><a href='#L94'>94</a>
154
+ <a name='L95'></a><a href='#L95'>95</a>
155
+ <a name='L96'></a><a href='#L96'>96</a>
156
+ <a name='L97'></a><a href='#L97'>97</a>
157
+ <a name='L98'></a><a href='#L98'>98</a>
158
+ <a name='L99'></a><a href='#L99'>99</a>
159
+ <a name='L100'></a><a href='#L100'>100</a>
160
+ <a name='L101'></a><a href='#L101'>101</a>
161
+ <a name='L102'></a><a href='#L102'>102</a>
162
+ <a name='L103'></a><a href='#L103'>103</a>
163
+ <a name='L104'></a><a href='#L104'>104</a>
164
+ <a name='L105'></a><a href='#L105'>105</a>
165
+ <a name='L106'></a><a href='#L106'>106</a>
166
+ <a name='L107'></a><a href='#L107'>107</a>
167
+ <a name='L108'></a><a href='#L108'>108</a>
168
+ <a name='L109'></a><a href='#L109'>109</a></td><td class="line-coverage quiet"><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-yes">4x</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-no">&nbsp;</span>
180
+ <span class="cline-any cline-neutral">&nbsp;</span>
181
+ <span class="cline-any cline-neutral">&nbsp;</span>
182
+ <span class="cline-any cline-neutral">&nbsp;</span>
183
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
199
+ <span class="cline-any cline-yes">2x</span>
200
+ <span class="cline-any cline-neutral">&nbsp;</span>
201
+ <span class="cline-any cline-neutral">&nbsp;</span>
202
+ <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
209
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
213
+ <span class="cline-any cline-neutral">&nbsp;</span>
214
+ <span class="cline-any cline-neutral">&nbsp;</span>
215
+ <span class="cline-any cline-neutral">&nbsp;</span>
216
+ <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
225
+ <span class="cline-any cline-no">&nbsp;</span>
226
+ <span class="cline-any cline-no">&nbsp;</span>
227
+ <span class="cline-any cline-no">&nbsp;</span>
228
+ <span class="cline-any cline-no">&nbsp;</span>
229
+ <span class="cline-any cline-no">&nbsp;</span>
230
+ <span class="cline-any cline-no">&nbsp;</span>
231
+ <span class="cline-any cline-neutral">&nbsp;</span>
232
+ <span class="cline-any cline-neutral">&nbsp;</span>
233
+ <span class="cline-any cline-no">&nbsp;</span>
234
+ <span class="cline-any cline-neutral">&nbsp;</span>
235
+ <span class="cline-any cline-neutral">&nbsp;</span>
236
+ <span class="cline-any cline-neutral">&nbsp;</span>
237
+ <span class="cline-any cline-neutral">&nbsp;</span>
238
+ <span class="cline-any cline-neutral">&nbsp;</span>
239
+ <span class="cline-any cline-neutral">&nbsp;</span>
240
+ <span class="cline-any cline-neutral">&nbsp;</span>
241
+ <span class="cline-any cline-neutral">&nbsp;</span>
242
+ <span class="cline-any cline-neutral">&nbsp;</span>
243
+ <span class="cline-any cline-no">&nbsp;</span>
244
+ <span class="cline-any cline-no">&nbsp;</span>
245
+ <span class="cline-any cline-neutral">&nbsp;</span>
246
+ <span class="cline-any cline-no">&nbsp;</span>
247
+ <span class="cline-any cline-no">&nbsp;</span>
248
+ <span class="cline-any cline-no">&nbsp;</span>
249
+ <span class="cline-any cline-neutral">&nbsp;</span>
250
+ <span class="cline-any cline-neutral">&nbsp;</span>
251
+ <span class="cline-any cline-no">&nbsp;</span>
252
+ <span class="cline-any cline-no">&nbsp;</span>
253
+ <span class="cline-any cline-no">&nbsp;</span>
254
+ <span class="cline-any cline-neutral">&nbsp;</span>
255
+ <span class="cline-any cline-no">&nbsp;</span>
256
+ <span class="cline-any cline-neutral">&nbsp;</span>
257
+ <span class="cline-any cline-neutral">&nbsp;</span>
258
+ <span class="cline-any cline-neutral">&nbsp;</span>
259
+ <span class="cline-any cline-neutral">&nbsp;</span>
260
+ <span class="cline-any cline-neutral">&nbsp;</span>
261
+ <span class="cline-any cline-neutral">&nbsp;</span>
262
+ <span class="cline-any cline-neutral">&nbsp;</span>
263
+ <span class="cline-any cline-neutral">&nbsp;</span>
264
+ <span class="cline-any cline-neutral">&nbsp;</span>
265
+ <span class="cline-any cline-yes">5x</span>
266
+ <span class="cline-any cline-yes">5x</span>
267
+ <span class="cline-any cline-yes">5x</span>
268
+ <span class="cline-any cline-yes">5x</span>
269
+ <span class="cline-any cline-yes">2x</span>
270
+ <span class="cline-any cline-neutral">&nbsp;</span>
271
+ <span class="cline-any cline-yes">5x</span>
272
+ <span class="cline-any cline-yes">5x</span>
273
+ <span class="cline-any cline-yes">5x</span>
274
+ <span class="cline-any cline-neutral">&nbsp;</span>
275
+ <span class="cline-any cline-neutral">&nbsp;</span>
276
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import bsv from 'bsv';
277
+ import {PathPrefix} from "./interface";
278
+ &nbsp;
279
+ export const Utils = {
280
+ /**
281
+ * Helper function for encoding strings to hex
282
+ *
283
+ * @param string
284
+ * @returns {string}
285
+ */
286
+ <span class="fstat-no" title="function not covered" > he</span>xEncode(string: string) {
287
+ <span class="cstat-no" title="statement not covered" > return '0x' + Buffer.from(string).toString('hex');</span>
288
+ },
289
+ &nbsp;
290
+ /**
291
+ * Helper function for encoding strings to hex
292
+ *
293
+ * @param hexString string
294
+ * @param encoding BufferEncoding
295
+ * @returns {string}
296
+ */
297
+ <span class="fstat-no" title="function not covered" > he</span>xDecode(hexString: string, encoding: BufferEncoding = <span class="branch-0 cbranch-no" title="branch not covered" >'utf8')</span> {
298
+ <span class="cstat-no" title="statement not covered" > return Buffer.from(hexString.replace('0x', ''), 'hex').toString(encoding);</span>
299
+ },
300
+ &nbsp;
301
+ /**
302
+ * Helper function to generate a random nonce
303
+ *
304
+ * @returns {string}
305
+ */
306
+ getRandomString(length = <span class="branch-0 cbranch-no" title="branch not covered" >32)</span> {
307
+ return bsv.crypto.Random.getRandomBuffer(length).toString('hex');
308
+ },
309
+ &nbsp;
310
+ /**
311
+ * Test whether the given string is hex
312
+ *
313
+ * @param value any
314
+ * @returns {boolean}
315
+ */
316
+ <span class="fstat-no" title="function not covered" > is</span>Hex(value: any) {
317
+ <span class="cstat-no" title="statement not covered" > if (typeof value !== 'string') {</span>
318
+ <span class="cstat-no" title="statement not covered" > return false;</span>
319
+ }
320
+ <span class="cstat-no" title="statement not covered" > return /^[0-9a-fA-F]+$/.test(value);</span>
321
+ },
322
+ &nbsp;
323
+ /**
324
+ * Get a signing path from a hex number
325
+ *
326
+ * @param hexString {string}
327
+ * @param hardened {boolean} Whether to return a hardened path
328
+ * @returns {string}
329
+ */
330
+ <span class="fstat-no" title="function not covered" > ge</span>tSigningPathFromHex(hexString: string, hardened = <span class="branch-0 cbranch-no" title="branch not covered" >true)</span> {
331
+ // "m/0/0/1"
332
+ let signingPath = <span class="cstat-no" title="statement not covered" >'m';</span>
333
+ const signingHex = <span class="cstat-no" title="statement not covered" >hexString.match(/.{1,8}/g);</span>
334
+ const maxNumber = <span class="cstat-no" title="statement not covered" >2147483648 - 1;</span> // 0x80000000
335
+ <span class="cstat-no" title="statement not covered" > signingHex?.forEach(<span class="fstat-no" title="function not covered" >(h</span>exNumber) =&gt; {</span>
336
+ let number = <span class="cstat-no" title="statement not covered" >Number('0x' + hexNumber);</span>
337
+ <span class="cstat-no" title="statement not covered" > if (number &gt; maxNumber) <span class="cstat-no" title="statement not covered" >number -= maxNumber;</span></span>
338
+ <span class="cstat-no" title="statement not covered" > signingPath += `/${number}${(hardened ? "'" : '')}`;</span>
339
+ });
340
+ &nbsp;
341
+ <span class="cstat-no" title="statement not covered" > return signingPath;</span>
342
+ },
343
+ &nbsp;
344
+ /**
345
+ * Increment that second to last part from the given part, set the last part to 0
346
+ *
347
+ * @param path string
348
+ * @returns {*}
349
+ */
350
+ <span class="fstat-no" title="function not covered" > ge</span>tNextIdentityPath(path: string): PathPrefix {
351
+ const pathValues = <span class="cstat-no" title="statement not covered" >path.split('/');</span>
352
+ const secondToLastPart = <span class="cstat-no" title="statement not covered" >pathValues[pathValues.length - 2];</span>
353
+ &nbsp;
354
+ let hardened = <span class="cstat-no" title="statement not covered" >false;</span>
355
+ <span class="cstat-no" title="statement not covered" > if (secondToLastPart.match('\'')) {</span>
356
+ <span class="cstat-no" title="statement not covered" > hardened = true;</span>
357
+ }
358
+ &nbsp;
359
+ const nextPath = <span class="cstat-no" title="statement not covered" >(Number(secondToLastPart.replace(/[^0-9]/g, '')) + 1).toString();</span>
360
+ <span class="cstat-no" title="statement not covered" > pathValues[pathValues.length - 2] = nextPath + (hardened ? '\'' : '');</span>
361
+ <span class="cstat-no" title="statement not covered" > pathValues[pathValues.length - 1] = '0' + (hardened ? '\'' : '');</span>
362
+ &nbsp;
363
+ <span class="cstat-no" title="statement not covered" > return pathValues.join('/') as PathPrefix;</span>
364
+ },
365
+ &nbsp;
366
+ /**
367
+ * Increment that last part of the given path
368
+ *
369
+ * @param path string
370
+ * @returns {*}
371
+ */
372
+ getNextPath(path: string) {
373
+ const pathValues = path.split('/');
374
+ const lastPart = pathValues[pathValues.length - 1];
375
+ let hardened = false;
376
+ if (lastPart.match('\'')) {
377
+ hardened = true;
378
+ }
379
+ const nextPath = (Number(lastPart.replace(/[^0-9]/g, '')) + 1).toString();
380
+ pathValues[pathValues.length - 1] = nextPath + (hardened ? '\'' : '');
381
+ return pathValues.join('/');
382
+ },
383
+ };
384
+ &nbsp;</pre></td></tr></table></pre>
385
+
386
+ <div class='push'></div><!-- for sticky footer -->
387
+ </div><!-- /wrapper -->
388
+ <div class='footer quiet pad2 space-top1 center small'>
389
+ Code coverage generated by
390
+ <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
391
+ at Tue Aug 27 2024 10:04:22 GMT-0400 (Eastern Daylight Time)
392
+ </div>
393
+ </div>
394
+ <script src="../prettify.js"></script>
395
+ <script>
396
+ window.onload = function () {
397
+ prettyPrint();
398
+ };
399
+ </script>
400
+ <script src="../sorter.js"></script>
401
+ <script src="../block-navigation.js"></script>
402
+ </body>
403
+ </html>
404
+
@@ -0,0 +1,111 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for tests/data</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../prettify.css" />
9
+ <link rel="stylesheet" href="../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../index.html">All files</a> tests/data</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>2/2</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/0</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/0</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>2/2</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ </div>
58
+ <div class='status-line high'></div>
59
+ <div class="pad1">
60
+ <table class="coverage-summary">
61
+ <thead>
62
+ <tr>
63
+ <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
64
+ <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
65
+ <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
66
+ <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
67
+ <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
68
+ <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
69
+ <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
70
+ <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
71
+ <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
72
+ <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
73
+ </tr>
74
+ </thead>
75
+ <tbody><tr>
76
+ <td class="file high" data-value="keys.js"><a href="keys.js.html">keys.js</a></td>
77
+ <td data-value="100" class="pic high">
78
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
79
+ </td>
80
+ <td data-value="100" class="pct high">100%</td>
81
+ <td data-value="2" class="abs high">2/2</td>
82
+ <td data-value="100" class="pct high">100%</td>
83
+ <td data-value="0" class="abs high">0/0</td>
84
+ <td data-value="100" class="pct high">100%</td>
85
+ <td data-value="0" class="abs high">0/0</td>
86
+ <td data-value="100" class="pct high">100%</td>
87
+ <td data-value="2" class="abs high">2/2</td>
88
+ </tr>
89
+
90
+ </tbody>
91
+ </table>
92
+ </div>
93
+ <div class='push'></div><!-- for sticky footer -->
94
+ </div><!-- /wrapper -->
95
+ <div class='footer quiet pad2 space-top1 center small'>
96
+ Code coverage generated by
97
+ <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
98
+ at Tue Aug 27 2024 10:04:22 GMT-0400 (Eastern Daylight Time)
99
+ </div>
100
+ </div>
101
+ <script src="../../prettify.js"></script>
102
+ <script>
103
+ window.onload = function () {
104
+ prettyPrint();
105
+ };
106
+ </script>
107
+ <script src="../../sorter.js"></script>
108
+ <script src="../../block-navigation.js"></script>
109
+ </body>
110
+ </html>
111
+
@@ -0,0 +1,86 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for tests/data/keys.js</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../prettify.css" />
9
+ <link rel="stylesheet" href="../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">tests/data</a> keys.js</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>2/2</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/0</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/0</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>2/2</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ </div>
58
+ <div class='status-line high'></div>
59
+ <pre><table class="coverage">
60
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
+ <a name='L2'></a><a href='#L2'>2</a>
62
+ <a name='L3'></a><a href='#L3'>3</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
63
+ <span class="cline-any cline-yes">2x</span>
64
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export const HDPrivateKey = 'xprv9s21ZrQH143K2LcEfSnFRH1JvdKAcuZj2C8kAzCDnvqC4kgo417hYmAYQKdYDSzQSnQMLWXjDG42TgWwdYqwhAWTWpEBG1ighLLNnVHNKxx';
65
+ export const HDPublicKey = 'xpub661MyMwAqRbcEpghmUKFnQx3Uf9f2NHaPR4LyNbqMGNAwZ1wbYRx6ZV2FaimDygDPbrHYuii12mYCNwFRWnvXXKnh12CK17XMFGiqUYNwew';
66
+ &nbsp;</pre></td></tr></table></pre>
67
+
68
+ <div class='push'></div><!-- for sticky footer -->
69
+ </div><!-- /wrapper -->
70
+ <div class='footer quiet pad2 space-top1 center small'>
71
+ Code coverage generated by
72
+ <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
73
+ at Tue Aug 27 2024 10:04:22 GMT-0400 (Eastern Daylight Time)
74
+ </div>
75
+ </div>
76
+ <script src="../../prettify.js"></script>
77
+ <script>
78
+ window.onload = function () {
79
+ prettyPrint();
80
+ };
81
+ </script>
82
+ <script src="../../sorter.js"></script>
83
+ <script src="../../block-navigation.js"></script>
84
+ </body>
85
+ </html>
86
+
File without changes
@@ -0,0 +1,8 @@
1
+ declare const _default: {
2
+ automock: boolean;
3
+ clearMocks: boolean;
4
+ collectCoverage: boolean;
5
+ coverageDirectory: string;
6
+ setupFiles: string[];
7
+ };
8
+ export default _default;
@@ -0,0 +1,8 @@
1
+ export declare const BAP_BITCOM_ADDRESS = "1BAPSuaPnfGnSBM3GLV9yhxUdYe4vGbdMT";
2
+ export declare const BAP_BITCOM_ADDRESS_HEX: string;
3
+ export declare const AIP_BITCOM_ADDRESS = "15PciHG22SNLQJXMoSUaWVi7WSqc7hCfva";
4
+ export declare const AIP_BITCOM_ADDRESS_HEX: string;
5
+ export declare const BAP_SERVER = "https://bap.network/api/v1";
6
+ export declare const MAX_INT: number;
7
+ export declare const SIGNING_PATH_PREFIX = "m/424150'/0'/0'";
8
+ export declare const ENCRYPTION_PATH: string;