@rosen-bridge/abstract-extractor 3.0.0-8f3c7016 → 3.0.0

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 (42) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/dist/abstractExtractor.d.ts +10 -1
  3. package/dist/abstractExtractor.d.ts.map +1 -1
  4. package/dist/abstractExtractor.js +1 -1
  5. package/dist/constants.d.ts +0 -1
  6. package/dist/constants.d.ts.map +1 -1
  7. package/dist/constants.js +1 -2
  8. package/dist/ergo/database/actions/abstractErgoAction.d.ts +9 -1
  9. package/dist/ergo/database/actions/abstractErgoAction.d.ts.map +1 -1
  10. package/dist/ergo/database/actions/abstractErgoAction.js +14 -1
  11. package/dist/ergo/extractors/abstractErgoBoxExtractor.js +2 -2
  12. package/dist/ergo/extractors/abstractErgoExtractor.d.ts +12 -4
  13. package/dist/ergo/extractors/abstractErgoExtractor.d.ts.map +1 -1
  14. package/dist/ergo/extractors/abstractErgoExtractor.js +8 -1
  15. package/dist/ergo/extractors/abstractErgoTxExtractor.d.ts +2 -4
  16. package/dist/ergo/extractors/abstractErgoTxExtractor.d.ts.map +1 -1
  17. package/dist/ergo/extractors/abstractErgoTxExtractor.js +4 -9
  18. package/dist/ergo/initializers/{strategies/constants.d.ts → constants.d.ts} +1 -0
  19. package/dist/ergo/initializers/constants.d.ts.map +1 -0
  20. package/dist/ergo/initializers/constants.js +4 -0
  21. package/dist/ergo/initializers/ergoBoxInitializer.d.ts +3 -3
  22. package/dist/ergo/initializers/ergoBoxInitializer.d.ts.map +1 -1
  23. package/dist/ergo/initializers/ergoBoxInitializer.js +12 -8
  24. package/dist/ergo/initializers/ergoInitializer.d.ts +3 -3
  25. package/dist/ergo/initializers/ergoInitializer.d.ts.map +1 -1
  26. package/dist/ergo/initializers/ergoInitializer.js +4 -4
  27. package/dist/ergo/initializers/strategies/explorerInitializationStrategy.d.ts +3 -3
  28. package/dist/ergo/initializers/strategies/explorerInitializationStrategy.d.ts.map +1 -1
  29. package/dist/ergo/initializers/strategies/explorerInitializationStrategy.js +44 -24
  30. package/dist/ergo/initializers/strategies/nodeInitializationStrategy.d.ts +3 -2
  31. package/dist/ergo/initializers/strategies/nodeInitializationStrategy.d.ts.map +1 -1
  32. package/dist/ergo/initializers/strategies/nodeInitializationStrategy.js +22 -10
  33. package/dist/ergo/initializers/strategies/workerManager.d.ts +3 -3
  34. package/dist/ergo/initializers/strategies/workerManager.d.ts.map +1 -1
  35. package/dist/ergo/initializers/strategies/workerManager.js +5 -6
  36. package/dist/ergo/utils.d.ts +2 -2
  37. package/dist/ergo/utils.d.ts.map +1 -1
  38. package/dist/ergo/utils.js +1 -1
  39. package/dist/tsconfig.tsbuildinfo +1 -0
  40. package/package.json +7 -6
  41. package/dist/ergo/initializers/strategies/constants.d.ts.map +0 -1
  42. package/dist/ergo/initializers/strategies/constants.js +0 -3
package/CHANGELOG.md CHANGED
@@ -1,14 +1,20 @@
1
1
  # @rosen-bridge/abstract-extractor
2
2
 
3
- ## 3.0.0-8f3c7016
3
+ ## 3.0.0
4
4
 
5
5
  ### Major Changes
6
6
 
7
7
  - Update AbstractExtractor interface; use `BlockInfo` in `processTransactions` and rename `initializeBoxes` to `initializeData`
8
8
  - Update abstract entities and actions to have a new abstraction level, seperating box-based logic from general extraction
9
9
  - Update `AbstractErgoExtractor` to use a tx-based data extraction method and add `AbstractErgoBoxExtractor` for box-based data extraction
10
+ - Update AbstractExtractor interface; add `createUsedBlocksQuery` method that returns the query for used blocks
10
11
  - Update abstract database entity to be general; rename `boxId` columnt to `identifier`
11
12
 
13
+ ### Patch Changes
14
+
15
+ - Update dependencies
16
+ - @rosen-bridge/abstract-logger@4.0.0
17
+
12
18
  ## 2.1.2
13
19
 
14
20
  ### Patch Changes
@@ -1,5 +1,6 @@
1
+ import { ObjectLiteral, SelectQueryBuilder } from '@rosen-bridge/extended-typeorm';
1
2
  import { BlockInfo } from '@rosen-bridge/scanner-interfaces';
