@rosen-bridge/watcher-data-extractor 12.3.0 → 13.0.0-7b38188a

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 (52) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/actions/collateralAction.d.ts +15 -66
  3. package/dist/actions/collateralAction.d.ts.map +1 -1
  4. package/dist/actions/collateralAction.js +21 -181
  5. package/dist/actions/commitmentAction.d.ts +3 -3
  6. package/dist/actions/commitmentAction.d.ts.map +1 -1
  7. package/dist/actions/commitmentAction.js +2 -2
  8. package/dist/actions/eventTriggerAction.d.ts +3 -4
  9. package/dist/actions/eventTriggerAction.d.ts.map +1 -1
  10. package/dist/actions/eventTriggerAction.js +11 -13
  11. package/dist/actions/permitAction.d.ts +3 -3
  12. package/dist/actions/permitAction.d.ts.map +1 -1
  13. package/dist/actions/permitAction.js +1 -1
  14. package/dist/entities/collateralEntity.d.ts +3 -11
  15. package/dist/entities/collateralEntity.d.ts.map +1 -1
  16. package/dist/entities/collateralEntity.js +7 -52
  17. package/dist/entities/eventTriggerEntity.d.ts +2 -2
  18. package/dist/entities/eventTriggerEntity.d.ts.map +1 -1
  19. package/dist/entities/eventTriggerEntity.js +3 -3
  20. package/dist/extractor/collateralExtractor.d.ts +17 -72
  21. package/dist/extractor/collateralExtractor.d.ts.map +1 -1
  22. package/dist/extractor/collateralExtractor.js +48 -212
  23. package/dist/extractor/commitmentExtractor.d.ts +3 -3
  24. package/dist/extractor/commitmentExtractor.d.ts.map +1 -1
  25. package/dist/extractor/commitmentExtractor.js +3 -3
  26. package/dist/extractor/eventTriggerExtractor.d.ts +3 -3
  27. package/dist/extractor/eventTriggerExtractor.d.ts.map +1 -1
  28. package/dist/extractor/eventTriggerExtractor.js +9 -9
  29. package/dist/extractor/permitExtractor.d.ts +3 -3
  30. package/dist/extractor/permitExtractor.d.ts.map +1 -1
  31. package/dist/extractor/permitExtractor.js +3 -3
  32. package/dist/interfaces/extractedCollateral.d.ts +3 -7
  33. package/dist/interfaces/extractedCollateral.d.ts.map +1 -1
  34. package/dist/interfaces/extractedCollateral.js +1 -1
  35. package/dist/interfaces/extractedEventTrigger.d.ts +1 -1
  36. package/dist/interfaces/extractedEventTrigger.d.ts.map +1 -1
  37. package/dist/interfaces/extractedEventTrigger.js +1 -1
  38. package/dist/migrations/index.d.ts.map +1 -1
  39. package/dist/migrations/index.js +9 -1
  40. package/dist/migrations/postgres/1758958886549-migration.d.ts +7 -0
  41. package/dist/migrations/postgres/1758958886549-migration.d.ts.map +1 -0
  42. package/dist/migrations/postgres/1758958886549-migration.js +30 -0
  43. package/dist/migrations/postgres/1766843825000-migration.d.ts +7 -0
  44. package/dist/migrations/postgres/1766843825000-migration.d.ts.map +1 -0
  45. package/dist/migrations/postgres/1766843825000-migration.js +42 -0
  46. package/dist/migrations/sqlite/1762768664031-migration.d.ts +7 -0
  47. package/dist/migrations/sqlite/1762768664031-migration.d.ts.map +1 -0
  48. package/dist/migrations/sqlite/1762768664031-migration.js +204 -0
  49. package/dist/migrations/sqlite/1766843824000-migration.d.ts +7 -0
  50. package/dist/migrations/sqlite/1766843824000-migration.d.ts.map +1 -0
  51. package/dist/migrations/sqlite/1766843824000-migration.js +109 -0
  52. package/package.json +8 -7
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @rosen-bridge/watcher-data-extractor
2
2
 
3
+ ## 13.0.0-7b38188a
4
+
5
+ ### Major Changes
6
+
7
+ - Update AbstractExtractor interface; use `BlockInfo` in `processTransactions` and rename `initializeBoxes` to `initializeData`
8
+ - Update abstract database entity to be general; rename `boxId` columnt to `identifier`
9
+ - Refactor collateral extractor to extend AbstractErgoBoxExtractor
10
+
11
+ ### Patch Changes
12
+
13
+ - Update dependencies
14
+ - @rosen-bridge/abstract-logger@4.0.0
15
+
16
+ - Update dependencies
17
+ - Update dependencies
18
+ - Update dependencies
19
+ - Update dependencies
20
+ - Update dependencies
21
+ - @rosen-bridge/abstract-extractor@3.0.0-7b38188a
22
+
3
23
  ## 12.3.0
4
24
 
5
25
  ### Minor Changes
@@ -1,76 +1,25 @@
1
+ import { AbstractErgoBoxAction } from '@rosen-bridge/abstract-extractor';
1
2
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
2
- import { DataSource, DeleteResult } from '@rosen-bridge/extended-typeorm';
3
- import { Block } from '@rosen-bridge/scanner-interfaces';
3
+ import { DataSource } from '@rosen-bridge/extended-typeorm';
4
+ import { BlockInfo } from '@rosen-bridge/scanner-interfaces';
5
+ import CollateralEntity from '../entities/collateralEntity';
4
6
  import { ExtractedCollateral } from '../interfaces/extractedCollateral';
