@my-packages-changeit/address-extractor 7.0.8

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 (49) hide show
  1. package/CHANGELOG.md +296 -0
  2. package/README.md +61 -0
  3. package/dist/actions/boxAction.d.ts +18 -0
  4. package/dist/actions/boxAction.d.ts.map +1 -0
  5. package/dist/actions/boxAction.js +28 -0
  6. package/dist/entities/boxEntity.d.ts +5 -0
  7. package/dist/entities/boxEntity.d.ts.map +1 -0
  8. package/dist/entities/boxEntity.js +23 -0
  9. package/dist/extractor/ergoUtxoExtractor.d.ts +33 -0
  10. package/dist/extractor/ergoUtxoExtractor.d.ts.map +1 -0
  11. package/dist/extractor/ergoUtxoExtractor.js +49 -0
  12. package/dist/index.d.ts +4 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +4 -0
  15. package/dist/interfaces/types.d.ts +6 -0
  16. package/dist/interfaces/types.d.ts.map +1 -0
  17. package/dist/interfaces/types.js +2 -0
  18. package/dist/migrations/index.d.ts +7 -0
  19. package/dist/migrations/index.d.ts.map +1 -0
  20. package/dist/migrations/index.js +23 -0
  21. package/dist/migrations/postgres/1688558553044-migration.d.ts +7 -0
  22. package/dist/migrations/postgres/1688558553044-migration.d.ts.map +1 -0
  23. package/dist/migrations/postgres/1688558553044-migration.js +24 -0
  24. package/dist/migrations/postgres/1689151869889-migration.d.ts +7 -0
  25. package/dist/migrations/postgres/1689151869889-migration.d.ts.map +1 -0
  26. package/dist/migrations/postgres/1689151869889-migration.js +15 -0
  27. package/dist/migrations/postgres/1737785465594-migration.d.ts +7 -0
  28. package/dist/migrations/postgres/1737785465594-migration.d.ts.map +1 -0
  29. package/dist/migrations/postgres/1737785465594-migration.js +39 -0
  30. package/dist/migrations/postgres/1758958610937-migration.d.ts +7 -0
  31. package/dist/migrations/postgres/1758958610937-migration.d.ts.map +1 -0
  32. package/dist/migrations/postgres/1758958610937-migration.js +30 -0
  33. package/dist/migrations/sqlite/1688555566662-migration.d.ts +7 -0
  34. package/dist/migrations/sqlite/1688555566662-migration.d.ts.map +1 -0
  35. package/dist/migrations/sqlite/1688555566662-migration.js +23 -0
  36. package/dist/migrations/sqlite/1689143753142-migration.d.ts +7 -0
  37. package/dist/migrations/sqlite/1689143753142-migration.d.ts.map +1 -0
  38. package/dist/migrations/sqlite/1689143753142-migration.js +85 -0
  39. package/dist/migrations/sqlite/1737532655167-migration.d.ts +7 -0
  40. package/dist/migrations/sqlite/1737532655167-migration.d.ts.map +1 -0
  41. package/dist/migrations/sqlite/1737532655167-migration.js +99 -0
  42. package/dist/migrations/sqlite/1758049849122-migration.d.ts +7 -0
  43. package/dist/migrations/sqlite/1758049849122-migration.d.ts.map +1 -0
  44. package/dist/migrations/sqlite/1758049849122-migration.js +96 -0
  45. package/dist/tsconfig.tsbuildinfo +1 -0
  46. package/dist/utils.d.ts +9 -0
  47. package/dist/utils.d.ts.map +1 -0
  48. package/dist/utils.js +6 -0
  49. package/package.json +43 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,296 @@