2
- export declare abstract class AbstractExtractor<TransactionType> {
3
+ export declare abstract class AbstractExtractor<TransactionType, ExtractorEntity extends ObjectLiteral> {
3
4
  /**
4
5
  * Process a list of transactions (or other blockchain data) in a block and store required information.
5
6
  * This method is the core of the extraction process and should be implemented to handle
@@ -33,5 +34,13 @@ export declare abstract class AbstractExtractor<TransactionType> {
33
34
  * @param initialBlock - The block from which to start scanning (initial height)
34
35
  */
35
36
  abstract initializeData: (initialBlock: BlockInfo) => Promise<void>;
37
+ /**
38
+ * Create a query for used blocks associated with the given `extractorId`
39
+ * This method only builds the query and does not execute it
40
+ *
41
+ * @returns A TypeORM SelectQueryBuilder that selects used block values or
42
+ * `undefined` if the extractor has no associated entity
43
+ */
44
+ abstract createUsedBlocksQuery: () => SelectQueryBuilder<ExtractorEntity> | undefined;
36
45
  }
37
46
  //# sourceMappingURL=abstractExtractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"abstractExtractor.d.ts","sourceRoot":"","sources":["../lib/abstractExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,8BAAsB,iBAAiB,CAAC,eAAe;IACrD;;;;;;;;OAQG;IACH,QAAQ,CAAC,mBAAmB,EAAE,CAC5B,GAAG,EAAE,KAAK,CAAC,eAAe,CAAC,EAC3B,KAAK,EAAE,SAAS,KACb,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtB;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAC;IAE7B;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,EAAE,CAAC,YAAY,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrE"}
1
+ {"version":3,"file":"abstractExtractor.d.ts","sourceRoot":"","sources":["../lib/abstractExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,8BAAsB,iBAAiB,CACrC,eAAe,EACf,eAAe,SAAS,aAAa;IAErC;;;;;;;;OAQG;IACH,QAAQ,CAAC,mBAAmB,EAAE,CAC5B,GAAG,EAAE,KAAK,CAAC,eAAe,CAAC,EAC3B,KAAK,EAAE,SAAS,KACb,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtB;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAC;IAE7B;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,EAAE,CAAC,YAAY,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;;;;OAMG;IACH,QAAQ,CAAC,qBAAqB,EAAE,MAC5B,kBAAkB,CAAC,eAAe,CAAC,GACnC,SAAS,CAAC;CACf"}
@@ -1,3 +1,3 @@
1
1
  export class AbstractExtractor {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RFeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvYWJzdHJhY3RFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFnQixpQkFBaUI7Q0F3Q3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmxvY2tJbmZvIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RFeHRyYWN0b3I8VHJhbnNhY3Rpb25UeXBlPiB7XG4gIC8qKlxuICAgKiBQcm9jZXNzIGEgbGlzdCBvZiB0cmFuc2FjdGlvbnMgKG9yIG90aGVyIGJsb2NrY2hhaW4gZGF0YSkgaW4gYSBibG9jayBhbmQgc3RvcmUgcmVxdWlyZWQgaW5mb3JtYXRpb24uXG4gICAqIFRoaXMgbWV0aG9kIGlzIHRoZSBjb3JlIG9mIHRoZSBleHRyYWN0aW9uIHByb2Nlc3MgYW5kIHNob3VsZCBiZSBpbXBsZW1lbnRlZCB0byBoYW5kbGVcbiAgICogdGhlIHNwZWNpZmljIGRhdGEgZXh0cmFjdGlvbiBsb2dpYyBmb3IgeW91ciBibG9ja2NoYWluLlxuICAgKlxuICAgKiBAcGFyYW0gdHhzIC0gTGlzdCBvZiB0cmFuc2FjdGlvbnMgb3IgYmxvY2tjaGFpbiBkYXRhIHN0cnVjdHVyZXMgaW4gdGhlIGJsb2NrXG4gICAqIEBwYXJhbSBibG9jayAtIEJsb2NrIGluZm9ybWF0aW9uIGNvbnRhaW5pbmcgbWV0YWRhdGEgYWJvdXQgdGhlIGJsb2NrXG4gICAqIEByZXR1cm5zIFByb21pc2U8Ym9vbGVhbj4gLSB0cnVlIGlmIHRoZSBwcm9jZXNzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHksIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgYWJzdHJhY3QgcHJvY2Vzc1RyYW5zYWN0aW9uczogKFxuICAgIHR4czogQXJyYXk8VHJhbnNhY3Rpb25UeXBlPixcbiAgICBibG9jazogQmxvY2tJbmZvLFxuICApID0+IFByb21pc2U8Ym9vbGVhbj47XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGV4dHJhY3Rvci5cbiAgICogVGhpcyBJRCBtdXN0IGJlIHVuaXF1ZSBhY3Jvc3MgYWxsIGV4dHJhY3RvcnMgaW4gdGhlIHN5c3RlbSB0byBwcmV2ZW50IGNvbmZsaWN0cy5cbiAgICpcbiAgICogQHJldHVybnMgc3RyaW5nIC0gVW5pcXVlIGV4dHJhY3RvciBpZGVudGlmaWVyXG4gICAqL1xuICBhYnN0cmFjdCBnZXRJZDogKCkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGb3JrIChyb2xsYmFjaykgb25lIGJsb2NrIGFuZCByZW1vdmUgYWxsIHN0b3JlZCBpbmZvcm1hdGlvbiBmb3IgdGhpcyBibG9jay5cbiAgICogVGhpcyBpcyBlc3NlbnRpYWwgZm9yIGhhbmRsaW5nIGJsb2NrY2hhaW4gcmVvcmdhbml6YXRpb25zIHdoZXJlIGJsb2Nrc1xuICAgKiBuZWVkIHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgZGF0YWJhc2UuXG4gICAqXG4gICAqIEBwYXJhbSBoYXNoIC0gQmxvY2sgaGFzaCB0byBmb3JrL3JlbW92ZVxuICAgKi9cbiAgYWJzdHJhY3QgZm9ya0Jsb2NrOiAoaGFzaDogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIGV4dHJhY3RvciBkYXRhYmFzZSB3aXRoIGhpc3RvcmljYWwgZGF0YSBjcmVhdGVkIGJlbG93IHRoZSBpbml0aWFsIGhlaWdodC5cbiAgICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIGR1cmluZyBleHRyYWN0b3Igc2V0dXAgdG8gcG9wdWxhdGUgdGhlIGRhdGFiYXNlIHdpdGhcbiAgICogZGF0YSB0aGF0IGV4aXN0ZWQgYmVmb3JlIHRoZSBzY2FubmVyIHN0YXJ0ZWQgbW9uaXRvcmluZy5cbiAgICpcbiAgICogQHBhcmFtIGluaXRpYWxCbG9jayAtIFRoZSBibG9jayBmcm9tIHdoaWNoIHRvIHN0YXJ0IHNjYW5uaW5nIChpbml0aWFsIGhlaWdodClcbiAgICovXG4gIGFic3RyYWN0IGluaXRpYWxpemVEYXRhOiAoaW5pdGlhbEJsb2NrOiBCbG9ja0luZm8pID0+IFByb21pc2U8dm9pZD47XG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RFeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvYWJzdHJhY3RFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsTUFBTSxPQUFnQixpQkFBaUI7Q0FzRHRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgT2JqZWN0TGl0ZXJhbCxcbiAgU2VsZWN0UXVlcnlCdWlsZGVyLFxufSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuaW1wb3J0IHsgQmxvY2tJbmZvIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RFeHRyYWN0b3I8XG4gIFRyYW5zYWN0aW9uVHlwZSxcbiAgRXh0cmFjdG9yRW50aXR5IGV4dGVuZHMgT2JqZWN0TGl0ZXJhbCxcbj4ge1xuICAvKipcbiAgICogUHJvY2VzcyBhIGxpc3Qgb2YgdHJhbnNhY3Rpb25zIChvciBvdGhlciBibG9ja2NoYWluIGRhdGEpIGluIGEgYmxvY2sgYW5kIHN0b3JlIHJlcXVpcmVkIGluZm9ybWF0aW9uLlxuICAgKiBUaGlzIG1ldGhvZCBpcyB0aGUgY29yZSBvZiB0aGUgZXh0cmFjdGlvbiBwcm9jZXNzIGFuZCBzaG91bGQgYmUgaW1wbGVtZW50ZWQgdG8gaGFuZGxlXG4gICAqIHRoZSBzcGVjaWZpYyBkYXRhIGV4dHJhY3Rpb24gbG9naWMgZm9yIHlvdXIgYmxvY2tjaGFpbi5cbiAgICpcbiAgICogQHBhcmFtIHR4cyAtIExpc3Qgb2YgdHJhbnNhY3Rpb25zIG9yIGJsb2NrY2hhaW4gZGF0YSBzdHJ1Y3R1cmVzIGluIHRoZSBibG9ja1xuICAgKiBAcGFyYW0gYmxvY2sgLSBCbG9jayBpbmZvcm1hdGlvbiBjb250YWluaW5nIG1ldGFkYXRhIGFib3V0IHRoZSBibG9ja1xuICAgKiBAcmV0dXJucyBQcm9taXNlPGJvb2xlYW4+IC0gdHJ1ZSBpZiB0aGUgcHJvY2VzcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIGFic3RyYWN0IHByb2Nlc3NUcmFuc2FjdGlvbnM6IChcbiAgICB0eHM6IEFycmF5PFRyYW5zYWN0aW9uVHlwZT4sXG4gICAgYmxvY2s6IEJsb2NrSW5mbyxcbiAgKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBleHRyYWN0b3IuXG4gICAqIFRoaXMgSUQgbXVzdCBiZSB1bmlxdWUgYWNyb3NzIGFsbCBleHRyYWN0b3JzIGluIHRoZSBzeXN0ZW0gdG8gcHJldmVudCBjb25mbGljdHMuXG4gICAqXG4gICAqIEByZXR1cm5zIHN0cmluZyAtIFVuaXF1ZSBleHRyYWN0b3IgaWRlbnRpZmllclxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0SWQ6ICgpID0+IHN0cmluZztcblxuICAvKipcbiAgICogRm9yayAocm9sbGJhY2spIG9uZSBibG9jayBhbmQgcmVtb3ZlIGFsbCBzdG9yZWQgaW5mb3JtYXRpb24gZm9yIHRoaXMgYmxvY2suXG4gICAqIFRoaXMgaXMgZXNzZW50aWFsIGZvciBoYW5kbGluZyBibG9ja2NoYWluIHJlb3JnYW5pemF0aW9ucyB3aGVyZSBibG9ja3NcbiAgICogbmVlZCB0byBiZSByZW1vdmVkIGZyb20gdGhlIGRhdGFiYXNlLlxuICAgKlxuICAgKiBAcGFyYW0gaGFzaCAtIEJsb2NrIGhhc2ggdG8gZm9yay9yZW1vdmVcbiAgICovXG4gIGFic3RyYWN0IGZvcmtCbG9jazogKGhhc2g6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSBleHRyYWN0b3IgZGF0YWJhc2Ugd2l0aCBoaXN0b3JpY2FsIGRhdGEgY3JlYXRlZCBiZWxvdyB0aGUgaW5pdGlhbCBoZWlnaHQuXG4gICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBkdXJpbmcgZXh0cmFjdG9yIHNldHVwIHRvIHBvcHVsYXRlIHRoZSBkYXRhYmFzZSB3aXRoXG4gICAqIGRhdGEgdGhhdCBleGlzdGVkIGJlZm9yZSB0aGUgc2Nhbm5lciBzdGFydGVkIG1vbml0b3JpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBpbml0aWFsQmxvY2sgLSBUaGUgYmxvY2sgZnJvbSB3aGljaCB0byBzdGFydCBzY2FubmluZyAoaW5pdGlhbCBoZWlnaHQpXG4gICAqL1xuICBhYnN0cmFjdCBpbml0aWFsaXplRGF0YTogKGluaXRpYWxCbG9jazogQmxvY2tJbmZvKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBxdWVyeSBmb3IgdXNlZCBibG9ja3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBgZXh0cmFjdG9ySWRgXG4gICAqIFRoaXMgbWV0aG9kIG9ubHkgYnVpbGRzIHRoZSBxdWVyeSBhbmQgZG9lcyBub3QgZXhlY3V0ZSBpdFxuICAgKlxuICAgKiBAcmV0dXJucyBBIFR5cGVPUk0gU2VsZWN0UXVlcnlCdWlsZGVyIHRoYXQgc2VsZWN0cyB1c2VkIGJsb2NrIHZhbHVlcyBvclxuICAgKiBgdW5kZWZpbmVkYCBpZiB0aGUgZXh0cmFjdG9yIGhhcyBubyBhc3NvY2lhdGVkIGVudGl0eVxuICAgKi9cbiAgYWJzdHJhY3QgY3JlYXRlVXNlZEJsb2Nrc1F1ZXJ5OiAoKSA9PlxuICAgIHwgU2VsZWN0UXVlcnlCdWlsZGVyPEV4dHJhY3RvckVudGl0eT5cbiAgICB8IHVuZGVmaW5lZDtcbn1cbiJdfQ==
@@ -1,5 +1,4 @@
1
1
  export declare const API_LIMIT = 100;
2
2
  export declare const RETRIAL_COUNT = 10;
3
3
  export declare const DB_CHUNK_SIZE = 100;
4
- export declare const MAX_PARALLEL_REQUESTS = 10;
5
4
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,aAAa,MAAM,CAAC;AACjC,eAAO,MAAM,qBAAqB,KAAK,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,aAAa,MAAM,CAAC"}
package/dist/constants.js CHANGED
@@ -1,5 +1,4 @@
1
1
  export const API_LIMIT = 100;
2
2
  export const RETRIAL_COUNT = 10;
3
3
  export const DB_CHUNK_SIZE = 100;
4
- export const MAX_PARALLEL_REQUESTS = 10;
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDO0FBQzdCLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUM7QUFDaEMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQztBQUNqQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQVBJX0xJTUlUID0gMTAwO1xuZXhwb3J0IGNvbnN0IFJFVFJJQUxfQ09VTlQgPSAxMDtcbmV4cG9ydCBjb25zdCBEQl9DSFVOS19TSVpFID0gMTAwO1xuZXhwb3J0IGNvbnN0IE1BWF9QQVJBTExFTF9SRVFVRVNUUyA9IDEwO1xuIl19
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDO0FBQzdCLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUM7QUFDaEMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBBUElfTElNSVQgPSAxMDA7XG5leHBvcnQgY29uc3QgUkVUUklBTF9DT1VOVCA9IDEwO1xuZXhwb3J0IGNvbnN0IERCX0NIVU5LX1NJWkUgPSAxMDA7XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
2
- import { DataSource, EntityTarget, QueryRunner, Repository } from '@rosen-bridge/extended-typeorm';
2
+ import { DataSource, EntityTarget, QueryRunner, Repository, SelectQueryBuilder } from '@rosen-bridge/extended-typeorm';
3
3
  import { BlockInfo } from '@rosen-bridge/scanner-interfaces';
4
4
  import { AbstractEntityData, EntityInfo } from '../../interfaces';
5
5
  import { AbstractErgoEntity } from '../entities/abstractErgoEntity';
@@ -79,5 +79,13 @@ export declare abstract class AbstractErgoAction<ExtractedData extends AbstractE
79
79
  * @param extractorId
80
80
  */
81
81
  removeAllData: (extractorId: string) => Promise<void>;
82
+ /**
83
+ * Builds a query that returns used blocks by selecting the `block` column from the `ExtractorEntity` repository,
84
+ * filtered by the provided `extractorId`
85
+ *
86
+ * @param extractorId - Identifier of the extractor
87
+ * @returns A query builder selecting used blocks
88
+ */
89
+ createUsedBlocksQuery: (extractorId: string) => SelectQueryBuilder<ExtractorEntity>;
82
90
  }
83
91
  //# sourceMappingURL=abstractErgoAction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"abstractErgoAction.d.ts","sourceRoot":"","sources":["../../../../lib/ergo/database/actions/abstractErgoAction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EACL,UAAU,EACV,YAAY,EAGZ,WAAW,EACX,UAAU,EACX,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,8BAAsB,kBAAkB,CACtC,aAAa,SAAS,kBAAkB,EACxC,eAAe,SAAS,kBAAkB;IAKxC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU;IACzC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,eAAe,CAAC;IACtD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc;IAL3C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;gBAGtC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,YAAY,CAAC,eAAe,CAAC,EACnC,MAAM,GAAE,cAAkC;IAK/D;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,CAC/B,IAAI,EAAE,aAAa,EAAE,EACrB,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,MAAM,KACd,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;IAExC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CACtC,QAAQ,EAAE,eAAe,EAAE,KACxB,aAAa,EAAE,CAAC;IAErB;;;;;;OAMG;IACH,SAAS,CAAC,cAAc,GACtB,aAAa,WAAW,EACxB,kBAAkB,KAAK,CAAC,aAAa,CAAC,EACtC,OAAO,SAAS,EAChB,WAAW,MAAM,mBAMjB;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,YAAY,GACpB,aAAa,WAAW,EACxB,eAAe,aAAa,EAC5B,OAAO,SAAS,EAChB,WAAW,MAAM,mBAWjB;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,kBAAkB,GAC1B,aAAa,WAAW,EACxB,WAAW,MAAM,EACjB,OAAO,MAAM,KACZ,OAAO,CAAC,aAAa,EAAE,CAAC,CAazB;IAEF;;;;;;;OAOG;IACH,SAAS,CAAC,kBAAkB,GAC1B,aAAa,WAAW,EAAE,wDAAwD;IAClF,WAAW,MAAM,EAAE,wDAAwD;IAC3E,OAAO,MAAM,KACZ,OAAO,CAAC,eAAe,EAAE,CAAC,CAE3B;IAEF;;;;;;;OAOG;IACH,eAAe,GACb,OAAO,MAAM,EACb,WAAW,MAAM,KAChB,OAAO,CAAC;QAAE,WAAW,EAAE,aAAa,EAAE,CAAC;QAAC,WAAW,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC,CAgCrE;IAEF;;;;;;;;OAQG;IACH,aAAa,GACX,UAAU,KAAK,CAAC,aAAa,CAAC,EAC9B,OAAO,SAAS,EAChB,WAAW,MAAM,KAChB,OAAO,CAAC,OAAO,CAAC,CA4DjB;IAEF;;;OAGG;IACH,aAAa,GAAU,aAAa,MAAM,mBAKxC;CACH"}
1
+ {"version":3,"file":"abstractErgoAction.d.ts","sourceRoot":"","sources":["../../../../lib/ergo/database/actions/abstractErgoAction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EACL,UAAU,EACV,YAAY,EAGZ,WAAW,EACX,UAAU,EACV,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,8BAAsB,kBAAkB,CACtC,aAAa,SAAS,kBAAkB,EACxC,eAAe,SAAS,kBAAkB;IAKxC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU;IACzC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,eAAe,CAAC;IACtD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc;IAL3C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;gBAGtC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,YAAY,CAAC,eAAe,CAAC,EACnC,MAAM,GAAE,cAAkC;IAK/D;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,CAC/B,IAAI,EAAE,aAAa,EAAE,EACrB,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,MAAM,KACd,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;IAExC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CACtC,QAAQ,EAAE,eAAe,EAAE,KACxB,aAAa,EAAE,CAAC;IAErB;;;;;;OAMG;IACH,SAAS,CAAC,cAAc,GACtB,aAAa,WAAW,EACxB,kBAAkB,KAAK,CAAC,aAAa,CAAC,EACtC,OAAO,SAAS,EAChB,WAAW,MAAM,mBAMjB;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,YAAY,GACpB,aAAa,WAAW,EACxB,eAAe,aAAa,EAC5B,OAAO,SAAS,EAChB,WAAW,MAAM,mBAWjB;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,kBAAkB,GAC1B,aAAa,WAAW,EACxB,WAAW,MAAM,EACjB,OAAO,MAAM,KACZ,OAAO,CAAC,aAAa,EAAE,CAAC,CAazB;IAEF;;;;;;;OAOG;IACH,SAAS,CAAC,kBAAkB,GAC1B,aAAa,WAAW,EAAE,wDAAwD;IAClF,WAAW,MAAM,EAAE,wDAAwD;IAC3E,OAAO,MAAM,KACZ,OAAO,CAAC,eAAe,EAAE,CAAC,CAE3B;IAEF;;;;;;;OAOG;IACH,eAAe,GACb,OAAO,MAAM,EACb,WAAW,MAAM,KAChB,OAAO,CAAC;QAAE,WAAW,EAAE,aAAa,EAAE,CAAC;QAAC,WAAW,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC,CAgCrE;IAEF;;;;;;;;OAQG;IACH,aAAa,GACX,UAAU,KAAK,CAAC,aAAa,CAAC,EAC9B,OAAO,SAAS,EAChB,WAAW,MAAM,KAChB,OAAO,CAAC,OAAO,CAAC,CA4DjB;IAEF;;;OAGG;IACH,aAAa,GAAU,aAAa,MAAM,mBAKxC;IAEF;;;;;;OAMG;IACH,qBAAqB,GACnB,aAAa,MAAM,KAClB,kBAAkB,CAAC,eAAe,CAAC,CAKpC;CACH"}
@@ -163,5 +163,18 @@ export class AbstractErgoAction {
163
163
  extractor: extractorId,
164
164
  });
165
165
  };
166
+ /**
167
+ * Builds a query that returns used blocks by selecting the `block` column from the `ExtractorEntity` repository,
168
+ * filtered by the provided `extractorId`
169
+ *
170
+ * @param extractorId - Identifier of the extractor
171
+ * @returns A query builder selecting used blocks
172
+ */
173
+ createUsedBlocksQuery = (extractorId) => {
174
+ return this.repository
175
+ .createQueryBuilder('extractorEntity')
176
+ .select('extractorEntity.block', 'block')
177
+ .where('extractorEntity.extractor = :extractorId', { extractorId });
178
+ };
166
179
  }
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RFcmdvQWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2VyZ28vZGF0YWJhc2UvYWN0aW9ucy9hYnN0cmFjdEVyZ29BY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFN0MsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBSUwsRUFBRSxHQUdILE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFNbkQsTUFBTSxPQUFnQixrQkFBa0I7SUFPakI7SUFDQTtJQUNBO0lBTEYsVUFBVSxDQUE4QjtJQUUzRCxZQUNxQixVQUFzQixFQUN0QixJQUFtQyxFQUNuQyxTQUF5QixJQUFJLFdBQVcsRUFBRTtRQUYxQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFNBQUksR0FBSixJQUFJLENBQStCO1FBQ25DLFdBQU0sR0FBTixNQUFNLENBQW9DO1FBRTdELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQWtCRDs7Ozs7O09BTUc7SUFDTyxjQUFjLEdBQUcsS0FBSyxFQUM5QixXQUF3QixFQUN4QixnQkFBc0MsRUFDdEMsS0FBZ0IsRUFDaEIsU0FBaUIsRUFDakIsRUFBRTtRQUNGLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRSxNQUFNLFVBQVUsQ0FBQyxNQUFNLENBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBUSxDQUM3RCxDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY7Ozs7OztPQU1HO0lB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Q0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3hDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsTUFBTSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILGFBQWEsR0FBRyxLQUFLLEVBQUUsV0FBbUIsRUFBRSxFQUFFO1FBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDM0IsU0FBUyxFQUFFLFdBQVc7U0FDYyxDQUFDLENBQUM7SUFDMUMsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkaWZmZXJlbmNlLCBwaWNrIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHtcbiAgRGF0YVNvdXJjZSxcbiAgRW50aXR5VGFyZ2V0LFxuICBGaW5kT3B0aW9uc1doZXJlLFxuICBJbixcbiAgUXVlcnlSdW5uZXIsXG4gIFJlcG9zaXRvcnksXG59IGZyb20gJ0Byb3Nlbi1icmlkZ2UvZXh0ZW5kZWQtdHlwZW9ybSc7XG5pbXBvcnQgSnNvbkJpZ0ludCBmcm9tICdAcm9zZW4tYnJpZGdlL2pzb24tYmlnaW50JztcbmltcG9ydCB7IEJsb2NrSW5mbyB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RFbnRpdHlEYXRhLCBFbnRpdHlJbmZvIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBYnN0cmFjdEVyZ29FbnRpdHkgfSBmcm9tICcuLi9lbnRpdGllcy9hYnN0cmFjdEVyZ29FbnRpdHknO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RFcmdvQWN0aW9uPFxuICBFeHRyYWN0ZWREYXRhIGV4dGVuZHMgQWJzdHJhY3RFbnRpdHlEYXRhLFxuICBFeHRyYWN0b3JFbnRpdHkgZXh0ZW5kcyBBYnN0cmFjdEVyZ29FbnRpdHksXG4+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlcG9zaXRvcnk6IFJlcG9zaXRvcnk8RXh0cmFjdG9yRW50aXR5PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF0YVNvdXJjZTogRGF0YVNvdXJjZSxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVwbzogRW50aXR5VGFyZ2V0PEV4dHJhY3RvckVudGl0eT4sXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvZ2dlcjogQWJzdHJhY3RMb2dnZXIgPSBuZXcgRHVtbXlMb2dnZXIoKSxcbiAgKSB7XG4gICAgdGhpcy5yZXBvc2l0b3J5ID0gdGhpcy5kYXRhU291cmNlLmdldFJlcG9zaXRvcnkocmVwbyk7XG4gIH1cblxuICAvKipcbiAgICogY3JlYXRlIHRoZSBkYXRhYmFzZSBlbnRpdHkgZnJvbSBleHRyYWN0ZWQgZGF0YSBhbmQgYmxvY2sgaW5mb3JtYXRpb25cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjcmVhdGVFbnRpdHk6IChcbiAgICBkYXRhOiBFeHRyYWN0ZWREYXRhW10sXG4gICAgYmxvY2s6IEJsb2NrSW5mbyxcbiAgICBleHRyYWN0b3I6IHN0cmluZyxcbiAgKSA9PiBBcnJheTxPbWl0PEV4dHJhY3RvckVudGl0eSwgJ2lkJz4+O1xuXG4gIC8qKlxuICAgKiBjb252ZXJ0IHRoZSBkYXRhYmFzZSBlbnRpdHkgYmFjayB0byByYXcgZGF0YVxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNvbnZlcnRFbnRpdHlUb0RhdGE6IChcbiAgICBlbnRpdGllczogRXh0cmFjdG9yRW50aXR5W10sXG4gICkgPT4gRXh0cmFjdGVkRGF0YVtdO1xuXG4gIC8qKlxuICAgKiBpbnNlcnQgZW50aXRpZXMgZXh0cmFjdGVkIGZyb20gYSBibG9jayB0byBkYXRhYmFzZVxuICAgKiBAcGFyYW0gcXVlcnlSdW5uZXJcbiAgICogQHBhcmFtIGVudGl0aWVzVG9JbnNlcnRcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHByb3RlY3RlZCBpbnNlcnRFbnRpdGllcyA9IGFzeW5jIChcbiAgICBxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIsXG4gICAgZW50aXRpZXNUb0luc2VydDogQXJyYXk8RXh0cmFjdGVkRGF0YT4sXG4gICAgYmxvY2s6IEJsb2NrSW5mbyxcbiAgICBleHRyYWN0b3I6IHN0cmluZyxcbiAgKSA9PiB7XG4gICAgY29uc3QgcmVwb3NpdG9yeSA9IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeSh0aGlzLnJlcG8pO1xuICAgIGF3YWl0IHJlcG9zaXRvcnkuaW5zZXJ0KFxuICAgICAgdGhpcy5jcmVhdGVFbnRpdHkoZW50aXRpZXNUb0luc2VydCwgYmxvY2ssIGV4dHJhY3RvcikgYXMgYW55LCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiB1cGRhdGUgYW4gZW50aXR5IGluIHRoZSBkYXRhYmFzZVxuICAgKiBAcGFyYW0gcXVlcnlSdW5uZXJcbiAgICogQHBhcmFtIHVwZGF0ZUVudGl0eVxuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgcHJvdGVjdGVkIHVwZGF0ZUVudGl0eSA9IGFzeW5jIChcbiAgICBxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIsXG4gICAgdXBkYXRlZEVudGl0eTogRXh0cmFjdGVkRGF0YSxcbiAgICBibG9jazogQmxvY2tJbmZvLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nLFxuICApID0+IHtcbiAgICBjb25zdCByZXBvc2l0b3J5ID0gcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KHRoaXMucmVwbyk7XG4gICAgY29uc3QgZW50aXR5ID0gdGhpcy5jcmVhdGVFbnRpdHkoW3VwZGF0ZWRFbnRpdHldLCBibG9jaywgZXh0cmFjdG9yKVswXTtcbiAgICBhd2FpdCByZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgIHtcbiAgICAgICAgaWRlbnRpZmllcjogZW50aXR5LmlkZW50aWZpZXIsXG4gICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgfSBhcyBGaW5kT3B0aW9uc1doZXJlPEV4dHJhY3RvckVudGl0eT4sXG4gICAgICBlbnRpdHkgYXMgYW55LCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBkZWxldGUgYWxsIGRhdGFiYXNlIHJlY29yZHMgdGhhdCB3ZXJlIGNyZWF0ZWQgZnJvbSBhIHNwZWNpZmljIGJsb2NrXG4gICAqIEBwYXJhbSBxdWVyeVJ1bm5lclxuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJvdGVjdGVkIGRlbGV0ZUJsb2NrUmVjb3JkcyA9IGFzeW5jIChcbiAgICBxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIsXG4gICAgZXh0cmFjdG9yOiBzdHJpbmcsXG4gICAgYmxvY2s6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxFeHRyYWN0ZWREYXRhW10+ID0+IHtcbiAgICBjb25zdCByZXBvc2l0b3J5ID0gcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KHRoaXMucmVwbyk7XG4gICAgY29uc3QgZGVsZXRlZERhdGEgPSBhd2FpdCByZXBvc2l0b3J5LmZpbmQoe1xuICAgICAgd2hlcmU6IHtcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgIGJsb2NrOiBibG9jayxcbiAgICAgIH0gYXMgRmluZE9wdGlvbnNXaGVyZTxFeHRyYWN0b3JFbnRpdHk+LFxuICAgIH0pO1xuICAgIGF3YWl0IHJlcG9zaXRvcnkuZGVsZXRlKHtcbiAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgYmxvY2s6IGJsb2NrLFxuICAgIH0gYXMgdW5rbm93biBhcyBGaW5kT3B0aW9uc1doZXJlPEV4dHJhY3RvckVudGl0eT4pO1xuICAgIHJldHVybiB0aGlzLmNvbnZlcnRFbnRpdHlUb0RhdGEoZGVsZXRlZERhdGEpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byByZXZlcnQgdGhlIHVwZGF0ZXMgbWFkZSB0byBlbnRpdGllcyB3aGVuIGEgYmxvY2sgaXMgZGVsZXRlZFxuICAgKiBlLmcuLCBtYXJrIGJveGVzIGFzIHVuc3BlbnQsIHVwZGF0ZSByZWxhdGVkIGVudGl0aWVzLCBldGMuXG4gICAqIEBwYXJhbSBxdWVyeVJ1bm5lclxuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJvdGVjdGVkIHJldmVydEJsb2NrVXBkYXRlcyA9IGFzeW5jIChcbiAgICBxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIsIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgZXh0cmFjdG9yOiBzdHJpbmcsIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgYmxvY2s6IHN0cmluZywgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgKTogUHJvbWlzZTxFeHRyYWN0b3JFbnRpdHlbXT4gPT4ge1xuICAgIHJldHVybiBbXTtcbiAgfTtcblxuICAvKipcbiAgICogZGVsZXRlIGV4dHJhY3RlZCBkYXRhIGZyb20gYSBzcGVjaWZpYyBibG9ja1xuICAgKiBpZiBhbiBlbnRpdHkgaXMgdXBkYXRlZCB1c2luZyB0aGUgZGF0YSBpbiB0aGlzIGJsb2NrIHJldmVydCB0aGUgdXBkYXRlXG4gICAqIGlmIGFuIGVudGl0eSBpcyBjcmVhdGVkIGluIHRoaXMgYmxvY2sgcmVtb3ZlIGl0IGZyb20gZGF0YWJhc2VcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICogQHJldHVybiBkZWxldGVkIGl0ZW1zIGFuZCB1cGRhdGVkIGVudGl0eSBpZGVudGlmaWVyc1xuICAgKi9cbiAgZGVsZXRlQmxvY2tEYXRhID0gYXN5bmMgKFxuICAgIGJsb2NrOiBzdHJpbmcsXG4gICAgZXh0cmFjdG9yOiBzdHJpbmcsXG4gICk6IFByb21pc2U8eyBkZWxldGVkRGF0YTogRXh0cmFjdGVkRGF0YVtdOyB1cGRhdGVkRGF0YTogRW50aXR5SW5mb1tdIH0+ID0+IHtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgYERlbGV0aW5nIGRhdGEgaW4gYmxvY2sgJHtibG9ja30gYW5kIGV4dHJhY3RvciAke2V4dHJhY3Rvcn1gLFxuICAgICk7XG4gICAgY29uc3QgcXVlcnlSdW5uZXIgPSB0aGlzLmRhdGFTb3VyY2UuY3JlYXRlUXVlcnlSdW5uZXIoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb25uZWN0KCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuc3RhcnRUcmFuc2FjdGlvbigpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB1cGRhdGVkRGF0YSA9IGF3YWl0IHRoaXMucmV2ZXJ0QmxvY2tVcGRhdGVzKFxuICAgICAgICBxdWVyeVJ1bm5lcixcbiAgICAgICAgZXh0cmFjdG9yLFxuICAgICAgICBibG9jayxcbiAgICAgICk7XG4gICAgICBjb25zdCBkZWxldGVkRGF0YSA9IGF3YWl0IHRoaXMuZGVsZXRlQmxvY2tSZWNvcmRzKFxuICAgICAgICBxdWVyeVJ1bm5lcixcbiAgICAgICAgZXh0cmFjdG9yLFxuICAgICAgICBibG9jayxcbiAgICAgICk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBEZWxldGVkIGRhdGEgc3VjY2Vzc2Z1bGx5IGluIGJsb2NrICR7YmxvY2t9IGFuZCBleHRyYWN0b3IgJHtleHRyYWN0b3J9YCxcbiAgICAgICk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkZWxldGVkRGF0YSxcbiAgICAgICAgdXBkYXRlZERhdGE6IHVwZGF0ZWREYXRhLm1hcCgoZGF0YSkgPT4gcGljayhkYXRhLCAnaWRlbnRpZmllcicpKSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBpbnNlcnQgYWxsIGV4dHJhY3RlZCBlbnRpdHkgZGF0YSBpbiBhbiBhdG9taWMgdHJhbnNhY3Rpb25cbiAgICogdXBkYXRlIHRoZSBkYXRhIGlmIGEgZW50aXR5IHdpdGggdGhlIHNhbWUgaWQgaXMgYWxyZWFkeSBzdG9yZWQgaW4gZGJcbiAgICogQHBhcmFtIGVudGl0aWVzXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqIEByZXR1cm4gaW5zZXJ0ZWQgaXRlbXMgYW5kIHVwZGF0ZWQgZW50aXR5IGlkZW50aWZpZXJzXG4gICAqIHJldHVybnMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgYW55IHByb2JsZW1cbiAgICovXG4gIHN0b3JlRW50aXRpZXMgPSBhc3luYyAoXG4gICAgZW50aXRpZXM6IEFycmF5PEV4dHJhY3RlZERhdGE+LFxuICAgIGJsb2NrOiBCbG9ja0luZm8sXG4gICAgZXh0cmFjdG9yOiBzdHJpbmcsXG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgYFN0b3JpbmcgZW50aXRpZXMgaW4gYmxvY2sgJHtibG9ja30gYW5kIGV4dHJhY3RvciAke2V4dHJhY3Rvcn1gLFxuICAgICk7XG4gICAgbGV0IGVudGl0aWVzVG9JbnNlcnQ6IEV4dHJhY3RlZERhdGFbXSA9IFtdLFxuICAgICAgZW50aXRpZXNUb1VwZGF0ZTogRXh0cmFjdGVkRGF0YVtdID0gW107XG4gICAgY29uc3QgcXVlcnlSdW5uZXIgPSB0aGlzLmRhdGFTb3VyY2UuY3JlYXRlUXVlcnlSdW5uZXIoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb25uZWN0KCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuc3RhcnRUcmFuc2FjdGlvbigpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXBvc2l0b3J5ID0gcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KHRoaXMucmVwbyk7XG4gICAgICBjb25zdCBkYkVudGl0eUlkZW50aWZpZXJzID0gKFxuICAgICAgICBhd2FpdCByZXBvc2l0b3J5LmZpbmRCeSh7XG4gICAgICAgICAgaWRlbnRpZmllcjogSW4oZW50aXRpZXMubWFwKChpdGVtKSA9PiBpdGVtLmlkZW50aWZpZXIpKSxcbiAgICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgICAgfSBhcyBGaW5kT3B0aW9uc1doZXJlPEV4dHJhY3RvckVudGl0eT4pXG4gICAgICApLm1hcCgoZW50aXR5KSA9PiBlbnRpdHkuaWRlbnRpZmllcik7XG4gICAgICBpZiAoZGJFbnRpdHlJZGVudGlmaWVycy5sZW5ndGggPiAwKVxuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBgRm91bmQgc3RvcmVkIGVudGl0aWVzIHdpdGggc2FtZSBpZGVudGlmaWVyYCxcbiAgICAgICAgICBkYkVudGl0eUlkZW50aWZpZXJzLFxuICAgICAgICApO1xuXG4gICAgICBlbnRpdGllc1RvVXBkYXRlID0gZW50aXRpZXMuZmlsdGVyKChlbnRpdHkpID0+XG4gICAgICAgIGRiRW50aXR5SWRlbnRpZmllcnMuaW5jbHVkZXMoZW50aXR5LmlkZW50aWZpZXIpLFxuICAgICAgKTtcbiAgICAgIGVudGl0aWVzVG9JbnNlcnQgPSBkaWZmZXJlbmNlKGVudGl0aWVzLCBlbnRpdGllc1RvVXBkYXRlKTtcblxuICAgICAgaWYgKGVudGl0aWVzVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBgSW5zZXJ0aW5nICR7ZW50aXRpZXNUb0luc2VydC5sZW5ndGh9IG5ldyBlbnRpdGllcyB0byBkYXRhYmFzZWAsXG4gICAgICAgICk7XG4gICAgICAgIGF3YWl0IHRoaXMuaW5zZXJ0RW50aXRpZXMoXG4gICAgICAgICAgcXVlcnlSdW5uZXIsXG4gICAgICAgICAgZW50aXRpZXNUb0luc2VydCxcbiAgICAgICAgICBibG9jayxcbiAgICAgICAgICBleHRyYWN0b3IsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAoZW50aXRpZXNUb1VwZGF0ZS5sZW5ndGggPiAwKVxuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgIGBVcGRhdGluZyBlbnRpdGllcyB3aXRoIGZvbGxvd2luZyBJZHMgaW4gdGhlIGRhdGFiYXNlOiBbJHtlbnRpdGllc1RvVXBkYXRlXG4gICAgICAgICAgICAubWFwKChlbnRpdHkpID0+IGVudGl0eS5pZGVudGlmaWVyKVxuICAgICAgICAgICAgLmpvaW4oJywgJyl9XWAsXG4gICAgICAgICk7XG4gICAgICBmb3IgKGNvbnN0IGVudGl0eSBvZiBlbnRpdGllc1RvVXBkYXRlKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGBVcGRhdGluZyBlbnRpdGllcyBpbiBkYXRhYmFzZSBbJHtKc29uQmlnSW50LnN0cmluZ2lmeShlbnRpdHkpfV1gLFxuICAgICAgICApO1xuICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZUVudGl0eShxdWVyeVJ1bm5lciwgZW50aXR5LCBibG9jaywgZXh0cmFjdG9yKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihgQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHN0b3JlIGVudGl0aWVzIGFjdGlvbjogJHtlfWApO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiByZW1vdmUgYWxsIGV4aXN0aW5nIGRhdGEgZm9yIHRoZSBleHRyYWN0b3JcbiAgICogQHBhcmFtIGV4dHJhY3RvcklkXG4gICAqL1xuICByZW1vdmVBbGxEYXRhID0gYXN5bmMgKGV4dHJhY3RvcklkOiBzdHJpbmcpID0+IHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgUmVtb3ZpbmcgYWxsIG9sZCBkYXRhIGZvciBleHRyYWN0b3IgJHtleHRyYWN0b3JJZH1gKTtcbiAgICBhd2FpdCB0aGlzLnJlcG9zaXRvcnkuZGVsZXRlKHtcbiAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9ySWQsXG4gICAgfSBhcyBGaW5kT3B0aW9uc1doZXJlPEV4dHJhY3RvckVudGl0eT4pO1xuICB9O1xufVxuIl19
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RFcmdvQWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2VyZ28vZGF0YWJhc2UvYWN0aW9ucy9hYnN0cmFjdEVyZ29BY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFN0MsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBSUwsRUFBRSxHQUlILE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFNbkQsTUFBTSxPQUFnQixrQkFBa0I7SUFPakI7SUFDQTtJQUNBO0lBTEYsVUFBVSxDQUE4QjtJQUUzRCxZQUNxQixVQUFzQixFQUN0QixJQUFtQyxFQUNuQyxTQUF5QixJQUFJLFdBQVcsRUFBRTtRQUYxQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFNBQUksR0FBSixJQUFJLENBQStCO1FBQ25DLFdBQU0sR0FBTixNQUFNLENBQW9DO1FBRTdELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQWtCRDs7Ozs7O09BTUc7SUFDTyxjQUFjLEdBQUcsS0FBSyxFQUM5QixXQUF3QixFQUN4QixnQkFBc0MsRUFDdEMsS0FBZ0IsRUFDaEIsU0FBaUIsRUFDakIsRUFBRTtRQUNGLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRSxNQUFNLFVBQVUsQ0FBQyxNQUFNLENBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBUSxDQUM3RCxDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY7Ozs7OztPQU1HO0lB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Q0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3hDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsTUFBTSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILGFBQWEsR0FBRyxLQUFLLEVBQUUsV0FBbUIsRUFBRSxFQUFFO1FBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDM0IsU0FBUyxFQUFFLFdBQVc7U0FDYyxDQUFDLENBQUM7SUFDMUMsQ0FBQyxDQUFDO0lBRUY7Ozs7OztPQU1HO0lBQ0gscUJBQXFCLEdBQUcsQ0FDdEIsV0FBbUIsRUFDa0IsRUFBRTtRQUN2QyxPQUFPLElBQUksQ0FBQyxVQUFVO2FBQ25CLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDO2FBQ3JDLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxPQUFPLENBQUM7YUFDeEMsS0FBSyxDQUFDLDBDQUEwQyxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN4RSxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRpZmZlcmVuY2UsIHBpY2sgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciwgRHVtbXlMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQge1xuICBEYXRhU291cmNlLFxuICBFbnRpdHlUYXJnZXQsXG4gIEZpbmRPcHRpb25zV2hlcmUsXG4gIEluLFxuICBRdWVyeVJ1bm5lcixcbiAgUmVwb3NpdG9yeSxcbiAgU2VsZWN0UXVlcnlCdWlsZGVyLFxufSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuaW1wb3J0IEpzb25CaWdJbnQgZnJvbSAnQHJvc2VuLWJyaWRnZS9qc29uLWJpZ2ludCc7XG5pbXBvcnQgeyBCbG9ja0luZm8gfSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXItaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7IEFic3RyYWN0RW50aXR5RGF0YSwgRW50aXR5SW5mbyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RFcmdvRW50aXR5IH0gZnJvbSAnLi4vZW50aXRpZXMvYWJzdHJhY3RFcmdvRW50aXR5JztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RXJnb0FjdGlvbjxcbiAgRXh0cmFjdGVkRGF0YSBleHRlbmRzIEFic3RyYWN0RW50aXR5RGF0YSxcbiAgRXh0cmFjdG9yRW50aXR5IGV4dGVuZHMgQWJzdHJhY3RFcmdvRW50aXR5LFxuPiB7XG4gIHByb3RlY3RlZCByZWFkb25seSByZXBvc2l0b3J5OiBSZXBvc2l0b3J5PEV4dHJhY3RvckVudGl0eT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlcG86IEVudGl0eVRhcmdldDxFeHRyYWN0b3JFbnRpdHk+LFxuICAgIHByb3RlY3RlZCByZWFkb25seSBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyID0gbmV3IER1bW15TG9nZ2VyKCksXG4gICkge1xuICAgIHRoaXMucmVwb3NpdG9yeSA9IHRoaXMuZGF0YVNvdXJjZS5nZXRSZXBvc2l0b3J5KHJlcG8pO1xuICB9XG5cbiAgLyoqXG4gICAqIGNyZWF0ZSB0aGUgZGF0YWJhc2UgZW50aXR5IGZyb20gZXh0cmFjdGVkIGRhdGEgYW5kIGJsb2NrIGluZm9ybWF0aW9uXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlRW50aXR5OiAoXG4gICAgZGF0YTogRXh0cmFjdGVkRGF0YVtdLFxuICAgIGJsb2NrOiBCbG9ja0luZm8sXG4gICAgZXh0cmFjdG9yOiBzdHJpbmcsXG4gICkgPT4gQXJyYXk8T21pdDxFeHRyYWN0b3JFbnRpdHksICdpZCc+PjtcblxuICAvKipcbiAgICogY29udmVydCB0aGUgZGF0YWJhc2UgZW50aXR5IGJhY2sgdG8gcmF3IGRhdGFcbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjb252ZXJ0RW50aXR5VG9EYXRhOiAoXG4gICAgZW50aXRpZXM6IEV4dHJhY3RvckVudGl0eVtdLFxuICApID0+IEV4dHJhY3RlZERhdGFbXTtcblxuICAvKipcbiAgICogaW5zZXJ0IGVudGl0aWVzIGV4dHJhY3RlZCBmcm9tIGEgYmxvY2sgdG8gZGF0YWJhc2VcbiAgICogQHBhcmFtIHF1ZXJ5UnVubmVyXG4gICAqIEBwYXJhbSBlbnRpdGllc1RvSW5zZXJ0XG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICBwcm90ZWN0ZWQgaW5zZXJ0RW50aXRpZXMgPSBhc3luYyAoXG4gICAgcXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyLFxuICAgIGVudGl0aWVzVG9JbnNlcnQ6IEFycmF5PEV4dHJhY3RlZERhdGE+LFxuICAgIGJsb2NrOiBCbG9ja0luZm8sXG4gICAgZXh0cmFjdG9yOiBzdHJpbmcsXG4gICkgPT4ge1xuICAgIGNvbnN0IHJlcG9zaXRvcnkgPSBxdWVyeVJ1bm5lci5tYW5hZ2VyLmdldFJlcG9zaXRvcnkodGhpcy5yZXBvKTtcbiAgICBhd2FpdCByZXBvc2l0b3J5Lmluc2VydChcbiAgICAgIHRoaXMuY3JlYXRlRW50aXR5KGVudGl0aWVzVG9JbnNlcnQsIGJsb2NrLCBleHRyYWN0b3IpIGFzIGFueSwgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogdXBkYXRlIGFuIGVudGl0eSBpbiB0aGUgZGF0YWJhc2VcbiAgICogQHBhcmFtIHF1ZXJ5UnVubmVyXG4gICAqIEBwYXJhbSB1cGRhdGVFbnRpdHlcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHByb3RlY3RlZCB1cGRhdGVFbnRpdHkgPSBhc3luYyAoXG4gICAgcXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyLFxuICAgIHVwZGF0ZWRFbnRpdHk6IEV4dHJhY3RlZERhdGEsXG4gICAgYmxvY2s6IEJsb2NrSW5mbyxcbiAgICBleHRyYWN0b3I6IHN0cmluZyxcbiAgKSA9PiB7XG4gICAgY29uc3QgcmVwb3NpdG9yeSA9IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeSh0aGlzLnJlcG8pO1xuICAgIGNvbnN0IGVudGl0eSA9IHRoaXMuY3JlYXRlRW50aXR5KFt1cGRhdGVkRW50aXR5XSwgYmxvY2ssIGV4dHJhY3RvcilbMF07XG4gICAgYXdhaXQgcmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICB7XG4gICAgICAgIGlkZW50aWZpZXI6IGVudGl0eS5pZGVudGlmaWVyLFxuICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgIH0gYXMgRmluZE9wdGlvbnNXaGVyZTxFeHRyYWN0b3JFbnRpdHk+LFxuICAgICAgZW50aXR5IGFzIGFueSwgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogZGVsZXRlIGFsbCBkYXRhYmFzZSByZWNvcmRzIHRoYXQgd2VyZSBjcmVhdGVkIGZyb20gYSBzcGVjaWZpYyBibG9ja1xuICAgKiBAcGFyYW0gcXVlcnlSdW5uZXJcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHJldHVybnNcbiAgICovXG4gIHByb3RlY3RlZCBkZWxldGVCbG9ja1JlY29yZHMgPSBhc3luYyAoXG4gICAgcXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nLFxuICAgIGJsb2NrOiBzdHJpbmcsXG4gICk6IFByb21pc2U8RXh0cmFjdGVkRGF0YVtdPiA9PiB7XG4gICAgY29uc3QgcmVwb3NpdG9yeSA9IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeSh0aGlzLnJlcG8pO1xuICAgIGNvbnN0IGRlbGV0ZWREYXRhID0gYXdhaXQgcmVwb3NpdG9yeS5maW5kKHtcbiAgICAgIHdoZXJlOiB7XG4gICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICBibG9jazogYmxvY2ssXG4gICAgICB9IGFzIEZpbmRPcHRpb25zV2hlcmU8RXh0cmFjdG9yRW50aXR5PixcbiAgICB9KTtcbiAgICBhd2FpdCByZXBvc2l0b3J5LmRlbGV0ZSh7XG4gICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgIGJsb2NrOiBibG9jayxcbiAgICB9IGFzIHVua25vd24gYXMgRmluZE9wdGlvbnNXaGVyZTxFeHRyYWN0b3JFbnRpdHk+KTtcbiAgICByZXR1cm4gdGhpcy5jb252ZXJ0RW50aXR5VG9EYXRhKGRlbGV0ZWREYXRhKTtcbiAgfTtcblxuICAvKipcbiAgICogb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gcmV2ZXJ0IHRoZSB1cGRhdGVzIG1hZGUgdG8gZW50aXRpZXMgd2hlbiBhIGJsb2NrIGlzIGRlbGV0ZWRcbiAgICogZS5nLiwgbWFyayBib3hlcyBhcyB1bnNwZW50LCB1cGRhdGUgcmVsYXRlZCBlbnRpdGllcywgZXRjLlxuICAgKiBAcGFyYW0gcXVlcnlSdW5uZXJcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHJldHVybnNcbiAgICovXG4gIHByb3RlY3RlZCByZXZlcnRCbG9ja1VwZGF0ZXMgPSBhc3luYyAoXG4gICAgcXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGV4dHJhY3Rvcjogc3RyaW5nLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGJsb2NrOiBzdHJpbmcsIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICk6IFByb21pc2U8RXh0cmFjdG9yRW50aXR5W10+ID0+IHtcbiAgICByZXR1cm4gW107XG4gIH07XG5cbiAgLyoqXG4gICAqIGRlbGV0ZSBleHRyYWN0ZWQgZGF0YSBmcm9tIGEgc3BlY2lmaWMgYmxvY2tcbiAgICogaWYgYW4gZW50aXR5IGlzIHVwZGF0ZWQgdXNpbmcgdGhlIGRhdGEgaW4gdGhpcyBibG9jayByZXZlcnQgdGhlIHVwZGF0ZVxuICAgKiBpZiBhbiBlbnRpdHkgaXMgY3JlYXRlZCBpbiB0aGlzIGJsb2NrIHJlbW92ZSBpdCBmcm9tIGRhdGFiYXNlXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqIEByZXR1cm4gZGVsZXRlZCBpdGVtcyBhbmQgdXBkYXRlZCBlbnRpdHkgaWRlbnRpZmllcnNcbiAgICovXG4gIGRlbGV0ZUJsb2NrRGF0YSA9IGFzeW5jIChcbiAgICBibG9jazogc3RyaW5nLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nLFxuICApOiBQcm9taXNlPHsgZGVsZXRlZERhdGE6IEV4dHJhY3RlZERhdGFbXTsgdXBkYXRlZERhdGE6IEVudGl0eUluZm9bXSB9PiA9PiB7XG4gICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgIGBEZWxldGluZyBkYXRhIGluIGJsb2NrICR7YmxvY2t9IGFuZCBleHRyYWN0b3IgJHtleHRyYWN0b3J9YCxcbiAgICApO1xuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5kYXRhU291cmNlLmNyZWF0ZVF1ZXJ5UnVubmVyKCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdCgpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnN0YXJ0VHJhbnNhY3Rpb24oKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSBhd2FpdCB0aGlzLnJldmVydEJsb2NrVXBkYXRlcyhcbiAgICAgICAgcXVlcnlSdW5uZXIsXG4gICAgICAgIGV4dHJhY3RvcixcbiAgICAgICAgYmxvY2ssXG4gICAgICApO1xuICAgICAgY29uc3QgZGVsZXRlZERhdGEgPSBhd2FpdCB0aGlzLmRlbGV0ZUJsb2NrUmVjb3JkcyhcbiAgICAgICAgcXVlcnlSdW5uZXIsXG4gICAgICAgIGV4dHJhY3RvcixcbiAgICAgICAgYmxvY2ssXG4gICAgICApO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgRGVsZXRlZCBkYXRhIHN1Y2Nlc3NmdWxseSBpbiBibG9jayAke2Jsb2NrfSBhbmQgZXh0cmFjdG9yICR7ZXh0cmFjdG9yfWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGVsZXRlZERhdGEsXG4gICAgICAgIHVwZGF0ZWREYXRhOiB1cGRhdGVkRGF0YS5tYXAoKGRhdGEpID0+IHBpY2soZGF0YSwgJ2lkZW50aWZpZXInKSksXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogaW5zZXJ0IGFsbCBleHRyYWN0ZWQgZW50aXR5IGRhdGEgaW4gYW4gYXRvbWljIHRyYW5zYWN0aW9uXG4gICAqIHVwZGF0ZSB0aGUgZGF0YSBpZiBhIGVudGl0eSB3aXRoIHRoZSBzYW1lIGlkIGlzIGFscmVhZHkgc3RvcmVkIGluIGRiXG4gICAqIEBwYXJhbSBlbnRpdGllc1xuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKiBAcmV0dXJuIGluc2VydGVkIGl0ZW1zIGFuZCB1cGRhdGVkIGVudGl0eSBpZGVudGlmaWVyc1xuICAgKiByZXR1cm5zIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGFueSBwcm9ibGVtXG4gICAqL1xuICBzdG9yZUVudGl0aWVzID0gYXN5bmMgKFxuICAgIGVudGl0aWVzOiBBcnJheTxFeHRyYWN0ZWREYXRhPixcbiAgICBibG9jazogQmxvY2tJbmZvLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nLFxuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBTdG9yaW5nIGVudGl0aWVzIGluIGJsb2NrICR7YmxvY2t9IGFuZCBleHRyYWN0b3IgJHtleHRyYWN0b3J9YCxcbiAgICApO1xuICAgIGxldCBlbnRpdGllc1RvSW5zZXJ0OiBFeHRyYWN0ZWREYXRhW10gPSBbXSxcbiAgICAgIGVudGl0aWVzVG9VcGRhdGU6IEV4dHJhY3RlZERhdGFbXSA9IFtdO1xuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5kYXRhU291cmNlLmNyZWF0ZVF1ZXJ5UnVubmVyKCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdCgpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnN0YXJ0VHJhbnNhY3Rpb24oKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVwb3NpdG9yeSA9IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeSh0aGlzLnJlcG8pO1xuICAgICAgY29uc3QgZGJFbnRpdHlJZGVudGlmaWVycyA9IChcbiAgICAgICAgYXdhaXQgcmVwb3NpdG9yeS5maW5kQnkoe1xuICAgICAgICAgIGlkZW50aWZpZXI6IEluKGVudGl0aWVzLm1hcCgoaXRlbSkgPT4gaXRlbS5pZGVudGlmaWVyKSksXG4gICAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgIH0gYXMgRmluZE9wdGlvbnNXaGVyZTxFeHRyYWN0b3JFbnRpdHk+KVxuICAgICAgKS5tYXAoKGVudGl0eSkgPT4gZW50aXR5LmlkZW50aWZpZXIpO1xuICAgICAgaWYgKGRiRW50aXR5SWRlbnRpZmllcnMubGVuZ3RoID4gMClcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYEZvdW5kIHN0b3JlZCBlbnRpdGllcyB3aXRoIHNhbWUgaWRlbnRpZmllcmAsXG4gICAgICAgICAgZGJFbnRpdHlJZGVudGlmaWVycyxcbiAgICAgICAgKTtcblxuICAgICAgZW50aXRpZXNUb1VwZGF0ZSA9IGVudGl0aWVzLmZpbHRlcigoZW50aXR5KSA9PlxuICAgICAgICBkYkVudGl0eUlkZW50aWZpZXJzLmluY2x1ZGVzKGVudGl0eS5pZGVudGlmaWVyKSxcbiAgICAgICk7XG4gICAgICBlbnRpdGllc1RvSW5zZXJ0ID0gZGlmZmVyZW5jZShlbnRpdGllcywgZW50aXRpZXNUb1VwZGF0ZSk7XG5cbiAgICAgIGlmIChlbnRpdGllc1RvSW5zZXJ0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYEluc2VydGluZyAke2VudGl0aWVzVG9JbnNlcnQubGVuZ3RofSBuZXcgZW50aXRpZXMgdG8gZGF0YWJhc2VgLFxuICAgICAgICApO1xuICAgICAgICBhd2FpdCB0aGlzLmluc2VydEVudGl0aWVzKFxuICAgICAgICAgIHF1ZXJ5UnVubmVyLFxuICAgICAgICAgIGVudGl0aWVzVG9JbnNlcnQsXG4gICAgICAgICAgYmxvY2ssXG4gICAgICAgICAgZXh0cmFjdG9yLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKGVudGl0aWVzVG9VcGRhdGUubGVuZ3RoID4gMClcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgICBgVXBkYXRpbmcgZW50aXRpZXMgd2l0aCBmb2xsb3dpbmcgSWRzIGluIHRoZSBkYXRhYmFzZTogWyR7ZW50aXRpZXNUb1VwZGF0ZVxuICAgICAgICAgICAgLm1hcCgoZW50aXR5KSA9PiBlbnRpdHkuaWRlbnRpZmllcilcbiAgICAgICAgICAgIC5qb2luKCcsICcpfV1gLFxuICAgICAgICApO1xuICAgICAgZm9yIChjb25zdCBlbnRpdHkgb2YgZW50aXRpZXNUb1VwZGF0ZSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBgVXBkYXRpbmcgZW50aXRpZXMgaW4gZGF0YWJhc2UgWyR7SnNvbkJpZ0ludC5zdHJpbmdpZnkoZW50aXR5KX1dYCxcbiAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVFbnRpdHkocXVlcnlSdW5uZXIsIGVudGl0eSwgYmxvY2ssIGV4dHJhY3Rvcik7XG4gICAgICB9XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoYEFuIGVycm9yIG9jY3VycmVkIGR1cmluZyBzdG9yZSBlbnRpdGllcyBhY3Rpb246ICR7ZX1gKTtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogcmVtb3ZlIGFsbCBleGlzdGluZyBkYXRhIGZvciB0aGUgZXh0cmFjdG9yXG4gICAqIEBwYXJhbSBleHRyYWN0b3JJZFxuICAgKi9cbiAgcmVtb3ZlQWxsRGF0YSA9IGFzeW5jIChleHRyYWN0b3JJZDogc3RyaW5nKSA9PiB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoYFJlbW92aW5nIGFsbCBvbGQgZGF0YSBmb3IgZXh0cmFjdG9yICR7ZXh0cmFjdG9ySWR9YCk7XG4gICAgYXdhaXQgdGhpcy5yZXBvc2l0b3J5LmRlbGV0ZSh7XG4gICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcklkLFxuICAgIH0gYXMgRmluZE9wdGlvbnNXaGVyZTxFeHRyYWN0b3JFbnRpdHk+KTtcbiAgfTtcblxuICAvKipcbiAgICogQnVpbGRzIGEgcXVlcnkgdGhhdCByZXR1cm5zIHVzZWQgYmxvY2tzIGJ5IHNlbGVjdGluZyB0aGUgYGJsb2NrYCBjb2x1bW4gZnJvbSB0aGUgYEV4dHJhY3RvckVudGl0eWAgcmVwb3NpdG9yeSxcbiAgICogZmlsdGVyZWQgYnkgdGhlIHByb3ZpZGVkIGBleHRyYWN0b3JJZGBcbiAgICpcbiAgICogQHBhcmFtIGV4dHJhY3RvcklkIC0gSWRlbnRpZmllciBvZiB0aGUgZXh0cmFjdG9yXG4gICAqIEByZXR1cm5zIEEgcXVlcnkgYnVpbGRlciBzZWxlY3RpbmcgdXNlZCBibG9ja3NcbiAgICovXG4gIGNyZWF0ZVVzZWRCbG9ja3NRdWVyeSA9IChcbiAgICBleHRyYWN0b3JJZDogc3RyaW5nLFxuICApOiBTZWxlY3RRdWVyeUJ1aWxkZXI8RXh0cmFjdG9yRW50aXR5PiA9PiB7XG4gICAgcmV0dXJuIHRoaXMucmVwb3NpdG9yeVxuICAgICAgLmNyZWF0ZVF1ZXJ5QnVpbGRlcignZXh0cmFjdG9yRW50aXR5JylcbiAgICAgIC5zZWxlY3QoJ2V4dHJhY3RvckVudGl0eS5ibG9jaycsICdibG9jaycpXG4gICAgICAud2hlcmUoJ2V4dHJhY3RvckVudGl0eS5leHRyYWN0b3IgPSA6ZXh0cmFjdG9ySWQnLCB7IGV4dHJhY3RvcklkIH0pO1xuICB9O1xufVxuIl19
@@ -96,11 +96,11 @@ export class AbstractErgoBoxExtractor extends AbstractErgoExtractor {
96
96
  */
97
97
  initializeData = async (initialBlock) => {
98
98
  if (this.initializeOptions && this.initializeOptions.active) {
99
- const initializer = new ErgoBoxInitializer(this.initializeOptions.type, this.initializeOptions.url, this.initializeOptions.address, this.getId(), this.hasBoxData, this.processTransactions, this.actions, this.initializeOptions.maxParallelRequests, this.logger);
99
+ const initializer = new ErgoBoxInitializer(this.initializeOptions.type, this.initializeOptions.url, this.initializeOptions.address, this.getId(), this.hasBoxData, this.processTransactions, this.actions, this.initializeOptions.maxParallelRequests, this.logger.child('ErgoBoxInitializer'));
100
100
  await initializer.initializeData(initialBlock);
101
101
  }
102
102
  else
103
103
  this.logger.info(`Initializiation for [${this.getId()}] is turned off`);
104
104
  };
105
105
  }
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RFcmdvQm94RXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2VyZ28vZXh0cmFjdG9ycy9hYnN0cmFjdEVyZ29Cb3hFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFTbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUdMLFlBQVksR0FHYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQU0sT0FBZ0Isd0JBR3BCLFNBQVEscUJBQXFEO0lBTTdELFlBQVksaUJBQXFDLEVBQUUsTUFBdUI7UUFDeEUsS0FBSyxDQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFxQkQ7Ozs7O09BS0c7SUFDSCx1QkFBdUIsR0FBRyxDQUN4QixFQUFlLEVBQ04sRUFBRTtRQUNYLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNILHVCQUF1QixHQUFHLENBQUMsRUFBZSxFQUFFLEVBQUU7UUFDNUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUMxQixLQUFLLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM5QixjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDMUUsUUFBUSxJQUFJLENBQUMsQ0FBQztRQUNoQixDQUFDO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIs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LEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILGNBQWMsR0FBRyxLQUFLLEVBQUUsWUFBdUIsRUFBaUIsRUFBRTtRQUNoRSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxrQkFBa0IsQ0FDeEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFDM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFDOUIsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUNaLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLG1CQUFtQixFQUN4QixJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsRUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FDWixDQUFDO1lBQ0YsTUFBTSxXQUFXLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2pELENBQUM7O1lBQ0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0JBQXdCLElBQUksQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUM1RSxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IEpzb25CaWdJbnQgZnJvbSAnQHJvc2VuLWJyaWRnZS9qc29uLWJpZ2ludCc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbixcbiAgQmxvY2tJbmZvLFxuICBPdXRwdXRCb3gsXG4gIElucHV0RXh0ZW5zaW9uLFxufSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXItaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7IEFic3RyYWN0RXJnb0JveEVudGl0eSwgQWJzdHJhY3RFcmdvQm94QWN0aW9uIH0gZnJvbSAnLi4vZGF0YWJhc2UnO1xuaW1wb3J0IHsgRXJnb0JveEluaXRpYWxpemVyIH0gZnJvbSAnLi4vaW5pdGlhbGl6ZXJzJztcbmltcG9ydCB7XG4gIEFic3RyYWN0RW50aXR5RGF0YSxcbiAgU3BlbmRJbmZvLFxuICBDYWxsYmFja1R5cGUsXG4gIFR4RXh0cmEsXG4gIEluaXRpYWxpemVPcHRpb25zLFxufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFic3RyYWN0RXJnb0V4dHJhY3RvciB9IGZyb20gJy4vYWJzdHJhY3RFcmdvRXh0cmFjdG9yJztcblxuLyoqXG4gKiBBYnN0cmFjdCBFcmdvIEJveCBFeHRyYWN0b3IgY2xhc3MgZm9yIGJveC1iYXNlZCBkYXRhIGV4dHJhY3Rpb24uXG4gKlxuICogVGhpcyBjbGFzcyBleHRlbmRzIHRoZSBBYnN0cmFjdEVyZ29FeHRyYWN0b3IgY2xhc3MgYW5kIHByb3ZpZGVzXG4gKiBmdW5jdGlvbmFsaXR5IGZvciBleHRyYWN0aW5nIGJveC1iYXNlZCBkYXRhIGZyb20gdGhlIGJsb2NrY2hhaW4uXG4gKlxuICogSXQgb3ZlcnJpZGVzIHRoZSBgaW5pdGlhbGl6ZURhdGFgIG1ldGhvZCB0byB1c2UgdGhlIGJveC1iYXNlZCBpbml0aWFsaXplci5cbiAqIEl0IGltcGxlbWVudHMgdGhlIGBwcm9jZXNzVHJhbnNhY3Rpb25zYCBtZXRob2QgdG8gdXNlIHRoZSBib3gtYmFzZWQgZGF0YSBleHRyYWN0aW9uLlxuICpcbiAqIFRyaWdnZXJzIGBJbnNlcnRgIGNhbGxiYWNrIG9uIG5ldyBkYXRhIGluc2VydGlvbi5cbiAqIFRyaWdnZXJzIGEgbmV3IGNhbGxiYWNrIHR5cGUgYFNwZW5kYCBmb3IgZWFjaCBzcGVudCBib3guXG4gKlxuICogQHRlbXBsYXRlIEV4dHJhY3RlZERhdGEgLSBUaGUgdHlwZSBvZiBkYXRhIGV4dHJhY3RlZCBmcm9tIGJsb2NrY2hhaW5cbiAqIEB0ZW1wbGF0ZSBFeHRyYWN0b3JFbnRpdHkgLSBUaGUgZGF0YWJhc2UgZW50aXR5IHR5cGUgZm9yIHN0b3JpbmcgZXh0cmFjdGVkIGRhdGFcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RXJnb0JveEV4dHJhY3RvcjxcbiAgRXh0cmFjdGVkRGF0YSBleHRlbmRzIEFic3RyYWN0RW50aXR5RGF0YSxcbiAgRXh0cmFjdG9yRW50aXR5IGV4dGVuZHMgQWJzdHJhY3RFcmdvQm94RW50aXR5LFxuPiBleHRlbmRzIEFic3RyYWN0RXJnb0V4dHJhY3RvcjxFeHRyYWN0ZWREYXRhLCBFeHRyYWN0b3JFbnRpdHk+IHtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGFjdGlvbnM6IEFic3RyYWN0RXJnb0JveEFjdGlvbjxcbiAgICBFeHRyYWN0ZWREYXRhLFxuICAgIEV4dHJhY3RvckVudGl0eVxuICA+O1xuXG4gIGNvbnN0cnVjdG9yKGluaXRpYWxpemVPcHRpb25zPzogSW5pdGlhbGl6ZU9wdGlvbnMsIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyKSB7XG4gICAgc3VwZXIoaW5pdGlhbGl6ZU9wdGlvbnMsIGxvZ2dlcik7XG4gIH1cblxuICAvKipcbiAgICogZXh0cmFjdCBib3ggZGF0YSB0byBwcm9wZXIgZm9ybWF0IChub3QgaW5jbHVkaW5nIHNwZW5kaW5nIGluZm9ybWF0aW9uKVxuICAgKiBAcGFyYW0gYm94XG4gICAqIEBwYXJhbSBpbnB1dEV4dGVuc2lvbnMgYWxsIGlucHV0IGJveCBleHRlbnNpb25zIGluIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm4gZXh0cmFjdGVkIGRhdGEgaW4gcHJvcGVyIGZvcm1hdFxuICAgKi9cbiAgYWJzdHJhY3QgZXh0cmFjdEJveERhdGE6IChcbiAgICBib3g6IE91dHB1dEJveCxcbiAgICBpbnB1dEV4dGVuc2lvbnM6IElucHV0RXh0ZW5zaW9uW10sXG4gICAgdHhFeHRyYT86IFR4RXh0cmEsXG4gICkgPT4gRXh0cmFjdGVkRGF0YSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogY2hlY2sgcHJvcGVyIGRhdGEgZm9ybWF0IGluIHRoZSBib3hcbiAgICogQHBhcmFtIGJveFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGJveCBoYXMgdGhlIHJlcXVpcmVkIGRhdGEgYW5kIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgYWJzdHJhY3QgaGFzQm94RGF0YTogKGJveDogT3V0cHV0Qm94KSA9PiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBleHRyYWN0IHRyYW5zYWN0aW9uIGV4dHJhIGluZm9ybWF0aW9uXG4gICAqIG92ZXJyaWRlIHRoaXMgZnVuY3Rpb24gaWYgdGhlcmUgaXMgZXh0cmEgbmVlZGVkIGluZm9ybWF0aW9uXG4gICAqIEBwYXJhbSB0eFxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgZ2V0VHJhbnNhY3Rpb25FeHRyYURhdGEgPSAoXG4gICAgdHg6IFRyYW5zYWN0aW9uLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICApOiBUeEV4dHJhID0+IHtcbiAgICByZXR1cm4ge307XG4gIH07XG5cbiAgLyoqXG4gICAqIGNyZWF0ZSBzcGVuZCBpbmZvIGFycmF5IGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHR4XG4gICAqIEByZXR1cm5zIHNwZW5kIGluZm8gYXJyYXkgb2YgdGhlIHRyYW5zYWN0aW9uXG4gICAqL1xuICBnZXRUcmFuc2FjdGlvblNwZW5kSW5mbyA9ICh0eDogVHJhbnNhY3Rpb24pID0+IHtcbiAgICBsZXQgYm94SW5kZXggPSAxO1xuICAgIGNvbnN0IHNwZW5kSW5mb0FycmF5ID0gW107XG4gICAgZm9yIChjb25zdCBpbnB1dCBvZiB0eC5pbnB1dHMpIHtcbiAgICAgIHNwZW5kSW5mb0FycmF5LnB1c2goeyB0eElkOiB0eC5pZCwgYm94SWQ6IGlucHV0LmJveElkLCBpbmRleDogYm94SW5kZXggfSk7XG4gICAgICBib3hJbmRleCArPSAxO1xuICAgIH1cbiAgICByZXR1cm4gc3BlbmRJbmZvQXJyYXk7XG4gIH07XG5cbiAgLyoqXG4gICAqIHByb2Nlc3MgYSBsaXN0IG9mIHRyYW5zYWN0aW9ucyBpbiBhIGJsb2NrIGFuZCBzdG9yZSByZXF1aXJlZCBpbmZvcm1hdGlvblxuICAgKiBAcGFyYW0gdHhzIGxpc3Qgb2YgdHJhbnNhY3Rpb25zIGluIHRoZSBibG9ja1xuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHJldHVybiB0cnVlIGlmIHRoZSBwcm9jZXNzIGlzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkgYW5kIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgcHJvY2Vzc1RyYW5zYWN0aW9ucyA9IGFzeW5jIChcbiAgICB0eHM6IFRyYW5zYWN0aW9uW10sXG4gICAgYmxvY2s6IEJsb2NrSW5mbyxcbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJveGVzOiBBcnJheTxFeHRyYWN0ZWREYXRhPiA9IFtdO1xuICAgICAgY29uc3Qgc3BlbnRJbmZvczogQXJyYXk8U3BlbmRJbmZvPiA9IFtdO1xuICAgICAgZm9yIChjb25zdCB0eCBvZiB0eHMpIHtcbiAgICAgICAgY29uc3QgaW5wdXRFeHRlbnNpb25zID0gdHguaW5wdXRzLm1hcCgoaW5wdXQpID0+IGlucHV0LmV4dGVuc2lvbiB8fCB7fSk7XG4gICAgICAgIGZvciAoY29uc3Qgb3V0cHV0IG9mIHR4Lm91dHB1dHMpIHtcbiAgICAgICAgICBpZiAoIXRoaXMuaGFzQm94RGF0YShvdXRwdXQpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYFRyeWluZyB0byBleHRyYWN0IGRhdGEgZnJvbSBib3ggJHtvdXRwdXQuYm94SWR9YCk7XG4gICAgICAgICAgY29uc3QgZXh0cmFjdGVkRGF0YSA9IHRoaXMuZXh0cmFjdEJveERhdGEoXG4gICAgICAgICAgICBvdXRwdXQsXG4gICAgICAgICAgICBpbnB1dEV4dGVuc2lvbnMsXG4gICAgICAgICAgICB0aGlzLmdldFRyYW5zYWN0aW9uRXh0cmFEYXRhKHR4KSxcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChleHRyYWN0ZWREYXRhKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgICAgYEV4dHJhY3RlZCBkYXRhICR7SnNvbkJpZ0ludC5zdHJpbmdpZnkoZXh0cmFjdGVkRGF0YSl9IGZyb20gYm94ICR7XG4gICAgICAgICAgICAgICAgb3V0cHV0LmJveElkXG4gICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGJveGVzLnB1c2goZXh0cmFjdGVkRGF0YSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHNwZW50SW5mb3MucHVzaCguLi50aGlzLmdldFRyYW5zYWN0aW9uU3BlbmRJbmZvKHR4KSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChib3hlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmICghKGF3YWl0IHRoaXMuYWN0aW9ucy5zdG9yZUVudGl0aWVzKGJveGVzLCBibG9jaywgdGhpcy5nZXRJZCgpKSkpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKFxuICAgICAgICAgICAgYERhdGEgaW5zZXJ0aW9uIGZhaWxlZCBmb3IgJHt0aGlzLmdldElkKCl9IGF0IHRoZSBibG9jayAke1xuICAgICAgICAgICAgICBibG9jay5oZWlnaHRcbiAgICAgICAgICAgIH1gLFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudHJpZ2dlckNhbGxiYWNrcyhDYWxsYmFja1R5cGUuSW5zZXJ0LCBib3hlcyk7XG4gICAgICB9XG4gICAgICBjb25zdCBzcGVudERhdGEgPSBhd2FpdCB0aGlzLmFjdGlvbnMudXBkYXRlU3BlbmRpbmdJbmZvKFxuICAgICAgICBzcGVudEluZm9zLFxuICAgICAgICBibG9jayxcbiAgICAgICAgdGhpcy5nZXRJZCgpLFxuICAgICAgKTtcbiAgICAgIGlmIChzcGVudERhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnRyaWdnZXJDYWxsYmFja3MoQ2FsbGJhY2tUeXBlLlNwZW5kLCBzcGVudERhdGEpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFxuICAgICAgICBgUHJvY2Vzc2luZyB0cmFuc2FjdGlvbnMgZmFpbGVkIGZvciAke3RoaXMuZ2V0SWQoKX0gYXQgdGhlIGJsb2NrICR7XG4gICAgICAgICAgYmxvY2suaGVpZ2h0XG4gICAgICAgIH0gd2l0aCBlcnJvcjogJHtlfWAsXG4gICAgICApO1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvciAmJiBlLnN0YWNrKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGBlcnJvciBzdGFjazogJHtlLnN0YWNrfWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICAvKipcbiAgICogaW5pdGlhbGl6ZSBleHRyYWN0b3IgZGF0YWJhc2Ugd2l0aCBkYXRhIGNyZWF0ZWQgYmVsb3cgdGhlIGluaXRpYWwgaGVpZ2h0XG4gICAqIEBwYXJhbSBpbml0aWFsQmxvY2tcbiAgICovXG4gIGluaXRpYWxpemVEYXRhID0gYXN5bmMgKGluaXRpYWxCbG9jazogQmxvY2tJbmZvKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgaWYgKHRoaXMuaW5pdGlhbGl6ZU9wdGlvbnMgJiYgdGhpcy5pbml0aWFsaXplT3B0aW9ucy5hY3RpdmUpIHtcbiAgICAgIGNvbnN0IGluaXRpYWxpemVyID0gbmV3IEVyZ29Cb3hJbml0aWFsaXplcihcbiAgICAgICAgdGhpcy5pbml0aWFsaXplT3B0aW9ucy50eXBlLFxuICAgICAgICB0aGlzLmluaXRpYWxpemVPcHRpb25zLnVybCxcbiAgICAgICAgdGhpcy5pbml0aWFsaXplT3B0aW9ucy5hZGRyZXNzLFxuICAgICAgICB0aGlzLmdldElkKCksXG4gICAgICAgIHRoaXMuaGFzQm94RGF0YSxcbiAgICAgICAgdGhpcy5wcm9jZXNzVHJhbnNhY3Rpb25zLFxuICAgICAgICB0aGlzLmFjdGlvbnMsXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZU9wdGlvbnMubWF4UGFyYWxsZWxSZXF1ZXN0cyxcbiAgICAgICAgdGhpcy5sb2dnZXIsXG4gICAgICApO1xuICAgICAgYXdhaXQgaW5pdGlhbGl6ZXIuaW5pdGlhbGl6ZURhdGEoaW5pdGlhbEJsb2NrKTtcbiAgICB9IGVsc2VcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oYEluaXRpYWxpemlhdGlvbiBmb3IgWyR7dGhpcy5nZXRJZCgpfV0gaXMgdHVybmVkIG9mZmApO1xuICB9O1xufVxuIl19
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RFcmdvQm94RXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2VyZ28vZXh0cmFjdG9ycy9hYnN0cmFjdEVyZ29Cb3hFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFTbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUdMLFlBQVksR0FHYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQU0sT0FBZ0Isd0JBR3BCLFNBQVEscUJBQXFEO0lBTTdELFlBQVksaUJBQXFDLEVBQUUsTUFBdUI7UUFDeEUsS0FBSyxDQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFxQkQ7Ozs7O09BS0c7SUFDSCx1QkFBdUIsR0FBRyxDQUN4QixFQUFlLEVBQ04sRUFBRTtRQUNYLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNILHVCQUF1QixHQUFHLENBQUMsRUFBZSxFQUFFLEVBQUU7UUFDNUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUMxQixLQUFLLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM5QixjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDMUUsUUFBUSxJQUFJLENBQUMsQ0FBQztRQUNoQixDQUFDO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIs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LEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILGNBQWMsR0FBRyxLQUFLLEVBQUUsWUFBdUIsRUFBaUIsRUFBRTtRQUNoRSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxrQkFBa0IsQ0FDeEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFDM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFDOUIsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUNaLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLG1CQUFtQixFQUN4QixJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsRUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FDeEMsQ0FBQztZQUNGLE1BQU0sV0FBVyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNqRCxDQUFDOztZQUNDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixJQUFJLENBQUMsS0FBSyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDNUUsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCBKc29uQmlnSW50IGZyb20gJ0Byb3Nlbi1icmlkZ2UvanNvbi1iaWdpbnQnO1xuaW1wb3J0IHtcbiAgVHJhbnNhY3Rpb24sXG4gIEJsb2NrSW5mbyxcbiAgT3V0cHV0Qm94LFxuICBJbnB1dEV4dGVuc2lvbixcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdEVyZ29Cb3hFbnRpdHksIEFic3RyYWN0RXJnb0JveEFjdGlvbiB9IGZyb20gJy4uL2RhdGFiYXNlJztcbmltcG9ydCB7IEVyZ29Cb3hJbml0aWFsaXplciB9IGZyb20gJy4uL2luaXRpYWxpemVycyc7XG5pbXBvcnQge1xuICBBYnN0cmFjdEVudGl0eURhdGEsXG4gIFNwZW5kSW5mbyxcbiAgQ2FsbGJhY2tUeXBlLFxuICBUeEV4dHJhLFxuICBJbml0aWFsaXplT3B0aW9ucyxcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBYnN0cmFjdEVyZ29FeHRyYWN0b3IgfSBmcm9tICcuL2Fic3RyYWN0RXJnb0V4dHJhY3Rvcic7XG5cbi8qKlxuICogQWJzdHJhY3QgRXJnbyBCb3ggRXh0cmFjdG9yIGNsYXNzIGZvciBib3gtYmFzZWQgZGF0YSBleHRyYWN0aW9uLlxuICpcbiAqIFRoaXMgY2xhc3MgZXh0ZW5kcyB0aGUgQWJzdHJhY3RFcmdvRXh0cmFjdG9yIGNsYXNzIGFuZCBwcm92aWRlc1xuICogZnVuY3Rpb25hbGl0eSBmb3IgZXh0cmFjdGluZyBib3gtYmFzZWQgZGF0YSBmcm9tIHRoZSBibG9ja2NoYWluLlxuICpcbiAqIEl0IG92ZXJyaWRlcyB0aGUgYGluaXRpYWxpemVEYXRhYCBtZXRob2QgdG8gdXNlIHRoZSBib3gtYmFzZWQgaW5pdGlhbGl6ZXIuXG4gKiBJdCBpbXBsZW1lbnRzIHRoZSBgcHJvY2Vzc1RyYW5zYWN0aW9uc2AgbWV0aG9kIHRvIHVzZSB0aGUgYm94LWJhc2VkIGRhdGEgZXh0cmFjdGlvbi5cbiAqXG4gKiBUcmlnZ2VycyBgSW5zZXJ0YCBjYWxsYmFjayBvbiBuZXcgZGF0YSBpbnNlcnRpb24uXG4gKiBUcmlnZ2VycyBhIG5ldyBjYWxsYmFjayB0eXBlIGBTcGVuZGAgZm9yIGVhY2ggc3BlbnQgYm94LlxuICpcbiAqIEB0ZW1wbGF0ZSBFeHRyYWN0ZWREYXRhIC0gVGhlIHR5cGUgb2YgZGF0YSBleHRyYWN0ZWQgZnJvbSBibG9ja2NoYWluXG4gKiBAdGVtcGxhdGUgRXh0cmFjdG9yRW50aXR5IC0gVGhlIGRhdGFiYXNlIGVudGl0eSB0eXBlIGZvciBzdG9yaW5nIGV4dHJhY3RlZCBkYXRhXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEVyZ29Cb3hFeHRyYWN0b3I8XG4gIEV4dHJhY3RlZERhdGEgZXh0ZW5kcyBBYnN0cmFjdEVudGl0eURhdGEsXG4gIEV4dHJhY3RvckVudGl0eSBleHRlbmRzIEFic3RyYWN0RXJnb0JveEVudGl0eSxcbj4gZXh0ZW5kcyBBYnN0cmFjdEVyZ29FeHRyYWN0b3I8RXh0cmFjdGVkRGF0YSwgRXh0cmFjdG9yRW50aXR5PiB7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBhY3Rpb25zOiBBYnN0cmFjdEVyZ29Cb3hBY3Rpb248XG4gICAgRXh0cmFjdGVkRGF0YSxcbiAgICBFeHRyYWN0b3JFbnRpdHlcbiAgPjtcblxuICBjb25zdHJ1Y3Rvcihpbml0aWFsaXplT3B0aW9ucz86IEluaXRpYWxpemVPcHRpb25zLCBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlcikge1xuICAgIHN1cGVyKGluaXRpYWxpemVPcHRpb25zLCBsb2dnZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIGV4dHJhY3QgYm94IGRhdGEgdG8gcHJvcGVyIGZvcm1hdCAobm90IGluY2x1ZGluZyBzcGVuZGluZyBpbmZvcm1hdGlvbilcbiAgICogQHBhcmFtIGJveFxuICAgKiBAcGFyYW0gaW5wdXRFeHRlbnNpb25zIGFsbCBpbnB1dCBib3ggZXh0ZW5zaW9ucyBpbiB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJuIGV4dHJhY3RlZCBkYXRhIGluIHByb3BlciBmb3JtYXRcbiAgICovXG4gIGFic3RyYWN0IGV4dHJhY3RCb3hEYXRhOiAoXG4gICAgYm94OiBPdXRwdXRCb3gsXG4gICAgaW5wdXRFeHRlbnNpb25zOiBJbnB1dEV4dGVuc2lvbltdLFxuICAgIHR4RXh0cmE/OiBUeEV4dHJhLFxuICApID0+IEV4dHJhY3RlZERhdGEgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIGNoZWNrIHByb3BlciBkYXRhIGZvcm1hdCBpbiB0aGUgYm94XG4gICAqIEBwYXJhbSBib3hcbiAgICogQHJldHVybiB0cnVlIGlmIHRoZSBib3ggaGFzIHRoZSByZXF1aXJlZCBkYXRhIGFuZCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIGFic3RyYWN0IGhhc0JveERhdGE6IChib3g6IE91dHB1dEJveCkgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogZXh0cmFjdCB0cmFuc2FjdGlvbiBleHRyYSBpbmZvcm1hdGlvblxuICAgKiBvdmVycmlkZSB0aGlzIGZ1bmN0aW9uIGlmIHRoZXJlIGlzIGV4dHJhIG5lZWRlZCBpbmZvcm1hdGlvblxuICAgKiBAcGFyYW0gdHhcbiAgICogQHJldHVybnNcbiAgICovXG4gIGdldFRyYW5zYWN0aW9uRXh0cmFEYXRhID0gKFxuICAgIHR4OiBUcmFuc2FjdGlvbiwgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgKTogVHhFeHRyYSA9PiB7XG4gICAgcmV0dXJuIHt9O1xuICB9O1xuXG4gIC8qKlxuICAgKiBjcmVhdGUgc3BlbmQgaW5mbyBhcnJheSBmb3IgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB0eFxuICAgKiBAcmV0dXJucyBzcGVuZCBpbmZvIGFycmF5IG9mIHRoZSB0cmFuc2FjdGlvblxuICAgKi9cbiAgZ2V0VHJhbnNhY3Rpb25TcGVuZEluZm8gPSAodHg6IFRyYW5zYWN0aW9uKSA9PiB7XG4gICAgbGV0IGJveEluZGV4ID0gMTtcbiAgICBjb25zdCBzcGVuZEluZm9BcnJheSA9IFtdO1xuICAgIGZvciAoY29uc3QgaW5wdXQgb2YgdHguaW5wdXRzKSB7XG4gICAgICBzcGVuZEluZm9BcnJheS5wdXNoKHsgdHhJZDogdHguaWQsIGJveElkOiBpbnB1dC5ib3hJZCwgaW5kZXg6IGJveEluZGV4IH0pO1xuICAgICAgYm94SW5kZXggKz0gMTtcbiAgICB9XG4gICAgcmV0dXJuIHNwZW5kSW5mb0FycmF5O1xuICB9O1xuXG4gIC8qKlxuICAgKiBwcm9jZXNzIGEgbGlzdCBvZiB0cmFuc2FjdGlvbnMgaW4gYSBibG9jayBhbmQgc3RvcmUgcmVxdWlyZWQgaW5mb3JtYXRpb25cbiAgICogQHBhcmFtIHR4cyBsaXN0IG9mIHRyYW5zYWN0aW9ucyBpbiB0aGUgYmxvY2tcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgcHJvY2VzcyBpcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5IGFuZCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHByb2Nlc3NUcmFuc2FjdGlvbnMgPSBhc3luYyAoXG4gICAgdHhzOiBUcmFuc2FjdGlvbltdLFxuICAgIGJsb2NrOiBCbG9ja0luZm8sXG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBib3hlczogQXJyYXk8RXh0cmFjdGVkRGF0YT4gPSBbXTtcbiAgICAgIGNvbnN0IHNwZW50SW5mb3M6IEFycmF5PFNwZW5kSW5mbz4gPSBbXTtcbiAgICAgIGZvciAoY29uc3QgdHggb2YgdHhzKSB7XG4gICAgICAgIGNvbnN0IGlucHV0RXh0ZW5zaW9ucyA9IHR4LmlucHV0cy5tYXAoKGlucHV0KSA9PiBpbnB1dC5leHRlbnNpb24gfHwge30pO1xuICAgICAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiB0eC5vdXRwdXRzKSB7XG4gICAgICAgICAgaWYgKCF0aGlzLmhhc0JveERhdGEob3V0cHV0KSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBUcnlpbmcgdG8gZXh0cmFjdCBkYXRhIGZyb20gYm94ICR7b3V0cHV0LmJveElkfWApO1xuICAgICAgICAgIGNvbnN0IGV4dHJhY3RlZERhdGEgPSB0aGlzLmV4dHJhY3RCb3hEYXRhKFxuICAgICAgICAgICAgb3V0cHV0LFxuICAgICAgICAgICAgaW5wdXRFeHRlbnNpb25zLFxuICAgICAgICAgICAgdGhpcy5nZXRUcmFuc2FjdGlvbkV4dHJhRGF0YSh0eCksXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoZXh0cmFjdGVkRGF0YSkge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgIGBFeHRyYWN0ZWQgZGF0YSAke0pzb25CaWdJbnQuc3RyaW5naWZ5KGV4dHJhY3RlZERhdGEpfSBmcm9tIGJveCAke1xuICAgICAgICAgICAgICAgIG91dHB1dC5ib3hJZFxuICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBib3hlcy5wdXNoKGV4dHJhY3RlZERhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzcGVudEluZm9zLnB1c2goLi4udGhpcy5nZXRUcmFuc2FjdGlvblNwZW5kSW5mbyh0eCkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoYm94ZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAoIShhd2FpdCB0aGlzLmFjdGlvbnMuc3RvcmVFbnRpdGllcyhib3hlcywgYmxvY2ssIHRoaXMuZ2V0SWQoKSkpKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgICAgIGBEYXRhIGluc2VydGlvbiBmYWlsZWQgZm9yICR7dGhpcy5nZXRJZCgpfSBhdCB0aGUgYmxvY2sgJHtcbiAgICAgICAgICAgICAgYmxvY2suaGVpZ2h0XG4gICAgICAgICAgICB9YCxcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRyaWdnZXJDYWxsYmFja3MoQ2FsbGJhY2tUeXBlLkluc2VydCwgYm94ZXMpO1xuICAgICAgfVxuICAgICAgY29uc3Qgc3BlbnREYXRhID0gYXdhaXQgdGhpcy5hY3Rpb25zLnVwZGF0ZVNwZW5kaW5nSW5mbyhcbiAgICAgICAgc3BlbnRJbmZvcyxcbiAgICAgICAgYmxvY2ssXG4gICAgICAgIHRoaXMuZ2V0SWQoKSxcbiAgICAgICk7XG4gICAgICBpZiAoc3BlbnREYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy50cmlnZ2VyQ2FsbGJhY2tzKENhbGxiYWNrVHlwZS5TcGVuZCwgc3BlbnREYXRhKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihcbiAgICAgICAgYFByb2Nlc3NpbmcgdHJhbnNhY3Rpb25zIGZhaWxlZCBmb3IgJHt0aGlzLmdldElkKCl9IGF0IHRoZSBibG9jayAke1xuICAgICAgICAgIGJsb2NrLmhlaWdodFxuICAgICAgICB9IHdpdGggZXJyb3I6ICR7ZX1gLFxuICAgICAgKTtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5zdGFjaykge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihgZXJyb3Igc3RhY2s6ICR7ZS5zdGFja31gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgLyoqXG4gICAqIGluaXRpYWxpemUgZXh0cmFjdG9yIGRhdGFiYXNlIHdpdGggZGF0YSBjcmVhdGVkIGJlbG93IHRoZSBpbml0aWFsIGhlaWdodFxuICAgKiBAcGFyYW0gaW5pdGlhbEJsb2NrXG4gICAqL1xuICBpbml0aWFsaXplRGF0YSA9IGFzeW5jIChpbml0aWFsQmxvY2s6IEJsb2NrSW5mbyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGlmICh0aGlzLmluaXRpYWxpemVPcHRpb25zICYmIHRoaXMuaW5pdGlhbGl6ZU9wdGlvbnMuYWN0aXZlKSB7XG4gICAgICBjb25zdCBpbml0aWFsaXplciA9IG5ldyBFcmdvQm94SW5pdGlhbGl6ZXIoXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZU9wdGlvbnMudHlwZSxcbiAgICAgICAgdGhpcy5pbml0aWFsaXplT3B0aW9ucy51cmwsXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZU9wdGlvbnMuYWRkcmVzcyxcbiAgICAgICAgdGhpcy5nZXRJZCgpLFxuICAgICAgICB0aGlzLmhhc0JveERhdGEsXG4gICAgICAgIHRoaXMucHJvY2Vzc1RyYW5zYWN0aW9ucyxcbiAgICAgICAgdGhpcy5hY3Rpb25zLFxuICAgICAgICB0aGlzLmluaXRpYWxpemVPcHRpb25zLm1heFBhcmFsbGVsUmVxdWVzdHMsXG4gICAgICAgIHRoaXMubG9nZ2VyLmNoaWxkKCdFcmdvQm94SW5pdGlhbGl6ZXInKSxcbiAgICAgICk7XG4gICAgICBhd2FpdCBpbml0aWFsaXplci5pbml0aWFsaXplRGF0YShpbml0aWFsQmxvY2spO1xuICAgIH0gZWxzZVxuICAgICAgdGhpcy5sb2dnZXIuaW5mbyhgSW5pdGlhbGl6aWF0aW9uIGZvciBbJHt0aGlzLmdldElkKCl9XSBpcyB0dXJuZWQgb2ZmYCk7XG4gIH07XG59XG4iXX0=
@@ -1,4 +1,5 @@
1
- import { DummyLogger } from '@rosen-bridge/abstract-logger';
1
+ import { AbstractLogger } from '@rosen-bridge/abstract-logger';
2
+ import { SelectQueryBuilder } from '@rosen-bridge/extended-typeorm';
2
3
  import { Transaction } from '@rosen-bridge/scanner-interfaces';
