@rosen-bridge/abstract-extractor 2.0.1 → 2.0.3-52fc0239

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 (115) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/ergo/AbstractErgoExtractor.d.ts.map +1 -1
  3. package/dist/ergo/AbstractErgoExtractor.js +3 -2
  4. package/dist/ergo/AbstractErgoExtractorAction.d.ts +1 -1
  5. package/dist/ergo/AbstractErgoExtractorAction.d.ts.map +1 -1
  6. package/dist/ergo/AbstractErgoExtractorAction.js +23 -9
  7. package/dist/ergo/AbstractErgoExtractorEntity.js +2 -2
  8. package/dist/ergo/initializable/AbstractInitializableAction.d.ts +1 -1
  9. package/dist/ergo/initializable/AbstractInitializableAction.d.ts.map +1 -1
  10. package/dist/ergo/initializable/AbstractInitializableAction.js +4 -2
  11. package/dist/lib/abstractExtractor.d.ts +25 -0
  12. package/dist/lib/abstractExtractor.d.ts.map +1 -0
  13. package/dist/lib/abstractExtractor.js +3 -0
  14. package/dist/lib/constants.d.ts +4 -0
  15. package/dist/lib/constants.d.ts.map +1 -0
  16. package/dist/lib/constants.js +4 -0
  17. package/dist/lib/ergo/AbstractErgoExtractor.d.ts +80 -0
  18. package/dist/lib/ergo/AbstractErgoExtractor.d.ts.map +1 -0
  19. package/dist/lib/ergo/AbstractErgoExtractor.js +143 -0
  20. package/dist/lib/ergo/AbstractErgoExtractorAction.d.ts +87 -0
  21. package/dist/lib/ergo/AbstractErgoExtractorAction.d.ts.map +1 -0
  22. package/dist/lib/ergo/AbstractErgoExtractorAction.js +222 -0
  23. package/dist/lib/ergo/AbstractErgoExtractorEntity.d.ts +11 -0
  24. package/dist/lib/ergo/AbstractErgoExtractorEntity.d.ts.map +1 -0
  25. package/dist/lib/ergo/AbstractErgoExtractorEntity.js +57 -0
  26. package/dist/lib/ergo/index.d.ts +10 -0
  27. package/dist/lib/ergo/index.d.ts.map +1 -0
  28. package/dist/lib/ergo/index.js +10 -0
  29. package/dist/lib/ergo/initializable/AbstractInitializable.d.ts +48 -0
  30. package/dist/lib/ergo/initializable/AbstractInitializable.d.ts.map +1 -0
  31. package/dist/lib/ergo/initializable/AbstractInitializable.js +163 -0
  32. package/dist/lib/ergo/initializable/AbstractInitializableAction.d.ts +14 -0
  33. package/dist/lib/ergo/initializable/AbstractInitializableAction.d.ts.map +1 -0
  34. package/dist/lib/ergo/initializable/AbstractInitializableAction.js +16 -0
  35. package/dist/lib/ergo/initializable/index.d.ts +3 -0
  36. package/dist/lib/ergo/initializable/index.d.ts.map +1 -0
  37. package/dist/lib/ergo/initializable/index.js +3 -0
  38. package/dist/lib/ergo/interfaces.d.ts +47 -0
  39. package/dist/lib/ergo/interfaces.d.ts.map +1 -0
  40. package/dist/lib/ergo/interfaces.js +8 -0
  41. package/dist/lib/ergo/network/AbstractNetwork.d.ts +26 -0
  42. package/dist/lib/ergo/network/AbstractNetwork.d.ts.map +1 -0
  43. package/dist/lib/ergo/network/AbstractNetwork.js +3 -0
  44. package/dist/lib/ergo/network/ExplorerNetwork.d.ts +74 -0
  45. package/dist/lib/ergo/network/ExplorerNetwork.d.ts.map +1 -0
  46. package/dist/lib/ergo/network/ExplorerNetwork.js +185 -0
  47. package/dist/lib/ergo/network/NodeNetwork.d.ts +60 -0
  48. package/dist/lib/ergo/network/NodeNetwork.d.ts.map +1 -0
  49. package/dist/lib/ergo/network/NodeNetwork.js +131 -0
  50. package/dist/lib/ergo/utils.d.ts +8 -0
  51. package/dist/lib/ergo/utils.d.ts.map +1 -0
  52. package/dist/lib/ergo/utils.js +16 -0
  53. package/dist/lib/index.d.ts +4 -0
  54. package/dist/lib/index.d.ts.map +1 -0
  55. package/dist/lib/index.js +4 -0
  56. package/dist/tests/AbstractErgoExtractor.mock.d.ts +11 -0
  57. package/dist/tests/AbstractErgoExtractor.mock.d.ts.map +1 -0
  58. package/dist/tests/AbstractErgoExtractor.mock.js +13 -0
  59. package/dist/tests/AbstractErgoExtractor.spec.d.ts +2 -0
  60. package/dist/tests/AbstractErgoExtractor.spec.d.ts.map +1 -0
  61. package/dist/tests/AbstractErgoExtractor.spec.js +241 -0
  62. package/dist/tests/AbstractErgoExtractorAction.mock.d.ts +15 -0
  63. package/dist/tests/AbstractErgoExtractorAction.mock.d.ts.map +1 -0
  64. package/dist/tests/AbstractErgoExtractorAction.mock.js +27 -0
  65. package/dist/tests/AbstractErgoExtractorAction.spec.d.ts +2 -0
  66. package/dist/tests/AbstractErgoExtractorAction.spec.d.ts.map +1 -0
  67. package/dist/tests/AbstractErgoExtractorAction.spec.js +222 -0
  68. package/dist/tests/initializable/AbstractInitializable.mock.d.ts +60 -0
  69. package/dist/tests/initializable/AbstractInitializable.mock.d.ts.map +1 -0
  70. package/dist/tests/initializable/AbstractInitializable.mock.js +22 -0
  71. package/dist/tests/initializable/AbstractInitializable.spec.d.ts +2 -0
  72. package/dist/tests/initializable/AbstractInitializable.spec.d.ts.map +1 -0
  73. package/dist/tests/initializable/AbstractInitializable.spec.js +300 -0
  74. package/dist/tests/initializable/AbstractInitializableAction.mock.d.ts +15 -0
  75. package/dist/tests/initializable/AbstractInitializableAction.mock.d.ts.map +1 -0
  76. package/dist/tests/initializable/AbstractInitializableAction.mock.js +27 -0
  77. package/dist/tests/initializable/AbstractInitializableAction.spec.d.ts +2 -0
  78. package/dist/tests/initializable/AbstractInitializableAction.spec.d.ts.map +1 -0
  79. package/dist/tests/initializable/AbstractInitializableAction.spec.js +55 -0
  80. package/dist/tests/initializable/testData.d.ts +94 -0
  81. package/dist/tests/initializable/testData.d.ts.map +1 -0
  82. package/dist/tests/initializable/testData.js +235 -0
  83. package/dist/tests/network/ExplorerNetwork.spec.d.ts +2 -0
  84. package/dist/tests/network/ExplorerNetwork.spec.d.ts.map +1 -0
  85. package/dist/tests/network/ExplorerNetwork.spec.js +62 -0
  86. package/dist/tests/network/NodeNetwork.spec.d.ts +2 -0
  87. package/dist/tests/network/NodeNetwork.spec.d.ts.map +1 -0
  88. package/dist/tests/network/NodeNetwork.spec.js +49 -0
  89. package/dist/tests/network/testData.d.ts +752 -0
  90. package/dist/tests/network/testData.d.ts.map +1 -0
  91. package/dist/tests/network/testData.js +1401 -0
  92. package/dist/tests/testData.d.ts +32 -0
  93. package/dist/tests/testData.d.ts.map +1 -0
  94. package/dist/tests/testData.js +121 -0
  95. package/dist/tests/testUtils.d.ts +9 -0
  96. package/dist/tests/testUtils.d.ts.map +1 -0
  97. package/dist/tests/testUtils.js +31 -0
  98. package/dist/tsconfig.tsbuildinfo +1 -0
  99. package/dist/vitest.config.d.ts +3 -0
  100. package/dist/vitest.config.d.ts.map +1 -0
  101. package/dist/vitest.config.js +17 -0
  102. package/lib/ergo/AbstractErgoExtractor.ts +3 -1
  103. package/lib/ergo/AbstractErgoExtractorAction.ts +47 -36
  104. package/lib/ergo/AbstractErgoExtractorEntity.ts +1 -1
  105. package/lib/ergo/initializable/AbstractInitializableAction.ts +4 -2
  106. package/package.json +9 -14
  107. package/tests/AbstractErgoExtractor.mock.ts +4 -2
  108. package/tests/AbstractErgoExtractorAction.mock.ts +1 -1
  109. package/tests/AbstractErgoExtractorAction.spec.ts +1 -1
  110. package/tests/initializable/AbstractInitializable.mock.ts +13 -4
  111. package/tests/initializable/AbstractInitializable.spec.ts +1 -9
  112. package/tests/initializable/AbstractInitializableAction.mock.ts +1 -1
  113. package/tests/initializable/AbstractInitializableAction.spec.ts +1 -1
  114. package/tests/testUtils.ts +1 -1
  115. package/tsconfig.build.tsbuildinfo +1 -1