5
- import { SpendInfo } from '../interfaces/types';
6
- declare class CollateralAction {
7
- private readonly dataSource;
8
- readonly logger: AbstractLogger;
9
- private readonly collateralRepository;
7
+ declare class CollateralAction extends AbstractErgoBoxAction<ExtractedCollateral, CollateralEntity> {
10
8
  constructor(dataSource: DataSource, logger?: AbstractLogger);
11
9
  /**
12
- * inserts a collateral into the database
13
- *
14
- * @param {ExtractedCollateral} collateral
15
- * @param {string} extractor
16
- * @memberof CollateralAction
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)
17
15
  */
18
- insertCollateral: (collateral: ExtractedCollateral, extractor: string) => Promise<import("@rosen-bridge/extended-typeorm").InsertResult>;
16
+ protected createEntity: (collaterals: ExtractedCollateral[], block: BlockInfo, extractor: string) => Array<Omit<CollateralEntity, "id">>;
19
17
  /**
20
- * updates a collateral into the database
21
- *
22
- * @param {ExtractedCollateral} collateral
23
- * @param {string} extractor
24
- * @memberof CollateralAction
18
+ * convert the database entity back to raw data
19
+ * @param entities
20
+ * @returns the extracted collateral data
25
21
  */
26
- updateCollateral: (collateral: Partial<ExtractedCollateral> & Pick<ExtractedCollateral, "boxId">, extractor: string) => Promise<import("@rosen-bridge/extended-typeorm").UpdateResult>;
27
- /**
28
- * stores list of collaterals
29
- *
30
- * @param {Array<ExtractedCollateral>} collaterals
31
- * @param {Block} block
32
- * @param {string} extractor
33
- * @return {Promise<boolean>}
34
- * @memberof CollateralAction
35
- */
36
- storeCollaterals: (collaterals: Array<ExtractedCollateral>, block: Block, extractor: string) => Promise<boolean>;
37
- /**
38
- * Update spendBlock and spendHeight of collaterals spent in the block
39
- *
40
- * @param {Array<SpendInfo>} spendInfos
41
- * @param {Block} block
42
- * @param {string} extractor
43
- * @return {Promise<void>}
44
- * @memberof CollateralAction
45
- */
46
- spendCollaterals: (spendInfos: Array<SpendInfo>, block: Block, extractor: string) => Promise<void>;
47
- /**
48
- * Returns all stored unspent collateral box IDs
49
- *
50
- * @param {string} extractor
51
- * @return {Promise<Array<string>>}
52
- * @memberof CollateralAction
53
- */
54
- getUnspentCollateralBoxIds: (extractor: string) => Promise<Array<string>>;
55
- /**
56
- * Delete all collaterals corresponding to the passed block and extractor and
57
- * update all collaterals spent in the specified block
58
- *
59
- * @param {string} block
60
- * @param {string} extractor
61
- * @return {Promise<void>}
62
- * @memberof CollateralAction
63
- */
64
- deleteBlock(block: string, extractor: string): Promise<void>;
65
- /**
66
- * deletes the specified collateral box from database
67
- *
68
- * @param {string} boxId
69
- * @param {string} extractor
70
- * @return {Promise<DeleteResult>}
71
- * @memberof CollateralAction
72
- */
73
- deleteCollateral: (boxId: string, extractor: string) => Promise<DeleteResult>;
22
+ protected convertEntityToData: (entities: CollateralEntity[]) => ExtractedCollateral[];
74
23
  }
75
24
  export default CollateralAction;
76
25
  //# sourceMappingURL=collateralAction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collateralAction.d.ts","sourceRoot":"","sources":["../../lib/actions/collateralAction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EACL,UAAU,EACV,YAAY,EAIb,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAGzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,cAAM,gBAAgB;IAIlB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,QAAQ,CAAC,MAAM,EAAE,cAAc;IAJjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA+B;gBAGjD,UAAU,EAAE,UAAU,EAC9B,MAAM,GAAE,cAAkC;IAKrD;;;;;;OAMG;IACH,gBAAgB,GACd,YAAY,mBAAmB,EAC/B,WAAW,MAAM,oEAMjB;IAEF;;;;;;OAMG;IACH,gBAAgB,GACd,YAAY,OAAO,CAAC,mBAAmB,CAAC,GACtC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,EACpC,WAAW,MAAM,oEASjB;IAEF;;;;;;;;OAQG;IACH,gBAAgB,GACd,aAAa,KAAK,CAAC,mBAAmB,CAAC,EACvC,OAAO,KAAK,EACZ,WAAW,MAAM,KAChB,OAAO,CAAC,OAAO,CAAC,CAuFjB;IAEF;;;;;;;;OAQG;IACH,gBAAgB,GACd,YAAY,KAAK,CAAC,SAAS,CAAC,EAC5B,OAAO,KAAK,EACZ,WAAW,MAAM,KAChB,OAAO,CAAC,IAAI,CAAC,CA0Bd;IAEF;;;;;;OAMG;IACH,0BAA0B,GACxB,WAAW,MAAM,KAChB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAWvB;IAEF;;;;;;;;OAQG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBlE;;;;;;;OAOG;IACH,gBAAgB,GACd,OAAO,MAAM,EACb,WAAW,MAAM,KAChB,OAAO,CAAC,YAAY,CAAC,CAKtB;CACH;AAED,eAAe,gBAAgB,CAAC"}
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"}
@@ -1,194 +1,34 @@
1
- import { difference } from 'lodash-es';
2
- import { DummyLogger } from '@rosen-bridge/abstract-logger';
3
- import { In, IsNull, } from '@rosen-bridge/extended-typeorm';
4
- import JsonBigInt from '@rosen-bridge/json-bigint';
1
+ import { AbstractErgoBoxAction } from '@rosen-bridge/abstract-extractor';
5
2
  import CollateralEntity from '../entities/collateralEntity';
6
- class CollateralAction {
7
- dataSource;
8
- logger;
9
- collateralRepository;
10
- constructor(dataSource, logger = new DummyLogger()) {
11
- this.dataSource = dataSource;
12
- this.logger = logger;
13
- this.collateralRepository = this.dataSource.getRepository(CollateralEntity);
3
+ class CollateralAction extends AbstractErgoBoxAction {
4
+ constructor(dataSource, logger) {
5
+ super(dataSource, CollateralEntity, logger);
14
6
  }
15
7
  /**
16
- * inserts a collateral into the database
17
- *
18
- * @param {ExtractedCollateral} collateral
19
- * @param {string} extractor
20
- * @memberof CollateralAction
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)
21
13
  */
22
- insertCollateral = async (collateral, extractor) => {
23
- return await this.collateralRepository.insert({
14
+ createEntity = (collaterals, block, extractor) => {
15
+ return collaterals.map((collateral) => ({
24
16
  ...collateral,
25
- extractor,
26
- });
27
- };
28
- /**
29
- * updates a collateral into the database
30
- *
31
- * @param {ExtractedCollateral} collateral
32
- * @param {string} extractor
33
- * @memberof CollateralAction
34
- */
35
- updateCollateral = async (collateral, extractor) => {
36
- return await this.collateralRepository.update({
37
- extractor,
38
- boxId: collateral.boxId,
39
- }, collateral);
40
- };
41
- /**
42
- * stores list of collaterals
43
- *
44
- * @param {Array<ExtractedCollateral>} collaterals
45
- * @param {Block} block
46
- * @param {string} extractor
47
- * @return {Promise<boolean>}
48
- * @memberof CollateralAction
49
- */
50
- storeCollaterals = async (collaterals, block, extractor) => {
51
- if (collaterals.length == 0) {
52
- return true;
53
- }
54
- const collateralEntities = collaterals.map((col) => ({
55
- extractor: extractor,
56
- boxId: col.boxId,
57
- boxSerialized: col.boxSerialized,
58
- wid: col.wid,
59
- rwtCount: col.rwtCount,
60
- txId: col.txId,
61
17
  block: block.hash,
62
- height: col.height != undefined ? col.height : block.height,
18
+ height: block.height,
19
+ extractor,
20
+ spendBlock: collateral.spendBlock ?? null,
21
+ spendHeight: collateral.spendHeight ?? null,
63
22
  }));
64
- const queryRunner = this.dataSource.createQueryRunner();
65
- await queryRunner.connect();
66
- await queryRunner.startTransaction();
67
- try {
68
- const repository = await queryRunner.manager.getRepository(CollateralEntity);
69
- const existingBoxIds = (await repository.find({
70
- where: {
71
- boxId: In(collateralEntities.map((box) => box.boxId)),
72
- extractor: extractor,
73
- },
74
- select: {
75
- boxId: true,
76
- },
77
- })).map((col) => col.boxId);
78
- const collateralsToUpdate = collateralEntities.filter((col) => existingBoxIds.includes(col.boxId));
79
- const collateralsToInsert = difference(collateralEntities, collateralsToUpdate);
80
- if (collateralsToUpdate.length > 0) {
81
- this.logger.info(`Inserting boxes with following IDs into the database: [${collateralsToInsert
82
- .map((col) => col.boxId)
83
- .join(', ')}]`);
84
- this.logger.debug(`Inserting collateral boxes [${JsonBigInt.stringify(collateralsToInsert)}]`);
85
- }
86
- await repository.insert(collateralsToInsert);
87
- if (collateralsToUpdate.length > 0)
88
- this.logger.info(`Updating boxes with following IDs in the database: [${collateralsToUpdate
89
- .map((col) => col.boxId)
90
- .join(', ')}]`);
91
- collateralsToUpdate.forEach(async (collateral) => {
92
- this.logger.debug(`Updating collateral box in database [${JsonBigInt.stringify(collateral)}]`);
93
- await repository.update({ boxId: collateral.boxId, extractor: extractor }, collateral);
94
- });
95
- await queryRunner.commitTransaction();
96
- }
97
- catch (e) {
98
- await queryRunner.rollbackTransaction();
99
- this.logger.error(`An error occurred during storeCollaterals action: ${e}`);
100
- return false;
101
- }
102
- finally {
103
- await queryRunner.release();
104
- }
105
- return true;
106
23
  };
107
24
  /**
108
- * Update spendBlock and spendHeight of collaterals spent in the block
109
- *
110
- * @param {Array<SpendInfo>} spendInfos
111
- * @param {Block} block
112
- * @param {string} extractor
113
- * @return {Promise<void>}
114
- * @memberof CollateralAction
115
- */
116
- spendCollaterals = async (spendInfos, block, extractor) => {
117
- for (const spendInfo of spendInfos) {
118
- const updateResult = await this.collateralRepository.update({
119
- boxId: spendInfo.boxId,
120
- extractor: extractor,
121
- }, {
122
- spendBlock: block.hash,
123
- spendHeight: block.height,
124
- spendTxId: spendInfo.txId,
125
- });
126
- if (updateResult.affected && updateResult.affected > 0) {
127
- const updatedRows = await this.collateralRepository.findBy({
128
- boxId: spendInfo.boxId,
129
- spendBlock: block.hash,
130
- });
131
- for (const row of updatedRows) {
132
- this.logger.debug(`Spent collateral with boxId [${row.boxId}] belonging to watcher with WID [${row.wid}] at height ${block.height}`);
133
- }
134
- }
135
- }
136
- };
137
- /**
138
- * Returns all stored unspent collateral box IDs
139
- *
140
- * @param {string} extractor
141
- * @return {Promise<Array<string>>}
142
- * @memberof CollateralAction
143
- */
144
- getUnspentCollateralBoxIds = async (extractor) => {
145
- const boxIds = await this.collateralRepository.find({
146
- where: {
147
- extractor: extractor,
148
- spendBlock: IsNull(),
149
- },
150
- select: {
151
- boxId: true,
152
- },
153
- });
154
- return boxIds.map((box) => box.boxId);
155
- };
156
- /**
157
- * Delete all collaterals corresponding to the passed block and extractor and
158
- * update all collaterals spent in the specified block
159
- *
160
- * @param {string} block
161
- * @param {string} extractor
162
- * @return {Promise<void>}
163
- * @memberof CollateralAction
164
- */
165
- async deleteBlock(block, extractor) {
166
- this.logger.info(`Deleting collaterals in block=[${block}] and extractor=[${extractor}]`);
167
- await this.collateralRepository.delete({
168
- block: block,
169
- extractor: extractor,
170
- });
171
- this.logger.info(`changing spent collaterals in block=[${block}] and extractor=[${extractor}] to unspent status`);
172
- await this.collateralRepository.update({ spendBlock: block, extractor: extractor }, {
173
- spendBlock: null,
174
- spendHeight: null,
175
- spendTxId: null,
176
- });
177
- }
178
- /**
179
- * deletes the specified collateral box from database
180
- *
181
- * @param {string} boxId
182
- * @param {string} extractor
183
- * @return {Promise<DeleteResult>}
184
- * @memberof CollateralAction
25
+ * convert the database entity back to raw data
26
+ * @param entities
27
+ * @returns the extracted collateral data
185
28
  */
186
- deleteCollateral = async (boxId, extractor) => {
187
- return await this.collateralRepository.delete({
188
- boxId: boxId,
189
- extractor: extractor,
190
- });
29
+ convertEntityToData = (entities) => {
30
+ return entities;
191
31
  };
192
32
  }
193
33
  export default CollateralAction;
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGF0ZXJhbEFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9hY3Rpb25zL2NvbGxhdGVyYWxBY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV2QyxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFHTCxFQUFFLEVBQ0YsTUFBTSxHQUVQLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFHbkQsT0FBTyxnQkFBZ0IsTUFBTSw4QkFBOEIsQ0FBQztBQUk1RCxNQUFNLGdCQUFnQjtJQUlEO0lBQ1I7SUFKTSxvQkFBb0IsQ0FBK0I7SUFFcEUsWUFDbUIsVUFBc0IsRUFDOUIsU0FBeUIsSUFBSSxXQUFXLEVBQUU7UUFEbEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUM5QixXQUFNLEdBQU4sTUFBTSxDQUFvQztRQUVuRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsZ0JBQWdCLEdBQUcsS0FBSyxFQUN0QixVQUErQixFQUMvQixTQUFpQixFQUNqQixFQUFFO1FBQ0YsT0FBTyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7WUFDNUMsR0FBRyxVQUFVO1lBQ2IsU0FBUztTQUNWLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNILGdCQUFnQixHQUFHLEtBQUssRUFDdEIsVUFDb0MsRUFDcEMsU0FBaUIsRUFDakIsRUFBRTtRQUNGLE9BQU8sTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUMzQztZQUNFLFNBQVM7WUFDVCxLQUFLLEVBQUUsVUFBVSxDQUFDLEtB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aUI7UUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2Qsa0NBQWtDLEtBQUssb0JBQW9CLFNBQVMsR0FBRyxDQUN4RSxDQUFDO1FBRUYsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDO1lBQ3JDLEtBQUssRUFBRSxLQUFLO1lBQ1osU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2Qsd0NBQXdDLEtBQUssb0JBQW9CLFNBQVMscUJBQXFCLENBQ2hHLENBQUM7UUFFRixNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQ3BDLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEVBQzNDO1lBQ0UsVUFBVSxFQUFFLElBQUk7WUFDaEIsV0FBVyxFQUFFLElBQUk7WUFDakIsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxnQkFBZ0IsR0FBRyxLQUFLLEVBQ3RCLEtBQWEsRUFDYixTQUFpQixFQUNNLEVBQUU7UUFDekIsT0FBTyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7WUFDNUMsS0FBSyxFQUFFLEtBQUs7WUFDWixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7Q0FDSDtBQUVELGVBQWUsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkaWZmZXJlbmNlIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHtcbiAgRGF0YVNvdXJjZSxcbiAgRGVsZXRlUmVzdWx0LFxuICBJbixcbiAgSXNOdWxsLFxuICBSZXBvc2l0b3J5LFxufSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuaW1wb3J0IEpzb25CaWdJbnQgZnJvbSAnQHJvc2VuLWJyaWRnZS9qc29uLWJpZ2ludCc7XG5pbXBvcnQgeyBCbG9jayB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcblxuaW1wb3J0IENvbGxhdGVyYWxFbnRpdHkgZnJvbSAnLi4vZW50aXRpZXMvY29sbGF0ZXJhbEVudGl0eSc7XG5pbXBvcnQgeyBFeHRyYWN0ZWRDb2xsYXRlcmFsIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHRyYWN0ZWRDb2xsYXRlcmFsJztcbmltcG9ydCB7IFNwZW5kSW5mbyB9IGZyb20gJy4uL2ludGVyZmFjZXMvdHlwZXMnO1xuXG5jbGFzcyBDb2xsYXRlcmFsQWN0aW9uIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb2xsYXRlcmFsUmVwb3NpdG9yeTogUmVwb3NpdG9yeTxDb2xsYXRlcmFsRW50aXR5PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsXG4gICAgcmVhZG9ubHkgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlciA9IG5ldyBEdW1teUxvZ2dlcigpLFxuICApIHtcbiAgICB0aGlzLmNvbGxhdGVyYWxSZXBvc2l0b3J5ID0gdGhpcy5kYXRhU291cmNlLmdldFJlcG9zaXRvcnkoQ29sbGF0ZXJhbEVudGl0eSk7XG4gIH1cblxuICAvKipcbiAgICogaW5zZXJ0cyBhIGNvbGxhdGVyYWwgaW50byB0aGUgZGF0YWJhc2VcbiAgICpcbiAgICogQHBhcmFtIHtFeHRyYWN0ZWRDb2xsYXRlcmFsfSBjb2xsYXRlcmFsXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBleHRyYWN0b3JcbiAgICogQG1lbWJlcm9mIENvbGxhdGVyYWxBY3Rpb25cbiAgICovXG4gIGluc2VydENvbGxhdGVyYWwgPSBhc3luYyAoXG4gICAgY29sbGF0ZXJhbDogRXh0cmFjdGVkQ29sbGF0ZXJhbCxcbiAgICBleHRyYWN0b3I6IHN0cmluZyxcbiAgKSA9PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY29sbGF0ZXJhbFJlcG9zaXRvcnkuaW5zZXJ0KHtcbiAgICAgIC4uLmNvbGxhdGVyYWwsXG4gICAgICBleHRyYWN0b3IsXG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIHVwZGF0ZXMgYSBjb2xsYXRlcmFsIGludG8gdGhlIGRhdGFiYXNlXG4gICAqXG4gICAqIEBwYXJhbSB7RXh0cmFjdGVkQ29sbGF0ZXJhbH0gY29sbGF0ZXJhbFxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXh0cmFjdG9yXG4gICAqIEBtZW1iZXJvZiBDb2xsYXRlcmFsQWN0aW9uXG4gICAqL1xuICB1cGRhdGVDb2xsYXRlcmFsID0gYXN5bmMgKFxuICAgIGNvbGxhdGVyYWw6IFBhcnRpYWw8RXh0cmFjdGVkQ29sbGF0ZXJhbD4gJlxuICAgICAgUGljazxFeHRyYWN0ZWRDb2xsYXRlcmFsLCAnYm94SWQnPixcbiAgICBleHRyYWN0b3I6IHN0cmluZyxcbiAgKSA9PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY29sbGF0ZXJhbFJlcG9zaXRvcnkudXBkYXRlKFxuICAgICAge1xuICAgICAgICBleHRyYWN0b3IsXG4gICAgICAgIGJveElkOiBjb2xsYXRlcmFsLmJveElkLFxuICAgICAgfSxcbiAgICAgIGNvbGxhdGVyYWwsXG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogc3RvcmVzIGxpc3Qgb2YgY29sbGF0ZXJhbHNcbiAgICpcbiAgICogQHBhcmFtIHtBcnJheTxFeHRyYWN0ZWRDb2xsYXRlcmFsPn0gY29sbGF0ZXJhbHNcbiAgICogQHBhcmFtIHtCbG9ja30gYmxvY2tcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV4dHJhY3RvclxuICAgKiBAcmV0dXJuIHtQcm9taXNlPGJvb2xlYW4+fVxuICAgKiBAbWVtYmVyb2YgQ29sbGF0ZXJhbEFjdGlvblxuICAgKi9cbiAgc3RvcmVDb2xsYXRlcmFscyA9IGFzeW5jIChcbiAgICBjb2xsYXRlcmFsczogQXJyYXk8RXh0cmFjdGVkQ29sbGF0ZXJhbD4sXG4gICAgYmxvY2s6IEJsb2NrLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nLFxuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICBpZiAoY29sbGF0ZXJhbHMubGVuZ3RoID09IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbGxhdGVyYWxFbnRpdGllcyA9IGNvbGxhdGVyYWxzLm1hcCgoY29sKSA9PiAoe1xuICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICBib3hJZDogY29sLmJveElkLFxuICAgICAgYm94U2VyaWFsaXplZDogY29sLmJveFNlcmlhbGl6ZWQsXG4gICAgICB3aWQ6IGNvbC53aWQsXG4gICAgICByd3RDb3VudDogY29sLnJ3dENvdW50LFxuICAgICAgdHhJZDogY29sLnR4SWQsXG4gICAgICBibG9jazogYmxvY2suaGFzaCxcbiAgICAgIGhlaWdodDogY29sLmhlaWdodCAhPSB1bmRlZmluZWQgPyBjb2wuaGVpZ2h0IDogYmxvY2suaGVpZ2h0LFxuICAgIH0pKTtcblxuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5kYXRhU291cmNlLmNyZWF0ZVF1ZXJ5UnVubmVyKCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdCgpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnN0YXJ0VHJhbnNhY3Rpb24oKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVwb3NpdG9yeSA9XG4gICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeShDb2xsYXRlcmFsRW50aXR5KTtcbiAgICAgIGNvbnN0IGV4aXN0aW5nQm94SWRzID0gKFxuICAgICAgICBhd2FpdCByZXBvc2l0b3J5LmZpbmQoe1xuICAgICAgICAgIHdoZXJlOiB7XG4gICAgICAgICAgICBib3hJZDogSW4oY29sbGF0ZXJhbEVudGl0aWVzLm1hcCgoYm94KSA9PiBib3guYm94SWQpKSxcbiAgICAgICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2VsZWN0OiB7XG4gICAgICAgICAgICBib3hJZDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgKS5tYXAoKGNvbCkgPT4gY29sLmJveElkKTtcblxuICAgICAgY29uc3QgY29sbGF0ZXJhbHNUb1VwZGF0ZSA9IGNvbGxhdGVyYWxFbnRpdGllcy5maWx0ZXIoKGNvbCkgPT5cbiAgICAgICAgZXhpc3RpbmdCb3hJZHMuaW5jbHVkZXMoY29sLmJveElkKSxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGNvbGxhdGVyYWxzVG9JbnNlcnQgPSBkaWZmZXJlbmNlKFxuICAgICAgICBjb2xsYXRlcmFsRW50aXRpZXMsXG4gICAgICAgIGNvbGxhdGVyYWxzVG9VcGRhdGUsXG4gICAgICApO1xuXG4gICAgICBpZiAoY29sbGF0ZXJhbHNUb1VwZGF0ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICAgICAgYEluc2VydGluZyBib3hlcyB3aXRoIGZvbGxvd2luZyBJRHMgaW50byB0aGUgZGF0YWJhc2U6IFske2NvbGxhdGVyYWxzVG9JbnNlcnRcbiAgICAgICAgICAgIC5tYXAoKGNvbCkgPT4gY29sLmJveElkKVxuICAgICAgICAgICAgLmpvaW4oJywgJyl9XWAsXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGBJbnNlcnRpbmcgY29sbGF0ZXJhbCBib3hlcyBbJHtKc29uQmlnSW50LnN0cmluZ2lmeShcbiAgICAgICAgICAgIGNvbGxhdGVyYWxzVG9JbnNlcnQsXG4gICAgICAgICAgKX1dYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHJlcG9zaXRvcnkuaW5zZXJ0KGNvbGxhdGVyYWxzVG9JbnNlcnQpO1xuXG4gICAgICBpZiAoY29sbGF0ZXJhbHNUb1VwZGF0ZS5sZW5ndGggPiAwKVxuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgIGBVcGRhdGluZyBib3hlcyB3aXRoIGZvbGxvd2luZyBJRHMgaW4gdGhlIGRhdGFiYXNlOiBbJHtjb2xsYXRlcmFsc1RvVXBkYXRlXG4gICAgICAgICAgICAubWFwKChjb2wpID0+IGNvbC5ib3hJZClcbiAgICAgICAgICAgIC5qb2luKCcsICcpfV1gLFxuICAgICAgICApO1xuICAgICAgY29sbGF0ZXJhbHNUb1VwZGF0ZS5mb3JFYWNoKGFzeW5jIChjb2xsYXRlcmFsKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGBVcGRhdGluZyBjb2xsYXRlcmFsIGJveCBpbiBkYXRhYmFzZSBbJHtKc29uQmlnSW50LnN0cmluZ2lmeShcbiAgICAgICAgICAgIGNvbGxhdGVyYWwsXG4gICAgICAgICAgKX1dYCxcbiAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgcmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICAgICAgeyBib3hJZDogY29sbGF0ZXJhbC5ib3hJZCwgZXh0cmFjdG9yOiBleHRyYWN0b3IgfSxcbiAgICAgICAgICBjb2xsYXRlcmFsLFxuICAgICAgICApO1xuICAgICAgfSk7XG5cbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgc3RvcmVDb2xsYXRlcmFscyBhY3Rpb246ICR7ZX1gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBVcGRhdGUgc3BlbmRCbG9jayBhbmQgc3BlbmRIZWlnaHQgb2YgY29sbGF0ZXJhbHMgc3BlbnQgaW4gdGhlIGJsb2NrXG4gICAqXG4gICAqIEBwYXJhbSB7QXJyYXk8U3BlbmRJbmZvPn0gc3BlbmRJbmZvc1xuICAgKiBAcGFyYW0ge0Jsb2NrfSBibG9ja1xuICAgKiBAcGFyYW0ge3N0cmluZ30gZXh0cmFjdG9yXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59XG4gICAqIEBtZW1iZXJvZiBDb2xsYXRlcmFsQWN0aW9uXG4gICAqL1xuICBzcGVuZENvbGxhdGVyYWxzID0gYXN5bmMgKFxuICAgIHNwZW5kSW5mb3M6IEFycmF5PFNwZW5kSW5mbz4sXG4gICAgYmxvY2s6IEJsb2NrLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nLFxuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBmb3IgKGNvbnN0IHNwZW5kSW5mbyBvZiBzcGVuZEluZm9zKSB7XG4gICAgICBjb25zdCB1cGRhdGVSZXN1bHQgPSBhd2FpdCB0aGlzLmNvbGxhdGVyYWxSZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgICAge1xuICAgICAgICAgIGJveElkOiBzcGVuZEluZm8uYm94SWQsXG4gICAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzcGVuZEJsb2NrOiBibG9jay5oYXNoLFxuICAgICAgICAgIHNwZW5kSGVpZ2h0OiBibG9jay5oZWlnaHQsXG4gICAgICAgICAgc3BlbmRUeElkOiBzcGVuZEluZm8udHhJZCxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIGlmICh1cGRhdGVSZXN1bHQuYWZmZWN0ZWQgJiYgdXBkYXRlUmVzdWx0LmFmZmVjdGVkID4gMCkge1xuICAgICAgICBjb25zdCB1cGRhdGVkUm93cyA9IGF3YWl0IHRoaXMuY29sbGF0ZXJhbFJlcG9zaXRvcnkuZmluZEJ5KHtcbiAgICAgICAgICBib3hJZDogc3BlbmRJbmZvLmJveElkLFxuICAgICAgICAgIHNwZW5kQmxvY2s6IGJsb2NrLmhhc2gsXG4gICAgICAgIH0pO1xuICAgICAgICBmb3IgKGNvbnN0IHJvdyBvZiB1cGRhdGVkUm93cykge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgYFNwZW50IGNvbGxhdGVyYWwgd2l0aCBib3hJZCBbJHtyb3cuYm94SWR9XSBiZWxvbmdpbmcgdG8gd2F0Y2hlciB3aXRoIFdJRCBbJHtyb3cud2lkfV0gYXQgaGVpZ2h0ICR7YmxvY2suaGVpZ2h0fWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogUmV0dXJucyBhbGwgc3RvcmVkIHVuc3BlbnQgY29sbGF0ZXJhbCBib3ggSURzXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBleHRyYWN0b3JcbiAgICogQHJldHVybiB7UHJvbWlzZTxBcnJheTxzdHJpbmc+Pn1cbiAgICogQG1lbWJlcm9mIENvbGxhdGVyYWxBY3Rpb25cbiAgICovXG4gIGdldFVuc3BlbnRDb2xsYXRlcmFsQm94SWRzID0gYXN5bmMgKFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nLFxuICApOiBQcm9taXNlPEFycmF5PHN0cmluZz4+ID0+IHtcbiAgICBjb25zdCBib3hJZHMgPSBhd2FpdCB0aGlzLmNvbGxhdGVyYWxSZXBvc2l0b3J5LmZpbmQoe1xuICAgICAgd2hlcmU6IHtcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgIHNwZW5kQmxvY2s6IElzTnVsbCgpLFxuICAgICAgfSxcbiAgICAgIHNlbGVjdDoge1xuICAgICAgICBib3hJZDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIGJveElkcy5tYXAoKGJveCkgPT4gYm94LmJveElkKTtcbiAgfTtcblxuICAvKipcbiAgICogRGVsZXRlIGFsbCBjb2xsYXRlcmFscyBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXNzZWQgYmxvY2sgYW5kIGV4dHJhY3RvciBhbmRcbiAgICogdXBkYXRlIGFsbCBjb2xsYXRlcmFscyBzcGVudCBpbiB0aGUgc3BlY2lmaWVkIGJsb2NrXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBibG9ja1xuICAgKiBAcGFyYW0ge3N0cmluZ30gZXh0cmFjdG9yXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59XG4gICAqIEBtZW1iZXJvZiBDb2xsYXRlcmFsQWN0aW9uXG4gICAqL1xuICBhc3luYyBkZWxldGVCbG9jayhibG9jazogc3RyaW5nLCBleHRyYWN0b3I6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICBgRGVsZXRpbmcgY29sbGF0ZXJhbHMgaW4gYmxvY2s9WyR7YmxvY2t9XSBhbmQgZXh0cmFjdG9yPVske2V4dHJhY3Rvcn1dYCxcbiAgICApO1xuXG4gICAgYXdhaXQgdGhpcy5jb2xsYXRlcmFsUmVwb3NpdG9yeS5kZWxldGUoe1xuICAgICAgYmxvY2s6IGJsb2NrLFxuICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgfSk7XG5cbiAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgYGNoYW5naW5nIHNwZW50IGNvbGxhdGVyYWxzIGluIGJsb2NrPVske2Jsb2NrfV0gYW5kIGV4dHJhY3Rvcj1bJHtleHRyYWN0b3J9XSB0byB1bnNwZW50IHN0YXR1c2AsXG4gICAgKTtcblxuICAgIGF3YWl0IHRoaXMuY29sbGF0ZXJhbFJlcG9zaXRvcnkudXBkYXRlKFxuICAgICAgeyBzcGVuZEJsb2NrOiBibG9jaywgZXh0cmFjdG9yOiBleHRyYWN0b3IgfSxcbiAgICAgIHtcbiAgICAgICAgc3BlbmRCbG9jazogbnVsbCxcbiAgICAgICAgc3BlbmRIZWlnaHQ6IG51bGwsXG4gICAgICAgIHNwZW5kVHhJZDogbnVsbCxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZWxldGVzIHRoZSBzcGVjaWZpZWQgY29sbGF0ZXJhbCBib3ggZnJvbSBkYXRhYmFzZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYm94SWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV4dHJhY3RvclxuICAgKiBAcmV0dXJuIHtQcm9taXNlPERlbGV0ZVJlc3VsdD59XG4gICAqIEBtZW1iZXJvZiBDb2xsYXRlcmFsQWN0aW9uXG4gICAqL1xuICBkZWxldGVDb2xsYXRlcmFsID0gYXN5bmMgKFxuICAgIGJveElkOiBzdHJpbmcsXG4gICAgZXh0cmFjdG9yOiBzdHJpbmcsXG4gICk6IFByb21pc2U8RGVsZXRlUmVzdWx0PiA9PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY29sbGF0ZXJhbFJlcG9zaXRvcnkuZGVsZXRlKHtcbiAgICAgIGJveElkOiBib3hJZCxcbiAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBDb2xsYXRlcmFsQWN0aW9uO1xuIl19
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGF0ZXJhbEFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9hY3Rpb25zL2NvbGxhdGVyYWxBY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFLekUsT0FBTyxnQkFBZ0IsTUFBTSw4QkFBOEIsQ0FBQztBQUc1RCxNQUFNLGdCQUFpQixTQUFRLHFCQUc5QjtJQUNDLFlBQVksVUFBc0IsRUFBRSxNQUF1QjtRQUN6RCxLQUFLLENBQUMsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDTyxZQUFZLEdBQUcsQ0FDdkIsV0FBa0MsRUFDbEMsS0FBZ0IsRUFDaEIsU0FBaUIsRUFDb0IsRUFBRTtRQUN2QyxPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEMsR0FBRyxVQUFVO1lBQ2IsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2pCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixTQUFTO1lBQ1QsVUFBVSxFQUFFLFVBQVUsQ0FBQyxVQUFVLElBQUksSUFBSTtZQUN6QyxXQUFXLEVBQUUsVUFBVSxDQUFDLFdBQVcsSUFBSSxJQUFJO1NBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNPLG1CQUFtQixHQUFHLENBQzlCLFFBQTRCLEVBQ0wsRUFBRTtRQUN6QixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDLENBQUM7Q0FDSDtBQUVELGVBQWUsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdEVyZ29Cb3hBY3Rpb24gfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWV4dHJhY3Rvcic7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuaW1wb3J0IHsgQmxvY2tJbmZvIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuXG5pbXBvcnQgQ29sbGF0ZXJhbEVudGl0eSBmcm9tICcuLi9lbnRpdGllcy9jb2xsYXRlcmFsRW50aXR5JztcbmltcG9ydCB7IEV4dHJhY3RlZENvbGxhdGVyYWwgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2V4dHJhY3RlZENvbGxhdGVyYWwnO1xuXG5jbGFzcyBDb2xsYXRlcmFsQWN0aW9uIGV4dGVuZHMgQWJzdHJhY3RFcmdvQm94QWN0aW9uPFxuICBFeHRyYWN0ZWRDb2xsYXRlcmFsLFxuICBDb2xsYXRlcmFsRW50aXR5XG4+IHtcbiAgY29uc3RydWN0b3IoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSwgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIpIHtcbiAgICBzdXBlcihkYXRhU291cmNlLCBDb2xsYXRlcmFsRW50aXR5LCBsb2dnZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIGNyZWF0ZSB0aGUgY29sbGF0ZXJhbCBlbnRpdHkgZnJvbSBleHRyYWN0ZWQgZGF0YSBhbmQgYmxvY2sgaW5mb3JtYXRpb25cbiAgICogQHBhcmFtIGNvbGxhdGVyYWxzXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqIEByZXR1cm5zIHRoZSBjb2xsYXRlcmFsIGVudGl0aWVzICh3aXRob3V0IHRoZSBpZClcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVFbnRpdHkgPSAoXG4gICAgY29sbGF0ZXJhbHM6IEV4dHJhY3RlZENvbGxhdGVyYWxbXSxcbiAgICBibG9jazogQmxvY2tJbmZvLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nLFxuICApOiBBcnJheTxPbWl0PENvbGxhdGVyYWxFbnRpdHksICdpZCc+PiA9PiB7XG4gICAgcmV0dXJuIGNvbGxhdGVyYWxzLm1hcCgoY29sbGF0ZXJhbCkgPT4gKHtcbiAgICAgIC4uLmNvbGxhdGVyYWwsXG4gICAgICBibG9jazogYmxvY2suaGFzaCxcbiAgICAgIGhlaWdodDogYmxvY2suaGVpZ2h0LFxuICAgICAgZXh0cmFjdG9yLFxuICAgICAgc3BlbmRCbG9jazogY29sbGF0ZXJhbC5zcGVuZEJsb2NrID8/IG51bGwsXG4gICAgICBzcGVuZEhlaWdodDogY29sbGF0ZXJhbC5zcGVuZEhlaWdodCA/PyBudWxsLFxuICAgIH0pKTtcbiAgfTtcblxuICAvKipcbiAgICogY29udmVydCB0aGUgZGF0YWJhc2UgZW50aXR5IGJhY2sgdG8gcmF3IGRhdGFcbiAgICogQHBhcmFtIGVudGl0aWVzXG4gICAqIEByZXR1cm5zIHRoZSBleHRyYWN0ZWQgY29sbGF0ZXJhbCBkYXRhXG4gICAqL1xuICBwcm90ZWN0ZWQgY29udmVydEVudGl0eVRvRGF0YSA9IChcbiAgICBlbnRpdGllczogQ29sbGF0ZXJhbEVudGl0eVtdLFxuICApOiBFeHRyYWN0ZWRDb2xsYXRlcmFsW10gPT4ge1xuICAgIHJldHVybiBlbnRpdGllcztcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29sbGF0ZXJhbEFjdGlvbjtcbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
2
2
  import { DataSource } from '@rosen-bridge/extended-typeorm';
3
- import { Block } from '@rosen-bridge/scanner-interfaces';
3
+ import { BlockInfo } from '@rosen-bridge/scanner-interfaces';
4
4
  import { extractedCommitment } from '../interfaces/extractedCommitment';
5
5
  import { SpendInfo } from '../interfaces/types';
6
6
  declare class CommitmentAction {
@@ -14,14 +14,14 @@ declare class CommitmentAction {
14
14
  * @param block
15
15
  * @param extractor
16
16
  */
17
- storeCommitments: (commitments: Array<extractedCommitment>, block: Block, extractor: string) => Promise<boolean>;
17
+ storeCommitments: (commitments: Array<extractedCommitment>, block: BlockInfo, extractor: string) => Promise<boolean>;
18
18
  /**
19
19
  * Update spendBlock and spendHeight of commitments spent on the block
20
20
  * @param spendId
21
21
  * @param block
22
22
  * @param extractor
23
23
  */
24
- spendCommitments: (spendId: Array<SpendInfo>, block: Block, extractor: string) => Promise<void>;
24
+ spendCommitments: (spendId: Array<SpendInfo>, block: BlockInfo, extractor: string) => Promise<void>;
25
25
  /**
26
26
  * Delete all commitments corresponding to the block(id) and extractor(id)
27
27
  * and update all commitments spent on the specified block
@@ -1 +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,EAAE,UAAU,EAAkB,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAIzD,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,KAAK,EACZ,WAAW,MAAM,KAChB,OAAO,CAAC,OAAO,CAAC,CAsDjB;IAEF;;;;;OAKG;IACH,gBAAgB,GACd,SAAS,KAAK,CAAC,SAAS,CAAC,EACzB,OAAO,KAAK,EACZ,WAAW,MAAM,KAChB,OAAO,CAAC,IAAI,CAAC,CAmCd;IAEF;;;;;OAKG;IACH,WAAW,GAAU,OAAO,MAAM,EAAE,WAAW,MAAM,mBAiBnD;CACH;AAED,eAAe,gBAAgB,CAAC"}
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,EAAE,UAAU,EAAkB,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAI7D,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;CACH;AAED,eAAe,gBAAgB,CAAC"}
@@ -87,7 +87,7 @@ class CommitmentAction {
87
87
  for (const commitment of commitments) {
88
88
  const spendInfo = spendIdChunk.find((info) => info.boxId === commitment.boxId);
89
89
  if (!spendInfo)
90
- throw new Error(`Impossible behavior: box [${commitment.boxId}] is not found in spending info list`);
90
+ throw new Error(`ImpossibleBehavior: box [${commitment.boxId}] is not found in spending info list`);
91
91
  await this.commitmentRepository.update({
92
92
  id: commitment.id,
93
93
  }, {
@@ -122,4 +122,4 @@ class CommitmentAction {
122
122
  };
123
123
  }
124
124
  export default CommitmentAction;
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWl0bWVudEFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9hY3Rpb25zL2NvbW1pdG1lbnRBY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVsQyxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBYyxFQUFFLEVBQWMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUc1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sZ0JBQWdCLE1BQU0sOEJBQThCLENBQUM7QUFJNUQsTUFBTSxnQkFBZ0I7SUFDWCxNQUFNLENBQWlCO0lBQ2YsVUFBVSxDQUFhO0lBQ3ZCLG9CQUFvQixDQUErQjtJQUVwRSxZQUFZLFVBQXNCLEVBQUUsTUFBdUI7UUFDekQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGdCQUFnQixHQUFHLEtBQUssRUFDdEIsV0FBdUMsRUFDdkMsS0FBWSxFQUNaLFNBQWlCLEVBQ0MsRUFBRTtRQUNwQixJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzFDLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFv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QUFLLENBQUMsTUFBTSxFQUFFLENBQ3JHLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMscUJBQXFCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hFLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBRUY7Ozs7O09BS0c7SUFDSCxXQUFXLEdBQUcsS0FBSyxFQUFFLEtBQWEsRUFBRSxTQUFpQixFQUFFLEVBQUU7UUFDdkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2Qsa0NBQWtDLEtBQUssbUJBQW1CLFNBQVMsRUFBRSxDQUN0RSxDQUFDO1FBQ0YsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDO1lBQ3JDLEtBQUssRUFBRSxLQUFLO1lBQ1osU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUNwQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxFQUMzQztZQUNFLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FDRixDQUFDO0lBQ0osQ0FBQyxDQUFDO0NBQ0g7QUFFRCxlQUFlLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2h1bmsgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciwgRHVtbXlMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBEYXRhU291cmNlLCBJbiwgUmVwb3NpdG9yeSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvZXh0ZW5kZWQtdHlwZW9ybSc7XG5pbXBvcnQgeyBCbG9jayB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgZGJJZENodW5rU2l6ZSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgQ29tbWl0bWVudEVudGl0eSBmcm9tICcuLi9lbnRpdGllcy9jb21taXRtZW50RW50aXR5JztcbmltcG9ydCB7IGV4dHJhY3RlZENvbW1pdG1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2V4dHJhY3RlZENvbW1pdG1lbnQnO1xuaW1wb3J0IHsgU3BlbmRJbmZvIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90eXBlcyc7XG5cbmNsYXNzIENvbW1pdG1lbnRBY3Rpb24ge1xuICByZWFkb25seSBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyO1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFzb3VyY2U6IERhdGFTb3VyY2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tbWl0bWVudFJlcG9zaXRvcnk6IFJlcG9zaXRvcnk8Q29tbWl0bWVudEVudGl0eT47XG5cbiAgY29uc3RydWN0b3IoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSwgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIpIHtcbiAgICB0aGlzLmRhdGFzb3VyY2UgPSBkYXRhU291cmNlO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyID8gbG9nZ2VyIDogbmV3IER1bW15TG9nZ2VyKCk7XG4gICAgdGhpcy5jb21taXRtZW50UmVwb3NpdG9yeSA9IGRhdGFTb3VyY2UuZ2V0UmVwb3NpdG9yeShDb21taXRtZW50RW50aXR5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBzdG9yZXMgbGlzdCBvZiBvYnNlcnZhdGlvbnMgaW4gdGhlIGRhdGFTb3VyY2Ugd2l0aCBibG9jayBpZFxuICAgKiBAcGFyYW0gY29tbWl0bWVudHNcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHN0b3JlQ29tbWl0bWVudHMgPSBhc3luYyAoXG4gICAgY29tbWl0bWVudHM6IEFycmF5PGV4dHJhY3RlZENvbW1pdG1lbnQ+LFxuICAgIGJsb2NrOiBCbG9jayxcbiAgICBleHRyYWN0b3I6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgaWYgKGNvbW1pdG1lbnRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHRydWU7XG4gICAgY29uc3QgYm94SWRzID0gY29tbWl0bWVudHMubWFwKChjb21taXRtZW50KSA9PiBjb21taXRtZW50LmJveElkKTtcbiAgICBjb25zdCBzYXZlZENvbW1pdG1lbnRzID0gYXdhaXQgdGhpcy5jb21taXRtZW50UmVwb3NpdG9yeS5maW5kQnkoe1xuICAgICAgYm94SWQ6IEluKGJveElkcyksXG4gICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICB9KTtcbiAgICBsZXQgc3VjY2VzcyA9IHRydWU7XG4gICAgY29uc3QgcXVlcnlSdW5uZXIgPSB0aGlzLmRhdGFzb3VyY2UuY3JlYXRlUXVlcnlSdW5uZXIoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb25uZWN0KCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuc3RhcnRUcmFuc2FjdGlvbigpO1xuICAgIGNvbnN0IHJlcG9zaXRvcnkgPVxuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KENvbW1pdG1lbnRFbnRpdHkpO1xuICAgIHRyeSB7XG4gICAgICBmb3IgKGNvbnN0IGNvbW1pdG1lbnQgb2YgY29tbWl0bWVudHMpIHtcbiAgICAgICAgY29uc3Qgc2F2ZWQgPSBzYXZlZENvbW1pdG1lbnRzLnNvbWUoKGVudGl0eSkgPT4ge1xuICAgICAgICAgIHJldHVybiBlbnRpdHkuYm94SWQgPT09IGNvbW1pdG1lbnQuYm94SWQ7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBlbnRpdHkgPSB7XG4gICAgICAgICAgdHhJZDogY29tbWl0bWVudC50eElkLFxuICAgICAgICAgIGNvbW1pdG1lbnQ6IGNvbW1pdG1lbnQuY29tbWl0bWVudCxcbiAgICAgICAgICBldmVudElkOiBjb21taXRtZW50LmV2ZW50SWQsXG4gICAgICAgICAgYm94SWQ6IGNvbW1pdG1lbnQuYm94SWQsXG4gICAgICAgICAgV0lEOiBjb21taXRtZW50LldJRCxcbiAgICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgICAgICBibG9jazogYmxvY2suaGFzaCxcbiAgICAgICAgICBoZWlnaHQ6IGJsb2NrLmhlaWdodCxcbiAgICAgICAgICBib3hTZXJpYWxpemVkOiBjb21taXRtZW50LmJveFNlcmlhbGl6ZWQsXG4gICAgICAgICAgcnd0Q291bnQ6IGNvbW1pdG1lbnQucnd0Q291bnQsXG4gICAgICAgIH07XG4gICAgICAgIGlmICghc2F2ZWQpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgICAgYFNhdmluZyBjb21taXRtZW50IFske2NvbW1pdG1lbnQuYm94SWR9XSBmb3IgZXZlbnQgWyR7Y29tbWl0bWVudC5ldmVudElkfV0gZnJvbSB3YXRjaGVyIFske2NvbW1pdG1lbnQuV0lEfV0gYXQgaGVpZ2h0ICR7YmxvY2suaGVpZ2h0fSBhbmQgZXh0cmFjdG9yICR7ZXh0cmFjdG9yfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBhd2FpdCByZXBvc2l0b3J5Lmluc2VydChlbnRpdHkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICAgICAgICBgVXBkYXRpbmcgY29tbWl0bWVudCBbJHtjb21taXRtZW50LmJveElkfV0gZm9yIGV2ZW50IFske2NvbW1pdG1lbnQuZXZlbnRJZH1dIGZyb20gd2F0Y2hlciBbJHtjb21taXRtZW50LldJRH1dIGF0IGhlaWdodCAke2Jsb2NrLmhlaWdodH0gYW5kIGV4dHJhY3RvciAke2V4dHJhY3Rvcn1gLFxuICAgICAgICAgICk7XG4gICAgICAgICAgYXdhaXQgcmVwb3NpdG9yeS51cGRhdGUoeyBib3hJZDogY29tbWl0bWVudC5ib3hJZCB9LCBlbnRpdHkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBFbnRpdHk6ICR7SlNPTi5zdHJpbmdpZnkoZW50aXR5KX1gKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgc3RvcmUgY29tbWl0bWVudHMgYWN0aW9uOiAke2V9YCxcbiAgICAgICk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgICBzdWNjZXNzID0gZmFsc2U7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJlbGVhc2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1Y2Nlc3M7XG4gIH07XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBzcGVuZEJsb2NrIGFuZCBzcGVuZEhlaWdodCBvZiBjb21taXRtZW50cyBzcGVudCBvbiB0aGUgYmxvY2tcbiAgICogQHBhcmFtIHNwZW5kSWRcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHNwZW5kQ29tbWl0bWVudHMgPSBhc3luYyAoXG4gICAgc3BlbmRJZDogQXJyYXk8U3BlbmRJbmZvPixcbiAgICBibG9jazogQmxvY2ssXG4gICAgZXh0cmFjdG9yOiBzdHJpbmcsXG4gICk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIC8vIFRPRE86IGltcHJvdmUgdXBkYXRpbmcgKGxvY2FsOmVyZ28vcm9zZW4tYnJpZGdlL3NjYW5uZXIjODUpXG4gICAgY29uc3Qgc3BlbmRJZENodW5rcyA9IGNodW5rKHNwZW5kSWQsIGRiSWRDaHVua1NpemUpO1xuICAgIGZvciAoY29uc3Qgc3BlbmRJZENodW5rIG9mIHNwZW5kSWRDaHVua3MpIHtcbiAgICAgIGNvbnN0IGNvbW1pdG1lbnRzID0gYXdhaXQgdGhpcy5jb21taXRtZW50UmVwb3NpdG9yeS5maW5kQnkoe1xuICAgICAgICBib3hJZDogSW4oc3BlbmRJZENodW5rLm1hcCgoaW5mbykgPT4gaW5mby5ib3hJZCkpLFxuICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgIH0pO1xuXG4gICAgICBmb3IgKGNvbnN0IGNvbW1pdG1lbnQgb2YgY29tbWl0bWVudHMpIHtcbiAgICAgICAgY29uc3Qgc3BlbmRJbmZvID0gc3BlbmRJZENodW5rLmZpbmQoXG4gICAgICAgICAgKGluZm8pID0+IGluZm8uYm94SWQgPT09IGNvbW1pdG1lbnQuYm94SWQsXG4gICAgICAgICk7XG4gICAgICAgIGlmICghc3BlbmRJbmZvKVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBJbXBvc3NpYmxlIGJlaGF2aW9yOiBib3ggWyR7Y29tbWl0bWVudC5ib3hJZH1dIGlzIG5vdCBmb3VuZCBpbiBzcGVuZGluZyBpbmZvIGxpc3RgLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5jb21taXRtZW50UmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6IGNvbW1pdG1lbnQuaWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzcGVuZEJsb2NrOiBibG9jay5oYXNoLFxuICAgICAgICAgICAgc3BlbmRIZWlnaHQ6IGJsb2NrLmhlaWdodCxcbiAgICAgICAgICAgIHNwZW5kVHhJZDogc3BlbmRJbmZvLnR4SWQsXG4gICAgICAgICAgICBzcGVuZEluZGV4OiBzcGVuZEluZm8uaW5kZXgsXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgICBgU3BlbnQgY29tbWl0bWVudCBbJHtjb21taXRtZW50LmJveElkfV0gZm9yIGV2ZW50IFske2NvbW1pdG1lbnQuZXZlbnRJZH1dIGF0IGhlaWdodCAke2Jsb2NrLmhlaWdodH1gLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgU3BlbnQgY29tbWl0bWVudCBbJHtKU09OLnN0cmluZ2lmeShjb21taXRtZW50KX1dYCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBEZWxldGUgYWxsIGNvbW1pdG1lbnRzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGJsb2NrKGlkKSBhbmQgZXh0cmFjdG9yKGlkKVxuICAgKiBhbmQgdXBkYXRlIGFsbCBjb21taXRtZW50cyBzcGVudCBvbiB0aGUgc3BlY2lmaWVkIGJsb2NrXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICBkZWxldGVCbG9jayA9IGFzeW5jIChibG9jazogc3RyaW5nLCBleHRyYWN0b3I6IHN0cmluZykgPT4ge1xuICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICBgRGVsZXRpbmcgY29tbWl0bWVudHMgb2YgYmxvY2sgWyR7YmxvY2t9XSBhbmQgZXh0cmFjdG9yICR7ZXh0cmFjdG9yfWAsXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLmNvbW1pdG1lbnRSZXBvc2l0b3J5LmRlbGV0ZSh7XG4gICAgICBibG9jazogYmxvY2ssXG4gICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLmNvbW1pdG1lbnRSZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgIHsgc3BlbmRCbG9jazogYmxvY2ssIGV4dHJhY3RvcjogZXh0cmFjdG9yIH0sXG4gICAgICB7XG4gICAgICAgIHNwZW5kQmxvY2s6IG51bGwsXG4gICAgICAgIHNwZW5kSGVpZ2h0OiBudWxsLFxuICAgICAgICBzcGVuZFR4SWQ6IG51bGwsXG4gICAgICAgIHNwZW5kSW5kZXg6IG51bGwsXG4gICAgICB9LFxuICAgICk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbW1pdG1lbnRBY3Rpb247XG4iXX0=
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWl0bWVudEFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9hY3Rpb25zL2NvbW1pdG1lbnRBY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVsQyxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBYyxFQUFFLEVBQWMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUc1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sZ0JBQWdCLE1BQU0sOEJBQThCLENBQUM7QUFJNUQsTUFBTSxnQkFBZ0I7SUFDWCxNQUFNLENBQWlCO0lBQ2YsVUFBVSxDQUFhO0lBQ3ZCLG9CQUFvQixDQUErQjtJQUVwRSxZQUFZLFVBQXNCLEVBQUUsTUFBdUI7UUFDekQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGdCQUFnQixHQUFHLEtBQUssRUFDdEIsV0FBdUMsRUFDdkMsS0FBZ0IsRUFDaEIsU0FBaUIsRUFDQyxFQUFFO1FBQ3BCLElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JB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QWUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUNyRyxDQUFDO2dCQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHFCQUFxQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4RSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUMsQ0FBQztJQUVGOzs7OztPQUtHO0lBQ0gsV0FBVyxHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsU0FBaUIsRUFBRSxFQUFFO1FBQ3ZELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLGtDQUFrQyxLQUFLLG1CQUFtQixTQUFTLEVBQUUsQ0FDdEUsQ0FBQztRQUNGLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztZQUNyQyxLQUFLLEVBQUUsS0FBSztZQUNaLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUMsQ0FBQztRQUNILE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FDcEMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsRUFDM0M7WUFDRSxVQUFVLEVBQUUsSUFBSTtZQUNoQixXQUFXLEVBQUUsSUFBSTtZQUNqQixTQUFTLEVBQUUsSUFBSTtZQUNmLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQ0YsQ0FBQztJQUNKLENBQUMsQ0FBQztDQUNIO0FBRUQsZUFBZSxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNodW5rIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSwgSW4sIFJlcG9zaXRvcnkgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuaW1wb3J0IHsgQmxvY2tJbmZvIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBkYklkQ2h1bmtTaXplIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBDb21taXRtZW50RW50aXR5IGZyb20gJy4uL2VudGl0aWVzL2NvbW1pdG1lbnRFbnRpdHknO1xuaW1wb3J0IHsgZXh0cmFjdGVkQ29tbWl0bWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZXh0cmFjdGVkQ29tbWl0bWVudCc7XG5pbXBvcnQgeyBTcGVuZEluZm8gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3R5cGVzJztcblxuY2xhc3MgQ29tbWl0bWVudEFjdGlvbiB7XG4gIHJlYWRvbmx5IGxvZ2dlcjogQWJzdHJhY3RMb2dnZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YXNvdXJjZTogRGF0YVNvdXJjZTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb21taXRtZW50UmVwb3NpdG9yeTogUmVwb3NpdG9yeTxDb21taXRtZW50RW50aXR5PjtcblxuICBjb25zdHJ1Y3RvcihkYXRhU291cmNlOiBEYXRhU291cmNlLCBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlcikge1xuICAgIHRoaXMuZGF0YXNvdXJjZSA9IGRhdGFTb3VyY2U7XG4gICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIgPyBsb2dnZXIgOiBuZXcgRHVtbXlMb2dnZXIoKTtcbiAgICB0aGlzLmNvbW1pdG1lbnRSZXBvc2l0b3J5ID0gZGF0YVNvdXJjZS5nZXRSZXBvc2l0b3J5KENvbW1pdG1lbnRFbnRpdHkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IHN0b3JlcyBsaXN0IG9mIG9ic2VydmF0aW9ucyBpbiB0aGUgZGF0YVNvdXJjZSB3aXRoIGJsb2NrIGlkXG4gICAqIEBwYXJhbSBjb21taXRtZW50c1xuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgc3RvcmVDb21taXRtZW50cyA9IGFzeW5jIChcbiAgICBjb21taXRtZW50czogQXJyYXk8ZXh0cmFjdGVkQ29tbWl0bWVudD4sXG4gICAgYmxvY2s6IEJsb2NrSW5mbyxcbiAgICBleHRyYWN0b3I6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgaWYgKGNvbW1pdG1lbnRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHRydWU7XG4gICAgY29uc3QgYm94SWRzID0gY29tbWl0bWVudHMubWFwKChjb21taXRtZW50KSA9PiBjb21taXRtZW50LmJveElkKTtcbiAgICBjb25zdCBzYXZlZENvbW1pdG1lbnRzID0gYXdhaXQgdGhpcy5jb21taXRtZW50UmVwb3NpdG9yeS5maW5kQnkoe1xuICAgICAgYm94SWQ6IEluKGJveElkcyksXG4gICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICB9KTtcbiAgICBsZXQgc3VjY2VzcyA9IHRydWU7XG4gICAgY29uc3QgcXVlcnlSdW5uZXIgPSB0aGlzLmRhdGFzb3VyY2UuY3JlYXRlUXVlcnlSdW5uZXIoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb25uZWN0KCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuc3RhcnRUcmFuc2FjdGlvbigpO1xuICAgIGNvbnN0IHJlcG9zaXRvcnkgPVxuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KENvbW1pdG1lbnRFbnRpdHkpO1xuICAgIHRyeSB7XG4gICAgICBmb3IgKGNvbnN0IGNvbW1pdG1lbnQgb2YgY29tbWl0bWVudHMpIHtcbiAgICAgICAgY29uc3Qgc2F2ZWQgPSBzYXZlZENvbW1pdG1lbnRzLnNvbWUoKGVudGl0eSkgPT4ge1xuICAgICAgICAgIHJldHVybiBlbnRpdHkuYm94SWQgPT09IGNvbW1pdG1lbnQuYm94SWQ7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBlbnRpdHkgPSB7XG4gICAgICAgICAgdHhJZDogY29tbWl0bWVudC50eElkLFxuICAgICAgICAgIGNvbW1pdG1lbnQ6IGNvbW1pdG1lbnQuY29tbWl0bWVudCxcbiAgICAgICAgICBldmVudElkOiBjb21taXRtZW50LmV2ZW50SWQsXG4gICAgICAgICAgYm94SWQ6IGNvbW1pdG1lbnQuYm94SWQsXG4gICAgICAgICAgV0lEOiBjb21taXRtZW50LldJRCxcbiAgICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgICAgICBibG9jazogYmxvY2suaGFzaCxcbiAgICAgICAgICBoZWlnaHQ6IGJsb2NrLmhlaWdodCxcbiAgICAgICAgICBib3hTZXJpYWxpemVkOiBjb21taXRtZW50LmJveFNlcmlhbGl6ZWQsXG4gICAgICAgICAgcnd0Q291bnQ6IGNvbW1pdG1lbnQucnd0Q291bnQsXG4gICAgICAgIH07XG4gICAgICAgIGlmICghc2F2ZWQpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgICAgYFNhdmluZyBjb21taXRtZW50IFske2NvbW1pdG1lbnQuYm94SWR9XSBmb3IgZXZlbnQgWyR7Y29tbWl0bWVudC5ldmVudElkfV0gZnJvbSB3YXRjaGVyIFske2NvbW1pdG1lbnQuV0lEfV0gYXQgaGVpZ2h0ICR7YmxvY2suaGVpZ2h0fSBhbmQgZXh0cmFjdG9yICR7ZXh0cmFjdG9yfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBhd2FpdCByZXBvc2l0b3J5Lmluc2VydChlbnRpdHkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICAgICAgICBgVXBkYXRpbmcgY29tbWl0bWVudCBbJHtjb21taXRtZW50LmJveElkfV0gZm9yIGV2ZW50IFske2NvbW1pdG1lbnQuZXZlbnRJZH1dIGZyb20gd2F0Y2hlciBbJHtjb21taXRtZW50LldJRH1dIGF0IGhlaWdodCAke2Jsb2NrLmhlaWdodH0gYW5kIGV4dHJhY3RvciAke2V4dHJhY3Rvcn1gLFxuICAgICAgICAgICk7XG4gICAgICAgICAgYXdhaXQgcmVwb3NpdG9yeS51cGRhdGUoeyBib3hJZDogY29tbWl0bWVudC5ib3hJZCB9LCBlbnRpdHkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBFbnRpdHk6ICR7SlNPTi5zdHJpbmdpZnkoZW50aXR5KX1gKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgc3RvcmUgY29tbWl0bWVudHMgYWN0aW9uOiAke2V9YCxcbiAgICAgICk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgICBzdWNjZXNzID0gZmFsc2U7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJlbGVhc2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1Y2Nlc3M7XG4gIH07XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBzcGVuZEJsb2NrIGFuZCBzcGVuZEhlaWdodCBvZiBjb21taXRtZW50cyBzcGVudCBvbiB0aGUgYmxvY2tcbiAgICogQHBhcmFtIHNwZW5kSWRcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHNwZW5kQ29tbWl0bWVudHMgPSBhc3luYyAoXG4gICAgc3BlbmRJZDogQXJyYXk8U3BlbmRJbmZvPixcbiAgICBibG9jazogQmxvY2tJbmZvLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nLFxuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAvLyBUT0RPOiBpbXByb3ZlIHVwZGF0aW5nIChsb2NhbDplcmdvL3Jvc2VuLWJyaWRnZS9zY2FubmVyIzg1KVxuICAgIGNvbnN0IHNwZW5kSWRDaHVua3MgPSBjaHVuayhzcGVuZElkLCBkYklkQ2h1bmtTaXplKTtcbiAgICBmb3IgKGNvbnN0IHNwZW5kSWRDaHVuayBvZiBzcGVuZElkQ2h1bmtzKSB7XG4gICAgICBjb25zdCBjb21taXRtZW50cyA9IGF3YWl0IHRoaXMuY29tbWl0bWVudFJlcG9zaXRvcnkuZmluZEJ5KHtcbiAgICAgICAgYm94SWQ6IEluKHNwZW5kSWRDaHVuay5tYXAoKGluZm8pID0+IGluZm8uYm94SWQpKSxcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICB9KTtcblxuICAgICAgZm9yIChjb25zdCBjb21taXRtZW50IG9mIGNvbW1pdG1lbnRzKSB7XG4gICAgICAgIGNvbnN0IHNwZW5kSW5mbyA9IHNwZW5kSWRDaHVuay5maW5kKFxuICAgICAgICAgIChpbmZvKSA9PiBpbmZvLmJveElkID09PSBjb21taXRtZW50LmJveElkLFxuICAgICAgICApO1xuICAgICAgICBpZiAoIXNwZW5kSW5mbylcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgSW1wb3NzaWJsZUJlaGF2aW9yOiBib3ggWyR7Y29tbWl0bWVudC5ib3hJZH1dIGlzIG5vdCBmb3VuZCBpbiBzcGVuZGluZyBpbmZvIGxpc3RgLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5jb21taXRtZW50UmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6IGNvbW1pdG1lbnQuaWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzcGVuZEJsb2NrOiBibG9jay5oYXNoLFxuICAgICAgICAgICAgc3BlbmRIZWlnaHQ6IGJsb2NrLmhlaWdodCxcbiAgICAgICAgICAgIHNwZW5kVHhJZDogc3BlbmRJbmZvLnR4SWQsXG4gICAgICAgICAgICBzcGVuZEluZGV4OiBzcGVuZEluZm8uaW5kZXgsXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgICBgU3BlbnQgY29tbWl0bWVudCBbJHtjb21taXRtZW50LmJveElkfV0gZm9yIGV2ZW50IFske2NvbW1pdG1lbnQuZXZlbnRJZH1dIGF0IGhlaWdodCAke2Jsb2NrLmhlaWdodH1gLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgU3BlbnQgY29tbWl0bWVudCBbJHtKU09OLnN0cmluZ2lmeShjb21taXRtZW50KX1dYCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBEZWxldGUgYWxsIGNvbW1pdG1lbnRzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGJsb2NrKGlkKSBhbmQgZXh0cmFjdG9yKGlkKVxuICAgKiBhbmQgdXBkYXRlIGFsbCBjb21taXRtZW50cyBzcGVudCBvbiB0aGUgc3BlY2lmaWVkIGJsb2NrXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICBkZWxldGVCbG9jayA9IGFzeW5jIChibG9jazogc3RyaW5nLCBleHRyYWN0b3I6IHN0cmluZykgPT4ge1xuICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICBgRGVsZXRpbmcgY29tbWl0bWVudHMgb2YgYmxvY2sgWyR7YmxvY2t9XSBhbmQgZXh0cmFjdG9yICR7ZXh0cmFjdG9yfWAsXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLmNvbW1pdG1lbnRSZXBvc2l0b3J5LmRlbGV0ZSh7XG4gICAgICBibG9jazogYmxvY2ssXG4gICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLmNvbW1pdG1lbnRSZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgIHsgc3BlbmRCbG9jazogYmxvY2ssIGV4dHJhY3RvcjogZXh0cmFjdG9yIH0sXG4gICAgICB7XG4gICAgICAgIHNwZW5kQmxvY2s6IG51bGwsXG4gICAgICAgIHNwZW5kSGVpZ2h0OiBudWxsLFxuICAgICAgICBzcGVuZFR4SWQ6IG51bGwsXG4gICAgICAgIHNwZW5kSW5kZXg6IG51bGwsXG4gICAgICB9LFxuICAgICk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbW1pdG1lbnRBY3Rpb247XG4iXX0=
@@ -1,11 +1,10 @@
1
- import { AbstractInitializableErgoExtractorAction, BoxInfo, SpendInfo } from '@rosen-bridge/abstract-extractor';
1
+ import { AbstractErgoBoxAction, EntityInfo, SpendInfo } from '@rosen-bridge/abstract-extractor';
2
2
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
3
3
  import { DataSource } from '@rosen-bridge/extended-typeorm';
4
4
  import { BlockInfo } from '@rosen-bridge/scanner-interfaces';
5
5
  import EventTriggerEntity from '../entities/eventTriggerEntity';
6
6
  import { ExtractedEventTrigger } from '../interfaces/extractedEventTrigger';
7
- declare class EventTriggerAction extends AbstractInitializableErgoExtractorAction<ExtractedEventTrigger, EventTriggerEntity> {
8
- private readonly dataSource;
7
+ declare class EventTriggerAction extends AbstractErgoBoxAction<ExtractedEventTrigger, EventTriggerEntity> {
9
8
  constructor(dataSource: DataSource, logger?: AbstractLogger);
10
9
  /**
11
10
  * create the box entity from extracted data and block information
@@ -24,7 +23,7 @@ declare class EventTriggerAction extends AbstractInitializableErgoExtractorActio
24
23
  * @param extractorId
25
24
  * @returns spent box ids
26
25
  */
27
- spendBoxes: (spendInfoArray: Array<SpendInfo>, block: BlockInfo, extractorId: string) => Promise<BoxInfo[]>;
26
+ spendBoxes: (spendInfoArray: Array<SpendInfo>, block: BlockInfo, extractorId: string) => Promise<EntityInfo[]>;
28
27
  }
29
28
  export default EventTriggerAction;
30
29
  //# sourceMappingURL=eventTriggerAction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"eventTriggerAction.d.ts","sourceRoot":"","sources":["../../lib/actions/eventTriggerAction.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,wCAAwC,EACxC,OAAO,EAEP,SAAS,EACV,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAM,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,kBAAkB,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAG5E,cAAM,kBAAmB,SAAQ,wCAAwC,CACvE,qBAAqB,EACrB,kBAAkB,CACnB;IACC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;gBAE5B,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,cAAc;IAK3D;;OAEG;IACH,YAAY,GACV,cAAc,qBAAqB,EAAE,EACrC,OAAO,SAAS,EAChB,WAAW,MAAM,KAChB,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,EAAE,CAwBjC;IAEF;;OAEG;IACH,mBAAmB,GACjB,UAAU,kBAAkB,EAAE,KAC7B,qBAAqB,EAAE,CAuBxB;IAEF;;;;;;;;OAQG;IACH,UAAU,GACR,gBAAgB,KAAK,CAAC,SAAS,CAAC,EAChC,OAAO,SAAS,EAChB,aAAa,MAAM,KAClB,OAAO,CAAC,OAAO,EAAE,CAAC,CAyCnB;CACH;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"eventTriggerAction.d.ts","sourceRoot":"","sources":["../../lib/actions/eventTriggerAction.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EAErB,UAAU,EACV,SAAS,EACV,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAM,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,kBAAkB,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAG5E,cAAM,kBAAmB,SAAQ,qBAAqB,CACpD,qBAAqB,EACrB,kBAAkB,CACnB;gBACa,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,cAAc;IAI3D;;OAEG;IACH,YAAY,GACV,cAAc,qBAAqB,EAAE,EACrC,OAAO,SAAS,EAChB,WAAW,MAAM,KAChB,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,EAAE,CAwBjC;IAEF;;OAEG;IACH,mBAAmB,GACjB,UAAU,kBAAkB,EAAE,KAC7B,qBAAqB,EAAE,CAuBxB;IAEF;;;;;;;;OAQG;IACH,UAAU,GACR,gBAAgB,KAAK,CAAC,SAAS,CAAC,EAChC,OAAO,SAAS,EAChB,aAAa,MAAM,KAClB,OAAO,CAAC,UAAU,EAAE,CAAC,CAyCtB;CACH;AAED,eAAe,kBAAkB,CAAC"}