1
+ # @rosen-bridge/address-extractor
2
+
3
+ ## 7.0.8
4
+
5
+ ### Patch Changes
6
+
7
+ - Update dependencies
8
+ - @rosen-bridge/abstract-extractor@3.2.3
9
+
10
+ ## 7.0.7
11
+
12
+ ### Patch Changes
13
+
14
+ - Update dependencies
15
+ - @rosen-bridge/abstract-extractor@3.2.2
16
+
17
+ ## 7.0.6
18
+
19
+ ### Patch Changes
20
+
21
+ - Update dependencies
22
+ - @rosen-bridge/abstract-extractor@3.2.1
23
+
24
+ ## 7.0.5
25
+
26
+ ### Patch Changes
27
+
28
+ - Update dependencies
29
+ - @rosen-bridge/abstract-extractor@3.2.0
30
+ - @rosen-bridge/scanner-interfaces@1.0.0
31
+
32
+ ## 7.0.4
33
+
34
+ ### Patch Changes
35
+
36
+ - Update dependencies
37
+ - @rosen-bridge/abstract-extractor@3.1.2
38
+ - @rosen-bridge/extended-typeorm@1.1.0
39
+
40
+ ## 7.0.3
41
+
42
+ ### Patch Changes
43
+
44
+ - Update dependencies
45
+ - @rosen-bridge/abstract-extractor@3.1.1
46
+
47
+ ## 7.0.2
48
+
49
+ ### Patch Changes
50
+
51
+ - Update dependencies
52
+ - @rosen-bridge/abstract-extractor@3.1.0
53
+
54
+ ## 7.0.1
55
+
56
+ ### Patch Changes
57
+
58
+ - Update dependencies
59
+ - @rosen-bridge/abstract-extractor@3.0.1
60
+ - @rosen-bridge/scanner-interfaces@0.2.2
61
+
62
+ ## 7.0.0
63
+
64
+ ### Major Changes
65
+
66
+ - Update AbstractExtractor interface; use `BlockInfo` in `processTransactions` and rename `initializeBoxes` to `initializeData`
67
+ - Update abstract database entity to be general; rename `boxId` columnt to `identifier`
68
+
69
+ ### Patch Changes
70
+
71
+ - Update dependencies
72
+ - @rosen-bridge/abstract-logger@4.0.0
73
+ - @rosen-bridge/abstract-extractor@3.0.0
74
+
75
+ ## 6.3.0
76
+
77
+ ### Minor Changes
78
+
79
+ - Move `@rosen-bridge/json-bigint` to dependencies to ensure it's available at runtime
80
+
81
+ ## 6.2.2
82
+
83
+ ### Patch Changes
84
+
85
+ - Fix package-lock and move typescript and types/node into root
86
+ - Update eslint and plugins:
87
+ - Apply new rules such as sort imports and file name
88
+ - Update dependencies
89
+ - @rosen-bridge/extended-typeorm@1.0.1
90
+ - @rosen-clients/rate-limited-axios@1.1.0
91
+ - @rosen-bridge/rosen-extractor@10.1.1
92
+ - @rosen-bridge/tokens@4.0.1
93
+ - @rosen-bridge/abstract-logger@3.0.1
94
+ - @rosen-bridge/json-bigint@1.1.0
95
+ - @rosen-clients/ergo-explorer@2.1.0
96
+ - @rosen-clients/ergo-node@3.1.0
97
+ - @rosen-bridge/abstract-extractor@2.1.2
98
+ - @rosen-bridge/scanner-interfaces@0.2.1
99
+
100
+ ## 6.2.1
101
+
102
+ ### Patch Changes
103
+
104
+ - Update dependencies
105
+ - @rosen-bridge/abstract-extractor@2.1.1
106
+ - @rosen-bridge/extended-typeorm@1.0.0
107
+ - @rosen-bridge/abstract-logger@3.0.0
108
+
109
+ ## 6.2.0
110
+
111
+ ### Minor Changes
112
+
113
+ - Upgrade to Node.js version 22.18.0
114
+
115
+ ### Patch Changes
116
+
117
+ - Update dependencies
118
+ - @rosen-bridge/abstract-extractor@2.1.0
119
+ - @rosen-bridge/scanner-interfaces@0.2.0
120
+
121
+ ## 6.1.3
122
+
123
+ ### Patch Changes
124
+
125
+ - Update package license to MIT
126
+ - Update dependencies
127
+ - @rosen-bridge/abstract-extractor@2.0.3
128
+ - @rosen-bridge/scanner-interfaces@0.1.1
129
+
130
+ ## 6.1.2
131
+
132
+ ### Patch Changes
133
+
134
+ - Update network clients and ethers and rateLimitedAxios packages
135
+ - Update dependencies
136
+ - @rosen-bridge/abstract-extractor@2.0.2
137
+
138
+ ## 6.1.1
139
+
140
+ ### Patch Changes
141
+
142
+ - Use rate limiting methods using @rosen-bridge/rate-limited-axios to prevent overwhelming the endpoints
143
+ - Updated dependencies
144
+ - @rosen-bridge/abstract-extractor@2.0.1
145
+
146
+ ## 6.1.0
147
+
148
+ ### Minor Changes
149
+
150
+ - Unify and move shared interfaces and update all package dependencies
151
+
152
+ ### Patch Changes
153
+
154
+ - Updated dependencies
155
+ - @rosen-bridge/abstract-extractor@2.0.0
156
+
157
+ ## 6.0.2
158
+
159
+ ### Patch Changes
160
+
161
+ - Updated dependencies
162
+ - @rosen-bridge/abstract-extractor@1.0.2
163
+
164
+ ## 6.0.1
165
+
166
+ ### Patch Changes
167
+
168
+ - Update node version to 20
169
+ - Update logger package
170
+ - Updated dependencies
171
+ - @rosen-bridge/abstract-extractor@1.0.1
172
+
173
+ ## 6.0.0
174
+
175
+ ### Major Changes
176
+
177
+ - Update database entity and action to extend the abstract class
178
+
179
+ ### Minor Changes
180
+
181
+ - Update db action interface to support callbacks
182
+
183
+ ### Patch Changes
184
+
185
+ - Updated dependencies
186
+ - @rosen-bridge/abstract-extractor@1.0.0
187
+
188
+ ## 5.0.8
189
+
190
+ ### Patch Changes
191
+
192
+ - Remove unnecessary properties from abstract extracted data type
193
+ - Updated dependencies
194
+ - @rosen-bridge/abstract-extractor@0.3.1
195
+
196
+ ## 5.0.7
197
+
198
+ ### Patch Changes
199
+
200
+ - Change processTransaction Block interface to use minimal information
201
+ - Updated dependencies
202
+ - @rosen-bridge/abstract-extractor@0.3.0
203
+
204
+ ## 5.0.6
205
+
206
+ ### Patch Changes
207
+
208
+ - Remove redundant `getTxBlock` function
209
+ - Updated dependencies
210
+ - @rosen-bridge/abstract-extractor@0.2.0
211
+
212
+ ## 5.0.5
213
+
214
+ ### Patch Changes
215
+
216
+ - fix storing duplicate boxes
217
+ - Updated dependencies
218
+ - @rosen-bridge/abstract-extractor@0.1.5
219
+
220
+ ## 5.0.4
221
+
222
+ ### Patch Changes
223
+
224
+ - Updated dependencies
225
+ - @rosen-bridge/abstract-extractor@0.1.4
226
+
227
+ ## 5.0.3
228
+
229
+ ### Patch Changes
230
+
231
+ - Updated dependencies
232
+ - @rosen-bridge/abstract-extractor@0.1.3
233
+
234
+ ## 5.0.2
235
+
236
+ ### Patch Changes
237
+
238
+ - Updated dependencies
239
+ - @rosen-bridge/abstract-extractor@0.1.2
240
+
241
+ ## 5.0.1
242
+
243
+ ### Patch Changes
244
+
245
+ - Fix ErgoNetworkType import
246
+
247
+ ## 5.0.0
248
+
249
+ ### Major Changes
250
+
251
+ - Use abstract initializable extractor and update initilialization procedure to support both node and expolorer APIs
252
+
253
+ ### Patch Changes
254
+
255
+ - Updated dependencies
256
+ - @rosen-bridge/abstract-extractor@0.1.1
257
+
258
+ ## 4.0.0
259
+
260
+ ### Major Changes
261
+
262
+ - Updated the InitializeBoxes interface to include the block hash. Previously, only block height was used as initialization point.
263
+
264
+ ### Patch Changes
265
+
266
+ - Update abstract extractor interface
267
+ - Updated dependencies
268
+ - @rosen-bridge/scanner@4.0.0
269
+
270
+ ## 3.3.3
271
+
272
+ ### Patch Changes
273
+
274
+ - Updated dependencies
275
+ - @rosen-bridge/scanner@3.2.9
276
+
277
+ ## 3.3.2
278
+
279
+ ### Patch Changes
280
+
281
+ - Updated dependencies
282
+ - @rosen-bridge/scanner@3.2.8
283
+
284
+ ## 3.3.1
285
+
286
+ ### Patch Changes
287
+
288
+ - Update typeorm version
289
+ - Updated dependencies
290
+ - @rosen-bridge/scanner@3.2.7
291
+
292
+ ## 3.3.0
293
+
294
+ ### Minor Changes
295
+
296
+ - Ignore old spent boxes validation in address extractor initialization
package/README.md ADDED
@@ -0,0 +1,61 @@
1
+ # Address Extractor
2
+
3
+ ### Table of Contents
4
+
5
+ - [Description](#description)
6
+ - [Related Projects](#related-projects)
7
+ - [How to Use the Address Extractor](#how-to-use-the-address-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 address extractor is the simplest data extractor that tracks a specific address and stores all boxes belonging to that address. Furthermore, this extractor also can track a list of specific assets within the required address boxes. Currently, the address extractor can only be used to track the ergo addresses.
18
+
19
+ ## Related Projects
20
+
21
+ This module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the watcher fee boxes and WID box (The watcher box with a specific WID token that is used for watcher authentication).
22
+
23
+ ## How to Use the Address 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/address-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
+ At 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 scanner. Then you need to instantiate your address extractor and register it to your scanner:
43
+
44
+ ```javascript
45
+ const addressExtractor = new ErgoUTXOExtractor(
46
+ dataSource,
47
+ <extractor_name>,
48
+ <network_type>,
49
+ <address>,
50
+ OPTIONAL<Array<asset_id>>
51
+ )
52
+ scanner.registerExtractor(addressExtractor)
53
+ ```
54
+
55
+ ## Contributing
56
+
57
+ TBD
58
+
59
+ ## License
60
+
61
+ TBD
@@ -0,0 +1,18 @@
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 { BoxEntity } from '../entities/boxEntity';
6
+ import { ExtractedBox } from '../interfaces/types';
7
+ export declare class BoxEntityAction extends AbstractErgoBoxAction<ExtractedBox, BoxEntity> {
8
+ constructor(dataSource: DataSource, logger?: AbstractLogger);
9
+ /**
10
+ * create the box entity from extracted data and block information
11
+ */
12
+ createEntity: (boxes: ExtractedBox[], block: BlockInfo, extractor: string) => Omit<BoxEntity, "id">[];
13
+ /**
14
+ * convert the database entity back to raw data
15
+ */
16
+ convertEntityToData: (entities: BoxEntity[]) => ExtractedBox[];
17
+ }
18
+ //# sourceMappingURL=boxAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boxAction.d.ts","sourceRoot":"","sources":["../../lib/actions/boxAction.ts"],"names":[],"mappings":"AAEA,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,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,qBAAa,eAAgB,SAAQ,qBAAqB,CACxD,YAAY,EACZ,SAAS,CACV;gBACa,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,cAAc;IAI3D;;OAEG;IACH,YAAY,GACV,OAAO,YAAY,EAAE,EACrB,OAAO,SAAS,EAChB,WAAW,MAAM,KAChB,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CASxB;IAEF;;OAEG;IACH,mBAAmB,GAAI,UAAU,SAAS,EAAE,KAAG,YAAY,EAAE,CAI3D;CACH"}
@@ -0,0 +1,28 @@
1
+ import { pick } from 'lodash-es';
2
+ import { AbstractErgoBoxAction } from '@rosen-bridge/abstract-extractor';
3
+ import { BoxEntity } from '../entities/boxEntity';
4
+ export class BoxEntityAction extends AbstractErgoBoxAction {
5
+ constructor(dataSource, logger) {
6
+ super(dataSource, BoxEntity, logger);
7
+ }
8
+ /**
9
+ * create the box entity from extracted data and block information
10
+ */
11
+ createEntity = (boxes, block, extractor) => {
12
+ return boxes.map((box) => ({
13
+ address: box.address,
14
+ identifier: box.identifier,
15
+ block: block.hash,
16
+ height: block.height,
17
+ serialized: box.serialized,
18
+ extractor: extractor,
19
+ }));
20
+ };
21
+ /**
22
+ * convert the database entity back to raw data
23
+ */
24
+ convertEntityToData = (entities) => {
25
+ return entities.map((data) => pick(data, ['identifier', 'address', 'serialized']));
26
+ };
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94QWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2FjdGlvbnMvYm94QWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFakMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFLekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR2xELE1BQU0sT0FBTyxlQUFnQixTQUFRLHFCQUdwQztJQUNDLFlBQVksVUFBc0IsRUFBRSxNQUF1QjtRQUN6RCxLQUFLLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZLEdBQUcsQ0FDYixLQUFxQixFQUNyQixLQUFnQixFQUNoQixTQUFpQixFQUNRLEVBQUU7UUFDM0IsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3pCLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTztZQUNwQixVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVU7WUFDMUIsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2pCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVU7WUFDMUIsU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILG1CQUFtQixHQUFHLENBQUMsUUFBcUIsRUFBa0IsRUFBRTtRQUM5RCxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUMzQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUNwRCxDQUFDO0lBQ0osQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwaWNrIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RFcmdvQm94QWN0aW9uIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1leHRyYWN0b3InO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9leHRlbmRlZC10eXBlb3JtJztcbmltcG9ydCB7IEJsb2NrSW5mbyB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgQm94RW50aXR5IH0gZnJvbSAnLi4vZW50aXRpZXMvYm94RW50aXR5JztcbmltcG9ydCB7IEV4dHJhY3RlZEJveCB9IGZyb20gJy4uL2ludGVyZmFjZXMvdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgQm94RW50aXR5QWN0aW9uIGV4dGVuZHMgQWJzdHJhY3RFcmdvQm94QWN0aW9uPFxuICBFeHRyYWN0ZWRCb3gsXG4gIEJveEVudGl0eVxuPiB7XG4gIGNvbnN0cnVjdG9yKGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyKSB7XG4gICAgc3VwZXIoZGF0YVNvdXJjZSwgQm94RW50aXR5LCBsb2dnZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIGNyZWF0ZSB0aGUgYm94IGVudGl0eSBmcm9tIGV4dHJhY3RlZCBkYXRhIGFuZCBibG9jayBpbmZvcm1hdGlvblxuICAgKi9cbiAgY3JlYXRlRW50aXR5ID0gKFxuICAgIGJveGVzOiBFeHRyYWN0ZWRCb3hbXSxcbiAgICBibG9jazogQmxvY2tJbmZvLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nLFxuICApOiBPbWl0PEJveEVudGl0eSwgJ2lkJz5bXSA9PiB7XG4gICAgcmV0dXJuIGJveGVzLm1hcCgoYm94KSA9PiAoe1xuICAgICAgYWRkcmVzczogYm94LmFkZHJlc3MsXG4gICAgICBpZGVudGlmaWVyOiBib3guaWRlbnRpZmllcixcbiAgICAgIGJsb2NrOiBibG9jay5oYXNoLFxuICAgICAgaGVpZ2h0OiBibG9jay5oZWlnaHQsXG4gICAgICBzZXJpYWxpemVkOiBib3guc2VyaWFsaXplZCxcbiAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgIH0pKTtcbiAgfTtcblxuICAvKipcbiAgICogY29udmVydCB0aGUgZGF0YWJhc2UgZW50aXR5IGJhY2sgdG8gcmF3IGRhdGFcbiAgICovXG4gIGNvbnZlcnRFbnRpdHlUb0RhdGEgPSAoZW50aXRpZXM6IEJveEVudGl0eVtdKTogRXh0cmFjdGVkQm94W10gPT4ge1xuICAgIHJldHVybiBlbnRpdGllcy5tYXAoKGRhdGEpID0+XG4gICAgICBwaWNrKGRhdGEsIFsnaWRlbnRpZmllcicsICdhZGRyZXNzJywgJ3NlcmlhbGl6ZWQnXSksXG4gICAgKTtcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ import { AbstractErgoBoxEntity } from '@rosen-bridge/abstract-extractor';
2
+ export declare class BoxEntity extends AbstractErgoBoxEntity {
3
+ address: string;
4
+ }
5
+ //# sourceMappingURL=boxEntity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boxEntity.d.ts","sourceRoot":"","sources":["../../lib/entities/boxEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,qBACa,SAAU,SAAQ,qBAAqB;IAElD,OAAO,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,23 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { AbstractErgoBoxEntity } from '@rosen-bridge/abstract-extractor';
11
+ import { Column, Entity } from '@rosen-bridge/extended-typeorm';
12
+ let BoxEntity = class BoxEntity extends AbstractErgoBoxEntity {
13
+ address;
14
+ };
15
+ __decorate([
16
+ Column({ type: 'varchar' }),
17
+ __metadata("design:type", String)
18
+ ], BoxEntity.prototype, "address", void 0);
19
+ BoxEntity = __decorate([
20
+ Entity('box_entity')
21
+ ], BoxEntity);
22
+ export { BoxEntity };
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94RW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2VudGl0aWVzL2JveEVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3pELElBQU0sU0FBUyxHQUFmLE1BQU0sU0FBVSxTQUFRLHFCQUFxQjtJQUVsRCxPQUFPLENBQVM7Q0FDakIsQ0FBQTtBQURDO0lBREMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDOzswQ0FDWjtBQUZMLFNBQVM7SUFEckIsTUFBTSxDQUFDLFlBQVksQ0FBQztHQUNSLFNBQVMsQ0FHckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdEVyZ29Cb3hFbnRpdHkgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWV4dHJhY3Rvcic7XG5pbXBvcnQgeyBDb2x1bW4sIEVudGl0eSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvZXh0ZW5kZWQtdHlwZW9ybSc7XG5cbkBFbnRpdHkoJ2JveF9lbnRpdHknKVxuZXhwb3J0IGNsYXNzIEJveEVudGl0eSBleHRlbmRzIEFic3RyYWN0RXJnb0JveEVudGl0eSB7XG4gIEBDb2x1bW4oeyB0eXBlOiAndmFyY2hhcicgfSlcbiAgYWRkcmVzczogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,33 @@
1
+ import * as ergoLib from 'ergo-lib-wasm-nodejs';
2
+ import { AbstractErgoBoxExtractor } from '@rosen-bridge/abstract-extractor';
3
+ import { AbstractLogger } from '@rosen-bridge/abstract-logger';
4
+ import { DataSource } from '@rosen-bridge/extended-typeorm';
5
+ import { OutputBox, ErgoNetworkType } from '@rosen-bridge/scanner-interfaces';
6
+ import { BoxEntityAction } from '../actions/boxAction';
7
+ import { BoxEntity } from '../entities/boxEntity';
8
+ import { ExtractedBox } from '../interfaces/types';
9
+ export declare class ErgoUTXOExtractor extends AbstractErgoBoxExtractor<ExtractedBox, BoxEntity> {
10
+ readonly actions: BoxEntityAction;
11
+ private readonly id;
12
+ private readonly networkType;
13
+ private readonly ergoTree?;
14
+ private readonly tokens;
15
+ constructor(dataSource: DataSource, id: string, networkType: ergoLib.NetworkPrefix, url: string, type: ErgoNetworkType, address: string, tokens?: Array<string>, logger?: AbstractLogger, initialize?: boolean);
16
+ /**
17
+ * get Id for current extractor
18
+ */
19
+ getId: () => string;
20
+ /**
21
+ * check proper data format in the box
22
+ * @param box
23
+ * @return true if the box has the required data and false otherwise
24
+ */
25
+ hasBoxData: (box: OutputBox) => boolean;
26
+ /**
27
+ * extract box data to proper format (not including spending information)
28
+ * @param box
29
+ * @return extracted data in proper format
30
+ */
31
+ extractBoxData: (box: OutputBox) => ExtractedBox | undefined;
32
+ }
33
+ //# sourceMappingURL=ergoUtxoExtractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ergoUtxoExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/ergoUtxoExtractor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EACL,wBAAwB,EAEzB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAE9E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,qBAAa,iBAAkB,SAAQ,wBAAwB,CAC7D,YAAY,EACZ,SAAS,CACV;IACC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAGrC,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,OAAO,CAAC,aAAa,EAClC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EACtB,MAAM,CAAC,EAAE,cAAc,EACvB,UAAU,UAAO;IAenB;;OAEG;IACH,KAAK,eAAsB;IAE3B;;;;OAIG;IACH,UAAU,GAAI,KAAK,SAAS,KAAG,OAAO,CAKpC;IAEF;;;;OAIG;IACH,cAAc,GAAI,KAAK,SAAS,KAAG,YAAY,GAAG,SAAS,CAazD;CACH"}
@@ -0,0 +1,49 @@
1
+ import { Buffer } from 'buffer';
2
+ import * as ergoLib from 'ergo-lib-wasm-nodejs';
3
+ import { AbstractErgoBoxExtractor, boxHasToken, } from '@rosen-bridge/abstract-extractor';
4
+ import { BoxEntityAction } from '../actions/boxAction';
5
+ import { JsonBI } from '../utils';
6
+ export class ErgoUTXOExtractor extends AbstractErgoBoxExtractor {
7
+ actions;
8
+ id;
9
+ networkType;
10
+ ergoTree;
11
+ tokens;
12
+ constructor(dataSource, id, networkType, url, type, address, tokens, logger, initialize = true) {
13
+ super({ type, url, address, active: initialize }, logger);
14
+ this.id = id;
15
+ this.networkType = networkType;
16
+ this.ergoTree = address
17
+ ? ergoLib.Address.from_base58(address).to_ergo_tree().to_base16_bytes()
18
+ : undefined;
19
+ this.tokens = tokens ? tokens : [];
20
+ this.actions = new BoxEntityAction(dataSource, this.logger.child('BoxEntityAction'));
21
+ }
22
+ /**
23
+ * get Id for current extractor
24
+ */
25
+ getId = () => `${this.id}`;
26
+ /**
27
+ * check proper data format in the box
28
+ * @param box
29
+ * @return true if the box has the required data and false otherwise
30
+ */
31
+ hasBoxData = (box) => {
32
+ return ((!this.ergoTree || box.ergoTree == this.ergoTree) &&
33
+ (this.tokens.length == 0 || boxHasToken(box, this.tokens)));
34
+ };
35
+ /**
36
+ * extract box data to proper format (not including spending information)
37
+ * @param box
38
+ * @return extracted data in proper format
39
+ */
40
+ extractBoxData = (box) => {
41
+ const ergoBox = ergoLib.ErgoBox.from_json(JsonBI.stringify(box));
42
+ return {
43
+ identifier: ergoBox.box_id().to_str(),
44
+ address: ergoLib.Address.recreate_from_ergo_tree(ergoLib.ErgoTree.from_base16_bytes(ergoBox.ergo_tree().to_base16_bytes())).to_base58(this.networkType),
45
+ serialized: Buffer.from(ergoBox.sigma_serialize_bytes()).toString('base64'),
46
+ };
47
+ };
48
+ }
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJnb1V0eG9FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZXh0cmFjdG9yL2VyZ29VdHhvRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxLQUFLLE9BQU8sTUFBTSxzQkFBc0IsQ0FBQztBQUVoRCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLFdBQVcsR0FDWixNQUFNLGtDQUFrQyxDQUFDO0FBSzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSx3QkFHdEM7SUFDVSxPQUFPLENBQWtCO0lBQ2pCLEVBQUUsQ0FBUztJQUNYLFdBQVcsQ0FBd0I7SUFDbkMsUUFBUSxDQUFVO0lBQ2xCLE1BQU0sQ0FBZ0I7SUFFdkMsWUFDRSxVQUFzQixFQUN0QixFQUFVLEVBQ1YsV0FBa0MsRUFDbEMsR0FBVyxFQUNYLElBQXFCLEVBQ3JCLE9BQWUsRUFDZixNQUFzQixFQUN0QixNQUF1QixFQUN2QixVQUFVLEdBQUcsSUFBSTtRQUVqQixLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU87WUFDckIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLGVBQWUsRUFBRTtZQUN2RSxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQ2hDLFVBQVUsRUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUNyQyxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBRTNCOzs7O09BSUc7SUFDSCxVQUFVLEdBQUcsQ0FBQyxHQUFjLEVBQVcsRUFBRTtRQUN2QyxPQUFPLENBQ0wsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksR0FBRyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ2pELENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLFdBQVcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQzNELENBQUM7SUFDSixDQUFDLENBQUM7SUFFRjs7OztPQUlHO0lBQ0gsY0FBYyxHQUFHLENBQUMsR0FBYyxFQUE0QixFQUFFO1FBQzVELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqRSxPQUFPO1lBQ0wsVUFBVSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUU7WUFDckMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQzlDLE9BQU8sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQ2hDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FDdEMsQ0FDRixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQzdCLFVBQVUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUMvRCxRQUFRLENBQ1Q7U0FDRixDQUFDO0lBQ0osQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInO1xuaW1wb3J0ICogYXMgZXJnb0xpYiBmcm9tICdlcmdvLWxpYi13YXNtLW5vZGVqcyc7XG5cbmltcG9ydCB7XG4gIEFic3RyYWN0RXJnb0JveEV4dHJhY3RvcixcbiAgYm94SGFzVG9rZW4sXG59IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtZXh0cmFjdG9yJztcbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvZXh0ZW5kZWQtdHlwZW9ybSc7XG5pbXBvcnQgeyBPdXRwdXRCb3gsIEVyZ29OZXR3b3JrVHlwZSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgQm94RW50aXR5QWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucy9ib3hBY3Rpb24nO1xuaW1wb3J0IHsgQm94RW50aXR5IH0gZnJvbSAnLi4vZW50aXRpZXMvYm94RW50aXR5JztcbmltcG9ydCB7IEV4dHJhY3RlZEJveCB9IGZyb20gJy4uL2ludGVyZmFjZXMvdHlwZXMnO1xuaW1wb3J0IHsgSnNvbkJJIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgRXJnb1VUWE9FeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdEVyZ29Cb3hFeHRyYWN0b3I8XG4gIEV4dHJhY3RlZEJveCxcbiAgQm94RW50aXR5XG4+IHtcbiAgcmVhZG9ubHkgYWN0aW9uczogQm94RW50aXR5QWN0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgbmV0d29ya1R5cGU6IGVyZ29MaWIuTmV0d29ya1ByZWZpeDtcbiAgcHJpdmF0ZSByZWFkb25seSBlcmdvVHJlZT86IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSB0b2tlbnM6IEFycmF5PHN0cmluZz47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZGF0YVNvdXJjZTogRGF0YVNvdXJjZSxcbiAgICBpZDogc3RyaW5nLFxuICAgIG5ldHdvcmtUeXBlOiBlcmdvTGliLk5ldHdvcmtQcmVmaXgsXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgdHlwZTogRXJnb05ldHdvcmtUeXBlLFxuICAgIGFkZHJlc3M6IHN0cmluZyxcbiAgICB0b2tlbnM/OiBBcnJheTxzdHJpbmc+LFxuICAgIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyLFxuICAgIGluaXRpYWxpemUgPSB0cnVlLFxuICApIHtcbiAgICBzdXBlcih7IHR5cGUsIHVybCwgYWRkcmVzcywgYWN0aXZlOiBpbml0aWFsaXplIH0sIGxvZ2dlcik7XG4gICAgdGhpcy5pZCA9IGlkO1xuICAgIHRoaXMubmV0d29ya1R5cGUgPSBuZXR3b3JrVHlwZTtcbiAgICB0aGlzLmVyZ29UcmVlID0gYWRkcmVzc1xuICAgICAgPyBlcmdvTGliLkFkZHJlc3MuZnJvbV9iYXNlNTgoYWRkcmVzcykudG9fZXJnb190cmVlKCkudG9fYmFzZTE2X2J5dGVzKClcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIHRoaXMudG9rZW5zID0gdG9rZW5zID8gdG9rZW5zIDogW107XG4gICAgdGhpcy5hY3Rpb25zID0gbmV3IEJveEVudGl0eUFjdGlvbihcbiAgICAgIGRhdGFTb3VyY2UsXG4gICAgICB0aGlzLmxvZ2dlci5jaGlsZCgnQm94RW50aXR5QWN0aW9uJyksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgSWQgZm9yIGN1cnJlbnQgZXh0cmFjdG9yXG4gICAqL1xuICBnZXRJZCA9ICgpID0+IGAke3RoaXMuaWR9YDtcblxuICAvKipcbiAgICogY2hlY2sgcHJvcGVyIGRhdGEgZm9ybWF0IGluIHRoZSBib3hcbiAgICogQHBhcmFtIGJveFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGJveCBoYXMgdGhlIHJlcXVpcmVkIGRhdGEgYW5kIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgaGFzQm94RGF0YSA9IChib3g6IE91dHB1dEJveCk6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiAoXG4gICAgICAoIXRoaXMuZXJnb1RyZWUgfHwgYm94LmVyZ29UcmVlID09IHRoaXMuZXJnb1RyZWUpICYmXG4gICAgICAodGhpcy50b2tlbnMubGVuZ3RoID09IDAgfHwgYm94SGFzVG9rZW4oYm94LCB0aGlzLnRva2VucykpXG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogZXh0cmFjdCBib3ggZGF0YSB0byBwcm9wZXIgZm9ybWF0IChub3QgaW5jbHVkaW5nIHNwZW5kaW5nIGluZm9ybWF0aW9uKVxuICAgKiBAcGFyYW0gYm94XG4gICAqIEByZXR1cm4gZXh0cmFjdGVkIGRhdGEgaW4gcHJvcGVyIGZvcm1hdFxuICAgKi9cbiAgZXh0cmFjdEJveERhdGEgPSAoYm94OiBPdXRwdXRCb3gpOiBFeHRyYWN0ZWRCb3ggfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IGVyZ29Cb3ggPSBlcmdvTGliLkVyZ29Cb3guZnJvbV9qc29uKEpzb25CSS5zdHJpbmdpZnkoYm94KSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkZW50aWZpZXI6IGVyZ29Cb3guYm94X2lkKCkudG9fc3RyKCksXG4gICAgICBhZGRyZXNzOiBlcmdvTGliLkFkZHJlc3MucmVjcmVhdGVfZnJvbV9lcmdvX3RyZWUoXG4gICAgICAgIGVyZ29MaWIuRXJnb1RyZWUuZnJvbV9iYXNlMTZfYnl0ZXMoXG4gICAgICAgICAgZXJnb0JveC5lcmdvX3RyZWUoKS50b19iYXNlMTZfYnl0ZXMoKSxcbiAgICAgICAgKSxcbiAgICAgICkudG9fYmFzZTU4KHRoaXMubmV0d29ya1R5cGUpLFxuICAgICAgc2VyaWFsaXplZDogQnVmZmVyLmZyb20oZXJnb0JveC5zaWdtYV9zZXJpYWxpemVfYnl0ZXMoKSkudG9TdHJpbmcoXG4gICAgICAgICdiYXNlNjQnLFxuICAgICAgKSxcbiAgICB9O1xuICB9O1xufVxuIl19
@@ -0,0 +1,4 @@
1
+ export { ErgoUTXOExtractor } from './extractor/ergoUtxoExtractor';
2
+ export { BoxEntity } from './entities/boxEntity';
3
+ export { migrations } from './migrations/index';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export { ErgoUTXOExtractor } from './extractor/ergoUtxoExtractor';
2
+ export { BoxEntity } from './entities/boxEntity';
3
+ export { migrations } from './migrations/index';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEVyZ29VVFhPRXh0cmFjdG9yIH0gZnJvbSAnLi9leHRyYWN0b3IvZXJnb1V0eG9FeHRyYWN0b3InO1xuZXhwb3J0IHsgQm94RW50aXR5IH0gZnJvbSAnLi9lbnRpdGllcy9ib3hFbnRpdHknO1xuZXhwb3J0IHsgbWlncmF0aW9ucyB9IGZyb20gJy4vbWlncmF0aW9ucy9pbmRleCc7XG4iXX0=
@@ -0,0 +1,6 @@
1
+ export interface ExtractedBox {
2
+ identifier: string;
3
+ address: string;
4
+ serialized: string;
5
+ }
6
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/interfaces/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaW50ZXJmYWNlcy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBFeHRyYWN0ZWRCb3gge1xuICBpZGVudGlmaWVyOiBzdHJpbmc7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgc2VyaWFsaXplZDogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,7 @@
1
+ import { migration1688558553044 } from './postgres/1688558553044-migration';
2
+ import { migration1688555566662 } from './sqlite/1688555566662-migration';
3
+ export declare const migrations: {
4
+ sqlite: (typeof migration1688555566662)[];
5
+ postgres: (typeof migration1688558553044)[];
6
+ };
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAI5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAK1E,eAAO,MAAM,UAAU;;;CAatB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { migration1688558553044 } from './postgres/1688558553044-migration';
2
+ import { migration1689151869889 } from './postgres/1689151869889-migration';
3
+ import { migration1737785465594 } from './postgres/1737785465594-migration';
4
+ import { Migration1758958610937 } from './postgres/1758958610937-migration';
5
+ import { migration1688555566662 } from './sqlite/1688555566662-migration';
6
+ import { migration1689143753142 } from './sqlite/1689143753142-migration';
7
+ import { migration1737532655167 } from './sqlite/1737532655167-migration';
8
+ import { Migration1758049849122 } from './sqlite/1758049849122-migration';
9
+ export const migrations = {
10
+ sqlite: [
11
+ migration1688555566662,
12
+ migration1689143753142,
13
+ migration1737532655167,
14
+ Migration1758049849122,
15
+ ],
16
+ postgres: [
17
+ migration1688558553044,
18
+ migration1689151869889,
19
+ migration1737785465594,
20
+ Migration1758958610937,
21
+ ],
22
+ };
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWlncmF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxRSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsTUFBTSxFQUFFO1FBQ04sc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsc0JBQXNCO0tBQ3ZCO0lBQ0QsUUFBUSxFQUFFO1FBQ1Isc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsc0JBQXNCO0tBQ3ZCO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1pZ3JhdGlvbjE2ODg1NTg1NTMwNDQgfSBmcm9tICcuL3Bvc3RncmVzLzE2ODg1NTg1NTMwNDQtbWlncmF0aW9uJztcbmltcG9ydCB7IG1pZ3JhdGlvbjE2ODkxNTE4Njk4ODkgfSBmcm9tICcuL3Bvc3RncmVzLzE2ODkxNTE4Njk4ODktbWlncmF0aW9uJztcbmltcG9ydCB7IG1pZ3JhdGlvbjE3Mzc3ODU0NjU1OTQgfSBmcm9tICcuL3Bvc3RncmVzLzE3Mzc3ODU0NjU1OTQtbWlncmF0aW9uJztcbmltcG9ydCB7IE1pZ3JhdGlvbjE3NTg5NTg2MTA5MzcgfSBmcm9tICcuL3Bvc3RncmVzLzE3NTg5NTg2MTA5MzctbWlncmF0aW9uJztcbmltcG9ydCB7IG1pZ3JhdGlvbjE2ODg1NTU1NjY2NjIgfSBmcm9tICcuL3NxbGl0ZS8xNjg4NTU1NTY2NjYyLW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBtaWdyYXRpb24xNjg5MTQzNzUzMTQyIH0gZnJvbSAnLi9zcWxpdGUvMTY4OTE0Mzc1MzE0Mi1taWdyYXRpb24nO1xuaW1wb3J0IHsgbWlncmF0aW9uMTczNzUzMjY1NTE2NyB9IGZyb20gJy4vc3FsaXRlLzE3Mzc1MzI2NTUxNjctbWlncmF0aW9uJztcbmltcG9ydCB7IE1pZ3JhdGlvbjE3NTgwNDk4NDkxMjIgfSBmcm9tICcuL3NxbGl0ZS8xNzU4MDQ5ODQ5MTIyLW1pZ3JhdGlvbic7XG5cbmV4cG9ydCBjb25zdCBtaWdyYXRpb25zID0ge1xuICBzcWxpdGU6IFtcbiAgICBtaWdyYXRpb24xNjg4NTU1NTY2NjYyLFxuICAgIG1pZ3JhdGlvbjE2ODkxNDM3NTMxNDIsXG4gICAgbWlncmF0aW9uMTczNzUzMjY1NTE2NyxcbiAgICBNaWdyYXRpb24xNzU4MDQ5ODQ5MTIyLFxuICBdLFxuICBwb3N0Z3JlczogW1xuICAgIG1pZ3JhdGlvbjE2ODg1NTg1NTMwNDQsXG4gICAgbWlncmF0aW9uMTY4OTE1MTg2OTg4OSxcbiAgICBtaWdyYXRpb24xNzM3Nzg1NDY1NTk0LFxuICAgIE1pZ3JhdGlvbjE3NTg5NTg2MTA5MzcsXG4gIF0sXG59O1xuIl19
@@ -0,0 +1,7 @@
1
+ import { MigrationInterface, QueryRunner } from '@rosen-bridge/extended-typeorm';
2
+ export declare class migration1688558553044 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=1688558553044-migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1688558553044-migration.d.ts","sourceRoot":"","sources":["../../../lib/migrations/postgres/1688558553044-migration.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,WAAW,EACZ,MAAM,gCAAgC,CAAC;AAExC,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,IAAI,SAA4B;IAEnB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAK3D"}
@@ -0,0 +1,24 @@
1
+ export class migration1688558553044 {
2
+ name = 'migration1688558553044';
3
+ async up(queryRunner) {
4
+ await queryRunner.query(`
5
+ CREATE TABLE "box_entity" (
6
+ "id" SERIAL NOT NULL,
7
+ "address" character varying NOT NULL,
8
+ "boxId" character varying NOT NULL,
9
+ "createBlock" character varying NOT NULL,
10
+ "creationHeight" integer NOT NULL,
11
+ "serialized" character varying NOT NULL,
12
+ "spendBlock" text,
13
+ "extractor" character varying NOT NULL,
14
+ CONSTRAINT "PK_b3b74bea44218399800c0136bb6" PRIMARY KEY ("id")
15
+ )
16
+ `);
17
+ }
18
+ async down(queryRunner) {
19
+ await queryRunner.query(`
20
+ DROP TABLE "box_entity"
21
+ `);
22
+ }
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTY4ODU1ODU1MzA0NC1taWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvbWlncmF0aW9ucy9wb3N0Z3Jlcy8xNjg4NTU4NTUzMDQ0LW1pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLElBQUksR0FBRyx3QkFBd0IsQ0FBQztJQUV6QixLQUFLLENBQUMsRUFBRSxDQUFDLFdBQXdCO1FBQ3RDLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7Ozs7Ozs7Ozs7O1NBWW5CLENBQUMsQ0FBQztJQUNULENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQXdCO1FBQ3hDLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7U0FFbkIsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTWlncmF0aW9uSW50ZXJmYWNlLFxuICBRdWVyeVJ1bm5lcixcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9leHRlbmRlZC10eXBlb3JtJztcblxuZXhwb3J0IGNsYXNzIG1pZ3JhdGlvbjE2ODg1NTg1NTMwNDQgaW1wbGVtZW50cyBNaWdyYXRpb25JbnRlcmZhY2Uge1xuICBuYW1lID0gJ21pZ3JhdGlvbjE2ODg1NTg1NTMwNDQnO1xuXG4gIHB1YmxpYyBhc3luYyB1cChxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBDUkVBVEUgVEFCTEUgXCJib3hfZW50aXR5XCIgKFxuICAgICAgICAgICAgICAgIFwiaWRcIiBTRVJJQUwgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJhZGRyZXNzXCIgY2hhcmFjdGVyIHZhcnlpbmcgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJib3hJZFwiIGNoYXJhY3RlciB2YXJ5aW5nIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiY3JlYXRlQmxvY2tcIiBjaGFyYWN0ZXIgdmFyeWluZyBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImNyZWF0aW9uSGVpZ2h0XCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNlcmlhbGl6ZWRcIiBjaGFyYWN0ZXIgdmFyeWluZyBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNwZW5kQmxvY2tcIiB0ZXh0LFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIgY2hhcmFjdGVyIHZhcnlpbmcgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBcIlBLX2IzYjc0YmVhNDQyMTgzOTk4MDBjMDEzNmJiNlwiIFBSSU1BUlkgS0VZIChcImlkXCIpXG4gICAgICAgICAgICApXG4gICAgICAgIGApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRvd24ocXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgRFJPUCBUQUJMRSBcImJveF9lbnRpdHlcIlxuICAgICAgICBgKTtcbiAgfVxufVxuIl19