@@ -0,0 +1,3 @@
1
+ declare const _default: import("vite").UserConfig;
2
+ export default _default;
3
+ //# sourceMappingURL=vitest.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest.config.d.ts","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":";AAEA,wBAcG"}
@@ -0,0 +1,17 @@
1
+ import { defineConfig } from 'vitest/config';
2
+ export default defineConfig({
3
+ test: {
4
+ coverage: {
5
+ all: true,
6
+ provider: 'istanbul',
7
+ reporter: 'cobertura',
8
+ },
9
+ passWithNoTests: true,
10
+ poolOptions: {
11
+ threads: {
12
+ singleThread: true,
13
+ },
14
+ },
15
+ },
16
+ });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZXN0LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3ZpdGVzdC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3QyxlQUFlLFlBQVksQ0FBQztJQUMxQixJQUFJLEVBQUU7UUFDSixRQUFRLEVBQUU7WUFDUixHQUFHLEVBQUUsSUFBSTtZQUNULFFBQVEsRUFBRSxVQUFVO1lBQ3BCLFFBQVEsRUFBRSxXQUFXO1NBQ3RCO1FBQ0QsZUFBZSxFQUFFLElBQUk7UUFDckIsV0FBVyxFQUFFO1lBQ1gsT0FBTyxFQUFFO2dCQUNQLFlBQVksRUFBRSxJQUFJO2FBQ25CO1NBQ0Y7S0FDRjtDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gJ3ZpdGVzdC9jb25maWcnO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcoe1xuICB0ZXN0OiB7XG4gICAgY292ZXJhZ2U6IHtcbiAgICAgIGFsbDogdHJ1ZSxcbiAgICAgIHByb3ZpZGVyOiAnaXN0YW5idWwnLFxuICAgICAgcmVwb3J0ZXI6ICdjb2JlcnR1cmEnLFxuICAgIH0sXG4gICAgcGFzc1dpdGhOb1Rlc3RzOiB0cnVlLFxuICAgIHBvb2xPcHRpb25zOiB7XG4gICAgICB0aHJlYWRzOiB7XG4gICAgICAgIHNpbmdsZVRocmVhZDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbn0pO1xuIl19
@@ -140,7 +140,9 @@ export abstract class AbstractErgoExtractor<
140
140
  * @param tx
