@my-packages-changeit/watcher-data-extractor 13.0.10

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 (127) hide show
  1. package/CHANGELOG.md +394 -0
  2. package/README.md +74 -0
  3. package/dist/actions/collateralAction.d.ts +25 -0
  4. package/dist/actions/collateralAction.d.ts.map +1 -0
  5. package/dist/actions/collateralAction.js +34 -0
  6. package/dist/actions/commitmentAction.d.ts +43 -0
  7. package/dist/actions/commitmentAction.d.ts.map +1 -0
  8. package/dist/actions/commitmentAction.js +138 -0
  9. package/dist/actions/eventTriggerAction.d.ts +29 -0
  10. package/dist/actions/eventTriggerAction.d.ts.map +1 -0
  11. package/dist/actions/eventTriggerAction.js +101 -0
  12. package/dist/actions/permitAction.d.ts +73 -0
  13. package/dist/actions/permitAction.d.ts.map +1 -0
  14. package/dist/actions/permitAction.js +187 -0
  15. package/dist/constants.d.ts +4 -0
  16. package/dist/constants.d.ts.map +1 -0
  17. package/dist/constants.js +4 -0
  18. package/dist/entities/collateralEntity.d.ts +8 -0
  19. package/dist/entities/collateralEntity.d.ts.map +1 -0
  20. package/dist/entities/collateralEntity.js +34 -0
  21. package/dist/entities/commitmentEntity.d.ts +19 -0
  22. package/dist/entities/commitmentEntity.d.ts.map +1 -0
  23. package/dist/entities/commitmentEntity.js +93 -0
  24. package/dist/entities/eventTriggerEntity.d.ts +24 -0
  25. package/dist/entities/eventTriggerEntity.d.ts.map +1 -0
  26. package/dist/entities/eventTriggerEntity.js +113 -0
  27. package/dist/entities/permitEntity.d.ts +14 -0
  28. package/dist/entities/permitEntity.d.ts.map +1 -0
  29. package/dist/entities/permitEntity.js +68 -0
  30. package/dist/extractor/collateralExtractor.d.ts +31 -0
  31. package/dist/extractor/collateralExtractor.d.ts.map +1 -0
  32. package/dist/extractor/collateralExtractor.js +72 -0
  33. package/dist/extractor/commitmentExtractor.d.ts +46 -0
  34. package/dist/extractor/commitmentExtractor.d.ts.map +1 -0
  35. package/dist/extractor/commitmentExtractor.js +125 -0
  36. package/dist/extractor/eventTriggerExtractor.d.ts +57 -0
  37. package/dist/extractor/eventTriggerExtractor.d.ts.map +1 -0
  38. package/dist/extractor/eventTriggerExtractor.js +215 -0
  39. package/dist/extractor/permitExtractor.d.ts +150 -0
  40. package/dist/extractor/permitExtractor.d.ts.map +1 -0
  41. package/dist/extractor/permitExtractor.js +235 -0
  42. package/dist/index.d.ts +12 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +12 -0
  45. package/dist/interfaces/extractedCollateral.d.ts +9 -0
  46. package/dist/interfaces/extractedCollateral.d.ts.map +1 -0
  47. package/dist/interfaces/extractedCollateral.js +2 -0
  48. package/dist/interfaces/extractedCommitment.d.ts +11 -0
  49. package/dist/interfaces/extractedCommitment.d.ts.map +1 -0
  50. package/dist/interfaces/extractedCommitment.js +2 -0
  51. package/dist/interfaces/extractedEventTrigger.d.ts +22 -0
  52. package/dist/interfaces/extractedEventTrigger.d.ts.map +1 -0
  53. package/dist/interfaces/extractedEventTrigger.js +2 -0
  54. package/dist/interfaces/extractedPermit.d.ts +12 -0
  55. package/dist/interfaces/extractedPermit.d.ts.map +1 -0
  56. package/dist/interfaces/extractedPermit.js +2 -0
  57. package/dist/interfaces/types.d.ts +25 -0
  58. package/dist/interfaces/types.d.ts.map +1 -0
  59. package/dist/interfaces/types.js +2 -0
  60. package/dist/migrations/index.d.ts +7 -0
  61. package/dist/migrations/index.d.ts.map +1 -0
  62. package/dist/migrations/index.js +45 -0
  63. package/dist/migrations/postgres/1688554842087-migration.d.ts +7 -0
  64. package/dist/migrations/postgres/1688554842087-migration.d.ts.map +1 -0
  65. package/dist/migrations/postgres/1688554842087-migration.js +82 -0
  66. package/dist/migrations/postgres/1689175974257-migration.d.ts +7 -0
  67. package/dist/migrations/postgres/1689175974257-migration.d.ts.map +1 -0
  68. package/dist/migrations/postgres/1689175974257-migration.js +50 -0
  69. package/dist/migrations/postgres/1699874447928-migration.d.ts +7 -0
  70. package/dist/migrations/postgres/1699874447928-migration.d.ts.map +1 -0
  71. package/dist/migrations/postgres/1699874447928-migration.js +36 -0
  72. package/dist/migrations/postgres/1706610773315-migration.d.ts +7 -0
  73. package/dist/migrations/postgres/1706610773315-migration.d.ts.map +1 -0
  74. package/dist/migrations/postgres/1706610773315-migration.js +69 -0
  75. package/dist/migrations/postgres/1709388482275-migration.d.ts +7 -0
  76. package/dist/migrations/postgres/1709388482275-migration.d.ts.map +1 -0
  77. package/dist/migrations/postgres/1709388482275-migration.js +29 -0
  78. package/dist/migrations/postgres/1737785036299-migration.d.ts +7 -0
  79. package/dist/migrations/postgres/1737785036299-migration.d.ts.map +1 -0
  80. package/dist/migrations/postgres/1737785036299-migration.js +32 -0
  81. package/dist/migrations/postgres/1746354253000-migration.d.ts +7 -0
  82. package/dist/migrations/postgres/1746354253000-migration.d.ts.map +1 -0
  83. package/dist/migrations/postgres/1746354253000-migration.js +15 -0
  84. package/dist/migrations/postgres/1758958886549-migration.d.ts +7 -0
  85. package/dist/migrations/postgres/1758958886549-migration.d.ts.map +1 -0
  86. package/dist/migrations/postgres/1758958886549-migration.js +30 -0
  87. package/dist/migrations/postgres/1766843825000-migration.d.ts +7 -0
  88. package/dist/migrations/postgres/1766843825000-migration.d.ts.map +1 -0
  89. package/dist/migrations/postgres/1766843825000-migration.js +42 -0
  90. package/dist/migrations/sqlite/1688555766601-migration.d.ts +7 -0
  91. package/dist/migrations/sqlite/1688555766601-migration.d.ts.map +1 -0
  92. package/dist/migrations/sqlite/1688555766601-migration.js +79 -0
  93. package/dist/migrations/sqlite/1689175103163-migration.d.ts +7 -0
  94. package/dist/migrations/sqlite/1689175103163-migration.d.ts.map +1 -0
  95. package/dist/migrations/sqlite/1689175103163-migration.js +392 -0
  96. package/dist/migrations/sqlite/1699872205117-migration.d.ts +7 -0
  97. package/dist/migrations/sqlite/1699872205117-migration.d.ts.map +1 -0
  98. package/dist/migrations/sqlite/1699872205117-migration.js +192 -0
  99. package/dist/migrations/sqlite/1706610773176-migration.d.ts +7 -0
  100. package/dist/migrations/sqlite/1706610773176-migration.d.ts.map +1 -0
  101. package/dist/migrations/sqlite/1706610773176-migration.js +421 -0
  102. package/dist/migrations/sqlite/1709388134975-migration.d.ts +7 -0
  103. package/dist/migrations/sqlite/1709388134975-migration.d.ts.map +1 -0
  104. package/dist/migrations/sqlite/1709388134975-migration.js +28 -0
  105. package/dist/migrations/sqlite/1737547743177-migration.d.ts +7 -0
  106. package/dist/migrations/sqlite/1737547743177-migration.d.ts.map +1 -0
  107. package/dist/migrations/sqlite/1737547743177-migration.js +204 -0
  108. package/dist/migrations/sqlite/1746354254000-migration.d.ts +7 -0
  109. package/dist/migrations/sqlite/1746354254000-migration.d.ts.map +1 -0
  110. package/dist/migrations/sqlite/1746354254000-migration.js +15 -0
  111. package/dist/migrations/sqlite/1761774736153-migration.d.ts +7 -0
  112. package/dist/migrations/sqlite/1761774736153-migration.d.ts.map +1 -0
  113. package/dist/migrations/sqlite/1761774736153-migration.js +204 -0
  114. package/dist/migrations/sqlite/1762768664031-migration.d.ts +7 -0
  115. package/dist/migrations/sqlite/1762768664031-migration.d.ts.map +1 -0
  116. package/dist/migrations/sqlite/1762768664031-migration.js +204 -0
  117. package/dist/migrations/sqlite/1766843824000-migration.d.ts +7 -0
  118. package/dist/migrations/sqlite/1766843824000-migration.d.ts.map +1 -0
  119. package/dist/migrations/sqlite/1766843824000-migration.js +109 -0
  120. package/dist/tsconfig.tsbuildinfo +1 -0
  121. package/dist/types.d.ts +6 -0
  122. package/dist/types.d.ts.map +1 -0
  123. package/dist/types.js +7 -0
  124. package/dist/utils.d.ts +25 -0
  125. package/dist/utils.d.ts.map +1 -0
  126. package/dist/utils.js +29 -0
  127. package/package.json +50 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,394 @@