3
4
  import { AbstractExtractor } from '../../abstractExtractor';
4
5
  import { AbstractErgoEntity, AbstractErgoAction } from '../database';
@@ -13,15 +14,15 @@ import { AbstractEntityData, CallbackType, CallbackMap, CallbackDataMap, Initial
13
14
  * @template ExtractedData - The type of data extracted from blockchain
14
15
  * @template ExtractorEntity - The database entity type for storing extracted data
15
16
  */
16
- export declare abstract class AbstractErgoExtractor<ExtractedData extends AbstractEntityData, ExtractorEntity extends AbstractErgoEntity> extends AbstractExtractor<Transaction> {
17
+ export declare abstract class AbstractErgoExtractor<ExtractedData extends AbstractEntityData, ExtractorEntity extends AbstractErgoEntity> extends AbstractExtractor<Transaction, ExtractorEntity> {
17
18
  protected initializeOptions?: InitializeOptions | undefined;
18
- protected logger: DummyLogger;
19
+ protected logger: AbstractLogger;
19
20
  protected abstract actions: AbstractErgoAction<ExtractedData, ExtractorEntity>;
20
21
  protected callbacks: {
21
22
  [K in CallbackType]: Map<string, CallbackMap<ExtractedData>[K]>;
22
23
  };
23
24
  private callbackMutex;
24
- constructor(initializeOptions?: InitializeOptions | undefined, logger?: DummyLogger);
25
+ constructor(initializeOptions?: InitializeOptions | undefined, logger?: AbstractLogger);
25
26
  /**
26
27
  * hook a new callback on a callback type
27
28
  * @param type
@@ -49,5 +50,12 @@ export declare abstract class AbstractErgoExtractor<ExtractedData extends Abstra
49
50
  * @param hash block hash
50
51
  */
51
52
  forkBlock: (hash: string) => Promise<void>;
53
+ /**
54
+ * Builds a query that returns used blocks by selecting the `block` column from the `ExtractorEntity` repository,
55
+ * filtered by the provided `extractorId`
56
+ *
57
+ * @returns A query builder selecting used blocks
58
+ */
59
+ createUsedBlocksQuery: () => SelectQueryBuilder<ExtractorEntity>;
52
60
  }
53
61
  //# sourceMappingURL=abstractErgoExtractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"abstractErgoExtractor.d.ts","sourceRoot":"","sources":["../../../lib/ergo/extractors/abstractErgoExtractor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;GASG;AACH,8BAAsB,qBAAqB,CACzC,aAAa,SAAS,kBAAkB,EACxC,eAAe,SAAS,kBAAkB,CAC1C,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IAgBpC,SAAS,CAAC,iBAAiB,CAAC,EAAE,iBAAiB;IAC/C,SAAS,CAAC,MAAM;IAhBlB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAC5C,aAAa,EACb,eAAe,CAChB,CAAC;IACF,SAAS,CAAC,SAAS,EAAE;SAClB,CAAC,IAAI,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;KAChE,CAKC;IACF,OAAO,CAAC,aAAa,CAAe;gBAGxB,iBAAiB,CAAC,EAAE,iBAAiB,YAAA,EACrC,MAAM,cAAoB;IAKtC;;;;;;OAMG;IACH,IAAI,GAAU,CAAC,SAAS,YAAY,EAClC,MAAM,CAAC,EACP,UAAU,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KACtC,OAAO,CAAC,MAAM,CAAC,CAOhB;IAEF;;;;;;OAMG;IACH,MAAM,GAAU,MAAM,YAAY,EAAE,IAAI,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC,CAY/D;IAEF;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAC/C,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GACtC,IAAI;IAaP;;;OAGG;IACH,SAAS,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAM7C;CACH"}
1
+ {"version":3,"file":"abstractErgoExtractor.d.ts","sourceRoot":"","sources":["../../../lib/ergo/extractors/abstractErgoExtractor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;GASG;AACH,8BAAsB,qBAAqB,CACzC,aAAa,SAAS,kBAAkB,EACxC,eAAe,SAAS,kBAAkB,CAC1C,SAAQ,iBAAiB,CAAC,WAAW,EAAE,eAAe,CAAC;IAgBrD,SAAS,CAAC,iBAAiB,CAAC,EAAE,iBAAiB;IAC/C,SAAS,CAAC,MAAM,EAAE,cAAc;IAhBlC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAC5C,aAAa,EACb,eAAe,CAChB,CAAC;IACF,SAAS,CAAC,SAAS,EAAE;SAClB,CAAC,IAAI,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;KAChE,CAKC;IACF,OAAO,CAAC,aAAa,CAAe;gBAGxB,iBAAiB,CAAC,EAAE,iBAAiB,YAAA,EACrC,MAAM,GAAE,cAAkC;IAKtD;;;;;;OAMG;IACH,IAAI,GAAU,CAAC,SAAS,YAAY,EAClC,MAAM,CAAC,EACP,UAAU,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KACtC,OAAO,CAAC,MAAM,CAAC,CAOhB;IAEF;;;;;;OAMG;IACH,MAAM,GAAU,MAAM,YAAY,EAAE,IAAI,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC,CAY/D;IAEF;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAC/C,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GACtC,IAAI;IAaP;;;OAGG;IACH,SAAS,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAM7C;IAEF;;;;;OAKG;IACH,qBAAqB,QAAO,kBAAkB,CAAC,eAAe,CAAC,CACZ;CACpD"}
@@ -88,5 +88,12 @@ export class AbstractErgoExtractor extends AbstractExtractor {
88
88
  if (result.updatedData.length > 0)
89
89
  this.triggerCallbacks(CallbackType.Update, result.updatedData);
90
90
  };
91
+ /**
92
+ * Builds a query that returns used blocks by selecting the `block` column from the `ExtractorEntity` repository,
93
+ * filtered by the provided `extractorId`
94
+ *
95
+ * @returns A query builder selecting used blocks
96
+ */
97
+ createUsedBlocksQuery = () => this.actions.createUsedBlocksQuery(this.getId());
91
98
  }
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RFcmdvRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2VyZ28vZXh0cmFjdG9ycy9hYnN0cmFjdEVyZ29FeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUc1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxPQUFPLEVBRUwsWUFBWSxHQUliLE1BQU0sZUFBZSxDQUFDO0FBRXZCOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sT0FBZ0IscUJBR3BCLFNBQVEsaUJBQThCO0lBZ0IxQjtJQUNBO0lBWkYsU0FBUyxHQUVmO1FBQ0YsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUU7UUFDaEMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUU7UUFDaEMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUU7UUFDaEMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUU7S0FDaEMsQ0FBQztJQUNNLGFBQWEsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0lBRXBDLFlBQ1ksaUJBQXFDLEVBQ3JDLFNBQVMsSUFBSSxXQUFXLEVBQUU7UUFFcEMsS0FBSyxFQUFFLENBQUM7UUFIRSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW9CO1FBQ3JDLFdBQU0sR0FBTixNQUFNLENBQW9CO0lBR3RDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxJQUFJLEdBQUcsS0FBSyxFQUNWLElBQU8sRUFDUCxRQUF1QyxFQUN0QixFQUFFO1FBQ25CLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ3BCLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzlCLE9BQU8sRUFBRSxDQUFDO1FBQ1YsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDLENBQUM7SUFFRjs7Ozs7O09BTUc7SUFDSCxNQUFNLEdBQUcsS0FBSyxFQUFFLElBQWtCLEVBQUUsRUFBVSxFQUFvQixFQUFFO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2QscUJBQXFCLEVBQUUsaUNBQWlDLElBQUksSUFBSSxDQUNqRSxDQUFDO1lBQ0YsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2QixPQUFPLEVBQUUsQ0FBQztRQUNWLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNPLGdCQUFnQixDQUN4QixJQUFPLEVBQ1AsSUFBdUM7UUFFdkMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDL0IsSUFBSSxDQUFDO2dCQUNILFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQixDQUFDO1lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZCx1QkFBdUIsSUFBSSxvQkFBb0IsSUFBSSxpQkFBaUIsQ0FBQyxFQUFFLENBQ3hFLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxHQUFHLEtBQUssRUFBRSxJQUFZLEVBQWlCLEVBQUU7UUFDaEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdEUsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQy9CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRSxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDL0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25FLENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTXV0ZXggfSBmcm9tICdhd2FpdC1zZW1hcGhvcmUnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XG5cbmltcG9ydCB7IER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXItaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7IEFic3RyYWN0RXh0cmFjdG9yIH0gZnJvbSAnLi4vLi4vYWJzdHJhY3RFeHRyYWN0b3InO1xuaW1wb3J0IHsgQWJzdHJhY3RFcmdvRW50aXR5LCBBYnN0cmFjdEVyZ29BY3Rpb24gfSBmcm9tICcuLi9kYXRhYmFzZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdEVudGl0eURhdGEsXG4gIENhbGxiYWNrVHlwZSxcbiAgQ2FsbGJhY2tNYXAsXG4gIENhbGxiYWNrRGF0YU1hcCxcbiAgSW5pdGlhbGl6ZU9wdGlvbnMsXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG4vKipcbiAqIEFic3RyYWN0IEVyZ28tc3BlY2lmaWMgZXh0cmFjdG9yIHRoYXQgcHJvdmlkZXMgY29tbW9uIGZ1bmN0aW9uYWxpdHkgZm9yIGFsbCBFcmdvIGV4dHJhY3RvcnMuXG4gKlxuICogSXQgcHJvdmlkZXMgY2FsbGJhY2sgc3VwcG9ydCBhbmQgYmxvY2tjaGFpbiBmb3JrIGhhbmRsZSBmb3IgYWxsIGVyZ28gZXh0cmFjdG9ycy5cbiAqXG4gKiBJdCB0cmlnZ2VycyBjYWxsYmFja3MgZm9yIHRoZSBgVXBkYXRlYCBhbmQgYERlbGV0ZWAgYWN0aW9ucyBvbiBhIGZvcmtlZCBibG9jay5cbiAqXG4gKiBAdGVtcGxhdGUgRXh0cmFjdGVkRGF0YSAtIFRoZSB0eXBlIG9mIGRhdGEgZXh0cmFjdGVkIGZyb20gYmxvY2tjaGFpblxuICogQHRlbXBsYXRlIEV4dHJhY3RvckVudGl0eSAtIFRoZSBkYXRhYmFzZSBlbnRpdHkgdHlwZSBmb3Igc3RvcmluZyBleHRyYWN0ZWQgZGF0YVxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RFcmdvRXh0cmFjdG9yPFxuICBFeHRyYWN0ZWREYXRhIGV4dGVuZHMgQWJzdHJhY3RFbnRpdHlEYXRhLFxuICBFeHRyYWN0b3JFbnRpdHkgZXh0ZW5kcyBBYnN0cmFjdEVyZ29FbnRpdHksXG4+IGV4dGVuZHMgQWJzdHJhY3RFeHRyYWN0b3I8VHJhbnNhY3Rpb24+IHtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGFjdGlvbnM6IEFic3RyYWN0RXJnb0FjdGlvbjxcbiAgICBFeHRyYWN0ZWREYXRhLFxuICAgIEV4dHJhY3RvckVudGl0eVxuICA+O1xuICBwcm90ZWN0ZWQgY2FsbGJhY2tzOiB7XG4gICAgW0sgaW4gQ2FsbGJhY2tUeXBlXTogTWFwPHN0cmluZywgQ2FsbGJhY2tNYXA8RXh0cmFjdGVkRGF0YT5bS10+O1xuICB9ID0ge1xuICAgIFtDYWxsYmFja1R5cGUuVXBkYXRlXTogbmV3IE1hcCgpLFxuICAgIFtDYWxsYmFja1R5cGUuSW5zZXJ0XTogbmV3IE1hcCgpLFxuICAgIFtDYWxsYmFja1R5cGUuRGVsZXRlXTogbmV3IE1hcCgpLFxuICAgIFtDYWxsYmFja1R5cGUuU3BlbmRdOiBuZXcgTWFwKCksXG4gIH07XG4gIHByaXZhdGUgY2FsbGJhY2tNdXRleCA9IG5ldyBNdXRleCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpbml0aWFsaXplT3B0aW9ucz86IEluaXRpYWxpemVPcHRpb25zLFxuICAgIHByb3RlY3RlZCBsb2dnZXIgPSBuZXcgRHVtbXlMb2dnZXIoKSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBob29rIGEgbmV3IGNhbGxiYWNrIG9uIGEgY2FsbGJhY2sgdHlwZVxuICAgKiBAcGFyYW0gdHlwZVxuICAgKiBAcGFyYW0gaWRcbiAgICogQHBhcmFtIGNhbGxiYWNrXG4gICAqIEByZXR1cm5zIGNhbGxiYWNrIHJlZ2lzdGVyZWQgaWRcbiAgICovXG4gIGhvb2sgPSBhc3luYyA8VCBleHRlbmRzIENhbGxiYWNrVHlwZT4oXG4gICAgdHlwZTogVCxcbiAgICBjYWxsYmFjazogQ2FsbGJhY2tNYXA8RXh0cmFjdGVkRGF0YT5bVF0sXG4gICk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gICAgY29uc3QgcmVsZWFzZSA9IGF3YWl0IHRoaXMuY2FsbGJhY2tNdXRleC5hY3F1aXJlKCk7XG4gICAgY29uc3QgY2FsbGJhY2tNYXAgPSB0aGlzLmNhbGxiYWNrc1t0eXBlXTtcbiAgICBjb25zdCBpZCA9IHV1aWR2NCgpO1xuICAgIGNhbGxiYWNrTWFwLnNldChpZCwgY2FsbGJhY2spO1xuICAgIHJlbGVhc2UoKTtcbiAgICByZXR1cm4gaWQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIHVuaG9vayBhIGNhbGxiYWNrIG9uIGEgdHlwZVxuICAgKiByZXR1cm5zIGZhbHNlIGlmIHRoZXJlIGlzIG5vIHJlZ2lzdGVyZWQgY2FsbGJhY2sgd2l0aCB0aGUgaWRcbiAgICogQHBhcmFtIHR5cGVcbiAgICogQHBhcmFtIGlkXG4gICAqIEByZXR1cm5zIHN1Y2Nlc3Mgc3RhdHVzXG4gICAqL1xuICB1bmhvb2sgPSBhc3luYyAodHlwZTogQ2FsbGJhY2tUeXBlLCBpZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgY29uc3QgcmVsZWFzZSA9IGF3YWl0IHRoaXMuY2FsbGJhY2tNdXRleC5hY3F1aXJlKCk7XG4gICAgY29uc3QgY2FsbGJhY2tNYXAgPSB0aGlzLmNhbGxiYWNrc1t0eXBlXTtcbiAgICBpZiAoIWNhbGxiYWNrTWFwLmhhcyhpZCkpIHtcbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oXG4gICAgICAgIGBDYWxsYmFjayB3aXRoIElkIFske2lkfV0gaXMgbm90IHJlZ2lzdGVyZWQgZm9yIHR5cGUgWyR7dHlwZX1dLmAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjYWxsYmFja01hcC5kZWxldGUoaWQpO1xuICAgIHJlbGVhc2UoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICAvKipcbiAgICogdHJpZ2dlciBhbGwgY2FsbGJhY2tzIHJlZ2lzdGVyZWQgb24gYSBzcGVjaWZpYyB0eXBlIHdpdGggdGhlIHByb3ZpZGVkIGRhdGFcbiAgICogQHBhcmFtIHR5cGVcbiAgICogQHBhcmFtIGRhdGFcbiAgICovXG4gIHByb3RlY3RlZCB0cmlnZ2VyQ2FsbGJhY2tzPFQgZXh0ZW5kcyBDYWxsYmFja1R5cGU+KFxuICAgIHR5cGU6IFQsXG4gICAgZGF0YTogQ2FsbGJhY2tEYXRhTWFwPEV4dHJhY3RlZERhdGE+W1RdLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjYWxsYmFja01hcCA9IHRoaXMuY2FsbGJhY2tzW3R5cGVdO1xuICAgIGNhbGxiYWNrTWFwLmZvckVhY2goKGNhbGxiYWNrKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgICBgY2FsbGJhY2sgZmFpbGVkIGZvciAke3R5cGV9IGFjdGlvbiBvbiBkYXRhIFske2RhdGF9XSB3aXRoIGVycm9yOiAke2V9YCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBmb3JrIG9uZSBibG9jayBhbmQgcmVtb3ZlIGFsbCBzdG9yZWQgaW5mb3JtYXRpb24gZm9yIHRoaXMgYmxvY2tcbiAgICogQHBhcmFtIGhhc2ggYmxvY2sgaGFzaFxuICAgKi9cbiAgZm9ya0Jsb2NrID0gYXN5bmMgKGhhc2g6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYWN0aW9ucy5kZWxldGVCbG9ja0RhdGEoaGFzaCwgdGhpcy5nZXRJZCgpKTtcbiAgICBpZiAocmVzdWx0LmRlbGV0ZWREYXRhLmxlbmd0aCA+IDApXG4gICAgICB0aGlzLnRyaWdnZXJDYWxsYmFja3MoQ2FsbGJhY2tUeXBlLkRlbGV0ZSwgcmVzdWx0LmRlbGV0ZWREYXRhKTtcbiAgICBpZiAocmVzdWx0LnVwZGF0ZWREYXRhLmxlbmd0aCA+IDApXG4gICAgICB0aGlzLnRyaWdnZXJDYWxsYmFja3MoQ2FsbGJhY2tUeXBlLlVwZGF0ZSwgcmVzdWx0LnVwZGF0ZWREYXRhKTtcbiAgfTtcbn1cbiJdfQ==
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RFcmdvRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2VyZ28vZXh0cmFjdG9ycy9hYnN0cmFjdEVyZ29FeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJNUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFNUQsT0FBTyxFQUVMLFlBQVksR0FJYixNQUFNLGVBQWUsQ0FBQztBQUV2Qjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLE9BQWdCLHFCQUdwQixTQUFRLGlCQUErQztJQWdCM0M7SUFDQTtJQVpGLFNBQVMsR0FFZjtRQUNGLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFO1FBQ2hDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFO1FBQ2hDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFO1FBQ2hDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFO0tBQ2hDLENBQUM7SUFDTSxhQUFhLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUVwQyxZQUNZLGlCQUFxQyxFQUNyQyxTQUF5QixJQUFJLFdBQVcsRUFBRTtRQUVwRCxLQUFLLEVBQUUsQ0FBQztRQUhFLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBb0I7UUFDckMsV0FBTSxHQUFOLE1BQU0sQ0FBb0M7SUFHdEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILElBQUksR0FBRyxLQUFLLEVBQ1YsSUFBTyxFQUNQLFFBQXVDLEVBQ3RCLEVBQUU7UUFDbkIsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25ELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFDcEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDOUIsT0FBTyxFQUFFLENBQUM7UUFDVixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUMsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNILE1BQU0sR0FBRyxLQUFLLEVBQUUsSUFBa0IsRUFBRSxFQUFVLEVBQW9CLEVBQUU7UUFDbEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25ELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZCxxQkFBcUIsRUFBRSxpQ0FBaUMsSUFBSSxJQUFJLENBQ2pFLENBQUM7WUFDRixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sRUFBRSxDQUFDO1FBQ1YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRjs7OztPQUlHO0lBQ08sZ0JBQWdCLENBQ3hCLElBQU8sRUFDUCxJQUF1QztRQUV2QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUMvQixJQUFJLENBQUM7Z0JBQ0gsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pCLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLHVCQUF1QixJQUFJLG9CQUFvQixJQUFJLGlCQUFpQixDQUFDLEVBQUUsQ0FDeEUsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLEdBQUcsS0FBSyxFQUFFLElBQVksRUFBaUIsRUFBRTtRQUNoRCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN0RSxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDL0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pFLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUMvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDO0lBRUY7Ozs7O09BS0c7SUFDSCxxQkFBcUIsR0FBRyxHQUF3QyxFQUFFLENBQ2hFLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7Q0FDcEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNdXRleCB9IGZyb20gJ2F3YWl0LXNlbWFwaG9yZSc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcblxuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgU2VsZWN0UXVlcnlCdWlsZGVyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9leHRlbmRlZC10eXBlb3JtJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdEV4dHJhY3RvciB9IGZyb20gJy4uLy4uL2Fic3RyYWN0RXh0cmFjdG9yJztcbmltcG9ydCB7IEFic3RyYWN0RXJnb0VudGl0eSwgQWJzdHJhY3RFcmdvQWN0aW9uIH0gZnJvbSAnLi4vZGF0YWJhc2UnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RFbnRpdHlEYXRhLFxuICBDYWxsYmFja1R5cGUsXG4gIENhbGxiYWNrTWFwLFxuICBDYWxsYmFja0RhdGFNYXAsXG4gIEluaXRpYWxpemVPcHRpb25zLFxufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuLyoqXG4gKiBBYnN0cmFjdCBFcmdvLXNwZWNpZmljIGV4dHJhY3RvciB0aGF0IHByb3ZpZGVzIGNvbW1vbiBmdW5jdGlvbmFsaXR5IGZvciBhbGwgRXJnbyBleHRyYWN0b3JzLlxuICpcbiAqIEl0IHByb3ZpZGVzIGNhbGxiYWNrIHN1cHBvcnQgYW5kIGJsb2NrY2hhaW4gZm9yayBoYW5kbGUgZm9yIGFsbCBlcmdvIGV4dHJhY3RvcnMuXG4gKlxuICogSXQgdHJpZ2dlcnMgY2FsbGJhY2tzIGZvciB0aGUgYFVwZGF0ZWAgYW5kIGBEZWxldGVgIGFjdGlvbnMgb24gYSBmb3JrZWQgYmxvY2suXG4gKlxuICogQHRlbXBsYXRlIEV4dHJhY3RlZERhdGEgLSBUaGUgdHlwZSBvZiBkYXRhIGV4dHJhY3RlZCBmcm9tIGJsb2NrY2hhaW5cbiAqIEB0ZW1wbGF0ZSBFeHRyYWN0b3JFbnRpdHkgLSBUaGUgZGF0YWJhc2UgZW50aXR5IHR5cGUgZm9yIHN0b3JpbmcgZXh0cmFjdGVkIGRhdGFcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RXJnb0V4dHJhY3RvcjxcbiAgRXh0cmFjdGVkRGF0YSBleHRlbmRzIEFic3RyYWN0RW50aXR5RGF0YSxcbiAgRXh0cmFjdG9yRW50aXR5IGV4dGVuZHMgQWJzdHJhY3RFcmdvRW50aXR5LFxuPiBleHRlbmRzIEFic3RyYWN0RXh0cmFjdG9yPFRyYW5zYWN0aW9uLCBFeHRyYWN0b3JFbnRpdHk+IHtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGFjdGlvbnM6IEFic3RyYWN0RXJnb0FjdGlvbjxcbiAgICBFeHRyYWN0ZWREYXRhLFxuICAgIEV4dHJhY3RvckVudGl0eVxuICA+O1xuICBwcm90ZWN0ZWQgY2FsbGJhY2tzOiB7XG4gICAgW0sgaW4gQ2FsbGJhY2tUeXBlXTogTWFwPHN0cmluZywgQ2FsbGJhY2tNYXA8RXh0cmFjdGVkRGF0YT5bS10+O1xuICB9ID0ge1xuICAgIFtDYWxsYmFja1R5cGUuVXBkYXRlXTogbmV3IE1hcCgpLFxuICAgIFtDYWxsYmFja1R5cGUuSW5zZXJ0XTogbmV3IE1hcCgpLFxuICAgIFtDYWxsYmFja1R5cGUuRGVsZXRlXTogbmV3IE1hcCgpLFxuICAgIFtDYWxsYmFja1R5cGUuU3BlbmRdOiBuZXcgTWFwKCksXG4gIH07XG4gIHByaXZhdGUgY2FsbGJhY2tNdXRleCA9IG5ldyBNdXRleCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpbml0aWFsaXplT3B0aW9ucz86IEluaXRpYWxpemVPcHRpb25zLFxuICAgIHByb3RlY3RlZCBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyID0gbmV3IER1bW15TG9nZ2VyKCksXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogaG9vayBhIG5ldyBjYWxsYmFjayBvbiBhIGNhbGxiYWNrIHR5cGVcbiAgICogQHBhcmFtIHR5cGVcbiAgICogQHBhcmFtIGlkXG4gICAqIEBwYXJhbSBjYWxsYmFja1xuICAgKiBAcmV0dXJucyBjYWxsYmFjayByZWdpc3RlcmVkIGlkXG4gICAqL1xuICBob29rID0gYXN5bmMgPFQgZXh0ZW5kcyBDYWxsYmFja1R5cGU+KFxuICAgIHR5cGU6IFQsXG4gICAgY2FsbGJhY2s6IENhbGxiYWNrTWFwPEV4dHJhY3RlZERhdGE+W1RdLFxuICApOiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICAgIGNvbnN0IHJlbGVhc2UgPSBhd2FpdCB0aGlzLmNhbGxiYWNrTXV0ZXguYWNxdWlyZSgpO1xuICAgIGNvbnN0IGNhbGxiYWNrTWFwID0gdGhpcy5jYWxsYmFja3NbdHlwZV07XG4gICAgY29uc3QgaWQgPSB1dWlkdjQoKTtcbiAgICBjYWxsYmFja01hcC5zZXQoaWQsIGNhbGxiYWNrKTtcbiAgICByZWxlYXNlKCk7XG4gICAgcmV0dXJuIGlkO1xuICB9O1xuXG4gIC8qKlxuICAgKiB1bmhvb2sgYSBjYWxsYmFjayBvbiBhIHR5cGVcbiAgICogcmV0dXJucyBmYWxzZSBpZiB0aGVyZSBpcyBubyByZWdpc3RlcmVkIGNhbGxiYWNrIHdpdGggdGhlIGlkXG4gICAqIEBwYXJhbSB0eXBlXG4gICAqIEBwYXJhbSBpZFxuICAgKiBAcmV0dXJucyBzdWNjZXNzIHN0YXR1c1xuICAgKi9cbiAgdW5ob29rID0gYXN5bmMgKHR5cGU6IENhbGxiYWNrVHlwZSwgaWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIGNvbnN0IHJlbGVhc2UgPSBhd2FpdCB0aGlzLmNhbGxiYWNrTXV0ZXguYWNxdWlyZSgpO1xuICAgIGNvbnN0IGNhbGxiYWNrTWFwID0gdGhpcy5jYWxsYmFja3NbdHlwZV07XG4gICAgaWYgKCFjYWxsYmFja01hcC5oYXMoaWQpKSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKFxuICAgICAgICBgQ2FsbGJhY2sgd2l0aCBJZCBbJHtpZH1dIGlzIG5vdCByZWdpc3RlcmVkIGZvciB0eXBlIFske3R5cGV9XS5gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY2FsbGJhY2tNYXAuZGVsZXRlKGlkKTtcbiAgICByZWxlYXNlKCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgLyoqXG4gICAqIHRyaWdnZXIgYWxsIGNhbGxiYWNrcyByZWdpc3RlcmVkIG9uIGEgc3BlY2lmaWMgdHlwZSB3aXRoIHRoZSBwcm92aWRlZCBkYXRhXG4gICAqIEBwYXJhbSB0eXBlXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqL1xuICBwcm90ZWN0ZWQgdHJpZ2dlckNhbGxiYWNrczxUIGV4dGVuZHMgQ2FsbGJhY2tUeXBlPihcbiAgICB0eXBlOiBULFxuICAgIGRhdGE6IENhbGxiYWNrRGF0YU1hcDxFeHRyYWN0ZWREYXRhPltUXSxcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgY2FsbGJhY2tNYXAgPSB0aGlzLmNhbGxiYWNrc1t0eXBlXTtcbiAgICBjYWxsYmFja01hcC5mb3JFYWNoKChjYWxsYmFjaykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY2FsbGJhY2soZGF0YSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oXG4gICAgICAgICAgYGNhbGxiYWNrIGZhaWxlZCBmb3IgJHt0eXBlfSBhY3Rpb24gb24gZGF0YSBbJHtkYXRhfV0gd2l0aCBlcnJvcjogJHtlfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogZm9yayBvbmUgYmxvY2sgYW5kIHJlbW92ZSBhbGwgc3RvcmVkIGluZm9ybWF0aW9uIGZvciB0aGlzIGJsb2NrXG4gICAqIEBwYXJhbSBoYXNoIGJsb2NrIGhhc2hcbiAgICovXG4gIGZvcmtCbG9jayA9IGFzeW5jIChoYXNoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmFjdGlvbnMuZGVsZXRlQmxvY2tEYXRhKGhhc2gsIHRoaXMuZ2V0SWQoKSk7XG4gICAgaWYgKHJlc3VsdC5kZWxldGVkRGF0YS5sZW5ndGggPiAwKVxuICAgICAgdGhpcy50cmlnZ2VyQ2FsbGJhY2tzKENhbGxiYWNrVHlwZS5EZWxldGUsIHJlc3VsdC5kZWxldGVkRGF0YSk7XG4gICAgaWYgKHJlc3VsdC51cGRhdGVkRGF0YS5sZW5ndGggPiAwKVxuICAgICAgdGhpcy50cmlnZ2VyQ2FsbGJhY2tzKENhbGxiYWNrVHlwZS5VcGRhdGUsIHJlc3VsdC51cGRhdGVkRGF0YSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhIHF1ZXJ5IHRoYXQgcmV0dXJucyB1c2VkIGJsb2NrcyBieSBzZWxlY3RpbmcgdGhlIGBibG9ja2AgY29sdW1uIGZyb20gdGhlIGBFeHRyYWN0b3JFbnRpdHlgIHJlcG9zaXRvcnksXG4gICAqIGZpbHRlcmVkIGJ5IHRoZSBwcm92aWRlZCBgZXh0cmFjdG9ySWRgXG4gICAqXG4gICAqIEByZXR1cm5zIEEgcXVlcnkgYnVpbGRlciBzZWxlY3RpbmcgdXNlZCBibG9ja3NcbiAgICovXG4gIGNyZWF0ZVVzZWRCbG9ja3NRdWVyeSA9ICgpOiBTZWxlY3RRdWVyeUJ1aWxkZXI8RXh0cmFjdG9yRW50aXR5PiA9PlxuICAgIHRoaXMuYWN0aW9ucy5jcmVhdGVVc2VkQmxvY2tzUXVlcnkodGhpcy5nZXRJZCgpKTtcbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { DummyLogger } from '@rosen-bridge/abstract-logger';
1
+ import { AbstractLogger } from '@rosen-bridge/abstract-logger';
2
2
  import { BlockInfo, Transaction } from '@rosen-bridge/scanner-interfaces';
3
3
  import { AbstractErgoEntity } from '../database';
4
4
  import { AbstractEntityData, InitializeOptions } from '../interfaces';
@@ -19,9 +19,7 @@ import { AbstractErgoExtractor } from './abstractErgoExtractor';
19
19
  * @template ExtractorEntity - The database entity type for storing extracted data
20
20
  */
21
21
  export declare abstract class AbstractErgoTxExtractor<ExtractedData extends AbstractEntityData, ExtractorEntity extends AbstractErgoEntity> extends AbstractErgoExtractor<ExtractedData, ExtractorEntity> {
22
- protected initializeOptions?: InitializeOptions | undefined;
23
- protected logger: DummyLogger;
24
- constructor(initializeOptions?: InitializeOptions | undefined, logger?: DummyLogger);
22
+ constructor(initializeOptions?: InitializeOptions, logger?: AbstractLogger);
25
23
  /**
26
24
  * Extract transaction data to proper format (not including spending information).
27
25
  * This method should be overridden by subclasses that need transaction-based extraction.
@@ -1 +1 @@
1
- {"version":3,"file":"abstractErgoTxExtractor.d.ts","sourceRoot":"","sources":["../../../lib/ergo/extractors/abstractErgoTxExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EACL,kBAAkB,EAElB,iBAAiB,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;;;;;;;;;GAcG;AACH,8BAAsB,uBAAuB,CAC3C,aAAa,SAAS,kBAAkB,EACxC,eAAe,SAAS,kBAAkB,CAC1C,SAAQ,qBAAqB,CAAC,aAAa,EAAE,eAAe,CAAC;IAE3D,SAAS,CAAC,iBAAiB,CAAC,EAAE,iBAAiB;IAC/C,SAAS,CAAC,MAAM;gBADN,iBAAiB,CAAC,EAAE,iBAAiB,YAAA,EACrC,MAAM,cAAoB;IAKtC;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,aAAa,GAAG,SAAS,CAAC;IAEvE;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC;IAEjD;;;;;;;OAOG;IACH,mBAAmB,GACjB,KAAK,WAAW,EAAE,EAClB,OAAO,SAAS,KACf,OAAO,CAAC,OAAO,CAAC,CA0CjB;IAEF;;;OAGG;IACH,cAAc,GAAU,cAAc,SAAS,KAAG,OAAO,CAAC,IAAI,CAAC,CAe7D;CACH"}
1
+ {"version":3,"file":"abstractErgoTxExtractor.d.ts","sourceRoot":"","sources":["../../../lib/ergo/extractors/abstractErgoTxExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EACL,kBAAkB,EAElB,iBAAiB,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;;;;;;;;;GAcG;AACH,8BAAsB,uBAAuB,CAC3C,aAAa,SAAS,kBAAkB,EACxC,eAAe,SAAS,kBAAkB,CAC1C,SAAQ,qBAAqB,CAAC,aAAa,EAAE,eAAe,CAAC;gBACjD,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,cAAc;IAI1E;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,aAAa,GAAG,SAAS,CAAC;IAEvE;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC;IAEjD;;;;;;;OAOG;IACH,mBAAmB,GACjB,KAAK,WAAW,EAAE,EAClB,OAAO,SAAS,KACf,OAAO,CAAC,OAAO,CAAC,CA0CjB;IAEF;;;OAGG;IACH,cAAc,GAAU,cAAc,SAAS,KAAG,OAAO,CAAC,IAAI,CAAC,CAe7D;CACH"}
@@ -1,4 +1,3 @@
1
- import { DummyLogger } from '@rosen-bridge/abstract-logger';
2
1
  import JsonBigInt from '@rosen-bridge/json-bigint';
3
2
  import { ErgoInitializer } from '../initializers';
4
3
  import { CallbackType, } from '../interfaces';
@@ -19,12 +18,8 @@ import { AbstractErgoExtractor } from './abstractErgoExtractor';
19
18
  * @template ExtractorEntity - The database entity type for storing extracted data
20
19
  */
21
20
  export class AbstractErgoTxExtractor extends AbstractErgoExtractor {
22
- initializeOptions;
23
- logger;
24
- constructor(initializeOptions, logger = new DummyLogger()) {
25
- super();
26
- this.initializeOptions = initializeOptions;
27
- this.logger = logger;
21
+ constructor(initializeOptions, logger) {
22
+ super(initializeOptions, logger);
28
23
  }
29
24
  /**
30
25
  * Process a list of transactions in a block and store required information.
@@ -71,11 +66,11 @@ export class AbstractErgoTxExtractor extends AbstractErgoExtractor {
71
66
  */
72
67
  initializeData = async (initialBlock) => {
73
68
  if (this.initializeOptions && this.initializeOptions.active) {
74
- const initializer = new ErgoInitializer(this.initializeOptions.type, this.initializeOptions.url, this.initializeOptions.address, this.getId(), this.processTransactions, this.actions, this.initializeOptions.maxParallelRequests, this.logger);
69
+ const initializer = new ErgoInitializer(this.initializeOptions.type, this.initializeOptions.url, this.initializeOptions.address, this.getId(), this.processTransactions, this.actions, this.initializeOptions.maxParallelRequests, this.logger.child('ErgoInitializer'));
75
70
  await initializer.initializeData(initialBlock);
76
71
  }
77
72
  else
78
73
  this.logger.info(`Initializiation for [${this.getId()}] is turned off`);
79
74
  };
80
75
  }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RFcmdvVHhFeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZXJnby9leHRyYWN0b3JzL2Fic3RyYWN0RXJnb1R4RXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RCxPQUFPLFVBQVUsTUFBTSwyQkFBMkIsQ0FBQztBQUluRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUVMLFlBQVksR0FFYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQU0sT0FBZ0IsdUJBR3BCLFNBQVEscUJBQXFEO0lBRWpEO0lBQ0E7SUFGWixZQUNZLGlCQUFxQyxFQUNyQyxTQUFTLElBQUksV0FBVyxFQUFFO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBSEUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFvQjtRQUNyQyxXQUFNLEdBQU4sTUFBTSxDQUFvQjtJQUd0QyxDQUFDO0lBb0JEOzs7Ozs7O09BT0c7SUFDSCxtQkFBbUIsR0FBRyxLQUFLLEVBQ3pCLEdBQWtCLEVBQ2xCLEtBQWdCLEVBQ0UsRUFBRTtRQUNwQixJQUFJLENBQUM7WUFDSCxNQUFNLE9BQU8sR0FBeUIsRUFBRSxDQUFDO1lBQ3pDLEtBQUssTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7b0JBQ3hCLFNBQVM7Z0JBQ1gsQ0FBQztnQkFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQy9ELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzdDLElBQUksYUFBYSxFQUFFLENBQUM7b0JBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLGtCQUFrQixVQUFVLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxZQUNuRCxFQUFFLENBQUMsRUFDTCxFQUFFLENBQ0gsQ0FBQztvQkFDRixPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUM5QixDQUFDO1lBQ0gsQ0FBQztZQUVELElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDdEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2QsNkJBQTZCLElBQUksQ0FBQyxLQUFLLEVBQUUsaUJBQ3ZDLEtBQUssQ0FBQyxNQUNSLEVBQUUsQ0FDSCxDQUFDO29CQUNGLE9BQU8sS0FBSyxDQUFDO2dCQUNmLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDdEQsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2Ysc0NBQXNDLElBQUksQ0FBQyxLQUFLLEVBQUUsaUJBQ2hELEtBQUssQ0FBQyxNQUNSLGdCQUFnQixDQUFDLEVBQUUsQ0FDcEIsQ0FBQztZQUNGLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUMvQyxDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRjs7O09BR0c7SUFDSCxjQUFjLEdBQUcsS0FBSyxFQUFFLFlBQXVCLEVBQWlCLEVBQUU7UUFDaEUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVELE1BQU0sV0FBVyxHQUFHLElBQUksZUFBZSxDQUNyQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUMzQixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUM5QixJQUFJLENBQUMsS0FBSyxFQUFFLEVBQ1osSUFBSSxDQUFDLG1CQUFtQixFQUN4QixJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsRUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FDWixDQUFDO1lBQ0YsTUFBTSxXQUFXLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2pELENBQUM7O1lBQ0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0JBQXdCLElBQUksQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUM1RSxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IEpzb25CaWdJbnQgZnJvbSAnQHJvc2VuLWJyaWRnZS9qc29uLWJpZ2ludCc7XG5pbXBvcnQgeyBCbG9ja0luZm8sIFRyYW5zYWN0aW9uIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdEVyZ29FbnRpdHkgfSBmcm9tICcuLi9kYXRhYmFzZSc7XG5pbXBvcnQgeyBFcmdvSW5pdGlhbGl6ZXIgfSBmcm9tICcuLi9pbml0aWFsaXplcnMnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RFbnRpdHlEYXRhLFxuICBDYWxsYmFja1R5cGUsXG4gIEluaXRpYWxpemVPcHRpb25zLFxufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFic3RyYWN0RXJnb0V4dHJhY3RvciB9IGZyb20gJy4vYWJzdHJhY3RFcmdvRXh0cmFjdG9yJztcblxuLyoqXG4gKiBBYnN0cmFjdCBFcmdvIFR4IEV4dHJhY3RvciBjbGFzcyBmb3IgdHgtYmFzZWQgZGF0YSBleHRyYWN0aW9uLlxuICpcbiAqIFRoaXMgY2xhc3MgZXh0ZW5kcyB0aGUgQWJzdHJhY3RFcmdvRXh0cmFjdG9yIGNsYXNzIGFuZCBwcm92aWRlc1xuICogZnVuY3Rpb25hbGl0eSBmb3IgZXh0cmFjdGluZyB0eC1iYXNlZCBkYXRhIGZyb20gdGhlIGJsb2NrY2hhaW4uXG4gKlxuICogSXQgaW1wbGVtZW50cyB0aGUgYGluaXRpYWxpemVEYXRhYCBtZXRob2Qgd2l0aCBlcmdvIGluaXRpYWxpemVycy5cbiAqIEl0IGltcGxlbWVudHMgdGhlIGBwcm9jZXNzVHJhbnNhY3Rpb25zYCBtZXRob2QgdG8gZXh0cmFjdCBhbmRcbiAqIHN0b3JlIGRhdGEgZnJvbSB0cmFuc2FjdGlvbnMuXG4gKlxuICogVHJpZ2dlcnMgYEluc2VydGAgY2FsbGJhY2sgb24gbmV3IGRhdGEgaW5zZXJ0aW9uLlxuICpcbiAqIEB0ZW1wbGF0ZSBFeHRyYWN0ZWREYXRhIC0gVGhlIHR5cGUgb2YgZGF0YSBleHRyYWN0ZWQgZnJvbSBibG9ja2NoYWluXG4gKiBAdGVtcGxhdGUgRXh0cmFjdG9yRW50aXR5IC0gVGhlIGRhdGFiYXNlIGVudGl0eSB0eXBlIGZvciBzdG9yaW5nIGV4dHJhY3RlZCBkYXRhXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEVyZ29UeEV4dHJhY3RvcjxcbiAgRXh0cmFjdGVkRGF0YSBleHRlbmRzIEFic3RyYWN0RW50aXR5RGF0YSxcbiAgRXh0cmFjdG9yRW50aXR5IGV4dGVuZHMgQWJzdHJhY3RFcmdvRW50aXR5LFxuPiBleHRlbmRzIEFic3RyYWN0RXJnb0V4dHJhY3RvcjxFeHRyYWN0ZWREYXRhLCBFeHRyYWN0b3JFbnRpdHk+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemVPcHRpb25zPzogSW5pdGlhbGl6ZU9wdGlvbnMsXG4gICAgcHJvdGVjdGVkIGxvZ2dlciA9IG5ldyBEdW1teUxvZ2dlcigpLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3QgdHJhbnNhY3Rpb24gZGF0YSB0byBwcm9wZXIgZm9ybWF0IChub3QgaW5jbHVkaW5nIHNwZW5kaW5nIGluZm9ybWF0aW9uKS5cbiAgICogVGhpcyBtZXRob2Qgc2hvdWxkIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0aGF0IG5lZWQgdHJhbnNhY3Rpb24tYmFzZWQgZXh0cmFjdGlvbi5cbiAgICogQHBhcmFtIHR4IC0gVGhlIHRyYW5zYWN0aW9uIHRvIGV4dHJhY3QgZGF0YSBmcm9tXG4gICAqIEByZXR1cm5zIGV4dHJhY3RlZCBkYXRhIGluIHByb3BlciBmb3JtYXQgb3IgdW5kZWZpbmVkIGlmIG5vIGRhdGEgc2hvdWxkIGJlIGV4dHJhY3RlZFxuICAgKiBAdGhyb3dzIEVycm9yIGlmIG5vdCBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzXG4gICAqL1xuICBhYnN0cmFjdCBleHRyYWN0VHhEYXRhOiAodHg6IFRyYW5zYWN0aW9uKSA9PiBFeHRyYWN0ZWREYXRhIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGUgdHJhbnNhY3Rpb24gaGFzIHRoZSByZXF1aXJlZCBkYXRhIGZvcm1hdC5cbiAgICogVGhpcyBtZXRob2Qgc2hvdWxkIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0aGF0IG5lZWQgdHJhbnNhY3Rpb24tYmFzZWQgZXh0cmFjdGlvbi5cbiAgICogQHBhcmFtIHR4IC0gVGhlIHRyYW5zYWN0aW9uIHRvIGNoZWNrXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIHRyYW5zYWN0aW9uIGhhcyB0aGUgcmVxdWlyZWQgZGF0YSBhbmQgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgbm90IG92ZXJyaWRkZW4gYnkgc3ViY2xhc3NcbiAgICovXG4gIGFic3RyYWN0IGhhc1R4RGF0YTogKHR4OiBUcmFuc2FjdGlvbikgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogUHJvY2VzcyBhIGxpc3Qgb2YgdHJhbnNhY3Rpb25zIGluIGEgYmxvY2sgYW5kIHN0b3JlIHJlcXVpcmVkIGluZm9ybWF0aW9uLlxuICAgKiBUaGlzIG1ldGhvZCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzIGZvciBjdXN0b20gdHJhbnNhY3Rpb24gcHJvY2Vzc2luZyxcbiAgICogb3IgdGhleSBjYW4gb3ZlcnJpZGUgZXh0cmFjdFR4RGF0YSBhbmQgaGFzVHhEYXRhIG1ldGhvZHMgaW5zdGVhZC5cbiAgICogQHBhcmFtIHR4cyAtIExpc3Qgb2YgdHJhbnNhY3Rpb25zIGluIHRoZSBibG9ja1xuICAgKiBAcGFyYW0gYmxvY2sgLSBCbG9jayBpbmZvcm1hdGlvblxuICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBwcm9jZXNzIGlzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkgYW5kIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgcHJvY2Vzc1RyYW5zYWN0aW9ucyA9IGFzeW5jIChcbiAgICB0eHM6IFRyYW5zYWN0aW9uW10sXG4gICAgYmxvY2s6IEJsb2NrSW5mbyxcbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHR4c0RhdGE6IEFycmF5PEV4dHJhY3RlZERhdGE+ID0gW107XG4gICAgICBmb3IgKGNvbnN0IHR4IG9mIHR4cykge1xuICAgICAgICBpZiAoIXRoaXMuaGFzVHhEYXRhKHR4KSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBUcnlpbmcgdG8gZXh0cmFjdCBkYXRhIGZyb20gdHggWyR7dHguaWR9XWApO1xuICAgICAgICBjb25zdCBleHRyYWN0ZWREYXRhID0gdGhpcy5leHRyYWN0VHhEYXRhKHR4KTtcbiAgICAgICAgaWYgKGV4dHJhY3RlZERhdGEpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgIGBFeHRyYWN0ZWQgZGF0YSAke0pzb25CaWdJbnQuc3RyaW5naWZ5KGV4dHJhY3RlZERhdGEpfSBmcm9tIHR4ICR7XG4gICAgICAgICAgICAgIHR4LmlkXG4gICAgICAgICAgICB9YCxcbiAgICAgICAgICApO1xuICAgICAgICAgIHR4c0RhdGEucHVzaChleHRyYWN0ZWREYXRhKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodHhzRGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmICghKGF3YWl0IHRoaXMuYWN0aW9ucy5zdG9yZUVudGl0aWVzKHR4c0RhdGEsIGJsb2NrLCB0aGlzLmdldElkKCkpKSkge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oXG4gICAgICAgICAgICBgRGF0YSBpbnNlcnRpb24gZmFpbGVkIGZvciAke3RoaXMuZ2V0SWQoKX0gYXQgdGhlIGJsb2NrICR7XG4gICAgICAgICAgICAgIGJsb2NrLmhlaWdodFxuICAgICAgICAgICAgfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50cmlnZ2VyQ2FsbGJhY2tzKENhbGxiYWNrVHlwZS5JbnNlcnQsIHR4c0RhdGEpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFxuICAgICAgICBgUHJvY2Vzc2luZyB0cmFuc2FjdGlvbnMgZmFpbGVkIGZvciAke3RoaXMuZ2V0SWQoKX0gYXQgdGhlIGJsb2NrICR7XG4gICAgICAgICAgYmxvY2suaGVpZ2h0XG4gICAgICAgIH0gd2l0aCBlcnJvcjogJHtlfWAsXG4gICAgICApO1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvciAmJiBlLnN0YWNrKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBlcnJvciBzdGFjazogJHtlLnN0YWNrfWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICAvKipcbiAgICogaW5pdGlhbGl6ZSBleHRyYWN0b3IgZGF0YWJhc2Ugd2l0aCBkYXRhIGNyZWF0ZWQgYmVsb3cgdGhlIGluaXRpYWwgaGVpZ2h0XG4gICAqIEBwYXJhbSBpbml0aWFsQmxvY2tcbiAgICovXG4gIGluaXRpYWxpemVEYXRhID0gYXN5bmMgKGluaXRpYWxCbG9jazogQmxvY2tJbmZvKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgaWYgKHRoaXMuaW5pdGlhbGl6ZU9wdGlvbnMgJiYgdGhpcy5pbml0aWFsaXplT3B0aW9ucy5hY3RpdmUpIHtcbiAgICAgIGNvbnN0IGluaXRpYWxpemVyID0gbmV3IEVyZ29Jbml0aWFsaXplcihcbiAgICAgICAgdGhpcy5pbml0aWFsaXplT3B0aW9ucy50eXBlLFxuICAgICAgICB0aGlzLmluaXRpYWxpemVPcHRpb25zLnVybCxcbiAgICAgICAgdGhpcy5pbml0aWFsaXplT3B0aW9ucy5hZGRyZXNzLFxuICAgICAgICB0aGlzLmdldElkKCksXG4gICAgICAgIHRoaXMucHJvY2Vzc1RyYW5zYWN0aW9ucyxcbiAgICAgICAgdGhpcy5hY3Rpb25zLFxuICAgICAgICB0aGlzLmluaXRpYWxpemVPcHRpb25zLm1heFBhcmFsbGVsUmVxdWVzdHMsXG4gICAgICAgIHRoaXMubG9nZ2VyLFxuICAgICAgKTtcbiAgICAgIGF3YWl0IGluaXRpYWxpemVyLmluaXRpYWxpemVEYXRhKGluaXRpYWxCbG9jayk7XG4gICAgfSBlbHNlXG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKGBJbml0aWFsaXppYXRpb24gZm9yIFske3RoaXMuZ2V0SWQoKX1dIGlzIHR1cm5lZCBvZmZgKTtcbiAgfTtcbn1cbiJdfQ==
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RFcmdvVHhFeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZXJnby9leHRyYWN0b3JzL2Fic3RyYWN0RXJnb1R4RXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sVUFBVSxNQUFNLDJCQUEyQixDQUFDO0FBSW5ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBRUwsWUFBWSxHQUViLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhFOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxPQUFnQix1QkFHcEIsU0FBUSxxQkFBcUQ7SUFDN0QsWUFBWSxpQkFBcUMsRUFBRSxNQUF1QjtRQUN4RSxLQUFLLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQW9CRDs7Ozs7OztPQU9HO0lBQ0gsbUJBQW1CLEdBQUcsS0FBSyxFQUN6QixHQUFrQixFQUNsQixLQUFnQixFQUNFLEVBQUU7UUFDcEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQXlCLEVBQUUsQ0FBQztZQUN6QyxLQUFLLE1BQU0sRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO29CQUN4QixTQUFTO2dCQUNYLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsbUNBQW1DLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUMvRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUM3QyxJQUFJLGFBQWEsRUFBRSxDQUFDO29CQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZixrQkFBa0IsVUFBVSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsWUFDbkQsRUFBRSxDQUFDLEVBQ0wsRUFBRSxDQUNILENBQUM7b0JBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDOUIsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3RFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLDZCQUE2QixJQUFJLENBQUMsS0FBSyxFQUFFLGlCQUN2QyxLQUFLLENBQUMsTUFDUixFQUFFLENBQ0gsQ0FBQztvQkFDRixPQUFPLEtBQUssQ0FBQztnQkFDZixDQUFDO2dCQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3RELENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLHNDQUFzQyxJQUFJLENBQUMsS0FBSyxFQUFFLGlCQUNoRCxLQUFLLENBQUMsTUFDUixnQkFBZ0IsQ0FBQyxFQUFFLENBQ3BCLENBQUM7WUFDRixJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDL0MsQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBRUY7OztPQUdHO0lBQ0gsY0FBYyxHQUFHLEtBQUssRUFBRSxZQUF1QixFQUFpQixFQUFFO1FBQ2hFLElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1RCxNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FDckMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFDM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFDOUIsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUNaLElBQUksQ0FBQyxtQkFBbUIsRUFDeEIsSUFBSSxDQUFDLE9BQU8sRUFDWixJQUFJLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLEVBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQ3JDLENBQUM7WUFDRixNQUFNLFdBQVcsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDakQsQ0FBQzs7WUFDQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsSUFBSSxDQUFDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQzVFLENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgSnNvbkJpZ0ludCBmcm9tICdAcm9zZW4tYnJpZGdlL2pzb24tYmlnaW50JztcbmltcG9ydCB7IEJsb2NrSW5mbywgVHJhbnNhY3Rpb24gfSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXItaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7IEFic3RyYWN0RXJnb0VudGl0eSB9IGZyb20gJy4uL2RhdGFiYXNlJztcbmltcG9ydCB7IEVyZ29Jbml0aWFsaXplciB9IGZyb20gJy4uL2luaXRpYWxpemVycyc7XG5pbXBvcnQge1xuICBBYnN0cmFjdEVudGl0eURhdGEsXG4gIENhbGxiYWNrVHlwZSxcbiAgSW5pdGlhbGl6ZU9wdGlvbnMsXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RFcmdvRXh0cmFjdG9yIH0gZnJvbSAnLi9hYnN0cmFjdEVyZ29FeHRyYWN0b3InO1xuXG4vKipcbiAqIEFic3RyYWN0IEVyZ28gVHggRXh0cmFjdG9yIGNsYXNzIGZvciB0eC1iYXNlZCBkYXRhIGV4dHJhY3Rpb24uXG4gKlxuICogVGhpcyBjbGFzcyBleHRlbmRzIHRoZSBBYnN0cmFjdEVyZ29FeHRyYWN0b3IgY2xhc3MgYW5kIHByb3ZpZGVzXG4gKiBmdW5jdGlvbmFsaXR5IGZvciBleHRyYWN0aW5nIHR4LWJhc2VkIGRhdGEgZnJvbSB0aGUgYmxvY2tjaGFpbi5cbiAqXG4gKiBJdCBpbXBsZW1lbnRzIHRoZSBgaW5pdGlhbGl6ZURhdGFgIG1ldGhvZCB3aXRoIGVyZ28gaW5pdGlhbGl6ZXJzLlxuICogSXQgaW1wbGVtZW50cyB0aGUgYHByb2Nlc3NUcmFuc2FjdGlvbnNgIG1ldGhvZCB0byBleHRyYWN0IGFuZFxuICogc3RvcmUgZGF0YSBmcm9tIHRyYW5zYWN0aW9ucy5cbiAqXG4gKiBUcmlnZ2VycyBgSW5zZXJ0YCBjYWxsYmFjayBvbiBuZXcgZGF0YSBpbnNlcnRpb24uXG4gKlxuICogQHRlbXBsYXRlIEV4dHJhY3RlZERhdGEgLSBUaGUgdHlwZSBvZiBkYXRhIGV4dHJhY3RlZCBmcm9tIGJsb2NrY2hhaW5cbiAqIEB0ZW1wbGF0ZSBFeHRyYWN0b3JFbnRpdHkgLSBUaGUgZGF0YWJhc2UgZW50aXR5IHR5cGUgZm9yIHN0b3JpbmcgZXh0cmFjdGVkIGRhdGFcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RXJnb1R4RXh0cmFjdG9yPFxuICBFeHRyYWN0ZWREYXRhIGV4dGVuZHMgQWJzdHJhY3RFbnRpdHlEYXRhLFxuICBFeHRyYWN0b3JFbnRpdHkgZXh0ZW5kcyBBYnN0cmFjdEVyZ29FbnRpdHksXG4+IGV4dGVuZHMgQWJzdHJhY3RFcmdvRXh0cmFjdG9yPEV4dHJhY3RlZERhdGEsIEV4dHJhY3RvckVudGl0eT4ge1xuICBjb25zdHJ1Y3Rvcihpbml0aWFsaXplT3B0aW9ucz86IEluaXRpYWxpemVPcHRpb25zLCBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlcikge1xuICAgIHN1cGVyKGluaXRpYWxpemVPcHRpb25zLCBsb2dnZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3QgdHJhbnNhY3Rpb24gZGF0YSB0byBwcm9wZXIgZm9ybWF0IChub3QgaW5jbHVkaW5nIHNwZW5kaW5nIGluZm9ybWF0aW9uKS5cbiAgICogVGhpcyBtZXRob2Qgc2hvdWxkIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0aGF0IG5lZWQgdHJhbnNhY3Rpb24tYmFzZWQgZXh0cmFjdGlvbi5cbiAgICogQHBhcmFtIHR4IC0gVGhlIHRyYW5zYWN0aW9uIHRvIGV4dHJhY3QgZGF0YSBmcm9tXG4gICAqIEByZXR1cm5zIGV4dHJhY3RlZCBkYXRhIGluIHByb3BlciBmb3JtYXQgb3IgdW5kZWZpbmVkIGlmIG5vIGRhdGEgc2hvdWxkIGJlIGV4dHJhY3RlZFxuICAgKiBAdGhyb3dzIEVycm9yIGlmIG5vdCBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzXG4gICAqL1xuICBhYnN0cmFjdCBleHRyYWN0VHhEYXRhOiAodHg6IFRyYW5zYWN0aW9uKSA9PiBFeHRyYWN0ZWREYXRhIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGUgdHJhbnNhY3Rpb24gaGFzIHRoZSByZXF1aXJlZCBkYXRhIGZvcm1hdC5cbiAgICogVGhpcyBtZXRob2Qgc2hvdWxkIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0aGF0IG5lZWQgdHJhbnNhY3Rpb24tYmFzZWQgZXh0cmFjdGlvbi5cbiAgICogQHBhcmFtIHR4IC0gVGhlIHRyYW5zYWN0aW9uIHRvIGNoZWNrXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIHRyYW5zYWN0aW9uIGhhcyB0aGUgcmVxdWlyZWQgZGF0YSBhbmQgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgbm90IG92ZXJyaWRkZW4gYnkgc3ViY2xhc3NcbiAgICovXG4gIGFic3RyYWN0IGhhc1R4RGF0YTogKHR4OiBUcmFuc2FjdGlvbikgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogUHJvY2VzcyBhIGxpc3Qgb2YgdHJhbnNhY3Rpb25zIGluIGEgYmxvY2sgYW5kIHN0b3JlIHJlcXVpcmVkIGluZm9ybWF0aW9uLlxuICAgKiBUaGlzIG1ldGhvZCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzIGZvciBjdXN0b20gdHJhbnNhY3Rpb24gcHJvY2Vzc2luZyxcbiAgICogb3IgdGhleSBjYW4gb3ZlcnJpZGUgZXh0cmFjdFR4RGF0YSBhbmQgaGFzVHhEYXRhIG1ldGhvZHMgaW5zdGVhZC5cbiAgICogQHBhcmFtIHR4cyAtIExpc3Qgb2YgdHJhbnNhY3Rpb25zIGluIHRoZSBibG9ja1xuICAgKiBAcGFyYW0gYmxvY2sgLSBCbG9jayBpbmZvcm1hdGlvblxuICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBwcm9jZXNzIGlzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkgYW5kIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgcHJvY2Vzc1RyYW5zYWN0aW9ucyA9IGFzeW5jIChcbiAgICB0eHM6IFRyYW5zYWN0aW9uW10sXG4gICAgYmxvY2s6IEJsb2NrSW5mbyxcbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHR4c0RhdGE6IEFycmF5PEV4dHJhY3RlZERhdGE+ID0gW107XG4gICAgICBmb3IgKGNvbnN0IHR4IG9mIHR4cykge1xuICAgICAgICBpZiAoIXRoaXMuaGFzVHhEYXRhKHR4KSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBUcnlpbmcgdG8gZXh0cmFjdCBkYXRhIGZyb20gdHggWyR7dHguaWR9XWApO1xuICAgICAgICBjb25zdCBleHRyYWN0ZWREYXRhID0gdGhpcy5leHRyYWN0VHhEYXRhKHR4KTtcbiAgICAgICAgaWYgKGV4dHJhY3RlZERhdGEpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgIGBFeHRyYWN0ZWQgZGF0YSAke0pzb25CaWdJbnQuc3RyaW5naWZ5KGV4dHJhY3RlZERhdGEpfSBmcm9tIHR4ICR7XG4gICAgICAgICAgICAgIHR4LmlkXG4gICAgICAgICAgICB9YCxcbiAgICAgICAgICApO1xuICAgICAgICAgIHR4c0RhdGEucHVzaChleHRyYWN0ZWREYXRhKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodHhzRGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmICghKGF3YWl0IHRoaXMuYWN0aW9ucy5zdG9yZUVudGl0aWVzKHR4c0RhdGEsIGJsb2NrLCB0aGlzLmdldElkKCkpKSkge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oXG4gICAgICAgICAgICBgRGF0YSBpbnNlcnRpb24gZmFpbGVkIGZvciAke3RoaXMuZ2V0SWQoKX0gYXQgdGhlIGJsb2NrICR7XG4gICAgICAgICAgICAgIGJsb2NrLmhlaWdodFxuICAgICAgICAgICAgfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50cmlnZ2VyQ2FsbGJhY2tzKENhbGxiYWNrVHlwZS5JbnNlcnQsIHR4c0RhdGEpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFxuICAgICAgICBgUHJvY2Vzc2luZyB0cmFuc2FjdGlvbnMgZmFpbGVkIGZvciAke3RoaXMuZ2V0SWQoKX0gYXQgdGhlIGJsb2NrICR7XG4gICAgICAgICAgYmxvY2suaGVpZ2h0XG4gICAgICAgIH0gd2l0aCBlcnJvcjogJHtlfWAsXG4gICAgICApO1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvciAmJiBlLnN0YWNrKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBlcnJvciBzdGFjazogJHtlLnN0YWNrfWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICAvKipcbiAgICogaW5pdGlhbGl6ZSBleHRyYWN0b3IgZGF0YWJhc2Ugd2l0aCBkYXRhIGNyZWF0ZWQgYmVsb3cgdGhlIGluaXRpYWwgaGVpZ2h0XG4gICAqIEBwYXJhbSBpbml0aWFsQmxvY2tcbiAgICovXG4gIGluaXRpYWxpemVEYXRhID0gYXN5bmMgKGluaXRpYWxCbG9jazogQmxvY2tJbmZvKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgaWYgKHRoaXMuaW5pdGlhbGl6ZU9wdGlvbnMgJiYgdGhpcy5pbml0aWFsaXplT3B0aW9ucy5hY3RpdmUpIHtcbiAgICAgIGNvbnN0IGluaXRpYWxpemVyID0gbmV3IEVyZ29Jbml0aWFsaXplcihcbiAgICAgICAgdGhpcy5pbml0aWFsaXplT3B0aW9ucy50eXBlLFxuICAgICAgICB0aGlzLmluaXRpYWxpemVPcHRpb25zLnVybCxcbiAgICAgICAgdGhpcy5pbml0aWFsaXplT3B0aW9ucy5hZGRyZXNzLFxuICAgICAgICB0aGlzLmdldElkKCksXG4gICAgICAgIHRoaXMucHJvY2Vzc1RyYW5zYWN0aW9ucyxcbiAgICAgICAgdGhpcy5hY3Rpb25zLFxuICAgICAgICB0aGlzLmluaXRpYWxpemVPcHRpb25zLm1heFBhcmFsbGVsUmVxdWVzdHMsXG4gICAgICAgIHRoaXMubG9nZ2VyLmNoaWxkKCdFcmdvSW5pdGlhbGl6ZXInKSxcbiAgICAgICk7XG4gICAgICBhd2FpdCBpbml0aWFsaXplci5pbml0aWFsaXplRGF0YShpbml0aWFsQmxvY2spO1xuICAgIH0gZWxzZVxuICAgICAgdGhpcy5sb2dnZXIuaW5mbyhgSW5pdGlhbGl6aWF0aW9uIGZvciBbJHt0aGlzLmdldElkKCl9XSBpcyB0dXJuZWQgb2ZmYCk7XG4gIH07XG59XG4iXX0=
@@ -1,3 +1,4 @@
1
1
  export declare const DELAY_BETWEEN_INIT_REQUESTS = 100;
2
2
  export declare const INIT_WORKERS_REASSIGN_INTERVAL = 5000;
3
+ export declare const MAX_PARALLEL_REQUESTS = 10;
3
4
  //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../lib/ergo/initializers/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAC/C,eAAO,MAAM,8BAA8B,OAAO,CAAC;AACnD,eAAO,MAAM,qBAAqB,KAAK,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const DELAY_BETWEEN_INIT_REQUESTS = 100; // In milliseconds (only applies to node initialization)
2
+ export const INIT_WORKERS_REASSIGN_INTERVAL = 5000; //milliseconds (only applies to explorer initialization)
3
+ export const MAX_PARALLEL_REQUESTS = 10;
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2VyZ28vaW5pdGlhbGl6ZXJzL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxHQUFHLENBQUMsQ0FBQyx3REFBd0Q7QUFDeEcsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsSUFBSSxDQUFDLENBQUMsd0RBQXdEO0FBQzVHLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBERUxBWV9CRVRXRUVOX0lOSVRfUkVRVUVTVFMgPSAxMDA7IC8vIEluIG1pbGxpc2Vjb25kcyAob25seSBhcHBsaWVzIHRvIG5vZGUgaW5pdGlhbGl6YXRpb24pXG5leHBvcnQgY29uc3QgSU5JVF9XT1JLRVJTX1JFQVNTSUdOX0lOVEVSVkFMID0gNTAwMDsgLy9taWxsaXNlY29uZHMgKG9ubHkgYXBwbGllcyB0byBleHBsb3JlciBpbml0aWFsaXphdGlvbilcbmV4cG9ydCBjb25zdCBNQVhfUEFSQUxMRUxfUkVRVUVTVFMgPSAxMDtcbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { DummyLogger } from '@rosen-bridge/abstract-logger';
1
+ import { AbstractLogger } from '@rosen-bridge/abstract-logger';
2
2
  import { BlockInfo, ErgoNetworkType, OutputBox, Transaction } from '@rosen-bridge/scanner-interfaces';
3
3
  import { AbstractErgoBoxAction, AbstractErgoEntity } from '../database';
4
4
  import { AbstractEntityData, ExtendedSpendInfo, ExtendedTransaction } from '../interfaces';
@@ -8,10 +8,10 @@ export declare class ErgoBoxInitializer<ExtractedData extends AbstractEntityData
8
8
  protected hasBoxData: (box: OutputBox) => boolean;
9
9
  protected processTransactions: (txs: Transaction[], block: BlockInfo) => Promise<boolean>;
10
10
  protected actions: AbstractErgoBoxAction<ExtractedData, ExtractorEntity>;
11
- protected logger: DummyLogger;
11
+ protected logger: AbstractLogger;
12
12
  private spendRecordsMutex;
13
13
  private spendRecords;
14
- constructor(networkType: ErgoNetworkType, url: string, address: string, extractorId: string, hasBoxData: (box: OutputBox) => boolean, processTransactions: (txs: Transaction[], block: BlockInfo) => Promise<boolean>, actions: AbstractErgoBoxAction<ExtractedData, ExtractorEntity>, maxParallelRequests?: number, logger?: DummyLogger);
14
+ constructor(networkType: ErgoNetworkType, url: string, address: string, extractorId: string, hasBoxData: (box: OutputBox) => boolean, processTransactions: (txs: Transaction[], block: BlockInfo) => Promise<boolean>, actions: AbstractErgoBoxAction<ExtractedData, ExtractorEntity>, maxParallelRequests?: number, logger?: AbstractLogger);
15
15
  /**
16
16
  * Extracts spending information of all related boxes in the transaction
17
17
  * Note: override this function if the extractor needs extra spending info
@@ -1 +1 @@
1
- {"version":3,"file":"ergoBoxInitializer.d.ts","sourceRoot":"","sources":["../../../lib/ergo/initializers/ergoBoxInitializer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EACL,SAAS,EACT,eAAe,EACf,SAAS,EACT,WAAW,EACZ,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,kBAAkB,CAC7B,aAAa,SAAS,kBAAkB,EACxC,eAAe,SAAS,kBAAkB,CAC1C,SAAQ,eAAe,CAAC,aAAa,EAAE,eAAe,CAAC;IAQrD,SAAS,CAAC,WAAW,EAAE,MAAM;IAC7B,SAAS,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO;IACjD,SAAS,CAAC,mBAAmB,EAAE,CAC7B,GAAG,EAAE,WAAW,EAAE,EAClB,KAAK,EAAE,SAAS,KACb,OAAO,CAAC,OAAO,CAAC;IACrB,SAAS,CAAC,OAAO,EAAE,qBAAqB,CAAC,aAAa,EAAE,eAAe,CAAC;IAExE,SAAS,CAAC,MAAM;IAflB,OAAO,CAAC,iBAAiB,CAAe;IACxC,OAAO,CAAC,YAAY,CAAsB;gBAGxC,WAAW,EAAE,eAAe,EAC5B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACL,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,EACvC,mBAAmB,EAAE,CAC7B,GAAG,EAAE,WAAW,EAAE,EAClB,KAAK,EAAE,SAAS,KACb,OAAO,CAAC,OAAO,CAAC,EACX,OAAO,EAAE,qBAAqB,CAAC,aAAa,EAAE,eAAe,CAAC,EACxE,mBAAmB,SAAwB,EACjC,MAAM,cAAoB;IAetC;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,GAC1B,IAAI,mBAAmB,KACtB,iBAAiB,EAAE,CAepB;IAEF;;;OAGG;IACH,SAAS,CAAC,cAAc,GACtB,KAAK,mBAAmB,EAAE,KACzB,OAAO,CAAC,IAAI,CAAC,CASd;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,cAAc,sBAoBtB;CACH"}
1
+ {"version":3,"file":"ergoBoxInitializer.d.ts","sourceRoot":"","sources":["../../../lib/ergo/initializers/ergoBoxInitializer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EACL,SAAS,EACT,eAAe,EACf,SAAS,EACT,WAAW,EACZ,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,kBAAkB,CAC7B,aAAa,SAAS,kBAAkB,EACxC,eAAe,SAAS,kBAAkB,CAC1C,SAAQ,eAAe,CAAC,aAAa,EAAE,eAAe,CAAC;IAQrD,SAAS,CAAC,WAAW,EAAE,MAAM;IAC7B,SAAS,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO;IACjD,SAAS,CAAC,mBAAmB,EAAE,CAC7B,GAAG,EAAE,WAAW,EAAE,EAClB,KAAK,EAAE,SAAS,KACb,OAAO,CAAC,OAAO,CAAC;IACrB,SAAS,CAAC,OAAO,EAAE,qBAAqB,CAAC,aAAa,EAAE,eAAe,CAAC;IAExE,SAAS,CAAC,MAAM,EAAE,cAAc;IAflC,OAAO,CAAC,iBAAiB,CAAe;IACxC,OAAO,CAAC,YAAY,CAAsB;gBAGxC,WAAW,EAAE,eAAe,EAC5B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACL,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,EACvC,mBAAmB,EAAE,CAC7B,GAAG,EAAE,WAAW,EAAE,EAClB,KAAK,EAAE,SAAS,KACb,OAAO,CAAC,OAAO,CAAC,EACX,OAAO,EAAE,qBAAqB,CAAC,aAAa,EAAE,eAAe,CAAC,EACxE,mBAAmB,SAAwB,EACjC,MAAM,GAAE,cAAkC;IAetD;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,GAC1B,IAAI,mBAAmB,KACtB,iBAAiB,EAAE,CAepB;IAEF;;;OAGG;IACH,SAAS,CAAC,cAAc,GACtB,KAAK,mBAAmB,EAAE,KACzB,OAAO,CAAC,IAAI,CAAC,CASd;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,cAAc,sBAuBtB;CACH"}