141
141
  * @returns
142
142
  */
143
- getTransactionExtraData = (tx: Transaction): TxExtra => {
143
+ getTransactionExtraData = (
144
+ tx: Transaction // eslint-disable-line @typescript-eslint/no-unused-vars
145
+ ): TxExtra => {
144
146
  return {};
145
147
  };
146
148
 
@@ -6,7 +6,7 @@ import {
6
6
  EntityTarget,
7
7
  FindOptionsWhere,
8
8
  QueryRunner,
9
- } from 'typeorm';
9
+ } from '@rosen-bridge/extended-typeorm';
10
10
  import { chunk, difference, pick } from 'lodash-es';
11
11
  import { AbstractLogger, DummyLogger } from '@rosen-bridge/abstract-logger';
12
12
  import JsonBigInt from '@rosen-bridge/json-bigint';
@@ -18,7 +18,7 @@ import { AbstractErgoExtractorEntity } from './AbstractErgoExtractorEntity';
18
18
 
19
19
  export abstract class AbstractErgoExtractorAction<
20
20
  ExtractedData extends AbstractBoxData,
21
- ExtractorEntity extends AbstractErgoExtractorEntity
21
+ ExtractorEntity extends AbstractErgoExtractorEntity,
22
22
  > {
23
23
  private readonly datasource: DataSource;
24
24
  readonly logger: AbstractLogger;
@@ -28,7 +28,7 @@ export abstract class AbstractErgoExtractorAction<
28
28
  constructor(
29
29
  dataSource: DataSource,
30
30
  repo: EntityTarget<ExtractorEntity>,
31
- logger?: AbstractLogger
31
+ logger?: AbstractLogger,
32
32
  ) {
33
33
  this.datasource = dataSource;
34
34
  this.logger = logger ? logger : new DummyLogger();
@@ -40,12 +40,12 @@ export abstract class AbstractErgoExtractorAction<
40
40
  * create the database entity from extracted data and block information
41
41
  */
42
42
  protected createEntity = (
43
- data: ExtractedData[],
44
- block: BlockInfo,
45
- extractor: string
43
+ data: ExtractedData[], // eslint-disable-line @typescript-eslint/no-unused-vars
44
+ block: BlockInfo, // eslint-disable-line @typescript-eslint/no-unused-vars
45
+ extractor: string, // eslint-disable-line @typescript-eslint/no-unused-vars
46
46
  ): Array<Omit<ExtractorEntity, 'id'>> => {
47
47
  throw Error(
48
- 'You must implement `createEntity` or override `insertEntities` and `updateEntities`'
48
+ 'You must implement `createEntity` or override `insertEntities` and `updateEntities`',
49
49
  );
50
50
  };
51
51
 
@@ -53,10 +53,10 @@ export abstract class AbstractErgoExtractorAction<
53
53
  * convert the database entity back to raw data
54
54
  */
55
55
  protected convertEntityToData = (
56
- entities: ExtractorEntity[]
56
+ entities: ExtractorEntity[], // eslint-disable-line @typescript-eslint/no-unused-vars
57
57
  ): ExtractedData[] => {
58
58
  throw Error(
59
- 'You must implement `convertEntityToData` or override `deleteBlockEntities`'
59
+ 'You must implement `convertEntityToData` or override `deleteBlockEntities`',
60
60
  );
61
61
  };
62
62
 
@@ -71,11 +71,11 @@ export abstract class AbstractErgoExtractorAction<
71
71
  queryRunner: QueryRunner,
72
72
  boxesToInsert: Array<ExtractedData>,
73
73
  block: BlockInfo,
74
- extractor: string
74
+ extractor: string,
75
75
  ) => {
76
76
  const repository = queryRunner.manager.getRepository(this.repo);
77
77
  await repository.insert(
78
- this.createEntity(boxesToInsert, block, extractor) as any
78
+ this.createEntity(boxesToInsert, block, extractor) as any, // eslint-disable-line @typescript-eslint/no-explicit-any
79
79
  );
80
80
  };
81
81
 
@@ -88,9 +88,9 @@ export abstract class AbstractErgoExtractorAction<
88
88
  */
89
89
  protected updateEntity = async (
90
90
  queryRunner: QueryRunner,
91
- updateBox: ExtractedData,
92
- block: BlockInfo,
93
- extractor: string
91
+ updateBox: ExtractedData, // eslint-disable-line @typescript-eslint/no-unused-vars
92
+ block: BlockInfo, // eslint-disable-line @typescript-eslint/no-unused-vars
93
+ extractor: string,
94
94
  ) => {
95
95
  const repository = queryRunner.manager.getRepository(this.repo);
96
96
  const box = this.createEntity([updateBox], block, extractor)[0];
@@ -99,7 +99,7 @@ export abstract class AbstractErgoExtractorAction<
99
99
  boxId: box.boxId,
100
100
  extractor: extractor,
101
101
  } as FindOptionsWhere<ExtractorEntity>,
102
- box as any
102
+ box as any, // eslint-disable-line @typescript-eslint/no-explicit-any
103
103
  );