1
+ # @rosen-bridge/watcher-data-extractor
2
+
3
+ ## 13.0.10
4
+
5
+ ### Patch Changes
6
+
7
+ - Update dependencies
8
+ - @rosen-bridge/abstract-extractor@3.2.3
9
+
10
+ ## 13.0.9
11
+
12
+ ### Patch Changes
13
+
14
+ - Update dependencies
15
+ - @rosen-bridge/abstract-extractor@3.2.2
16
+ - @rosen-bridge/tokens@6.0.2
17
+ - @rosen-clients/ergo-explorer@2.1.3
18
+
19
+ ## 13.0.8
20
+
21
+ ### Patch Changes
22
+
23
+ - Update dependencies
24
+ - @rosen-bridge/abstract-extractor@3.2.1
25
+
26
+ ## 13.0.7
27
+
28
+ ### Patch Changes
29
+
30
+ - Update dependencies
31
+ - @rosen-bridge/abstract-extractor@3.2.0
32
+ - @rosen-bridge/scanner-interfaces@1.0.0
33
+
34
+ ## 13.0.6
35
+
36
+ ### Patch Changes
37
+
38
+ - Update dependencies
39
+ - @rosen-bridge/abstract-extractor@3.1.2
40
+ - @rosen-bridge/extended-typeorm@1.1.0
41
+ - @rosen-bridge/tokens@6.0.1
42
+
43
+ ## 13.0.5
44
+
45
+ ### Patch Changes
46
+
47
+ - Update dependencies
48
+ - @rosen-bridge/abstract-extractor@3.1.1
49
+ - @rosen-clients/ergo-explorer@2.1.2
50
+
51
+ ## 13.0.4
52
+
53
+ ### Patch Changes
54
+
55
+ - Update dependencies
56
+ - @rosen-bridge/abstract-extractor@3.1.0
57
+
58
+ ## 13.0.3
59
+
60
+ ### Patch Changes
61
+
62
+ - Fix sqlite migration on `eventTriggerEntity` table
63
+
64
+ ## 13.0.2
65
+
66
+ ### Patch Changes
67
+
68
+ - Update dependencies:
69
+ - @rosen-bridge/tokens@6.0.0
70
+
71
+ ## 13.0.1
72
+
73
+ ### Patch Changes
74
+
75
+ - Update dependencies
76
+ - @rosen-bridge/abstract-extractor@3.0.1
77
+ - @rosen-bridge/scanner-interfaces@0.2.2
78
+ - @rosen-bridge/tokens@5.0.1
79
+
80
+ ## 13.0.0
81
+
82
+ ### Major Changes
83
+
84
+ - Update AbstractExtractor interface; use `BlockInfo` in `processTransactions` and rename `initializeBoxes` to `initializeData`
85
+ - Update abstract database entity to be general; rename `boxId` columnt to `identifier`
86
+ - Refactor collateral extractor to extend AbstractErgoBoxExtractor
87
+
88
+ ### Minor Changes
89
+
90
+ - Update AbstractExtractor interface; add `createUsedBlocksQuery` method that returns the query for used blocks
91
+
92
+ ### Patch Changes
93
+
94
+ - Update dependencies
95
+ - @rosen-bridge/abstract-logger@4.0.0
96
+ - @rosen-bridge/abstract-extractor@3.0.0
97
+
98
+ ## 12.3.0
99
+
100
+ ### Minor Changes
101
+
102
+ - Fixed Sqlite migrations
103
+ - Fixed type definitions in entities based migrations
104
+
105
+ ## 12.2.2
106
+
107
+ ### Patch Changes
108
+
109
+ - Fix package-lock and move typescript and types/node into root
110
+ - Update eslint and plugins:
111
+ - Apply new rules such as sort imports and file name
112
+ - Update dependencies
113
+ - @rosen-bridge/extended-typeorm@1.0.1
114
+ - @rosen-clients/rate-limited-axios@1.1.0
115
+ - @rosen-bridge/rosen-extractor@10.1.1
116
+ - @rosen-bridge/tokens@4.0.1
117
+ - @rosen-bridge/abstract-logger@3.0.1
118
+ - @rosen-bridge/json-bigint@1.1.0
119
+ - @rosen-clients/ergo-explorer@2.1.0
120
+ - @rosen-clients/ergo-node@3.1.0
121
+ - @rosen-bridge/abstract-extractor@2.1.2
122
+ - @rosen-bridge/scanner-interfaces@0.2.1
123
+
124
+ ## 12.2.1
125
+
126
+ ### Patch Changes
127
+
128
+ - Update dependencies
129
+ - @rosen-bridge/abstract-extractor@2.1.1
130
+ - @rosen-bridge/extended-typeorm@1.0.0
131
+ - @rosen-bridge/tokens@4.0.0
132
+ - @rosen-bridge/json-bigint@1.0.0
133
+ - @rosen-bridge/abstract-logger@3.0.0
134
+ - @rosen-clients/ergo-explorer@2.0.0
135
+
136
+ ## 12.2.0
137
+
138
+ ### Minor Changes
139
+
140
+ - Upgrade to Node.js version 22.18.0
141
+
142
+ ### Patch Changes
143
+
144
+ - Update dependencies
145
+ - @rosen-bridge/abstract-extractor@2.1.0
146
+ - @rosen-bridge/scanner-interfaces@0.2.0
147
+
148
+ ## 12.1.4
149
+
150
+ ### Patch Changes
151
+
152
+ - Update package license to MIT
153
+ - Update dependencies
154
+ - @rosen-bridge/abstract-extractor@2.0.3
155
+ - @rosen-bridge/scanner-interfaces@0.1.1
156
+
157
+ ## 12.1.3
158
+
159
+ ### Patch Changes
160
+
161
+ - Update network clients and ethers and rateLimitedAxios packages
162
+ - Update dependencies
163
+ - @rosen-bridge/abstract-extractor@2.0.2
164
+
165
+ ## 12.1.2
166
+
167
+ ### Patch Changes
168
+
169
+ - Use rate limiting methods using @rosen-bridge/rate-limited-axios to prevent overwhelming the endpoints
170
+ - Updated dependencies
171
+ - @rosen-bridge/abstract-extractor@2.0.1
172
+
173
+ ## 12.1.1
174
+
175
+ ### Patch Changes
176
+
177
+ - Fix event result extraction in EventTriggerExtractor
178
+ - Fix fraud result storage in database
179
+
180
+ ## 12.1.0
181
+
182
+ ### Minor Changes
183
+
184
+ - Unify and move shared interfaces and update all package dependencies
185
+ - Update extra information interfaces and extraction functions
186
+
187
+ ### Patch Changes
188
+
189
+ - Updated dependencies
190
+ - @rosen-bridge/abstract-extractor@2.0.0
191
+ - @rosen-bridge/tokens@3.1.0
192
+ - @rosen-bridge/rosen-extractor@7.2.2
193
+
194
+ ## 12.0.0
195
+
196
+ ### Major Changes
197
+
198
+ - Update tokens package to v3.0.0
199
+
200
+ ### Patch Changes
201
+
202
+ - Updated dependencies
203
+ - @rosen-bridge/scanner@5.1.0
204
+ - @rosen-bridge/abstract-extractor@1.0.2
205
+
206
+ ## 11.0.0
207
+
208
+ ### Major Changes
209
+
210
+ - Update tokens package version to 2.0.0
211
+
212
+ ## 10.0.1
213
+
214
+ ### Patch Changes
215
+
216
+ - Update node version to 20
217
+ - Updated dependencies
218
+ - @rosen-bridge/abstract-extractor@1.0.1
219
+ - @rosen-bridge/scanner@5.0.2
220
+
221
+ ## 10.0.0
222
+
223
+ ### Major Changes
224
+
225
+ - Update database entity and action to extend the abstract class
226
+
227
+ ### Minor Changes
228
+
229
+ - Update db action interface to support callbacks
230
+
231
+ ### Patch Changes
232
+
233
+ - Optimize `hasData` function not to deserialize all unrelated boxes
234
+ - Updated dependencies
235
+ - @rosen-bridge/abstract-extractor@1.0.0
236
+ - @rosen-bridge/scanner@5.0.1
237
+
238
+ ## 9.0.0
239
+
240
+ ### Major Changes
241
+
242
+ - Refactor event trigger extractor to extend abstract initializable class
243
+
244
+ ### Patch Changes
245
+
246
+ - Updated dependencies
247
+ - @rosen-bridge/scanner@5.0.0
248
+ - @rosen-bridge/abstract-extractor@0.3.1
249
+
250
+ ## 8.0.2
251
+
252
+ ### Patch Changes
253
+
254
+ - Updated dependencies
255
+ - @rosen-bridge/scanner@4.1.3
256
+
257
+ ## 8.0.1
258
+
259
+ ### Patch Changes
260
+
261
+ - improve event result extractor to avoid unnecessary errors
262
+
263
+ ## 8.0.0
264
+
265
+ ### Major Changes
266
+
267
+ - change paymentTxId format in R4 from hex string to string
268
+
269
+ ## 7.0.3
270
+
271
+ ### Patch Changes
272
+
273
+ - Updated dependencies
274
+ - @rosen-bridge/abstract-extractor@0.3.0
275
+ - @rosen-bridge/scanner@4.1.2
276
+
277
+ ## 7.0.2
278
+
279
+ ### Patch Changes
280
+
281
+ - Updated dependencies
282
+ - @rosen-bridge/scanner@4.1.1
283
+
284
+ ## 7.0.1
285
+
286
+ ### Patch Changes
287
+
288
+ - Updated dependencies
289
+ - @rosen-bridge/abstract-extractor@0.2.0
290
+ - @rosen-bridge/scanner@4.1.0
291
+
292
+ ## 7.0.0
293
+
294
+ ### Major Changes
295
+
296
+ - wrap rwtCount in CommitmentEntity
297
+ - add token map to commitmentExtractor constructor arguments
298
+
299
+ ## 6.0.5
300
+
301
+ ### Patch Changes
302
+
303
+ - Updated dependencies
304
+ - @rosen-bridge/abstract-extractor@0.1.5
305
+ - @rosen-bridge/scanner@4.0.5
306
+
307
+ ## 6.0.4
308
+
309
+ ### Patch Changes
310
+
311
+ - Updated dependencies
312
+ - @rosen-bridge/abstract-extractor@0.1.4
313
+ - @rosen-bridge/scanner@4.0.4
314
+
315
+ ## 6.0.3
316
+
317
+ ### Patch Changes
318
+
319
+ - Updated dependencies
320
+ - @rosen-bridge/abstract-extractor@0.1.3
321
+ - @rosen-bridge/scanner@4.0.3
322
+
323
+ ## 6.0.2
324
+
325
+ ### Patch Changes
326
+
327
+ - Updated dependencies
328
+ - @rosen-bridge/abstract-extractor@0.1.2
329
+ - @rosen-bridge/scanner@4.0.2
330
+
331
+ ## 6.0.1
332
+
333
+ ### Patch Changes
334
+
335
+ - Updated dependencies
336
+ - @rosen-bridge/abstract-extractor@0.1.1
337
+ - @rosen-bridge/scanner@4.0.1
338
+
339
+ ## 6.0.0
340
+
341
+ ### Major Changes
342
+
343
+ - Updated the InitializeBoxes interface to include the block hash. Previously, only block height was used as initialization point.
344
+
345
+ ### Patch Changes
346
+
347
+ - Update abstract extractor interface
348
+ - Updated dependencies
349
+ - @rosen-bridge/scanner@4.0.0
350
+
351
+ ## 5.1.3
352
+
353
+ ### Patch Changes
354
+
355
+ - Update Ergo explorer client
356
+ - Updated dependencies
357
+ - @rosen-bridge/scanner@3.2.9
358
+
359
+ ## 5.1.2
360
+
361
+ ### Patch Changes
362
+
363
+ - Updated dependencies
364
+ - @rosen-bridge/scanner@3.2.8
365
+
366
+ ## 5.1.1
367
+
368
+ ### Patch Changes
369
+
370
+ - Update typeorm version
371
+ - Updated dependencies
372
+ - @rosen-bridge/scanner@3.2.7
373
+
374
+ ## 5.1.0
375
+
376
+ ### Minor Changes
377
+
378
+ - implemented CollateralExtractor to validate and store collateral boxes
379
+
380
+ ### Patch Changes
381
+
382
+ - Fix spend height column in all entities
383
+
384
+ ## 5.0.1
385
+
386
+ ### Patch Changes
387
+
388
+ - fix WIDsHash calculation in migrations
389
+
390
+ ## 5.0.0
391
+
392
+ ### Major Changes
393
+
394
+ - update extractors according to latest version of contracts
package/README.md ADDED
@@ -0,0 +1,74 @@
1
+ # Watcher Data Extractor
2
+
3
+ ### Table of Contents
4
+
5
+ - [Description](#description)
6
+ - [Related Projects](#related-projects)
7
+ - [How to Use the Watcher Data Extractor](#how-to-use-the-watcher-data-extractor)
8
+ - [Install](#install)
9
+ - [Usage](#usage)
10
+ - [Contributing](#contributing)
11
+ - [License](#license)
12
+
13
+ <a name="headers"/>
14
+
15
+ ## Description
16
+
17
+ Data extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The watcher data extractor is responsible for tracking all watcher-related data in the network. These data includes permit, commitment and event trigger boxes; all these boxes are created in the network by the watchers. The watchers use their permits to create new commitments, and need to track created commitments and triggers to continue their procedures. On the other side, guards need to track event trigger boxes to verify the related user payment and start an agreement on the exchange transaction.
18
+
19
+ ## Related Projects
20
+
21
+ This module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. As stated above, this module is used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the related boxes. It also used in the [Guard](https://github.com/rosen-bridge/watcher) to track the created event triggers.
22
+
23
+ ## How to Use the Watcher Data Extractor
24
+
25
+ ### Install
26
+
27
+ This project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:
28
+
29
+ ```shell
30
+ npm install @rosen-bridge/watcher-data-extractor
31
+ ```
32
+
33
+ Alternatively, you can build and use it manually by cloning the project and running:
34
+
35
+ ```shell
36
+ npm install
37
+ npm run build
38
+ ```
39
+
40
+ ### Usage
41
+
42
+ In the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then, you need to instantiate your desired extractors and register them to your ergo scanner:
43
+
44
+ ```javascript
45
+ const commitmentExtractor = new CommitmentExtractor(
46
+ <extractor_name>,
47
+ <Array<commitment_address>>,
48
+ <rwt_id>,
49
+ dataSource
50
+ )
51
+ const permitExtractor = new PermitExtractor(
52
+ <extractor_name>,
53
+ dataSource,
54
+ <permit_address>,
55
+ <rwt_id>
56
+ )
57
+ const eventTriggerExtractor = new EventTriggerExtractor(
58
+ <extractor_name>,
59
+ dataSource,
60
+ <event_trigger_address>,
61
+ <rwt_id>
62
+ )
63
+ ergoScanner.registerExtractor(commitmentExtractor)
64
+ ergoScanner.registerExtractor(permitExtractor)
65
+ ergoScanner.registerExtractor(eventTriggerExtractor)
66
+ ```
67
+
68
+ ## Contributing
69
+
70
+ TBD
71
+
72
+ ## License
73
+
74
+ TBD
@@ -0,0 +1,25 @@
1
+ import { AbstractErgoBoxAction } from '@rosen-bridge/abstract-extractor';
2
+ import { AbstractLogger } from '@rosen-bridge/abstract-logger';
3
+ import { DataSource } from '@rosen-bridge/extended-typeorm';
4
+ import { BlockInfo } from '@rosen-bridge/scanner-interfaces';
5
+ import CollateralEntity from '../entities/collateralEntity';
6
+ import { ExtractedCollateral } from '../interfaces/extractedCollateral';
7
+ declare class CollateralAction extends AbstractErgoBoxAction<ExtractedCollateral, CollateralEntity> {
8
+ constructor(dataSource: DataSource, logger?: AbstractLogger);
9
+ /**
10
+ * create the collateral entity from extracted data and block information
11
+ * @param collaterals
12
+ * @param block
13
+ * @param extractor
14
+ * @returns the collateral entities (without the id)
15
+ */
16
+ protected createEntity: (collaterals: ExtractedCollateral[], block: BlockInfo, extractor: string) => Array<Omit<CollateralEntity, "id">>;
17
+ /**
18
+ * convert the database entity back to raw data
19
+ * @param entities
20
+ * @returns the extracted collateral data
21
+ */
22
+ protected convertEntityToData: (entities: CollateralEntity[]) => ExtractedCollateral[];
23
+ }
24
+ export default CollateralAction;
25
+ //# sourceMappingURL=collateralAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collateralAction.d.ts","sourceRoot":"","sources":["../../lib/actions/collateralAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,gBAAgB,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,cAAM,gBAAiB,SAAQ,qBAAqB,CAClD,mBAAmB,EACnB,gBAAgB,CACjB;gBACa,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,cAAc;IAI3D;;;;;;OAMG;IACH,SAAS,CAAC,YAAY,GACpB,aAAa,mBAAmB,EAAE,EAClC,OAAO,SAAS,EAChB,WAAW,MAAM,KAChB,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CASpC;IAEF;;;;OAIG;IACH,SAAS,CAAC,mBAAmB,GAC3B,UAAU,gBAAgB,EAAE,KAC3B,mBAAmB,EAAE,CAEtB;CACH;AAED,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { AbstractErgoBoxAction } from '@rosen-bridge/abstract-extractor';
2
+ import CollateralEntity from '../entities/collateralEntity';
3
+ class CollateralAction extends AbstractErgoBoxAction {
4
+ constructor(dataSource, logger) {
5
+ super(dataSource, CollateralEntity, logger);
6
+ }
7
+ /**
8
+ * create the collateral entity from extracted data and block information
9
+ * @param collaterals
10
+ * @param block
11
+ * @param extractor
12
+ * @returns the collateral entities (without the id)
13
+ */
14
+ createEntity = (collaterals, block, extractor) => {
15
+ return collaterals.map((collateral) => ({
16
+ ...collateral,
17
+ block: block.hash,
18
+ height: block.height,
19
+ extractor,
20
+ spendBlock: collateral.spendBlock ?? null,
21
+ spendHeight: collateral.spendHeight ?? null,
22
+ }));
23
+ };
24
+ /**
25
+ * convert the database entity back to raw data
26
+ * @param entities
27
+ * @returns the extracted collateral data
28
+ */
29
+ convertEntityToData = (entities) => {
30
+ return entities;
31
+ };
32
+ }
33
+ export default CollateralAction;
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGF0ZXJhbEFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9hY3Rpb25zL2NvbGxhdGVyYWxBY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFLekUsT0FBTyxnQkFBZ0IsTUFBTSw4QkFBOEIsQ0FBQztBQUc1RCxNQUFNLGdCQUFpQixTQUFRLHFCQUc5QjtJQUNDLFlBQVksVUFBc0IsRUFBRSxNQUF1QjtRQUN6RCxLQUFLLENBQUMsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDTyxZQUFZLEdBQUcsQ0FDdkIsV0FBa0MsRUFDbEMsS0FBZ0IsRUFDaEIsU0FBaUIsRUFDb0IsRUFBRTtRQUN2QyxPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEMsR0FBRyxVQUFVO1lBQ2IsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2pCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixTQUFTO1lBQ1QsVUFBVSxFQUFFLFVBQVUsQ0FBQyxVQUFVLElBQUksSUFBSTtZQUN6QyxXQUFXLEVBQUUsVUFBVSxDQUFDLFdBQVcsSUFBSSxJQUFJO1NBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNPLG1CQUFtQixHQUFHLENBQzlCLFFBQTRCLEVBQ0wsRUFBRTtRQUN6QixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDLENBQUM7Q0FDSDtBQUVELGVBQWUsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdEVyZ29Cb3hBY3Rpb24gfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWV4dHJhY3Rvcic7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuaW1wb3J0IHsgQmxvY2tJbmZvIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuXG5pbXBvcnQgQ29sbGF0ZXJhbEVudGl0eSBmcm9tICcuLi9lbnRpdGllcy9jb2xsYXRlcmFsRW50aXR5JztcbmltcG9ydCB7IEV4dHJhY3RlZENvbGxhdGVyYWwgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2V4dHJhY3RlZENvbGxhdGVyYWwnO1xuXG5jbGFzcyBDb2xsYXRlcmFsQWN0aW9uIGV4dGVuZHMgQWJzdHJhY3RFcmdvQm94QWN0aW9uPFxuICBFeHRyYWN0ZWRDb2xsYXRlcmFsLFxuICBDb2xsYXRlcmFsRW50aXR5XG4+IHtcbiAgY29uc3RydWN0b3IoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSwgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIpIHtcbiAgICBzdXBlcihkYXRhU291cmNlLCBDb2xsYXRlcmFsRW50aXR5LCBsb2dnZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIGNyZWF0ZSB0aGUgY29sbGF0ZXJhbCBlbnRpdHkgZnJvbSBleHRyYWN0ZWQgZGF0YSBhbmQgYmxvY2sgaW5mb3JtYXRpb25cbiAgICogQHBhcmFtIGNvbGxhdGVyYWxzXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqIEByZXR1cm5zIHRoZSBjb2xsYXRlcmFsIGVudGl0aWVzICh3aXRob3V0IHRoZSBpZClcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVFbnRpdHkgPSAoXG4gICAgY29sbGF0ZXJhbHM6IEV4dHJhY3RlZENvbGxhdGVyYWxbXSxcbiAgICBibG9jazogQmxvY2tJbmZvLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nLFxuICApOiBBcnJheTxPbWl0PENvbGxhdGVyYWxFbnRpdHksICdpZCc+PiA9PiB7XG4gICAgcmV0dXJuIGNvbGxhdGVyYWxzLm1hcCgoY29sbGF0ZXJhbCkgPT4gKHtcbiAgICAgIC4uLmNvbGxhdGVyYWwsXG4gICAgICBibG9jazogYmxvY2suaGFzaCxcbiAgICAgIGhlaWdodDogYmxvY2suaGVpZ2h0LFxuICAgICAgZXh0cmFjdG9yLFxuICAgICAgc3BlbmRCbG9jazogY29sbGF0ZXJhbC5zcGVuZEJsb2NrID8/IG51bGwsXG4gICAgICBzcGVuZEhlaWdodDogY29sbGF0ZXJhbC5zcGVuZEhlaWdodCA/PyBudWxsLFxuICAgIH0pKTtcbiAgfTtcblxuICAvKipcbiAgICogY29udmVydCB0aGUgZGF0YWJhc2UgZW50aXR5IGJhY2sgdG8gcmF3IGRhdGFcbiAgICogQHBhcmFtIGVudGl0aWVzXG4gICAqIEByZXR1cm5zIHRoZSBleHRyYWN0ZWQgY29sbGF0ZXJhbCBkYXRhXG4gICAqL1xuICBwcm90ZWN0ZWQgY29udmVydEVudGl0eVRvRGF0YSA9IChcbiAgICBlbnRpdGllczogQ29sbGF0ZXJhbEVudGl0eVtdLFxuICApOiBFeHRyYWN0ZWRDb2xsYXRlcmFsW10gPT4ge1xuICAgIHJldHVybiBlbnRpdGllcztcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29sbGF0ZXJhbEFjdGlvbjtcbiJdfQ==
@@ -0,0 +1,43 @@
1
+ import { AbstractLogger } from '@rosen-bridge/abstract-logger';
2
+ import { DataSource, SelectQueryBuilder } from '@rosen-bridge/extended-typeorm';
3
+ import { BlockInfo } from '@rosen-bridge/scanner-interfaces';
4
+ import CommitmentEntity from '../entities/commitmentEntity';
5
+ import { extractedCommitment } from '../interfaces/extractedCommitment';
6
+ import { SpendInfo } from '../interfaces/types';
7
+ declare class CommitmentAction {
8
+ readonly logger: AbstractLogger;
9
+ private readonly datasource;
10
+ private readonly commitmentRepository;
11
+ constructor(dataSource: DataSource, logger?: AbstractLogger);
12
+ /**
13
+ * It stores list of observations in the dataSource with block id
14
+ * @param commitments
15
+ * @param block
16
+ * @param extractor
17
+ */
18
+ storeCommitments: (commitments: Array<extractedCommitment>, block: BlockInfo, extractor: string) => Promise<boolean>;
19
+ /**
20
+ * Update spendBlock and spendHeight of commitments spent on the block
21
+ * @param spendId
22
+ * @param block
23
+ * @param extractor
24
+ */
25
+ spendCommitments: (spendId: Array<SpendInfo>, block: BlockInfo, extractor: string) => Promise<void>;
26
+ /**
27
+ * Delete all commitments corresponding to the block(id) and extractor(id)
28
+ * and update all commitments spent on the specified block
29
+ * @param block
30
+ * @param extractor
31
+ */
32
+ deleteBlock: (block: string, extractor: string) => Promise<void>;
33
+ /**
34
+ * Builds a query that returns used blocks by selecting the `block` column from the `CommitmentEntity` repository,
35
+ * filtered by the provided `extractorId`
36
+ *
37
+ * @param extractorId - Identifier of the extractor
38
+ * @returns A query builder selecting used blocks
39
+ */
40
+ createUsedBlocksQuery: (extractorId: string) => SelectQueryBuilder<CommitmentEntity>;
41
+ }
42
+ export default CommitmentAction;
43
+ //# sourceMappingURL=commitmentAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commitmentAction.d.ts","sourceRoot":"","sources":["../../lib/actions/commitmentAction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EACL,UAAU,EAGV,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAG7D,OAAO,gBAAgB,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,cAAM,gBAAgB;IACpB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA+B;gBAExD,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,cAAc;IAM3D;;;;;OAKG;IACH,gBAAgB,GACd,aAAa,KAAK,CAAC,mBAAmB,CAAC,EACvC,OAAO,SAAS,EAChB,WAAW,MAAM,KAChB,OAAO,CAAC,OAAO,CAAC,CAsDjB;IAEF;;;;;OAKG;IACH,gBAAgB,GACd,SAAS,KAAK,CAAC,SAAS,CAAC,EACzB,OAAO,SAAS,EAChB,WAAW,MAAM,KAChB,OAAO,CAAC,IAAI,CAAC,CAmCd;IAEF;;;;;OAKG;IACH,WAAW,GAAU,OAAO,MAAM,EAAE,WAAW,MAAM,mBAiBnD;IAEF;;;;;;OAMG;IACH,qBAAqB,GACnB,aAAa,MAAM,KAClB,kBAAkB,CAAC,gBAAgB,CAAC,CAKrC;CACH;AAED,eAAe,gBAAgB,CAAC"}