104
104
  };
105
105
 
@@ -113,16 +113,19 @@ export abstract class AbstractErgoExtractorAction<
113
113
  protected deleteBlockEntities = async (
114
114
  queryRunner: QueryRunner,
115
115
  extractor: string,
116
- block: string
116
+ block: string,
117
117
  ): Promise<ExtractedData[]> => {
118
118
  const repository = queryRunner.manager.getRepository(this.repo);
119
119
  const deletedData = await repository.find({
120
- where: { extractor: extractor, block: block } as any,
120
+ where: {
121
+ extractor: extractor,
122
+ block: block,
123
+ } as FindOptionsWhere<ExtractorEntity>,
121
124
  });
122
125
  await repository.delete({
123
126
  extractor: extractor,
124
127
  block: block,
125
- } as any);
128
+ } as unknown as FindOptionsWhere<ExtractorEntity>);
126
129
  return this.convertEntityToData(deletedData);
127
130
  };
128
131
 
@@ -134,26 +137,31 @@ export abstract class AbstractErgoExtractorAction<
134
137
  * @returns
135
138
  */
136
139
  protected updateBlockEntities = async (
137
- queryRunner: QueryRunner,
140
+ queryRunner: QueryRunner, // eslint-disable-line @typescript-eslint/no-unused-vars
138
141
  extractor: string,
139
- block: string
142
+ block: string,
140
143
  ): Promise<ExtractorEntity[]> => {
141
- const repository = queryRunner.manager.getRepository(this.repo);
144
+ const repository = this.datasource.getRepository(
145
+ this.repo as EntityTarget<new () => ExtractorEntity>,
146
+ );
142
147
  const updatedData = await repository.find({
143
148
  where: {
144
149
  extractor: extractor,
145
150
  spendBlock: block,
146
151
  block: Not(block),
147
- } as any,
152
+ } as unknown as FindOptionsWhere<ExtractorEntity>,
148
153
  });
149
154
  await repository.update(
150
155
  {
151
156
  spendBlock: block,
152
157
  extractor: extractor,
153
- } as FindOptionsWhere<ExtractorEntity>,
154
- { spendBlock: null, spendHeight: 0 } as any
158
+ } as unknown as FindOptionsWhere<ExtractorEntity>,
159
+ {
160
+ spendBlock: null,
161
+ spendHeight: 0,
162
+ },
155
163
  );
156
- return updatedData;
164
+ return updatedData as unknown as ExtractorEntity[];
157
165
  };
158
166
 
159
167
  /**
@@ -168,7 +176,7 @@ export abstract class AbstractErgoExtractorAction<
168
176
  storeBoxes = async (
169
177
  boxes: Array<ExtractedData>,
170
178
  block: BlockInfo,
171
- extractor: string
179
+ extractor: string,
172
180
  ): Promise<boolean> => {
173
181
  let boxesToInsert: ExtractedData[] = [],
174
182
  boxesToUpdate: ExtractedData[] = [];
@@ -197,11 +205,11 @@ export abstract class AbstractErgoExtractorAction<
197
205
  this.logger.info(
198
206
  `Updating boxes with following Ids in the database: [${boxesToUpdate
199
207
  .map((col) => col.boxId)
200
- .join(', ')}]`
208
+ .join(', ')}]`,
201
209
  );
202
210
  for (const box of boxesToUpdate) {
203
211
  this.logger.debug(
204
- `Updating boxes in database [${JsonBigInt.stringify(box)}]`
212
+ `Updating boxes in database [${JsonBigInt.stringify(box)}]`,
205
213
  );
206
214
  await this.updateEntity(queryRunner, box, block, extractor);
207
215
  }
@@ -230,7 +238,7 @@ export abstract class AbstractErgoExtractorAction<
230
238
  spendBoxes = async (
231
239
  spendInfos: Array<SpendInfo>,
232
240
  block: BlockInfo,
233
- extractor: string
241
+ extractor: string,
234
242
  ): Promise<BoxInfo[]> => {
235
243
  const spentData = [];
236
244
  const spendInfoChunks = chunk(spendInfos, DB_CHUNK_SIZE);
@@ -241,7 +249,10 @@ export abstract class AbstractErgoExtractorAction<
241
249
  boxId: In(boxIds),
242
250
  extractor: extractor,
243
251
  } as FindOptionsWhere<ExtractorEntity>,
244
- { spendBlock: block.hash, spendHeight: block.height } as any
252
+ {
253
+ spendBlock: block.hash,
254
+ spendHeight: block.height,
255
+ } as any, // eslint-disable-line @typescript-eslint/no-explicit-any
245
256
  );
246
257
 
247
258
  if (updateResult.affected && updateResult.affected > 0) {
@@ -252,7 +263,7 @@ export abstract class AbstractErgoExtractorAction<
252
263
  spentData.push(...spentRows);
253
264
  for (const row of spentRows) {
254
265
  this.logger.debug(
255
- `Spent box with boxId [${row.boxId}] at height ${block.height}`
266
+ `Spent box with boxId [${row.boxId}] at height ${block.height}`,
256
267
  );
257
268
  }
258
269
  }
@@ -270,24 +281,24 @@ export abstract class AbstractErgoExtractorAction<
270
281
  */
271
282
  deleteBlockBoxes = async (
272
283
  block: string,
273
- extractor: string
284
+ extractor: string,
274
285
  ): Promise<{ deletedData: ExtractedData[]; updatedData: BoxInfo[] }> => {
275
286
  const queryRunner = this.datasource.createQueryRunner();
276
287
  await queryRunner.connect();
277
288
  await queryRunner.startTransaction();
278
289
  try {
279
290
  this.logger.info(
280
- `Deleting boxes in block ${block} and extractor ${extractor}`
291
+ `Deleting boxes in block ${block} and extractor ${extractor}`,
281
292
  );
282
293
  const updatedData = await this.updateBlockEntities(
283
294
  queryRunner,
284
295
  extractor,
285
- block
296
+ block,
286
297
  );
287
298
  const deletedData = await this.deleteBlockEntities(
288
299
  queryRunner,
289
300
  extractor,
290
- block
301
+ block,
291
302
  );
292
303
  await queryRunner.commitTransaction();
293
304
  return {
@@ -298,7 +309,7 @@ export abstract class AbstractErgoExtractorAction<
298
309
  await queryRunner.rollbackTransaction();
299
310
  this.logger.error(
300
311
  `An error occurred while deleting data extracted from block ${block}`,
301
- error
312
+ error,
302
313
  );
303
314
  throw error;
304
315
  } finally {
@@ -1,4 +1,4 @@
1
- import { Column, PrimaryGeneratedColumn, Unique } from 'typeorm';
1
+ import { Column, PrimaryGeneratedColumn, Unique } from '@rosen-bridge/extended-typeorm';
2
2
 
3
3
  @Unique(['boxId', 'extractor'])
4
4
  export abstract class AbstractErgoExtractorEntity {
@@ -1,4 +1,4 @@
1
- import { DataSource, EntityTarget } from 'typeorm';
1
+ import { DataSource, EntityTarget, FindOptionsWhere } from '@rosen-bridge/extended-typeorm';
2
2
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
3
3
 
4
4
  import { AbstractErgoExtractorAction } from '../AbstractErgoExtractorAction';
@@ -22,6 +22,8 @@ export abstract class AbstractInitializableErgoExtractorAction<
22
22
  * @param extractorId
23
23
  */
24
24
  removeAllData = async (extractorId: string) => {
25
- await this.repository.delete({ extractor: extractorId } as any);
25
+ await this.repository.delete({
26
+ extractor: extractorId,
27
+ } as FindOptionsWhere<ExtractorEntity>);
26
28
  };
27
29
  }
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@rosen-bridge/abstract-extractor",
3
- "version": "2.0.1",
3
+ "version": "2.0.3-52fc0239",
4
4
  "description": "Rosen Bridge extractor interfaces to work with scanner",
5
5
  "repository": "",
6
- "license": "GPL-3.0",
6
+ "license": "MIT",
7
7
  "author": "Rosen Team",
8
8
  "type": "module",
9
9
  "main": "dist/index.js",
@@ -19,30 +19,25 @@
19
19
  },
20
20
  "devDependencies": {
21
21
  "@types/lodash-es": "^4.17.12",
22
- "@types/node": "^20.11.9",
22
+ "@types/node": "^22.18.0",
23
23
  "@types/uuid": "^10.0.0",
24
- "@typescript-eslint/eslint-plugin": "^6.19.1",
25
- "@typescript-eslint/parser": "^6.19.1",
26
- "@vitest/coverage-istanbul": "^1.2.2",
27
24
  "await-semaphore": "^0.1.3",
28
- "eslint": "^8.56.0",
29
- "eslint-config-prettier": "^9.1.0",
30
25
  "extensionless": "^1.9.6",
31
- "prettier": "^3.2.4",
32
26
  "typescript": "^5.3.3",
27
+ "@vitest/coverage-istanbul": "^1.2.2",
33
28
  "vitest": "^1.2.2"
34
29
  },
35
30
  "engines": {
36
- "node": ">=20.11.0"
31
+ "node": ">=22.18.0"
37
32
  },
38
33
  "dependencies": {
39
34
  "@rosen-bridge/abstract-logger": "^2.0.1",
40
35
  "@rosen-bridge/json-bigint": "^0.1.0",
41
- "@rosen-bridge/scanner-interfaces": "^0.1.0",
42
- "@rosen-clients/ergo-explorer": "^1.1.4",
43
- "@rosen-clients/ergo-node": "^1.2.2",
36
+ "@rosen-bridge/scanner-interfaces": "^0.1.1-52fc0239",
37
+ "@rosen-clients/ergo-explorer": "^1.1.5",
38
+ "@rosen-clients/ergo-node": "^1.2.3",
44
39
  "lodash-es": "^4.17.21",
45
- "typeorm": "^0.3.20",
40
+ "@rosen-bridge/extended-typeorm": "^0.2.1",
46
41
  "uuid": "^9.0.0"
47
42
  }
48
43
  }
@@ -21,10 +21,12 @@ export class MockedErgoExtractor extends AbstractErgoExtractor<
21
21
 
22
22
  initializeBoxes: (initialBlock: BlockInfo) => Promise<void>;
23
23
 
24
- hasData = (box: V1.OutputInfo | OutputBox) => false;
24
+ hasData = (
25
+ box: V1.OutputInfo | OutputBox // eslint-disable-line @typescript-eslint/no-unused-vars
26
+ ) => false;
25
27
 
26
28
  extractBoxData = (
27
- box: V1.OutputInfo | OutputBox
29
+ box: V1.OutputInfo | OutputBox // eslint-disable-line @typescript-eslint/no-unused-vars
28
30
  ): AbstractBoxData | undefined => {
29
31
  return undefined;
30
32
  };
@@ -1,4 +1,4 @@
1
- import { DataSource } from 'typeorm';
1
+ import { DataSource } from '@rosen-bridge/extended-typeorm';
2
2
  import { pick } from 'lodash-es';
3
3
  import { BlockInfo } from '@rosen-bridge/scanner-interfaces';
4
4
 
@@ -1,4 +1,4 @@
1
- import { DataSource, Repository } from 'typeorm';
1
+ import { DataSource, Repository } from '@rosen-bridge/extended-typeorm';
2
2
  import { describe, it, expect, beforeEach } from 'vitest';
3
3
  import { pick } from 'lodash-es';
4
4
 
@@ -19,17 +19,26 @@ export class MockedInitializableErgoExtractor extends AbstractInitializableErgoE
19
19
 
20
20
  getId = () => 'Test';
21
21
 
22
- hasData = (box: V1.OutputInfo | OutputBox) => false;
22
+ hasData = (
23
+ box: V1.OutputInfo | OutputBox // eslint-disable-line @typescript-eslint/no-unused-vars
24
+ ) => false;
23
25
 
24
- getTxBlock = async (txId: string): Promise<BlockInfo> => {
26
+ getTxBlock = async (
27
+ txId: string // eslint-disable-line @typescript-eslint/no-unused-vars
28
+ ): Promise<BlockInfo> => {
25
29
  return { hash: 'hash', height: 100 };
26
30
  };
27
31
 
28
- getBoxesWithOffsetLimit = (offset: number, limit: number) => {
32
+ getBoxesWithOffsetLimit = (
33
+ offset: number, // eslint-disable-line @typescript-eslint/no-unused-vars
34
+ limit: number // eslint-disable-line @typescript-eslint/no-unused-vars
35
+ ) => {
29
36
  return Promise.resolve({ boxes: ergoBoxes, hasNextBatch: true });
30
37
  };
31
38
 
32
- extractBoxData = (box: V1.OutputInfo | OutputBox) => {
39
+ extractBoxData = (
40
+ box: V1.OutputInfo | OutputBox // eslint-disable-line @typescript-eslint/no-unused-vars
41
+ ) => {
33
42
  return undefined;
34
43
  };
35
44
  }
@@ -1,6 +1,5 @@
1
- import { beforeAll, describe, expect, it, vi, vitest } from 'vitest';
1
+ import { describe, expect, it, vi, vitest } from 'vitest';
2
2
  import { ErgoNetworkType } from '@rosen-bridge/scanner-interfaces';
3
- import axios from '@rosen-bridge/rate-limited-axios';
4
3
 
5
4
  import {
6
5
  NodeNetwork,
@@ -14,13 +13,6 @@ import { RETRIAL_COUNT } from '../../lib/constants';
14
13
  import { AbstractInitializableErgoExtractorAction } from '../../lib/ergo/initializable';
15
14
 
16
15
  describe('AbstractInitializableErgoExtractor', () => {
17
- beforeAll(() => {
18
- axios.initConfigs({
19
- apiLimitRateRangeAsSeconds: 10,
20
- apiLimitRules: [],
21
- });
22
- });
23
-
24
16
  describe('getTotalTxCount', () => {
25
17
  /**
26
18
  * @target getTotalTxCount should return the total tx count
@@ -1,4 +1,4 @@
1
- import { DataSource } from 'typeorm';
1
+ import { DataSource } from '@rosen-bridge/extended-typeorm';
2
2
  import { pick } from 'lodash-es';
3
3
  import { BlockInfo } from '@rosen-bridge/scanner-interfaces';
4
4
 
@@ -1,4 +1,4 @@
1
- import { DataSource, Repository } from 'typeorm';
1
+ import { DataSource, Repository } from '@rosen-bridge/extended-typeorm';
2
2
  import { describe, it, expect, beforeEach } from 'vitest';
3
3
 
4
4
  import { TestInitializableErgoExtractorAction } from './AbstractInitializableAction.mock';
@@ -1,4 +1,4 @@
1
- import { DataSource, Entity } from 'typeorm';
1
+ import { DataSource, Entity } from '@rosen-bridge/extended-typeorm';
2
2
  import { AbstractErgoExtractorEntity } from '../lib';
3
3
 
4
4
  @Entity('test_entity')