@rosen-bridge/watcher-data-extractor 0.1.3 → 0.1.4

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.
@@ -1,17 +1,24 @@
1
1
  import { DataSource } from 'typeorm';
2
- import { extractedPermit } from '../interfaces/extractedPermit';
2
+ import { ExtractedPermit } from '../interfaces/extractedPermit';
3
3
  import { BlockEntity } from '@rosen-bridge/scanner';
4
4
  declare class PermitEntityAction {
5
5
  private readonly datasource;
6
6
  private readonly permitRepository;
7
7
  constructor(dataSource: DataSource);
8
+ /**
9
+ * stores initial permit boxes in the database
10
+ * @param permits
11
+ * @param initialHeight
12
+ * @param extractor
13
+ */
14
+ storeInitialPermits: (permits: Array<ExtractedPermit>, initialHeight: number, extractor: string) => Promise<boolean>;
8
15
  /**
9
16
  * It stores list of permits in the dataSource with block id
10
17
  * @param permits
11
18
  * @param block
12
19
  * @param extractor
13
20
  */
14
- storePermits: (permits: Array<extractedPermit>, block: BlockEntity, extractor: string) => Promise<boolean>;
21
+ storePermits: (permits: Array<ExtractedPermit>, block: BlockEntity, extractor: string) => Promise<boolean>;
15
22
  /**
16
23
  * update spendBlock Column of the permits in the dataBase
17
24
  * @param spendId
@@ -1 +1 @@
1
- {"version":3,"file":"permitDB.d.ts","sourceRoot":"","sources":["../../lib/actions/permitDB.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAkB,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,cAAM,kBAAkB;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2B;gBAEhD,UAAU,EAAE,UAAU;IAKlC;;;;;OAKG;IACH,YAAY,YACD,MAAM,eAAe,CAAC,SACxB,WAAW,aACP,MAAM,sBA8CjB;IAEF;;;;;OAKG;IACH,YAAY,YACD,MAAM,MAAM,CAAC,SACf,WAAW,aACP,MAAM,KAChB,QAAQ,IAAI,CAAC,CAad;IAEF;;;;OAIG;IAEH,WAAW,UAAiB,MAAM,aAAa,MAAM,KAAG,QAAQ,IAAI,CAAC,CAmBnE;CACH;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"permitDB.d.ts","sourceRoot":"","sources":["../../lib/actions/permitDB.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,cAAM,kBAAkB;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2B;gBAEhD,UAAU,EAAE,UAAU;IAKlC;;;;;OAKG;IACH,mBAAmB,YACR,MAAM,eAAe,CAAC,iBAChB,MAAM,aACV,MAAM,KAChB,QAAQ,OAAO,CAAC,CA6BjB;IAEF;;;;;OAKG;IACH,YAAY,YACD,MAAM,eAAe,CAAC,SACxB,WAAW,aACP,MAAM,sBA8CjB;IAEF;;;;;OAKG;IACH,YAAY,YACD,MAAM,MAAM,CAAC,SACf,WAAW,aACP,MAAM,KAChB,QAAQ,IAAI,CAAC,CAad;IAEF;;;;OAIG;IAEH,WAAW,UAAiB,MAAM,aAAa,MAAM,KAAG,QAAQ,IAAI,CAAC,CAmBnE;CACH;AAED,eAAe,kBAAkB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { In } from 'typeorm';
1
+ import { In, LessThan } from 'typeorm';
2
2
  import PermitEntity from '../entities/PermitEntity';
3
3
  import CommitmentEntity from '../entities/CommitmentEntity';
4
4
  class PermitEntityAction {
@@ -8,6 +8,42 @@ class PermitEntityAction {
8
8
  this.datasource = dataSource;
9
9
  this.permitRepository = dataSource.getRepository(PermitEntity);
10
10
  }
11
+ /**
12
+ * stores initial permit boxes in the database
13
+ * @param permits
14
+ * @param initialHeight
15
+ * @param extractor
16
+ */
17
+ storeInitialPermits = async (permits, initialHeight, extractor) => {
18
+ const queryRunner = this.datasource.createQueryRunner();
19
+ await queryRunner.connect();
20
+ await queryRunner.startTransaction();
21
+ try {
22
+ const repository = queryRunner.manager.getRepository(PermitEntity);
23
+ await repository.delete({ height: LessThan(initialHeight) });
24
+ for (const permit of permits) {
25
+ const entity = {
26
+ boxId: permit.boxId,
27
+ boxSerialized: permit.boxSerialized,
28
+ block: permit.block,
29
+ height: permit.height,
30
+ extractor: extractor,
31
+ WID: permit.WID,
32
+ };
33
+ await queryRunner.manager.getRepository(PermitEntity).insert(entity);
34
+ }
35
+ await queryRunner.commitTransaction();
36
+ }
37
+ catch (e) {
38
+ console.log(`An error occurred during storing initial permits action: ${e}`);
39
+ await queryRunner.rollbackTransaction();
40
+ throw new Error('Initialization failed while storing initial permits');
41
+ }
42
+ finally {
43
+ await queryRunner.release();
44
+ }
45
+ return true;
46
+ };
11
47
  /**
12
48
  * It stores list of permits in the dataSource with block id
13
49
  * @param permits
@@ -108,4 +144,4 @@ class PermitEntityAction {
108
144
  };
109
145
  }
110
146
  export default PermitEntityAction;
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWl0REIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYWN0aW9ucy9wZXJtaXREQi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsRUFBRSxFQUFjLE1BQU0sU0FBUyxDQUFDO0FBRXJELE9BQU8sWUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBRXBELE9BQU8sZ0JBQWdCLE1BQU0sOEJBQThCLENBQUM7QUFFNUQsTUFBTSxrQkFBa0I7SUFDTCxVQUFVLENBQWE7SUFDdkIsZ0JBQWdCLENBQTJCO0lBRTVELFlBQVksVUFBc0I7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxHQUFHLEtBQUssRUFDbEIsT0FBK0IsRUFDL0IsS0FBa0IsRUFDbEIsU0FBaUIsRUFDakIsRUFBRTtRQUNGLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDdEMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JELE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztZQUN0RCxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUNqQixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDLENBQUM7UUFDSCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDbkIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3hELE1BQU0sV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzVCLE1BQU0sV0FB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Q0QsT0FBTyxFQUFFLENBQUM7SUFDZixDQUFDLENBQUM7Q0FDSDtBQUVELGVBQWUsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhU291cmNlLCBJbiwgUmVwb3NpdG9yeSB9IGZyb20gJ3R5cGVvcm0nO1xuaW1wb3J0IHsgZXh0cmFjdGVkUGVybWl0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHRyYWN0ZWRQZXJtaXQnO1xuaW1wb3J0IFBlcm1pdEVudGl0eSBmcm9tICcuLi9lbnRpdGllcy9QZXJtaXRFbnRpdHknO1xuaW1wb3J0IHsgQmxvY2tFbnRpdHkgfSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXInO1xuaW1wb3J0IENvbW1pdG1lbnRFbnRpdHkgZnJvbSAnLi4vZW50aXRpZXMvQ29tbWl0bWVudEVudGl0eSc7XG5cbmNsYXNzIFBlcm1pdEVudGl0eUFjdGlvbiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YXNvdXJjZTogRGF0YVNvdXJjZTtcbiAgcHJpdmF0ZSByZWFkb25seSBwZXJtaXRSZXBvc2l0b3J5OiBSZXBvc2l0b3J5PFBlcm1pdEVudGl0eT47XG5cbiAgY29uc3RydWN0b3IoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSkge1xuICAgIHRoaXMuZGF0YXNvdXJjZSA9IGRhdGFTb3VyY2U7XG4gICAgdGhpcy5wZXJtaXRSZXBvc2l0b3J5ID0gZGF0YVNvdXJjZS5nZXRSZXBvc2l0b3J5KFBlcm1pdEVudGl0eSk7XG4gIH1cblxuICAvKipcbiAgICogSXQgc3RvcmVzIGxpc3Qgb2YgcGVybWl0cyBpbiB0aGUgZGF0YVNvdXJjZSB3aXRoIGJsb2NrIGlkXG4gICAqIEBwYXJhbSBwZXJtaXRzXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICBzdG9yZVBlcm1pdHMgPSBhc3luYyAoXG4gICAgcGVybWl0czogQXJyYXk8ZXh0cmFjdGVkUGVybWl0PixcbiAgICBibG9jazogQmxvY2tFbnRpdHksXG4gICAgZXh0cmFjdG9yOiBzdHJpbmdcbiAgKSA9PiB7XG4gICAgaWYgKHBlcm1pdHMubGVuZ3RoID09PSAwKSByZXR1cm4gdHJ1ZTtcbiAgICBjb25zdCBib3hJZHMgPSBwZXJtaXRzLm1hcCgocGVybWl0KSA9PiBwZXJtaXQuYm94SWQpO1xuICAgIGNvbnN0IHNhdmVkUGVybWl0cyA9IGF3YWl0IHRoaXMucGVybWl0UmVwb3NpdG9yeS5maW5kQnkoe1xuICAgICAgYm94SWQ6IEluKGJveElkcyksXG4gICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICB9KTtcbiAgICBsZXQgc3VjY2VzcyA9IHRydWU7XG4gICAgY29uc3QgcXVlcnlSdW5uZXIgPSB0aGlzLmRhdGFzb3VyY2UuY3JlYXRlUXVlcnlSdW5uZXIoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb25uZWN0KCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuc3RhcnRUcmFuc2FjdGlvbigpO1xuICAgIHRyeSB7XG4gICAgICBmb3IgKGNvbnN0IHBlcm1pdCBvZiBwZXJtaXRzKSB7XG4gICAgICAgIGNvbnN0IHNhdmVkID0gc2F2ZWRQZXJtaXRzLnNvbWUoKGVudGl0eSkgPT4ge1xuICAgICAgICAgIHJldHVybiBlbnRpdHkuYm94SWQgPT09IHBlcm1pdC5ib3hJZDtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGVudGl0eSA9IHtcbiAgICAgICAgICBib3hJZDogcGVybWl0LmJveElkLFxuICAgICAgICAgIGJveFNlcmlhbGl6ZWQ6IHBlcm1pdC5ib3hTZXJpYWxpemVkLFxuICAgICAgICAgIGJsb2NrOiBibG9jay5oYXNoLFxuICAgICAgICAgIGhlaWdodDogYmxvY2suaGVpZ2h0LFxuICAgICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICAgIFdJRDogcGVybWl0LldJRCxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKCFzYXZlZCkge1xuICAgICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLm1hbmFnZXIuaW5zZXJ0KFBlcm1pdEVudGl0eSwgZW50aXR5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhd2FpdCBxdWVyeVJ1bm5lci5tYW5hZ2VyLnVwZGF0ZShcbiAgICAgICAgICAgIFBlcm1pdEVudGl0eSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYm94SWQ6IHBlcm1pdC5ib3hJZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbnRpdHlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgc3RvcmUgcGVybWl0IGFjdGlvbjogJHtlfWApO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuICAgIHJldHVybiBzdWNjZXNzO1xuICB9O1xuXG4gIC8qKlxuICAgKiB1cGRhdGUgc3BlbmRCbG9jayBDb2x1bW4gb2YgdGhlIHBlcm1pdHMgaW4gdGhlIGRhdGFCYXNlXG4gICAqIEBwYXJhbSBzcGVuZElkXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICBzcGVuZFBlcm1pdHMgPSBhc3luYyAoXG4gICAgc3BlbmRJZDogQXJyYXk8c3RyaW5nPixcbiAgICBibG9jazogQmxvY2tFbnRpdHksXG4gICAgZXh0cmFjdG9yOiBzdHJpbmdcbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgLy90b2RvOiBzaG91bGQgY2hhbmdlIHdpdGggc2luZ2xlIGRiIGNhbGxcbiAgICBmb3IgKGNvbnN0IGlkIG9mIHNwZW5kSWQpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGF0YXNvdXJjZVxuICAgICAgICAuY3JlYXRlUXVlcnlCdWlsZGVyKClcbiAgICAgICAgLnVwZGF0ZShQZXJtaXRFbnRpdHkpXG4gICAgICAgIC5zZXQoeyBzcGVuZEJsb2NrOiBibG9jay5oYXNoLCBzcGVuZEhlaWdodDogYmxvY2suaGVpZ2h0IH0pXG4gICAgICAgIC53aGVyZSgnYm94SWQgPSA6aWQgQU5EIGV4dHJhY3RvciA9IDpleHRyYWN0b3InLCB7XG4gICAgICAgICAgaWQ6IGlkLFxuICAgICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICB9KVxuICAgICAgICAuZXhlY3V0ZSgpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogZGVsZXRpbmcgYWxsIHBlcm1pdHMgY29ycmVzcG9uZGluZyB0byB0aGUgYmxvY2soaWQpIGFuZCBleHRyYWN0b3IoaWQpXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICAvL1RPRE86IHNob3VsZCBjaGVjayBpZiBkZWxldGVkIG9yIG5vdCBQcm9taXNlPEJvb2xlYW4+XG4gIGRlbGV0ZUJsb2NrID0gYXN5bmMgKGJsb2NrOiBzdHJpbmcsIGV4dHJhY3Rvcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgYXdhaXQgdGhpcy5kYXRhc291cmNlXG4gICAgICAuY3JlYXRlUXVlcnlCdWlsZGVyKClcbiAgICAgIC5kZWxldGUoKVxuICAgICAgLmZyb20oUGVybWl0RW50aXR5KVxuICAgICAgLndoZXJlKCdleHRyYWN0b3IgPSA6ZXh0cmFjdG9yIEFORCBibG9jayA9IDpibG9jaycsIHtcbiAgICAgICAgYmxvY2s6IGJsb2NrLFxuICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgIH0pXG4gICAgICAuZXhlY3V0ZSgpO1xuICAgIC8vVE9ETzogc2hvdWxkIGhhbmRsZWQgbnVsbCB2YWx1ZSBpbiBzcGVuZEJsb2NrSGVpZ2h0XG4gICAgYXdhaXQgdGhpcy5kYXRhc291cmNlXG4gICAgICAuY3JlYXRlUXVlcnlCdWlsZGVyKClcbiAgICAgIC51cGRhdGUoQ29tbWl0bWVudEVudGl0eSlcbiAgICAgIC5zZXQoeyBzcGVuZEJsb2NrOiB1bmRlZmluZWQsIHNwZW5kSGVpZ2h0OiAwIH0pXG4gICAgICAud2hlcmUoJ3NwZW5kQmxvY2sgPSA6YmxvY2sgQU5EIGJsb2NrID0gOmJsb2NrJywge1xuICAgICAgICBibG9jazogYmxvY2ssXG4gICAgICB9KVxuICAgICAgLmV4ZWN1dGUoKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgUGVybWl0RW50aXR5QWN0aW9uO1xuIl19
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWl0REIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYWN0aW9ucy9wZXJtaXREQi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsRUFBRSxFQUFFLFFBQVEsRUFBYyxNQUFNLFNBQVMsQ0FBQztBQUUvRCxPQUFPLFlBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUVwRCxPQUFPLGdCQUFnQixNQUFNLDhCQUE4QixDQUFDO0FBRTVELE1BQU0sa0JBQWtCO0lBQ0wsVUFBVSxDQUFhO0lBQ3ZCLGdCQUFnQixDQUEyQjtJQUU1RCxZQUFZLFVBQXNCO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG1CQUFtQixHQUFHLEtBQUssRUFDekIsT0FBK0IsRUFDL0IsYUFBcUIsRUFDckIsU0FBaUIsRUFDQyxFQUFFO1FBQ3BCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN4RCxNQUFNLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1QixNQUFNLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JDLElBQUk7WUFDRixNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNuRSxNQUFNLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3RCxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDNUIsTUFBTSxNQUFNLEdBQUc7b0JBQ2IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO29CQUNuQixhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWE7b0JBQ25DLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztvQkFDbkIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO29CQUNyQixTQUFTLEVBQUUsU0FBUztvQkFDcEIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHO2lCQUNoQixDQUFDO2dCQUNGLE1BQU0sV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3RFO1lBQ0QsTUFBTSxXQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUN2QztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FDVCw0REFBNEQsQ0FBQyxFQUFFLENBQ2hFLENBQUM7WUFDRixNQUFNLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztTQUN4RTtnQkFBUztZQUNSLE1BQU0sV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzdCO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNILFlBQVksR0FBRyxLQUFLLEVBQ2xCLE9BQStCLEVBQy9CLEtBQWtCLEVBQ2xCLFNBQWlCLEVBQ2pCLEVBQUU7UUFDRixJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7WUFDdEQsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDakIsU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ25CLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN4RCxNQUFNLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1QixNQUFNLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JDLElBQUk7WUFDRixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDNUIsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO29CQUN6QyxPQUFPLE1BQU0sQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDdkMsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsTUFBTSxNQUFNLEdBQUc7b0JBQ2IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO29CQUNuQixhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWE7b0JBQ25DLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSTtvQkFDakIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO29CQUNwQixTQUFTLEVBQUUsU0FBUztvQkFDcEIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHO2lCQUNoQixDQUFDO2dCQUNGLElBQUksQ0FBQyxLQUFLLEVBQUU7b0JBQ1YsTUFBTSxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7aUJBQ3hEO3FCQUFNO29CQUNMLE1BQU0sV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQzlCLFlBQVksRUFDWjt3QkFDRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7cUJBQ3BCLEVBQ0QsTUFBTSxDQUNQLENBQUM7aUJBQ0g7YUFDRjtZQUNELE1BQU0sV0FBVyxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDdkM7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsaURBQWlELENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEUsTUFBTSxXQUFXLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUN4QyxPQUFPLEdBQUcsS0FBSyxDQUFDO1NBQ2pCO2dCQUFTO1lBQ1IsTUFBTSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDN0I7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNILFlBQVksR0FBRyxLQUFLLEVBQ2xCLE9BQXNCLEVBQ3RCLEtBQWtCLEVBQ2xCLFNBQWlCLEVBQ0YsRUFBRTtRQUNqQix5Q0FBeUM7UUFDekMsS0FBSyxNQUFNLEVBQUUsSUFBSSxPQUFPLEVBQUU7WUFDeEIsTUFBTSxJQUFJLENBQUMsVUFBVTtpQkFDbEIsa0JBQWtCLEVBQUU7aUJBQ3BCLE1BQU0sQ0FBQyxZQUFZLENBQUM7aUJBQ3BCLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQzFELEtBQUssQ0FBQyx3Q0FBd0MsRUFBRTtnQkFDL0MsRUFBRSxFQUFFLEVBQUU7Z0JBQ04sU0FBUyxFQUFFLFNBQVM7YUFDckIsQ0FBQztpQkFDRCxPQUFPLEVBQUUsQ0FBQztTQUNkO0lBQ0gsQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNILHVEQUF1RDtJQUN2RCxXQUFXLEdBQUcsS0FBSyxFQUFFLEtBQWEsRUFBRSxTQUFpQixFQUFpQixFQUFFO1FBQ3RFLE1BQU0sSUFBSSxDQUFDLFVBQVU7YUFDbEIsa0JBQWtCLEVBQUU7YUFDcEIsTUFBTSxFQUFFO2FBQ1IsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUNsQixLQUFLLENBQUMsMkNBQTJDLEVBQUU7WUFDbEQsS0FBSyxFQUFFLEtBQUs7WUFDWixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDO2FBQ0QsT0FBTyxFQUFFLENBQUM7UUFDYixxREFBcUQ7UUFDckQsTUFBTSxJQUFJLENBQUMsVUFBVTthQUNsQixrQkFBa0IsRUFBRTthQUNwQixNQUFNLENBQUMsZ0JBQWdCLENBQUM7YUFDeEIsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUM7YUFDOUMsS0FBSyxDQUFDLHdDQUF3QyxFQUFFO1lBQy9DLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQzthQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0NBQ0g7QUFFRCxlQUFlLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSwgSW4sIExlc3NUaGFuLCBSZXBvc2l0b3J5IH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgeyBFeHRyYWN0ZWRQZXJtaXQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2V4dHJhY3RlZFBlcm1pdCc7XG5pbXBvcnQgUGVybWl0RW50aXR5IGZyb20gJy4uL2VudGl0aWVzL1Blcm1pdEVudGl0eSc7XG5pbXBvcnQgeyBCbG9ja0VudGl0eSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lcic7XG5pbXBvcnQgQ29tbWl0bWVudEVudGl0eSBmcm9tICcuLi9lbnRpdGllcy9Db21taXRtZW50RW50aXR5JztcblxuY2xhc3MgUGVybWl0RW50aXR5QWN0aW9uIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhc291cmNlOiBEYXRhU291cmNlO1xuICBwcml2YXRlIHJlYWRvbmx5IHBlcm1pdFJlcG9zaXRvcnk6IFJlcG9zaXRvcnk8UGVybWl0RW50aXR5PjtcblxuICBjb25zdHJ1Y3RvcihkYXRhU291cmNlOiBEYXRhU291cmNlKSB7XG4gICAgdGhpcy5kYXRhc291cmNlID0gZGF0YVNvdXJjZTtcbiAgICB0aGlzLnBlcm1pdFJlcG9zaXRvcnkgPSBkYXRhU291cmNlLmdldFJlcG9zaXRvcnkoUGVybWl0RW50aXR5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBzdG9yZXMgaW5pdGlhbCBwZXJtaXQgYm94ZXMgaW4gdGhlIGRhdGFiYXNlXG4gICAqIEBwYXJhbSBwZXJtaXRzXG4gICAqIEBwYXJhbSBpbml0aWFsSGVpZ2h0XG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHN0b3JlSW5pdGlhbFBlcm1pdHMgPSBhc3luYyAoXG4gICAgcGVybWl0czogQXJyYXk8RXh0cmFjdGVkUGVybWl0PixcbiAgICBpbml0aWFsSGVpZ2h0OiBudW1iZXIsXG4gICAgZXh0cmFjdG9yOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgY29uc3QgcXVlcnlSdW5uZXIgPSB0aGlzLmRhdGFzb3VyY2UuY3JlYXRlUXVlcnlSdW5uZXIoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb25uZWN0KCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuc3RhcnRUcmFuc2FjdGlvbigpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXBvc2l0b3J5ID0gcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KFBlcm1pdEVudGl0eSk7XG4gICAgICBhd2FpdCByZXBvc2l0b3J5LmRlbGV0ZSh7IGhlaWdodDogTGVzc1RoYW4oaW5pdGlhbEhlaWdodCkgfSk7XG4gICAgICBmb3IgKGNvbnN0IHBlcm1pdCBvZiBwZXJtaXRzKSB7XG4gICAgICAgIGNvbnN0IGVudGl0eSA9IHtcbiAgICAgICAgICBib3hJZDogcGVybWl0LmJveElkLFxuICAgICAgICAgIGJveFNlcmlhbGl6ZWQ6IHBlcm1pdC5ib3hTZXJpYWxpemVkLFxuICAgICAgICAgIGJsb2NrOiBwZXJtaXQuYmxvY2ssXG4gICAgICAgICAgaGVpZ2h0OiBwZXJtaXQuaGVpZ2h0LFxuICAgICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICAgIFdJRDogcGVybWl0LldJRCxcbiAgICAgICAgfTtcbiAgICAgICAgYXdhaXQgcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KFBlcm1pdEVudGl0eSkuaW5zZXJ0KGVudGl0eSk7XG4gICAgICB9XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHN0b3JpbmcgaW5pdGlhbCBwZXJtaXRzIGFjdGlvbjogJHtlfWBcbiAgICAgICk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0luaXRpYWxpemF0aW9uIGZhaWxlZCB3aGlsZSBzdG9yaW5nIGluaXRpYWwgcGVybWl0cycpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBJdCBzdG9yZXMgbGlzdCBvZiBwZXJtaXRzIGluIHRoZSBkYXRhU291cmNlIHdpdGggYmxvY2sgaWRcbiAgICogQHBhcmFtIHBlcm1pdHNcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHN0b3JlUGVybWl0cyA9IGFzeW5jIChcbiAgICBwZXJtaXRzOiBBcnJheTxFeHRyYWN0ZWRQZXJtaXQ+LFxuICAgIGJsb2NrOiBCbG9ja0VudGl0eSxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApID0+IHtcbiAgICBpZiAocGVybWl0cy5sZW5ndGggPT09IDApIHJldHVybiB0cnVlO1xuICAgIGNvbnN0IGJveElkcyA9IHBlcm1pdHMubWFwKChwZXJtaXQpID0+IHBlcm1pdC5ib3hJZCk7XG4gICAgY29uc3Qgc2F2ZWRQZXJtaXRzID0gYXdhaXQgdGhpcy5wZXJtaXRSZXBvc2l0b3J5LmZpbmRCeSh7XG4gICAgICBib3hJZDogSW4oYm94SWRzKSxcbiAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgIH0pO1xuICAgIGxldCBzdWNjZXNzID0gdHJ1ZTtcbiAgICBjb25zdCBxdWVyeVJ1bm5lciA9IHRoaXMuZGF0YXNvdXJjZS5jcmVhdGVRdWVyeVJ1bm5lcigpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3QoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKCk7XG4gICAgdHJ5IHtcbiAgICAgIGZvciAoY29uc3QgcGVybWl0IG9mIHBlcm1pdHMpIHtcbiAgICAgICAgY29uc3Qgc2F2ZWQgPSBzYXZlZFBlcm1pdHMuc29tZSgoZW50aXR5KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGVudGl0eS5ib3hJZCA9PT0gcGVybWl0LmJveElkO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZW50aXR5ID0ge1xuICAgICAgICAgIGJveElkOiBwZXJtaXQuYm94SWQsXG4gICAgICAgICAgYm94U2VyaWFsaXplZDogcGVybWl0LmJveFNlcmlhbGl6ZWQsXG4gICAgICAgICAgYmxvY2s6IGJsb2NrLmhhc2gsXG4gICAgICAgICAgaGVpZ2h0OiBibG9jay5oZWlnaHQsXG4gICAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgICAgV0lEOiBwZXJtaXQuV0lELFxuICAgICAgICB9O1xuICAgICAgICBpZiAoIXNhdmVkKSB7XG4gICAgICAgICAgYXdhaXQgcXVlcnlSdW5uZXIubWFuYWdlci5pbnNlcnQoUGVybWl0RW50aXR5LCBlbnRpdHkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLm1hbmFnZXIudXBkYXRlKFxuICAgICAgICAgICAgUGVybWl0RW50aXR5LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBib3hJZDogcGVybWl0LmJveElkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVudGl0eVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5sb2coYEFuIGVycm9yIG9jY3VycmVkIGR1cmluZyBzdG9yZSBwZXJtaXQgYWN0aW9uOiAke2V9YCk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgICBzdWNjZXNzID0gZmFsc2U7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJlbGVhc2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1Y2Nlc3M7XG4gIH07XG5cbiAgLyoqXG4gICAqIHVwZGF0ZSBzcGVuZEJsb2NrIENvbHVtbiBvZiB0aGUgcGVybWl0cyBpbiB0aGUgZGF0YUJhc2VcbiAgICogQHBhcmFtIHNwZW5kSWRcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHNwZW5kUGVybWl0cyA9IGFzeW5jIChcbiAgICBzcGVuZElkOiBBcnJheTxzdHJpbmc+LFxuICAgIGJsb2NrOiBCbG9ja0VudGl0eSxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAvL3RvZG86IHNob3VsZCBjaGFuZ2Ugd2l0aCBzaW5nbGUgZGIgY2FsbFxuICAgIGZvciAoY29uc3QgaWQgb2Ygc3BlbmRJZCkge1xuICAgICAgYXdhaXQgdGhpcy5kYXRhc291cmNlXG4gICAgICAgIC5jcmVhdGVRdWVyeUJ1aWxkZXIoKVxuICAgICAgICAudXBkYXRlKFBlcm1pdEVudGl0eSlcbiAgICAgICAgLnNldCh7IHNwZW5kQmxvY2s6IGJsb2NrLmhhc2gsIHNwZW5kSGVpZ2h0OiBibG9jay5oZWlnaHQgfSlcbiAgICAgICAgLndoZXJlKCdib3hJZCA9IDppZCBBTkQgZXh0cmFjdG9yID0gOmV4dHJhY3RvcicsIHtcbiAgICAgICAgICBpZDogaWQsXG4gICAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgIH0pXG4gICAgICAgIC5leGVjdXRlKCk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBkZWxldGluZyBhbGwgcGVybWl0cyBjb3JyZXNwb25kaW5nIHRvIHRoZSBibG9jayhpZCkgYW5kIGV4dHJhY3RvcihpZClcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIC8vVE9ETzogc2hvdWxkIGNoZWNrIGlmIGRlbGV0ZWQgb3Igbm90IFByb21pc2U8Qm9vbGVhbj5cbiAgZGVsZXRlQmxvY2sgPSBhc3luYyAoYmxvY2s6IHN0cmluZywgZXh0cmFjdG9yOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBhd2FpdCB0aGlzLmRhdGFzb3VyY2VcbiAgICAgIC5jcmVhdGVRdWVyeUJ1aWxkZXIoKVxuICAgICAgLmRlbGV0ZSgpXG4gICAgICAuZnJvbShQZXJtaXRFbnRpdHkpXG4gICAgICAud2hlcmUoJ2V4dHJhY3RvciA9IDpleHRyYWN0b3IgQU5EIGJsb2NrID0gOmJsb2NrJywge1xuICAgICAgICBibG9jazogYmxvY2ssXG4gICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgfSlcbiAgICAgIC5leGVjdXRlKCk7XG4gICAgLy9UT0RPOiBzaG91bGQgaGFuZGxlZCBudWxsIHZhbHVlIGluIHNwZW5kQmxvY2tIZWlnaHRcbiAgICBhd2FpdCB0aGlzLmRhdGFzb3VyY2VcbiAgICAgIC5jcmVhdGVRdWVyeUJ1aWxkZXIoKVxuICAgICAgLnVwZGF0ZShDb21taXRtZW50RW50aXR5KVxuICAgICAgLnNldCh7IHNwZW5kQmxvY2s6IHVuZGVmaW5lZCwgc3BlbmRIZWlnaHQ6IDAgfSlcbiAgICAgIC53aGVyZSgnc3BlbmRCbG9jayA9IDpibG9jayBBTkQgYmxvY2sgPSA6YmxvY2snLCB7XG4gICAgICAgIGJsb2NrOiBibG9jayxcbiAgICAgIH0pXG4gICAgICAuZXhlY3V0ZSgpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBQZXJtaXRFbnRpdHlBY3Rpb247XG4iXX0=
@@ -17,6 +17,11 @@ declare class EventTriggerExtractor extends AbstractExtractor<wasm.Transaction>
17
17
  */
18
18
  processTransactions: (txs: Array<wasm.Transaction>, block: BlockEntity) => Promise<boolean>;
19
19
  forkBlock: (hash: string) => Promise<void>;
20
+ /**
21
+ * Extractor box initialization
22
+ * No action needed in event trigger extractors
23
+ */
24
+ initializeBoxes: () => Promise<void>;
20
25
  }
21
26
  export default EventTriggerExtractor;
22
27
  //# sourceMappingURL=EventTriggerExtractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventTriggerExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/EventTriggerExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGvE,cAAM,qBAAsB,SAAQ,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC;IACrE,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAG3B,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM;IAYb,KAAK,eAAiB;IAEtB;;;;;OAKG;IACH,mBAAmB,QACZ,MAAM,KAAK,WAAW,CAAC,SACrB,WAAW,KACjB,QAAQ,OAAO,CAAC,CAmFjB;IAEF,SAAS,SAAgB,MAAM,mBAE7B;CACH;AAED,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"EventTriggerExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/EventTriggerExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGvE,cAAM,qBAAsB,SAAQ,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC;IACrE,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAG3B,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM;IAYb,KAAK,eAAiB;IAEtB;;;;;OAKG;IACH,mBAAmB,QACZ,MAAM,KAAK,WAAW,CAAC,SACrB,WAAW,KACjB,QAAQ,OAAO,CAAC,CAmFjB;IAEF,SAAS,SAAgB,MAAM,mBAE7B;IAEF;;;OAGG;IACH,eAAe,sBAEb;CACH;AAED,eAAe,qBAAqB,CAAC"}
@@ -98,6 +98,13 @@ class EventTriggerExtractor extends AbstractExtractor {
98
98
  forkBlock = async (hash) => {
99
99
  await this.actions.deleteBlock(hash, this.getId());
100
100
  };
101
+ /**
102
+ * Extractor box initialization
103
+ * No action needed in event trigger extractors
104
+ */
105
+ initializeBoxes = async () => {
106
+ return;
107
+ };
101
108
  }
102
109
  export default EventTriggerExtractor;
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRUcmlnZ2VyRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2V4dHJhY3Rvci9FdmVudFRyaWdnZXJFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLElBQUksTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLGNBQWMsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQWUsTUFBTSx1QkFBdUIsQ0FBQztBQUd2RSxNQUFNLHFCQUFzQixTQUFRLGlCQUFtQztJQUNyRSxFQUFFLENBQVM7SUFDTSxVQUFVLENBQWE7SUFDdkIsT0FBTyxDQUFpQjtJQUN4QixvQkFBb0IsQ0FBUztJQUM3QixHQUFHLENBQVM7SUFFN0IsWUFDRSxFQUFVLEVBQ1YsVUFBc0IsRUFDdEIsT0FBZSxFQUNmLEdBQVc7UUFFWCxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO2FBQzFELFlBQVksRUFBRTthQUNkLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUV0Qjs7Ozs7T0FLRztJQUNILG1CQUFtQixHQUFHLENBQ3BCLEdBQTRCLEVBQzVCLEtBQWtCLEVBQ0EsRUFBRTtRQUNwQixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUk7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Tzt5QkFDVCxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7eUJBQzVDLElBQUksQ0FBQyxHQUFHLEVBQUU7d0JBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNoQixDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDLENBQUM7cUJBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3Q0FBd0MsS0FBSyxFQUFFLENBQUMsQ0FBQztvQkFDN0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDZixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1osQ0FBQyxDQUFDLENBQUM7YUFDTjtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLE9BQU8sQ0FBQyxHQUFHLENBQ1QsU0FBUyxLQUFLLDBDQUEwQyxFQUN4RCxDQUFDLENBQ0YsQ0FBQztnQkFDRixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDWDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsU0FBUyxHQUFHLEtBQUssRUFBRSxJQUFZLEVBQUUsRUFBRTtRQUNqQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUM7Q0FDSDtBQUVELGVBQWUscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgKiBhcyB3YXNtIGZyb20gJ2VyZ28tbGliLXdhc20tbm9kZWpzJztcbmltcG9ydCBFdmVudFRyaWdnZXJEQiBmcm9tICcuLi9hY3Rpb25zL0V2ZW50VHJpZ2dlckRCJztcbmltcG9ydCB7IEFic3RyYWN0RXh0cmFjdG9yLCBCbG9ja0VudGl0eSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lcic7XG5pbXBvcnQgeyBFeHRyYWN0ZWRFdmVudFRyaWdnZXIgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2V4dHJhY3RlZEV2ZW50VHJpZ2dlcic7XG5cbmNsYXNzIEV2ZW50VHJpZ2dlckV4dHJhY3RvciBleHRlbmRzIEFic3RyYWN0RXh0cmFjdG9yPHdhc20uVHJhbnNhY3Rpb24+IHtcbiAgaWQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhU291cmNlOiBEYXRhU291cmNlO1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvbnM6IEV2ZW50VHJpZ2dlckRCO1xuICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50VHJpZ2dlckVyZ29UcmVlOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgUldUOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaWQ6IHN0cmluZyxcbiAgICBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIGFkZHJlc3M6IHN0cmluZyxcbiAgICBSV1Q6IHN0cmluZ1xuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaWQgPSBpZDtcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBkYXRhU291cmNlO1xuICAgIHRoaXMuYWN0aW9ucyA9IG5ldyBFdmVudFRyaWdnZXJEQihkYXRhU291cmNlKTtcbiAgICB0aGlzLmV2ZW50VHJpZ2dlckVyZ29UcmVlID0gd2FzbS5BZGRyZXNzLmZyb21fYmFzZTU4KGFkZHJlc3MpXG4gICAgICAudG9fZXJnb190cmVlKClcbiAgICAgIC50b19iYXNlMTZfYnl0ZXMoKTtcbiAgICB0aGlzLlJXVCA9IFJXVDtcbiAgfVxuXG4gIGdldElkID0gKCkgPT4gdGhpcy5pZDtcblxuICAvKipcbiAgICogZ2V0cyBibG9jayBpZCBhbmQgdHJhbnNhY3Rpb25zIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGJsb2NrIGFuZCBzYXZlcyBpZiB0aGV5IGFyZSB2YWxpZCByb3NlblxuICAgKiAgdHJhbnNhY3Rpb25zIGFuZCBpbiBjYXNlIG9mIHN1Y2Nlc3MgcmV0dXJuIHRydWUgYW5kIGluIGNhc2Ugb2YgZmFpbHVyZSByZXR1cm5zIGZhbHNlXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gdHhzXG4gICAqL1xuICBwcm9jZXNzVHJhbnNhY3Rpb25zID0gKFxuICAgIHR4czogQXJyYXk8d2FzbS5UcmFuc2FjdGlvbj4sXG4gICAgYmxvY2s6IEJsb2NrRW50aXR5XG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBib3hlczogQXJyYXk8RXh0cmFjdGVkRXZlbnRUcmlnZ2VyPiA9IFtdO1xuICAgICAgICBjb25zdCBzcGVuZElkczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgICAgICB0eHMuZm9yRWFjaCgodHJhbnNhY3Rpb24pID0+IHtcbiAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdHJhbnNhY3Rpb24ub3V0cHV0cygpLmxlbigpOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBjb25zdCBvdXRwdXQgPSB0cmFuc2FjdGlvbi5vdXRwdXRzKCkuZ2V0KGluZGV4KTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IHI0ID0gb3V0cHV0LnJlZ2lzdGVyX3ZhbHVlKDQpO1xuICAgICAgICAgICAgICBjb25zdCByNSA9IG91dHB1dC5yZWdpc3Rlcl92YWx1ZSg1KTtcbiAgICAgICAgICAgICAgaWYgKHI0ICYmIHI1KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgUjVTZXJpYWxpemVkID0gcjUudG9fY29sbF9jb2xsX2J5dGUoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBSNFNlcmlhbGl6ZWQgPSByNC50b19jb2xsX2NvbGxfYnl0ZSgpO1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgIG91dHB1dC50b2tlbnMoKS5sZW4oKSA+IDAgJiZcbiAgICAgICAgICAgICAgICAgIG91dHB1dC50b2tlbnMoKS5nZXQoMCkuaWQoKS50b19zdHIoKSA9PT0gdGhpcy5SV1QgJiZcbiAgICAgICAgICAgICAgICAgIFI0U2VyaWFsaXplZC5sZW5ndGggPj0gMSAmJlxuICAgICAgICAgICAgICAgICAgUjVTZXJpYWxpemVkLmxlbmd0aCA+PSAxMSAmJlxuICAgICAgICAgICAgICAgICAgb3V0cHV0LmVyZ29fdHJlZSgpLnRvX2Jhc2UxNl9ieXRlcygpID09PVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmV2ZW50VHJpZ2dlckVyZ29UcmVlXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBXSURzID0gUjRTZXJpYWxpemVkLm1hcCgoYnl0ZUFycmF5KSA9PlxuICAgICAgICAgICAgICAgICAgICBCdWZmZXIuZnJvbShieXRlQXJyYXkpLnRvU3RyaW5nKCdoZXgnKVxuICAgICAgICAgICAgICAgICAgKS5qb2luKCcsJyk7XG4gICAgICAgICAgICAgICAgICBib3hlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgYm94SWQ6IG91dHB1dC5ib3hfaWQoKS50b19zdHIoKSxcbiAgICAgICAgICAgICAgICAgICAgYm94U2VyaWFsaXplZDogQnVmZmVyLmZyb20oXG4gICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LnNpZ21hX3NlcmlhbGl6ZV9ieXRlcygpXG4gICAgICAgICAgICAgICAgICAgICkudG9TdHJpbmcoJ2Jhc2U2NCcpLFxuICAgICAgICAgICAgICAgICAgICB0b0NoYWluOiBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbMl0pLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIHRvQWRkcmVzczogQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzRdKS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICBuZXR3b3JrRmVlOiBCaWdJbnQoXG4gICAgICAgICAgICAgICAgICAgICAgJzB4JyArIEJ1ZmZlci5mcm9tKFI1U2VyaWFsaXplZFs3XSkudG9TdHJpbmcoJ2hleCcpXG4gICAgICAgICAgICAgICAgICAgICkudG9TdHJpbmcoMTApLFxuICAgICAgICAgICAgICAgICAgICBicmlkZ2VGZWU6IEJpZ0ludChcbiAgICAgICAgICAgICAgICAgICAgICAnMHgnICsgQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzZdKS50b1N0cmluZygnaGV4JylcbiAgICAgICAgICAgICAgICAgICAgKS50b1N0cmluZygxMCksXG4gICAgICAgICAgICAgICAgICAgIGFtb3VudDogQmlnSW50KFxuICAgICAgICAgICAgICAgICAgICAgICcweCcgKyBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbNV0pLnRvU3RyaW5nKCdoZXgnKVxuICAgICAgICAgICAgICAgICAgICApLnRvU3RyaW5nKDEwKSxcbiAgICAgICAgICAgICAgICAgICAgc291cmNlQ2hhaW5Ub2tlbklkOiBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbOF0pLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldENoYWluVG9rZW5JZDogQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzldKS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICBzb3VyY2VUeElkOiBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbMF0pLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIGZyb21DaGFpbjogQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzFdKS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICBmcm9tQWRkcmVzczogQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzNdKS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICBzb3VyY2VCbG9ja0lkOiBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbMTBdKS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICBXSURzOiBXSURzLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBwcm9jZXNzIGlucHV0c1xuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRyYW5zYWN0aW9uLmlucHV0cygpLmxlbigpOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gdHJhbnNhY3Rpb24uaW5wdXRzKCkuZ2V0KGluZGV4KTtcbiAgICAgICAgICAgICAgc3BlbmRJZHMucHVzaChpbnB1dC5ib3hfaWQoKS50b19zdHIoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hY3Rpb25zXG4gICAgICAgICAgLnN0b3JlRXZlbnRUcmlnZ2Vycyhib3hlcywgYmxvY2ssIHRoaXMuZ2V0SWQoKSlcbiAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbnNcbiAgICAgICAgICAgICAgLnNwZW5kRXZlbnRUcmlnZ2VycyhzcGVuZElkcywgYmxvY2ssIHRoaXMuaWQpXG4gICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYEVycm9yIGluIHNvcmluZyBwZXJtaXRzIG9mIHRoZSBibG9jayAke2Jsb2NrfWApO1xuICAgICAgICAgICAgY29uc29sZS5sb2coZSk7XG4gICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGBibG9jayAke2Jsb2NrfSBkb2Vzbid0IHNhdmUgaW4gdGhlIGRhdGFiYXNlIHdpdGggZXJyb3JgLFxuICAgICAgICAgIGVcbiAgICAgICAgKTtcbiAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIGZvcmtCbG9jayA9IGFzeW5jIChoYXNoOiBzdHJpbmcpID0+IHtcbiAgICBhd2FpdCB0aGlzLmFjdGlvbnMuZGVsZXRlQmxvY2soaGFzaCwgdGhpcy5nZXRJZCgpKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgRXZlbnRUcmlnZ2VyRXh0cmFjdG9yO1xuIl19
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRUcmlnZ2VyRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2V4dHJhY3Rvci9FdmVudFRyaWdnZXJFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLElBQUksTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLGNBQWMsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQWUsTUFBTSx1QkFBdUIsQ0FBQztBQUd2RSxNQUFNLHFCQUFzQixTQUFRLGlCQUFtQztJQUNyRSxFQUFFLENBQVM7SUFDTSxVQUFVLENBQWE7SUFDdkIsT0FBTyxDQUFpQjtJQUN4QixvQkFBb0IsQ0FBUztJQUM3QixHQUFHLENBQVM7SUFFN0IsWUFDRSxFQUFVLEVBQ1YsVUFBc0IsRUFDdEIsT0FBZSxFQUNmLEdBQVc7UUFFWCxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO2FBQzFELFlBQVksRUFBRTthQUNkLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUV0Qjs7Ozs7T0FLRztJQUNILG1CQUFtQixHQUFHLENBQ3BCLEdBQTRCLEVBQzVCLEtBQWtCLEVBQ0EsRUFBRTtRQUNwQixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUk7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Tzt5QkFDVCxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7eUJBQzVDLElBQUksQ0FBQyxHQUFHLEVBQUU7d0JBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNoQixDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDLENBQUM7cUJBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3Q0FBd0MsS0FBSyxFQUFFLENBQUMsQ0FBQztvQkFDN0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDZixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1osQ0FBQyxDQUFDLENBQUM7YUFDTjtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLE9BQU8sQ0FBQyxHQUFHLENBQ1QsU0FBUyxLQUFLLDBDQUEwQyxFQUN4RCxDQUFDLENBQ0YsQ0FBQztnQkFDRixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDWDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsU0FBUyxHQUFHLEtBQUssRUFBRSxJQUFZLEVBQUUsRUFBRTtRQUNqQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUM7SUFFRjs7O09BR0c7SUFDSCxlQUFlLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDM0IsT0FBTztJQUNULENBQUMsQ0FBQztDQUNIO0FBRUQsZUFBZSxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICd0eXBlb3JtJztcbmltcG9ydCAqIGFzIHdhc20gZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuaW1wb3J0IEV2ZW50VHJpZ2dlckRCIGZyb20gJy4uL2FjdGlvbnMvRXZlbnRUcmlnZ2VyREInO1xuaW1wb3J0IHsgQWJzdHJhY3RFeHRyYWN0b3IsIEJsb2NrRW50aXR5IH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyJztcbmltcG9ydCB7IEV4dHJhY3RlZEV2ZW50VHJpZ2dlciB9IGZyb20gJy4uL2ludGVyZmFjZXMvZXh0cmFjdGVkRXZlbnRUcmlnZ2VyJztcblxuY2xhc3MgRXZlbnRUcmlnZ2VyRXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RFeHRyYWN0b3I8d2FzbS5UcmFuc2FjdGlvbj4ge1xuICBpZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFTb3VyY2U6IERhdGFTb3VyY2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aW9uczogRXZlbnRUcmlnZ2VyREI7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRUcmlnZ2VyRXJnb1RyZWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBSV1Q6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBpZDogc3RyaW5nLFxuICAgIGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsXG4gICAgYWRkcmVzczogc3RyaW5nLFxuICAgIFJXVDogc3RyaW5nXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pZCA9IGlkO1xuICAgIHRoaXMuZGF0YVNvdXJjZSA9IGRhdGFTb3VyY2U7XG4gICAgdGhpcy5hY3Rpb25zID0gbmV3IEV2ZW50VHJpZ2dlckRCKGRhdGFTb3VyY2UpO1xuICAgIHRoaXMuZXZlbnRUcmlnZ2VyRXJnb1RyZWUgPSB3YXNtLkFkZHJlc3MuZnJvbV9iYXNlNTgoYWRkcmVzcylcbiAgICAgIC50b19lcmdvX3RyZWUoKVxuICAgICAgLnRvX2Jhc2UxNl9ieXRlcygpO1xuICAgIHRoaXMuUldUID0gUldUO1xuICB9XG5cbiAgZ2V0SWQgPSAoKSA9PiB0aGlzLmlkO1xuXG4gIC8qKlxuICAgKiBnZXRzIGJsb2NrIGlkIGFuZCB0cmFuc2FjdGlvbnMgY29ycmVzcG9uZGluZyB0byB0aGUgYmxvY2sgYW5kIHNhdmVzIGlmIHRoZXkgYXJlIHZhbGlkIHJvc2VuXG4gICAqICB0cmFuc2FjdGlvbnMgYW5kIGluIGNhc2Ugb2Ygc3VjY2VzcyByZXR1cm4gdHJ1ZSBhbmQgaW4gY2FzZSBvZiBmYWlsdXJlIHJldHVybnMgZmFsc2VcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSB0eHNcbiAgICovXG4gIHByb2Nlc3NUcmFuc2FjdGlvbnMgPSAoXG4gICAgdHhzOiBBcnJheTx3YXNtLlRyYW5zYWN0aW9uPixcbiAgICBibG9jazogQmxvY2tFbnRpdHlcbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGJveGVzOiBBcnJheTxFeHRyYWN0ZWRFdmVudFRyaWdnZXI+ID0gW107XG4gICAgICAgIGNvbnN0IHNwZW5kSWRzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gICAgICAgIHR4cy5mb3JFYWNoKCh0cmFuc2FjdGlvbikgPT4ge1xuICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0cmFuc2FjdGlvbi5vdXRwdXRzKCkubGVuKCk7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IG91dHB1dCA9IHRyYW5zYWN0aW9uLm91dHB1dHMoKS5nZXQoaW5kZXgpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29uc3QgcjQgPSBvdXRwdXQucmVnaXN0ZXJfdmFsdWUoNCk7XG4gICAgICAgICAgICAgIGNvbnN0IHI1ID0gb3V0cHV0LnJlZ2lzdGVyX3ZhbHVlKDUpO1xuICAgICAgICAgICAgICBpZiAocjQgJiYgcjUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBSNVNlcmlhbGl6ZWQgPSByNS50b19jb2xsX2NvbGxfYnl0ZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IFI0U2VyaWFsaXplZCA9IHI0LnRvX2NvbGxfY29sbF9ieXRlKCk7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgb3V0cHV0LnRva2VucygpLmxlbigpID4gMCAmJlxuICAgICAgICAgICAgICAgICAgb3V0cHV0LnRva2VucygpLmdldCgwKS5pZCgpLnRvX3N0cigpID09PSB0aGlzLlJXVCAmJlxuICAgICAgICAgICAgICAgICAgUjRTZXJpYWxpemVkLmxlbmd0aCA+PSAxICYmXG4gICAgICAgICAgICAgICAgICBSNVNlcmlhbGl6ZWQubGVuZ3RoID49IDExICYmXG4gICAgICAgICAgICAgICAgICBvdXRwdXQuZXJnb190cmVlKCkudG9fYmFzZTE2X2J5dGVzKCkgPT09XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRUcmlnZ2VyRXJnb1RyZWVcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IFdJRHMgPSBSNFNlcmlhbGl6ZWQubWFwKChieXRlQXJyYXkpID0+XG4gICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5mcm9tKGJ5dGVBcnJheSkudG9TdHJpbmcoJ2hleCcpXG4gICAgICAgICAgICAgICAgICApLmpvaW4oJywnKTtcbiAgICAgICAgICAgICAgICAgIGJveGVzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBib3hJZDogb3V0cHV0LmJveF9pZCgpLnRvX3N0cigpLFxuICAgICAgICAgICAgICAgICAgICBib3hTZXJpYWxpemVkOiBCdWZmZXIuZnJvbShcbiAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQuc2lnbWFfc2VyaWFsaXplX2J5dGVzKClcbiAgICAgICAgICAgICAgICAgICAgKS50b1N0cmluZygnYmFzZTY0JyksXG4gICAgICAgICAgICAgICAgICAgIHRvQ2hhaW46IEJ1ZmZlci5mcm9tKFI1U2VyaWFsaXplZFsyXSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgdG9BZGRyZXNzOiBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbNF0pLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIG5ldHdvcmtGZWU6IEJpZ0ludChcbiAgICAgICAgICAgICAgICAgICAgICAnMHgnICsgQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzddKS50b1N0cmluZygnaGV4JylcbiAgICAgICAgICAgICAgICAgICAgKS50b1N0cmluZygxMCksXG4gICAgICAgICAgICAgICAgICAgIGJyaWRnZUZlZTogQmlnSW50KFxuICAgICAgICAgICAgICAgICAgICAgICcweCcgKyBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbNl0pLnRvU3RyaW5nKCdoZXgnKVxuICAgICAgICAgICAgICAgICAgICApLnRvU3RyaW5nKDEwKSxcbiAgICAgICAgICAgICAgICAgICAgYW1vdW50OiBCaWdJbnQoXG4gICAgICAgICAgICAgICAgICAgICAgJzB4JyArIEJ1ZmZlci5mcm9tKFI1U2VyaWFsaXplZFs1XSkudG9TdHJpbmcoJ2hleCcpXG4gICAgICAgICAgICAgICAgICAgICkudG9TdHJpbmcoMTApLFxuICAgICAgICAgICAgICAgICAgICBzb3VyY2VDaGFpblRva2VuSWQ6IEJ1ZmZlci5mcm9tKFI1U2VyaWFsaXplZFs4XSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0Q2hhaW5Ub2tlbklkOiBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbOV0pLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZVR4SWQ6IEJ1ZmZlci5mcm9tKFI1U2VyaWFsaXplZFswXSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgZnJvbUNoYWluOiBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbMV0pLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIGZyb21BZGRyZXNzOiBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbM10pLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZUJsb2NrSWQ6IEJ1ZmZlci5mcm9tKFI1U2VyaWFsaXplZFsxMF0pLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIFdJRHM6IFdJRHMsXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHByb2Nlc3MgaW5wdXRzXG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdHJhbnNhY3Rpb24uaW5wdXRzKCkubGVuKCk7IGluZGV4KyspIHtcbiAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSB0cmFuc2FjdGlvbi5pbnB1dHMoKS5nZXQoaW5kZXgpO1xuICAgICAgICAgICAgICBzcGVuZElkcy5wdXNoKGlucHV0LmJveF9pZCgpLnRvX3N0cigpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFjdGlvbnNcbiAgICAgICAgICAuc3RvcmVFdmVudFRyaWdnZXJzKGJveGVzLCBibG9jaywgdGhpcy5nZXRJZCgpKVxuICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uc1xuICAgICAgICAgICAgICAuc3BlbmRFdmVudFRyaWdnZXJzKHNwZW5kSWRzLCBibG9jaywgdGhpcy5pZClcbiAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgRXJyb3IgaW4gc29yaW5nIHBlcm1pdHMgb2YgdGhlIGJsb2NrICR7YmxvY2t9YCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYGJsb2NrICR7YmxvY2t9IGRvZXNuJ3Qgc2F2ZSBpbiB0aGUgZGF0YWJhc2Ugd2l0aCBlcnJvcmAsXG4gICAgICAgICAgZVxuICAgICAgICApO1xuICAgICAgICByZWplY3QoZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgZm9ya0Jsb2NrID0gYXN5bmMgKGhhc2g6IHN0cmluZykgPT4ge1xuICAgIGF3YWl0IHRoaXMuYWN0aW9ucy5kZWxldGVCbG9jayhoYXNoLCB0aGlzLmdldElkKCkpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBFeHRyYWN0b3IgYm94IGluaXRpYWxpemF0aW9uXG4gICAqIE5vIGFjdGlvbiBuZWVkZWQgaW4gZXZlbnQgdHJpZ2dlciBleHRyYWN0b3JzXG4gICAqL1xuICBpbml0aWFsaXplQm94ZXMgPSBhc3luYyAoKSA9PiB7XG4gICAgcmV0dXJuO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBFdmVudFRyaWdnZXJFeHRyYWN0b3I7XG4iXX0=
@@ -24,6 +24,11 @@ declare class CommitmentExtractor extends AbstractExtractor<wasm.Transaction> {
24
24
  * @param hash: block hash
25
25
  */
26
26
  forkBlock: (hash: string) => Promise<void>;
27
+ /**
28
+ * Extractor box initialization
29
+ * No action needed for commitment extractor
30
+ */
31
+ initializeBoxes: () => Promise<void>;
27
32
  }
28
33
  export default CommitmentExtractor;
29
34
  //# sourceMappingURL=commitmentExtractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commitmentExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/commitmentExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEvE,cAAM,mBAAoB,SAAQ,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC;IACnE,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgB;IACrD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;gBAG/C,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EACxB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,UAAU;IAYxB;;OAEG;IACH,KAAK,eAAiB;IAEtB;;;;;OAKG;IACH,mBAAmB,QACZ,MAAM,KAAK,WAAW,CAAC,SACrB,WAAW,KACjB,QAAQ,OAAO,CAAC,CAkEjB;IAEF;;;OAGG;IACH,SAAS,SAAgB,MAAM,KAAG,QAAQ,IAAI,CAAC,CAE7C;CACH;AAED,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"commitmentExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/commitmentExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEvE,cAAM,mBAAoB,SAAQ,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC;IACnE,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgB;IACrD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;gBAG/C,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EACxB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,UAAU;IAYxB;;OAEG;IACH,KAAK,eAAiB;IAEtB;;;;;OAKG;IACH,mBAAmB,QACZ,MAAM,KAAK,WAAW,CAAC,SACrB,WAAW,KACjB,QAAQ,OAAO,CAAC,CAkEjB;IAEF;;;OAGG;IACH,SAAS,SAAgB,MAAM,KAAG,QAAQ,IAAI,CAAC,CAE7C;IAEF;;;OAGG;IACH,eAAe,sBAEb;CACH;AAED,eAAe,mBAAmB,CAAC"}
@@ -89,6 +89,13 @@ class CommitmentExtractor extends AbstractExtractor {
89
89
  forkBlock = async (hash) => {
90
90
  await this.actions.deleteBlockCommitment(hash, this.getId());
91
91
  };
92
+ /**
93
+ * Extractor box initialization
94
+ * No action needed for commitment extractor
95
+ */
96
+ initializeBoxes = async () => {
97
+ return;
98
+ };
92
99
  }
93
100
  export default CommitmentExtractor;
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWl0bWVudEV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9leHRyYWN0b3IvY29tbWl0bWVudEV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLHNCQUFzQixDQUFDO0FBRzdDLE9BQU8sc0JBQXNCLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFlLE1BQU0sdUJBQXVCLENBQUM7QUFFdkUsTUFBTSxtQkFBb0IsU0FBUSxpQkFBbUM7SUFDbkUsRUFBRSxDQUFTO0lBQ00sVUFBVSxDQUFhO0lBQ3ZCLG9CQUFvQixDQUFnQjtJQUNwQyxLQUFLLENBQVM7SUFDZCxPQUFPLENBQXlCO0lBRWpELFlBQ0UsRUFBVSxFQUNWLFNBQXdCLEVBQ3hCLEtBQWEsRUFDYixVQUFzQjtRQUV0QixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNwRCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FDbkUsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUV0Qjs7Ozs7T0FLRztJQUNILG1CQUFtQixHQUFHLENBQ3BCLEdBQTRCLEVBQzVCLEtBQWtCLEVBQ0EsRUFBRTtRQUNw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QUNULGdCQUFnQixDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQztxQkFDN0MsSUFBSSxDQUFDLEdBQUcsRUFBRTtvQkFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7d0JBQ2hFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDaEIsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDO3FCQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDNUI7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDVixPQUFPLENBQUMsR0FBRyxDQUFDLHdDQUF3QyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUM3RCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNmLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNYO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRjs7O09BR0c7SUFDSCxTQUFTLEdBQUcsS0FBSyxFQUFFLElBQVksRUFBaUIsRUFBRTtRQUNoRCxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUMsQ0FBQztDQUNIO0FBRUQsZUFBZSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHdhc20gZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuaW1wb3J0IHsgZXh0cmFjdGVkQ29tbWl0bWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZXh0cmFjdGVkQ29tbWl0bWVudCc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgQ29tbWl0bWVudEVudGl0eUFjdGlvbiBmcm9tICcuLi9hY3Rpb25zL2NvbW1pdG1lbnREQic7XG5pbXBvcnQgeyBBYnN0cmFjdEV4dHJhY3RvciwgQmxvY2tFbnRpdHkgfSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXInO1xuXG5jbGFzcyBDb21taXRtZW50RXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RFeHRyYWN0b3I8d2FzbS5UcmFuc2FjdGlvbj4ge1xuICBpZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFTb3VyY2U6IERhdGFTb3VyY2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tbWl0bWVudHNFcmdvVHJlZXM6IEFycmF5PHN0cmluZz47XG4gIHByaXZhdGUgcmVhZG9ubHkgUldUSWQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBhY3Rpb25zOiBDb21taXRtZW50RW50aXR5QWN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYWRkcmVzc2VzOiBBcnJheTxzdHJpbmc+LFxuICAgIFJXVElkOiBzdHJpbmcsXG4gICAgZGF0YVNvdXJjZTogRGF0YVNvdXJjZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaWQgPSBpZDtcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBkYXRhU291cmNlO1xuICAgIHRoaXMuY29tbWl0bWVudHNFcmdvVHJlZXMgPSBhZGRyZXNzZXMubWFwKChhZGRyZXNzKSA9PlxuICAgICAgd2FzbS5BZGRyZXNzLmZyb21fYmFzZTU4KGFkZHJlc3MpLnRvX2VyZ29fdHJlZSgpLnRvX2Jhc2UxNl9ieXRlcygpXG4gICAgKTtcbiAgICB0aGlzLmFjdGlvbnMgPSBuZXcgQ29tbWl0bWVudEVudGl0eUFjdGlvbihkYXRhU291cmNlKTtcbiAgICB0aGlzLlJXVElkID0gUldUSWQ7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IElkIGZvciBjdXJyZW50IGV4dHJhY3RvclxuICAgKi9cbiAgZ2V0SWQgPSAoKSA9PiB0aGlzLmlkO1xuXG4gIC8qKlxuICAgKiBnZXRzIGJsb2NrIGlkIGFuZCB0cmFuc2FjdGlvbnMgY29ycmVzcG9uZGluZyB0byB0aGUgYmxvY2sgYW5kIHNhdmVzIGlmIHRoZXkgYXJlIHZhbGlkIHJvc2VuXG4gICAqICB0cmFuc2FjdGlvbnMgYW5kIGluIGNhc2Ugb2Ygc3VjY2VzcyByZXR1cm4gdHJ1ZSBhbmQgaW4gY2FzZSBvZiBmYWlsdXJlIHJldHVybnMgZmFsc2VcbiAgICogQHBhcmFtIHR4c1xuICAgKiBAcGFyYW0gYmxvY2tcbiAgICovXG4gIHByb2Nlc3NUcmFuc2FjdGlvbnMgPSAoXG4gICAgdHhzOiBBcnJheTx3YXNtLlRyYW5zYWN0aW9uPixcbiAgICBibG9jazogQmxvY2tFbnRpdHlcbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGNvbW1pdG1lbnRzOiBBcnJheTxleHRyYWN0ZWRDb21taXRtZW50PiA9IFtdO1xuICAgICAgICBjb25zdCBzcGVuZElkczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgICAgICB0eHMuZm9yRWFjaCgodHJhbnNhY3Rpb24pID0+IHtcbiAgICAgICAgICAvLyBwcm9jZXNzIG91dHB1dHNcbiAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdHJhbnNhY3Rpb24ub3V0cHV0cygpLmxlbigpOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBjb25zdCBvdXRwdXQgPSB0cmFuc2FjdGlvbi5vdXRwdXRzKCkuZ2V0KGluZGV4KTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgb3V0cHV0LnRva2VucygpLmxlbigpID4gMCAmJlxuICAgICAgICAgICAgICBvdXRwdXQudG9rZW5zKCkuZ2V0KDApLmlkKCkudG9fc3RyKCkgPT09IHRoaXMuUldUSWQgJiZcbiAgICAgICAgICAgICAgdGhpcy5jb21taXRtZW50c0VyZ29UcmVlcy5pbmRleE9mKFxuICAgICAgICAgICAgICAgIG91dHB1dC5lcmdvX3RyZWUoKS50b19iYXNlMTZfYnl0ZXMoKVxuICAgICAgICAgICAgICApICE9PSAtMVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgUjQgPSBvdXRwdXQucmVnaXN0ZXJfdmFsdWUoNCk7XG4gICAgICAgICAgICAgICAgY29uc3QgUjUgPSBvdXRwdXQucmVnaXN0ZXJfdmFsdWUoNSk7XG4gICAgICAgICAgICAgICAgY29uc3QgUjYgPSBvdXRwdXQucmVnaXN0ZXJfdmFsdWUoNik7XG4gICAgICAgICAgICAgICAgaWYgKFI0ICYmIFI1ICYmIFI2KSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBXSUQgPSBCdWZmZXIuZnJvbShSNC50b19jb2xsX2NvbGxfYnl0ZSgpWzBdKS50b1N0cmluZyhcbiAgICAgICAgICAgICAgICAgICAgJ2hleCdcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0SWQgPSBCdWZmZXIuZnJvbShcbiAgICAgICAgICAgICAgICAgICAgUjUudG9fY29sbF9jb2xsX2J5dGUoKVswXVxuICAgICAgICAgICAgICAgICAgKS50b1N0cmluZygnaGV4Jyk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBldmVudERpZ2VzdCA9IEJ1ZmZlci5mcm9tKFI2LnRvX2J5dGVfYXJyYXkoKSkudG9TdHJpbmcoXG4gICAgICAgICAgICAgICAgICAgICdoZXgnXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29tbWl0bWVudHMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIFdJRDogV0lELFxuICAgICAgICAgICAgICAgICAgICBjb21taXRtZW50OiBldmVudERpZ2VzdCxcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRJZDogcmVxdWVzdElkLFxuICAgICAgICAgICAgICAgICAgICBib3hJZDogb3V0cHV0LmJveF9pZCgpLnRvX3N0cigpLFxuICAgICAgICAgICAgICAgICAgICBib3hTZXJpYWxpemVkOiBCdWZmZXIuZnJvbShcbiAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQuc2lnbWFfc2VyaWFsaXplX2J5dGVzKClcbiAgICAgICAgICAgICAgICAgICAgKS50b1N0cmluZygnYmFzZTY0JyksXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIHByb2Nlc3MgaW5wdXRzXG4gICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRyYW5zYWN0aW9uLmlucHV0cygpLmxlbigpOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IHRyYW5zYWN0aW9uLmlucHV0cygpLmdldChpbmRleCk7XG4gICAgICAgICAgICBzcGVuZElkcy5wdXNoKGlucHV0LmJveF9pZCgpLnRvX3N0cigpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBwcm9jZXNzIHNhdmUgY29tbWl0bWVudHNcbiAgICAgICAgdGhpcy5hY3Rpb25zXG4gICAgICAgICAgLnN0b3JlQ29tbWl0bWVudHMoY29tbWl0bWVudHMsIGJsb2NrLCB0aGlzLmlkKVxuICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9ucy5zcGVuZENvbW1pdG1lbnRzKHNwZW5kSWRzLCBibG9jaywgdGhpcy5pZCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZSkgPT4gcmVqZWN0KGUpKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5sb2coYEVycm9yIGluIHNvcmluZyBwZXJtaXRzIG9mIHRoZSBibG9jayAke2Jsb2NrfWApO1xuICAgICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBmb3JrIG9uZSBibG9jayBhbmQgcmVtb3ZlIGFsbCBzdG9yZWQgaW5mb3JtYXRpb24gZm9yIHRoaXMgYmxvY2tcbiAgICogQHBhcmFtIGhhc2g6IGJsb2NrIGhhc2hcbiAgICovXG4gIGZvcmtCbG9jayA9IGFzeW5jIChoYXNoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBhd2FpdCB0aGlzLmFjdGlvbnMuZGVsZXRlQmxvY2tDb21taXRtZW50KGhhc2gsIHRoaXMuZ2V0SWQoKSk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbW1pdG1lbnRFeHRyYWN0b3I7XG4iXX0=
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWl0bWVudEV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9leHRyYWN0b3IvY29tbWl0bWVudEV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLHNCQUFzQixDQUFDO0FBRzdDLE9BQU8sc0JBQXNCLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFlLE1BQU0sdUJBQXVCLENBQUM7QUFFdkUsTUFBTSxtQkFBb0IsU0FBUSxpQkFBbUM7SUFDbkUsRUFBRSxDQUFTO0lBQ00sVUFBVSxDQUFhO0lBQ3ZCLG9CQUFvQixDQUFnQjtJQUNwQyxLQUFLLENBQVM7SUFDZCxPQUFPLENBQXlCO0lBRWpELFlBQ0UsRUFBVSxFQUNWLFNBQXdCLEVBQ3hCLEtBQWEsRUFDYixVQUFzQjtRQUV0QixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNwRCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FDbkUsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUV0Qjs7Ozs7T0FLRztJQUNILG1CQUFtQixHQUFHLENBQ3BCLEdBQTRCLEVBQzVCLEtBQWtCLEVBQ0EsRUFBRTtRQUNw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QUNULGdCQUFnQixDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQztxQkFDN0MsSUFBSSxDQUFDLEdBQUcsRUFBRTtvQkFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7d0JBQ2hFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDaEIsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDO3FCQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDNUI7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDVixPQUFPLENBQUMsR0FBRyxDQUFDLHdDQUF3QyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUM3RCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNmLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNYO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRjs7O09BR0c7SUFDSCxTQUFTLEdBQUcsS0FBSyxFQUFFLElBQVksRUFBaUIsRUFBRTtRQUNoRCxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILGVBQWUsR0FBRyxLQUFLLElBQUksRUFBRTtRQUMzQixPQUFPO0lBQ1QsQ0FBQyxDQUFDO0NBQ0g7QUFFRCxlQUFlLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgd2FzbSBmcm9tICdlcmdvLWxpYi13YXNtLW5vZGVqcyc7XG5pbXBvcnQgeyBleHRyYWN0ZWRDb21taXRtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHRyYWN0ZWRDb21taXRtZW50JztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICd0eXBlb3JtJztcbmltcG9ydCBDb21taXRtZW50RW50aXR5QWN0aW9uIGZyb20gJy4uL2FjdGlvbnMvY29tbWl0bWVudERCJztcbmltcG9ydCB7IEFic3RyYWN0RXh0cmFjdG9yLCBCbG9ja0VudGl0eSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lcic7XG5cbmNsYXNzIENvbW1pdG1lbnRFeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdEV4dHJhY3Rvcjx3YXNtLlRyYW5zYWN0aW9uPiB7XG4gIGlkOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YVNvdXJjZTogRGF0YVNvdXJjZTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb21taXRtZW50c0VyZ29UcmVlczogQXJyYXk8c3RyaW5nPjtcbiAgcHJpdmF0ZSByZWFkb25seSBSV1RJZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvbnM6IENvbW1pdG1lbnRFbnRpdHlBY3Rpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhZGRyZXNzZXM6IEFycmF5PHN0cmluZz4sXG4gICAgUldUSWQ6IHN0cmluZyxcbiAgICBkYXRhU291cmNlOiBEYXRhU291cmNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pZCA9IGlkO1xuICAgIHRoaXMuZGF0YVNvdXJjZSA9IGRhdGFTb3VyY2U7XG4gICAgdGhpcy5jb21taXRtZW50c0VyZ29UcmVlcyA9IGFkZHJlc3Nlcy5tYXAoKGFkZHJlc3MpID0+XG4gICAgICB3YXNtLkFkZHJlc3MuZnJvbV9iYXNlNTgoYWRkcmVzcykudG9fZXJnb190cmVlKCkudG9fYmFzZTE2X2J5dGVzKClcbiAgICApO1xuICAgIHRoaXMuYWN0aW9ucyA9IG5ldyBDb21taXRtZW50RW50aXR5QWN0aW9uKGRhdGFTb3VyY2UpO1xuICAgIHRoaXMuUldUSWQgPSBSV1RJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgSWQgZm9yIGN1cnJlbnQgZXh0cmFjdG9yXG4gICAqL1xuICBnZXRJZCA9ICgpID0+IHRoaXMuaWQ7XG5cbiAgLyoqXG4gICAqIGdldHMgYmxvY2sgaWQgYW5kIHRyYW5zYWN0aW9ucyBjb3JyZXNwb25kaW5nIHRvIHRoZSBibG9jayBhbmQgc2F2ZXMgaWYgdGhleSBhcmUgdmFsaWQgcm9zZW5cbiAgICogIHRyYW5zYWN0aW9ucyBhbmQgaW4gY2FzZSBvZiBzdWNjZXNzIHJldHVybiB0cnVlIGFuZCBpbiBjYXNlIG9mIGZhaWx1cmUgcmV0dXJucyBmYWxzZVxuICAgKiBAcGFyYW0gdHhzXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKi9cbiAgcHJvY2Vzc1RyYW5zYWN0aW9ucyA9IChcbiAgICB0eHM6IEFycmF5PHdhc20uVHJhbnNhY3Rpb24+LFxuICAgIGJsb2NrOiBCbG9ja0VudGl0eVxuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY29tbWl0bWVudHM6IEFycmF5PGV4dHJhY3RlZENvbW1pdG1lbnQ+ID0gW107XG4gICAgICAgIGNvbnN0IHNwZW5kSWRzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gICAgICAgIHR4cy5mb3JFYWNoKCh0cmFuc2FjdGlvbikgPT4ge1xuICAgICAgICAgIC8vIHByb2Nlc3Mgb3V0cHV0c1xuICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0cmFuc2FjdGlvbi5vdXRwdXRzKCkubGVuKCk7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IG91dHB1dCA9IHRyYW5zYWN0aW9uLm91dHB1dHMoKS5nZXQoaW5kZXgpO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBvdXRwdXQudG9rZW5zKCkubGVuKCkgPiAwICYmXG4gICAgICAgICAgICAgIG91dHB1dC50b2tlbnMoKS5nZXQoMCkuaWQoKS50b19zdHIoKSA9PT0gdGhpcy5SV1RJZCAmJlxuICAgICAgICAgICAgICB0aGlzLmNvbW1pdG1lbnRzRXJnb1RyZWVzLmluZGV4T2YoXG4gICAgICAgICAgICAgICAgb3V0cHV0LmVyZ29fdHJlZSgpLnRvX2Jhc2UxNl9ieXRlcygpXG4gICAgICAgICAgICAgICkgIT09IC0xXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBSNCA9IG91dHB1dC5yZWdpc3Rlcl92YWx1ZSg0KTtcbiAgICAgICAgICAgICAgICBjb25zdCBSNSA9IG91dHB1dC5yZWdpc3Rlcl92YWx1ZSg1KTtcbiAgICAgICAgICAgICAgICBjb25zdCBSNiA9IG91dHB1dC5yZWdpc3Rlcl92YWx1ZSg2KTtcbiAgICAgICAgICAgICAgICBpZiAoUjQgJiYgUjUgJiYgUjYpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IFdJRCA9IEJ1ZmZlci5mcm9tKFI0LnRvX2NvbGxfY29sbF9ieXRlKClbMF0pLnRvU3RyaW5nKFxuICAgICAgICAgICAgICAgICAgICAnaGV4J1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RJZCA9IEJ1ZmZlci5mcm9tKFxuICAgICAgICAgICAgICAgICAgICBSNS50b19jb2xsX2NvbGxfYnl0ZSgpWzBdXG4gICAgICAgICAgICAgICAgICApLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50RGlnZXN0ID0gQnVmZmVyLmZyb20oUjYudG9fYnl0ZV9hcnJheSgpKS50b1N0cmluZyhcbiAgICAgICAgICAgICAgICAgICAgJ2hleCdcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBjb21taXRtZW50cy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgV0lEOiBXSUQsXG4gICAgICAgICAgICAgICAgICAgIGNvbW1pdG1lbnQ6IGV2ZW50RGlnZXN0LFxuICAgICAgICAgICAgICAgICAgICBldmVudElkOiByZXF1ZXN0SWQsXG4gICAgICAgICAgICAgICAgICAgIGJveElkOiBvdXRwdXQuYm94X2lkKCkudG9fc3RyKCksXG4gICAgICAgICAgICAgICAgICAgIGJveFNlcmlhbGl6ZWQ6IEJ1ZmZlci5mcm9tKFxuICAgICAgICAgICAgICAgICAgICAgIG91dHB1dC5zaWdtYV9zZXJpYWxpemVfYnl0ZXMoKVxuICAgICAgICAgICAgICAgICAgICApLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gcHJvY2VzcyBpbnB1dHNcbiAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdHJhbnNhY3Rpb24uaW5wdXRzKCkubGVuKCk7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gdHJhbnNhY3Rpb24uaW5wdXRzKCkuZ2V0KGluZGV4KTtcbiAgICAgICAgICAgIHNwZW5kSWRzLnB1c2goaW5wdXQuYm94X2lkKCkudG9fc3RyKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIHByb2Nlc3Mgc2F2ZSBjb21taXRtZW50c1xuICAgICAgICB0aGlzLmFjdGlvbnNcbiAgICAgICAgICAuc3RvcmVDb21taXRtZW50cyhjb21taXRtZW50cywgYmxvY2ssIHRoaXMuaWQpXG4gICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25zLnNwZW5kQ29tbWl0bWVudHMoc3BlbmRJZHMsIGJsb2NrLCB0aGlzLmlkKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlKSA9PiByZWplY3QoZSkpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhgRXJyb3IgaW4gc29yaW5nIHBlcm1pdHMgb2YgdGhlIGJsb2NrICR7YmxvY2t9YCk7XG4gICAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgICByZWplY3QoZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIGZvcmsgb25lIGJsb2NrIGFuZCByZW1vdmUgYWxsIHN0b3JlZCBpbmZvcm1hdGlvbiBmb3IgdGhpcyBibG9ja1xuICAgKiBAcGFyYW0gaGFzaDogYmxvY2sgaGFzaFxuICAgKi9cbiAgZm9ya0Jsb2NrID0gYXN5bmMgKGhhc2g6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGF3YWl0IHRoaXMuYWN0aW9ucy5kZWxldGVCbG9ja0NvbW1pdG1lbnQoaGFzaCwgdGhpcy5nZXRJZCgpKTtcbiAgfTtcblxuICAvKipcbiAgICogRXh0cmFjdG9yIGJveCBpbml0aWFsaXphdGlvblxuICAgKiBObyBhY3Rpb24gbmVlZGVkIGZvciBjb21taXRtZW50IGV4dHJhY3RvclxuICAgKi9cbiAgaW5pdGlhbGl6ZUJveGVzID0gYXN5bmMgKCkgPT4ge1xuICAgIHJldHVybjtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29tbWl0bWVudEV4dHJhY3RvcjtcbiJdfQ==
@@ -1,13 +1,16 @@
1
1
  import { DataSource } from 'typeorm';
2
2
  import * as wasm from 'ergo-lib-wasm-nodejs';
3
+ import PermitEntityAction from '../actions/permitDB';
3
4
  import { AbstractExtractor, BlockEntity } from '@rosen-bridge/scanner';
5
+ import { ExplorerApi } from '../network/ergoNetworkApi';
4
6
  declare class PermitExtractor extends AbstractExtractor<wasm.Transaction> {
5
7
  id: string;
6
8
  private readonly dataSource;
7
- private readonly actions;
9
+ readonly actions: PermitEntityAction;
8
10
  private readonly permitErgoTree;
9
11
  private readonly RWT;
10
- constructor(id: string, dataSource: DataSource, address: string, RWT: string);
12
+ readonly explorerApi: ExplorerApi;
13
+ constructor(id: string, dataSource: DataSource, address: string, RWT: string, explorerUrl: string);
11
14
  getId: () => string;
12
15
  /**
13
16
  * gets block id and transactions corresponding to the block and saves if they are valid rosen
@@ -17,6 +20,10 @@ declare class PermitExtractor extends AbstractExtractor<wasm.Transaction> {
17
20
  */
18
21
  processTransactions: (txs: Array<wasm.Transaction>, block: BlockEntity) => Promise<boolean>;
19
22
  forkBlock: (hash: string) => Promise<void>;
23
+ /**
24
+ * Initializes the database with older permits related to the address
25
+ */
26
+ initializeBoxes: (initialHeight: number) => Promise<void>;
20
27
  }
21
28
  export default PermitExtractor;
22
29
  //# sourceMappingURL=permitExtractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"permitExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/permitExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAG7C,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEvE,cAAM,eAAgB,SAAQ,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC;IAC/D,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAG3B,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM;IAYb,KAAK,eAAiB;IAEtB;;;;;OAKG;IACH,mBAAmB,QACZ,MAAM,KAAK,WAAW,CAAC,SACrB,WAAW,KACjB,QAAQ,OAAO,CAAC,CA6DjB;IAEF,SAAS,SAAgB,MAAM,mBAE7B;CACH;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"permitExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/permitExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAC7C,OAAO,kBAAkB,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGvE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,cAAM,eAAgB,SAAQ,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC;IAC/D,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;gBAGhC,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM;IAarB,KAAK,eAAiB;IAEtB;;;;;OAKG;IACH,mBAAmB,QACZ,MAAM,KAAK,WAAW,CAAC,SACrB,WAAW,KACjB,QAAQ,OAAO,CAAC,CA6DjB;IAEF,SAAS,SAAgB,MAAM,mBAE7B;IAEF;;OAEG;IACH,eAAe,kBAAyB,MAAM,mBAuC5C;CACH;AAED,eAAe,eAAe,CAAC"}
@@ -1,13 +1,18 @@
1
1
  import * as wasm from 'ergo-lib-wasm-nodejs';
2
2
  import PermitEntityAction from '../actions/permitDB';
3
3
  import { AbstractExtractor } from '@rosen-bridge/scanner';
4
+ import * as ergoLib from 'ergo-lib-wasm-nodejs';
5
+ import { Buffer } from 'buffer';
6
+ import { ExplorerApi } from '../network/ergoNetworkApi';
7
+ import { JsonBI } from '../network/parser';
4
8
  class PermitExtractor extends AbstractExtractor {
5
9
  id;
6
10
  dataSource;
7
11
  actions;
8
12
  permitErgoTree;
9
13
  RWT;
10
- constructor(id, dataSource, address, RWT) {
14
+ explorerApi;
15
+ constructor(id, dataSource, address, RWT, explorerUrl) {
11
16
  super();
12
17
  this.id = id;
13
18
  this.dataSource = dataSource;
@@ -16,6 +21,7 @@ class PermitExtractor extends AbstractExtractor {
16
21
  .to_ergo_tree()
17
22
  .to_base16_bytes();
18
23
  this.RWT = RWT;
24
+ this.explorerApi = new ExplorerApi(explorerUrl);
19
25
  }
20
26
  getId = () => this.id;
21
27
  /**
@@ -83,6 +89,37 @@ class PermitExtractor extends AbstractExtractor {
83
89
  forkBlock = async (hash) => {
84
90
  await this.actions.deleteBlock(hash, this.getId());
85
91
  };
92
+ /**
93
+ * Initializes the database with older permits related to the address
94
+ */
95
+ initializeBoxes = async (initialHeight) => {
96
+ const extractedBoxes = [];
97
+ let offset = 0, total = 100;
98
+ while (offset < total) {
99
+ const boxes = await this.explorerApi.getBoxesForAddress(this.permitErgoTree, offset);
100
+ boxes.items.forEach((boxJson) => {
101
+ if (boxJson.settlementHeight < initialHeight &&
102
+ boxJson.assets.length > 0 &&
103
+ boxJson.assets[0].tokenId == this.RWT) {
104
+ const box = ergoLib.ErgoBox.from_json(JsonBI.stringify(boxJson));
105
+ const r4 = box.register_value(4);
106
+ if (r4) {
107
+ const R4Serialized = r4.to_coll_coll_byte();
108
+ extractedBoxes.push({
109
+ boxId: box.box_id().to_str(),
110
+ boxSerialized: Buffer.from(box.sigma_serialize_bytes()).toString('base64'),
111
+ block: boxJson.blockId,
112
+ height: boxJson.settlementHeight,
113
+ WID: Buffer.from(R4Serialized[0]).toString('hex'),
114
+ });
115
+ }
116
+ }
117
+ });
118
+ total = boxes.total;
119
+ offset += 100;
120
+ }
121
+ await this.actions.storeInitialPermits(extractedBoxes, initialHeight, this.getId());
122
+ };
86
123
  }
87
124
  export default PermitExtractor;
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWl0RXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2V4dHJhY3Rvci9wZXJtaXRFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLElBQUksTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLGtCQUFrQixNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU8sRUFBRSxpQkFBaUIsRUFBZSxNQUFNLHVCQUF1QixDQUFDO0FBRXZFLE1BQU0sZUFBZ0IsU0FBUSxpQkFBbUM7SUFDL0QsRUFBRSxDQUFTO0lBQ00sVUFBVSxDQUFhO0lBQ3ZCLE9BQU8sQ0FBcUI7SUFDNUIsY0FBYyxDQUFTO0lBQ3ZCLEdBQUcsQ0FBUztJQUU3QixZQUNFLEVBQVUsRUFDVixVQUFzQixFQUN0QixPQUFlLEVBQ2YsR0FBVztRQUVYLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7YUFDcEQsWUFBWSxFQUFFO2FBQ2QsZUFBZSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDakIsQ0FBQztJQUVELEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBRXRCOzs7OztPQUtHO0lBQ0gsbUJBQW1CLEdBQUcsQ0FDcEIsR0FBNEIsRUFDNUIsS0FBa0IsRUFDQSxFQUFFO1FBQ3BCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSTtnQkFDRixNQUFNLEtB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QUNULFNBQVMsS0FBSywwQ0FBMEMsRUFDeEQsQ0FBQyxDQUNGLENBQUM7Z0JBQ0YsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ1g7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGLFNBQVMsR0FBRyxLQUFLLEVBQUUsSUFBWSxFQUFFLEVBQUU7UUFDakMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQyxDQUFDO0NBQ0g7QUFFRCxlQUFlLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICd0eXBlb3JtJztcbmltcG9ydCAqIGFzIHdhc20gZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuaW1wb3J0IFBlcm1pdEVudGl0eUFjdGlvbiBmcm9tICcuLi9hY3Rpb25zL3Blcm1pdERCJztcbmltcG9ydCB7IGV4dHJhY3RlZFBlcm1pdCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZXh0cmFjdGVkUGVybWl0JztcbmltcG9ydCB7IEFic3RyYWN0RXh0cmFjdG9yLCBCbG9ja0VudGl0eSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lcic7XG5cbmNsYXNzIFBlcm1pdEV4dHJhY3RvciBleHRlbmRzIEFic3RyYWN0RXh0cmFjdG9yPHdhc20uVHJhbnNhY3Rpb24+IHtcbiAgaWQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhU291cmNlOiBEYXRhU291cmNlO1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvbnM6IFBlcm1pdEVudGl0eUFjdGlvbjtcbiAgcHJpdmF0ZSByZWFkb25seSBwZXJtaXRFcmdvVHJlZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IFJXVDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgZGF0YVNvdXJjZTogRGF0YVNvdXJjZSxcbiAgICBhZGRyZXNzOiBzdHJpbmcsXG4gICAgUldUOiBzdHJpbmdcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgdGhpcy5kYXRhU291cmNlID0gZGF0YVNvdXJjZTtcbiAgICB0aGlzLmFjdGlvbnMgPSBuZXcgUGVybWl0RW50aXR5QWN0aW9uKGRhdGFTb3VyY2UpO1xuICAgIHRoaXMucGVybWl0RXJnb1RyZWUgPSB3YXNtLkFkZHJlc3MuZnJvbV9iYXNlNTgoYWRkcmVzcylcbiAgICAgIC50b19lcmdvX3RyZWUoKVxuICAgICAgLnRvX2Jhc2UxNl9ieXRlcygpO1xuICAgIHRoaXMuUldUID0gUldUO1xuICB9XG5cbiAgZ2V0SWQgPSAoKSA9PiB0aGlzLmlkO1xuXG4gIC8qKlxuICAgKiBnZXRzIGJsb2NrIGlkIGFuZCB0cmFuc2FjdGlvbnMgY29ycmVzcG9uZGluZyB0byB0aGUgYmxvY2sgYW5kIHNhdmVzIGlmIHRoZXkgYXJlIHZhbGlkIHJvc2VuXG4gICAqICB0cmFuc2FjdGlvbnMgYW5kIGluIGNhc2Ugb2Ygc3VjY2VzcyByZXR1cm4gdHJ1ZSBhbmQgaW4gY2FzZSBvZiBmYWlsdXJlIHJldHVybnMgZmFsc2VcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSB0eHNcbiAgICovXG4gIHByb2Nlc3NUcmFuc2FjdGlvbnMgPSAoXG4gICAgdHhzOiBBcnJheTx3YXNtLlRyYW5zYWN0aW9uPixcbiAgICBibG9jazogQmxvY2tFbnRpdHlcbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGJveGVzOiBBcnJheTxleHRyYWN0ZWRQZXJtaXQ+ID0gW107XG4gICAgICAgIGNvbnN0IHNwZW5kSWRzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gICAgICAgIHR4cy5mb3JFYWNoKCh0cmFuc2FjdGlvbikgPT4ge1xuICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0cmFuc2FjdGlvbi5vdXRwdXRzKCkubGVuKCk7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IG91dHB1dCA9IHRyYW5zYWN0aW9uLm91dHB1dHMoKS5nZXQoaW5kZXgpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29uc3QgcjQgPSBvdXRwdXQucmVnaXN0ZXJfdmFsdWUoNCk7XG4gICAgICAgICAgICAgIGlmIChyNCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IFI0U2VyaWFsaXplZCA9IHI0LnRvX2NvbGxfY29sbF9ieXRlKCk7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgb3V0cHV0LnRva2VucygpLmxlbigpID4gMCAmJlxuICAgICAgICAgICAgICAgICAgb3V0cHV0LnRva2VucygpLmdldCgwKS5pZCgpLnRvX3N0cigpID09IHRoaXMuUldUICYmXG4gICAgICAgICAgICAgICAgICBvdXRwdXQuZXJnb190cmVlKCkudG9fYmFzZTE2X2J5dGVzKCkgPT09XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGVybWl0RXJnb1RyZWUgJiZcbiAgICAgICAgICAgICAgICAgIFI0U2VyaWFsaXplZC5sZW5ndGggPj0gMVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgYm94ZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGJveElkOiBvdXRwdXQuYm94X2lkKCkudG9fc3RyKCksXG4gICAgICAgICAgICAgICAgICAgIGJveFNlcmlhbGl6ZWQ6IEJ1ZmZlci5mcm9tKFxuICAgICAgICAgICAgICAgICAgICAgIG91dHB1dC5zaWdtYV9zZXJpYWxpemVfYnl0ZXMoKVxuICAgICAgICAgICAgICAgICAgICApLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgICAgICAgICAgICAgICAgV0lEOiBCdWZmZXIuZnJvbShSNFNlcmlhbGl6ZWRbMF0pLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBwcm9jZXNzIGlucHV0c1xuICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0cmFuc2FjdGlvbi5pbnB1dHMoKS5sZW4oKTsgaW5kZXgrKykge1xuICAgICAgICAgICAgY29uc3QgaW5wdXQgPSB0cmFuc2FjdGlvbi5pbnB1dHMoKS5nZXQoaW5kZXgpO1xuICAgICAgICAgICAgc3BlbmRJZHMucHVzaChpbnB1dC5ib3hfaWQoKS50b19zdHIoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmFjdGlvbnNcbiAgICAgICAgICAuc3RvcmVQZXJtaXRzKGJveGVzLCBibG9jaywgdGhpcy5nZXRJZCgpKVxuICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uc1xuICAgICAgICAgICAgICAuc3BlbmRQZXJtaXRzKHNwZW5kSWRzLCBibG9jaywgdGhpcy5nZXRJZCgpKVxuICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBFcnJvciBpbiBzdG9yaW5nIHBlcm1pdHMgb2YgdGhlIGJsb2NrICR7YmxvY2t9YCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYGJsb2NrICR7YmxvY2t9IGRvZXNuJ3Qgc2F2ZSBpbiB0aGUgZGF0YWJhc2Ugd2l0aCBlcnJvcmAsXG4gICAgICAgICAgZVxuICAgICAgICApO1xuICAgICAgICByZWplY3QoZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgZm9ya0Jsb2NrID0gYXN5bmMgKGhhc2g6IHN0cmluZykgPT4ge1xuICAgIGF3YWl0IHRoaXMuYWN0aW9ucy5kZWxldGVCbG9jayhoYXNoLCB0aGlzLmdldElkKCkpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBQZXJtaXRFeHRyYWN0b3I7XG4iXX0=
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWl0RXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2V4dHJhY3Rvci9wZXJtaXRFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLElBQUksTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLGtCQUFrQixNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU8sRUFBRSxpQkFBaUIsRUFBZSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxPQUFPLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTNDLE1BQU0sZUFBZ0IsU0FBUSxpQkFBbUM7SUFDL0QsRUFBRSxDQUFTO0lBQ00sVUFBVSxDQUFhO0lBQy9CLE9BQU8sQ0FBcUI7SUFDcEIsY0FBYyxDQUFTO0lBQ3ZCLEdBQUcsQ0FBUztJQUNwQixXQUFXLENBQWM7SUFFbEMsWUFDRSxFQUFVLEVBQ1YsVUFBc0IsRUFDdEIsT0FBZSxFQUNmLEdBQVcsRUFDWCxXQUFtQjtRQUVuQixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO2FBQ3BELFlBQVksRUFBRTthQUNkLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFD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ICd0eXBlb3JtJztcbmltcG9ydCAqIGFzIHdhc20gZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuaW1wb3J0IFBlcm1pdEVudGl0eUFjdGlvbiBmcm9tICcuLi9hY3Rpb25zL3Blcm1pdERCJztcbmltcG9ydCB7IEV4dHJhY3RlZFBlcm1pdCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZXh0cmFjdGVkUGVybWl0JztcbmltcG9ydCB7IEFic3RyYWN0RXh0cmFjdG9yLCBCbG9ja0VudGl0eSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lcic7XG5pbXBvcnQgKiBhcyBlcmdvTGliIGZyb20gJ2VyZ28tbGliLXdhc20tbm9kZWpzJztcbmltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7XG5pbXBvcnQgeyBFeHBsb3JlckFwaSB9IGZyb20gJy4uL25ldHdvcmsvZXJnb05ldHdvcmtBcGknO1xuaW1wb3J0IHsgSnNvbkJJIH0gZnJvbSAnLi4vbmV0d29yay9wYXJzZXInO1xuXG5jbGFzcyBQZXJtaXRFeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdEV4dHJhY3Rvcjx3YXNtLlRyYW5zYWN0aW9uPiB7XG4gIGlkOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YVNvdXJjZTogRGF0YVNvdXJjZTtcbiAgcmVhZG9ubHkgYWN0aW9uczogUGVybWl0RW50aXR5QWN0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IHBlcm1pdEVyZ29UcmVlOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgUldUOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGV4cGxvcmVyQXBpOiBFeHBsb3JlckFwaTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBpZDogc3RyaW5nLFxuICAgIGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsXG4gICAgYWRkcmVzczogc3RyaW5nLFxuICAgIFJXVDogc3RyaW5nLFxuICAgIGV4cGxvcmVyVXJsOiBzdHJpbmdcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgdGhpcy5kYXRhU291cmNlID0gZGF0YVNvdXJjZTtcbiAgICB0aGlzLmFjdGlvbnMgPSBuZXcgUGVybWl0RW50aXR5QWN0aW9uKGRhdGFTb3VyY2UpO1xuICAgIHRoaXMucGVybWl0RXJnb1RyZWUgPSB3YXNtLkFkZHJlc3MuZnJvbV9iYXNlNTgoYWRkcmVzcylcbiAgICAgIC50b19lcmdvX3RyZWUoKVxuICAgICAgLnRvX2Jhc2UxNl9ieXRlcygpO1xuICAgIHRoaXMuUldUID0gUldUO1xuICAgIHRoaXMuZXhwbG9yZXJBcGkgPSBuZXcgRXhwbG9yZXJBcGkoZXhwbG9yZXJVcmwpO1xuICB9XG5cbiAgZ2V0SWQgPSAoKSA9PiB0aGlzLmlkO1xuXG4gIC8qKlxuICAgKiBnZXRzIGJsb2NrIGlkIGFuZCB0cmFuc2FjdGlvbnMgY29ycmVzcG9uZGluZyB0byB0aGUgYmxvY2sgYW5kIHNhdmVzIGlmIHRoZXkgYXJlIHZhbGlkIHJvc2VuXG4gICAqICB0cmFuc2FjdGlvbnMgYW5kIGluIGNhc2Ugb2Ygc3VjY2VzcyByZXR1cm4gdHJ1ZSBhbmQgaW4gY2FzZSBvZiBmYWlsdXJlIHJldHVybnMgZmFsc2VcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSB0eHNcbiAgICovXG4gIHByb2Nlc3NUcmFuc2FjdGlvbnMgPSAoXG4gICAgdHhzOiBBcnJheTx3YXNtLlRyYW5zYWN0aW9uPixcbiAgICBibG9jazogQmxvY2tFbnRpdHlcbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGJveGVzOiBBcnJheTxFeHRyYWN0ZWRQZXJtaXQ+ID0gW107XG4gICAgICAgIGNvbnN0IHNwZW5kSWRzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gICAgICAgIHR4cy5mb3JFYWNoKCh0cmFuc2FjdGlvbikgPT4ge1xuICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0cmFuc2FjdGlvbi5vdXRwdXRzKCkubGVuKCk7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IG91dHB1dCA9IHRyYW5zYWN0aW9uLm91dHB1dHMoKS5nZXQoaW5kZXgpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29uc3QgcjQgPSBvdXRwdXQucmVnaXN0ZXJfdmFsdWUoNCk7XG4gICAgICAgICAgICAgIGlmIChyNCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IFI0U2VyaWFsaXplZCA9IHI0LnRvX2NvbGxfY29sbF9ieXRlKCk7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgb3V0cHV0LnRva2VucygpLmxlbigpID4gMCAmJlxuICAgICAgICAgICAgICAgICAgb3V0cHV0LnRva2VucygpLmdldCgwKS5pZCgpLnRvX3N0cigpID09IHRoaXMuUldUICYmXG4gICAgICAgICAgICAgICAgICBvdXRwdXQuZXJnb190cmVlKCkudG9fYmFzZTE2X2J5dGVzKCkgPT09XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGVybWl0RXJnb1RyZWUgJiZcbiAgICAgICAgICAgICAgICAgIFI0U2VyaWFsaXplZC5sZW5ndGggPj0gMVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgYm94ZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGJveElkOiBvdXRwdXQuYm94X2lkKCkudG9fc3RyKCksXG4gICAgICAgICAgICAgICAgICAgIGJveFNlcmlhbGl6ZWQ6IEJ1ZmZlci5mcm9tKFxuICAgICAgICAgICAgICAgICAgICAgIG91dHB1dC5zaWdtYV9zZXJpYWxpemVfYnl0ZXMoKVxuICAgICAgICAgICAgICAgICAgICApLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgICAgICAgICAgICAgICAgV0lEOiBCdWZmZXIuZnJvbShSNFNlcmlhbGl6ZWRbMF0pLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBwcm9jZXNzIGlucHV0c1xuICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0cmFuc2FjdGlvbi5pbnB1dHMoKS5sZW4oKTsgaW5kZXgrKykge1xuICAgICAgICAgICAgY29uc3QgaW5wdXQgPSB0cmFuc2FjdGlvbi5pbnB1dHMoKS5nZXQoaW5kZXgpO1xuICAgICAgICAgICAgc3BlbmRJZHMucHVzaChpbnB1dC5ib3hfaWQoKS50b19zdHIoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmFjdGlvbnNcbiAgICAgICAgICAuc3RvcmVQZXJtaXRzKGJveGVzLCBibG9jaywgdGhpcy5nZXRJZCgpKVxuICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uc1xuICAgICAgICAgICAgICAuc3BlbmRQZXJtaXRzKHNwZW5kSWRzLCBibG9jaywgdGhpcy5nZXRJZCgpKVxuICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBFcnJvciBpbiBzdG9yaW5nIHBlcm1pdHMgb2YgdGhlIGJsb2NrICR7YmxvY2t9YCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYGJsb2NrICR7YmxvY2t9IGRvZXNuJ3Qgc2F2ZSBpbiB0aGUgZGF0YWJhc2Ugd2l0aCBlcnJvcmAsXG4gICAgICAgICAgZVxuICAgICAgICApO1xuICAgICAgICByZWplY3QoZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgZm9ya0Jsb2NrID0gYXN5bmMgKGhhc2g6IHN0cmluZykgPT4ge1xuICAgIGF3YWl0IHRoaXMuYWN0aW9ucy5kZWxldGVCbG9jayhoYXNoLCB0aGlzLmdldElkKCkpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgZGF0YWJhc2Ugd2l0aCBvbGRlciBwZXJtaXRzIHJlbGF0ZWQgdG8gdGhlIGFkZHJlc3NcbiAgICovXG4gIGluaXRpYWxpemVCb3hlcyA9IGFzeW5jIChpbml0aWFsSGVpZ2h0OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBleHRyYWN0ZWRCb3hlczogQXJyYXk8RXh0cmFjdGVkUGVybWl0PiA9IFtdO1xuICAgIGxldCBvZmZzZXQgPSAwLFxuICAgICAgdG90YWwgPSAxMDA7XG4gICAgd2hpbGUgKG9mZnNldCA8IHRvdGFsKSB7XG4gICAgICBjb25zdCBib3hlcyA9IGF3YWl0IHRoaXMuZXhwbG9yZXJBcGkuZ2V0Qm94ZXNGb3JBZGRyZXNzKFxuICAgICAgICB0aGlzLnBlcm1pdEVyZ29UcmVlLFxuICAgICAgICBvZmZzZXRcbiAgICAgICk7XG4gICAgICBib3hlcy5pdGVtcy5mb3JFYWNoKChib3hKc29uKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBib3hKc29uLnNldHRsZW1lbnRIZWlnaHQgPCBpbml0aWFsSGVpZ2h0ICYmXG4gICAgICAgICAgYm94SnNvbi5hc3NldHMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgIGJveEpzb24uYXNzZXRzWzBdLnRva2VuSWQgPT0gdGhpcy5SV1RcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3QgYm94ID0gZXJnb0xpYi5FcmdvQm94LmZyb21fanNvbihKc29uQkkuc3RyaW5naWZ5KGJveEpzb24pKTtcbiAgICAgICAgICBjb25zdCByNCA9IGJveC5yZWdpc3Rlcl92YWx1ZSg0KTtcbiAgICAgICAgICBpZiAocjQpIHtcbiAgICAgICAgICAgIGNvbnN0IFI0U2VyaWFsaXplZCA9IHI0LnRvX2NvbGxfY29sbF9ieXRlKCk7XG4gICAgICAgICAgICBleHRyYWN0ZWRCb3hlcy5wdXNoKHtcbiAgICAgICAgICAgICAgYm94SWQ6IGJveC5ib3hfaWQoKS50b19zdHIoKSxcbiAgICAgICAgICAgICAgYm94U2VyaWFsaXplZDogQnVmZmVyLmZyb20oYm94LnNpZ21hX3NlcmlhbGl6ZV9ieXRlcygpKS50b1N0cmluZyhcbiAgICAgICAgICAgICAgICAnYmFzZTY0J1xuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBibG9jazogYm94SnNvbi5ibG9ja0lkLFxuICAgICAgICAgICAgICBoZWlnaHQ6IGJveEpzb24uc2V0dGxlbWVudEhlaWdodCxcbiAgICAgICAgICAgICAgV0lEOiBCdWZmZXIuZnJvbShSNFNlcmlhbGl6ZWRbMF0pLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0b3RhbCA9IGJveGVzLnRvdGFsO1xuICAgICAgb2Zmc2V0ICs9IDEwMDtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5hY3Rpb25zLnN0b3JlSW5pdGlhbFBlcm1pdHMoXG4gICAgICBleHRyYWN0ZWRCb3hlcyxcbiAgICAgIGluaXRpYWxIZWlnaHQsXG4gICAgICB0aGlzLmdldElkKClcbiAgICApO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBQZXJtaXRFeHRyYWN0b3I7XG4iXX0=
@@ -1,7 +1,9 @@
1
- interface extractedPermit {
1
+ interface ExtractedPermit {
2
2
  boxId: string;
3
3
  boxSerialized: string;
4
4
  WID: string;
5
+ block?: string;
6
+ height?: number;
5
7
  }
6
- export { extractedPermit };
8
+ export { ExtractedPermit };
7
9
  //# sourceMappingURL=extractedPermit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extractedPermit.d.ts","sourceRoot":"","sources":["../../lib/interfaces/extractedPermit.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"extractedPermit.d.ts","sourceRoot":"","sources":["../../lib/interfaces/extractedPermit.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmFjdGVkUGVybWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2ludGVyZmFjZXMvZXh0cmFjdGVkUGVybWl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgZXh0cmFjdGVkUGVybWl0IHtcbiAgYm94SWQ6IHN0cmluZztcbiAgYm94U2VyaWFsaXplZDogc3RyaW5nO1xuICBXSUQ6IHN0cmluZztcbn1cblxuZXhwb3J0IHsgZXh0cmFjdGVkUGVybWl0IH07XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmFjdGVkUGVybWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2ludGVyZmFjZXMvZXh0cmFjdGVkUGVybWl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgRXh0cmFjdGVkUGVybWl0IHtcbiAgYm94SWQ6IHN0cmluZztcbiAgYm94U2VyaWFsaXplZDogc3RyaW5nO1xuICBXSUQ6IHN0cmluZztcbiAgYmxvY2s/OiBzdHJpbmc7XG4gIGhlaWdodD86IG51bWJlcjtcbn1cblxuZXhwb3J0IHsgRXh0cmFjdGVkUGVybWl0IH07XG4iXX0=
@@ -0,0 +1,20 @@
1
+ declare type Asset = {
2
+ tokenId: string;
3
+ index: number;
4
+ amount: bigint;
5
+ name: string;
6
+ };
7
+ export interface ErgoBoxJson {
8
+ boxId: string;
9
+ address: string;
10
+ value: bigint;
11
+ blockId: string;
12
+ settlementHeight: number;
13
+ assets: Array<Asset>;
14
+ }
15
+ export interface AddressBoxes {
16
+ items: Array<ErgoBoxJson>;
17
+ total: number;
18
+ }
19
+ export {};
20
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/interfaces/types.ts"],"names":[],"mappings":"AAAA,aAAK,KAAK,GAAG;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaW50ZXJmYWNlcy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsidHlwZSBBc3NldCA9IHtcbiAgdG9rZW5JZDogc3RyaW5nO1xuICBpbmRleDogbnVtYmVyO1xuICBhbW91bnQ6IGJpZ2ludDtcbiAgbmFtZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBFcmdvQm94SnNvbiB7XG4gIGJveElkOiBzdHJpbmc7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgdmFsdWU6IGJpZ2ludDtcbiAgYmxvY2tJZDogc3RyaW5nO1xuICBzZXR0bGVtZW50SGVpZ2h0OiBudW1iZXI7XG4gIGFzc2V0czogQXJyYXk8QXNzZXQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZHJlc3NCb3hlcyB7XG4gIGl0ZW1zOiBBcnJheTxFcmdvQm94SnNvbj47XG4gIHRvdGFsOiBudW1iZXI7XG59XG4iXX0=
@@ -0,0 +1,15 @@
1
+ import { AxiosInstance } from 'axios';
2
+ import { AddressBoxes } from '../interfaces/types';
3
+ declare class ExplorerApi {
4
+ api: AxiosInstance;
5
+ constructor(explorerAddress: string);
6
+ /**
7
+ * gets unspent boxes for a specific ergotree with default limit of 100 and offset 0
8
+ * @param tree
9
+ * @param offset
10
+ * @param limit
11
+ */
12
+ getBoxesForAddress: (tree: string, offset?: number, limit?: number) => Promise<AddressBoxes>;
13
+ }
14
+ export { ExplorerApi };
15
+ //# sourceMappingURL=ergoNetworkApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ergoNetworkApi.d.ts","sourceRoot":"","sources":["../../lib/network/ergoNetworkApi.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,cAAM,WAAW;IACf,GAAG,EAAE,aAAa,CAAC;gBAEP,eAAe,EAAE,MAAM;IAOnC;;;;;OAKG;IACH,kBAAkB,SACV,MAAM,sCAGX,QAAQ,YAAY,CAAC,CAOtB;CACH;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,27 @@
1
+ import axios from 'axios';
2
+ import { JsonBI } from './parser';
3
+ class ExplorerApi {
4
+ api;
5
+ constructor(explorerAddress) {
6
+ this.api = axios.create({
7
+ baseURL: explorerAddress,
8
+ timeout: 10000,
9
+ });
10
+ }
11
+ /**
12
+ * gets unspent boxes for a specific ergotree with default limit of 100 and offset 0
13
+ * @param tree
14
+ * @param offset
15
+ * @param limit
16
+ */
17
+ getBoxesForAddress = async (tree, offset = 0, limit = 100) => {
18
+ return this.api
19
+ .get(`/api/v1/boxes/unspent/byErgoTree/${tree}`, {
20
+ params: { offset: offset, limit: limit },
21
+ transformResponse: (data) => JsonBI.parse(data),
22
+ })
23
+ .then((res) => res.data);
24
+ };
25
+ }
26
+ export { ExplorerApi };
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJnb05ldHdvcmtBcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbmV0d29yay9lcmdvTmV0d29ya0FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQXdCLE1BQU0sT0FBTyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEMsTUFBTSxXQUFXO0lBQ2YsR0FBRyxDQUFnQjtJQUVuQixZQUFZLGVBQXVCO1FBQ2pDLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUN0QixPQUFPLEVBQUUsZUFBZTtZQUN4QixPQUFPLEVBQUUsS0FBSztTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGtCQUFrQixHQUFHLEtBQUssRUFDeEIsSUFBWSxFQUNaLE1BQU0sR0FBRyxDQUFDLEVBQ1YsS0FBSyxHQUFHLEdBQUcsRUFDWSxFQUFFO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEdBQUc7YUFDWixHQUFHLENBQWUsb0NBQW9DLElBQUksRUFBRSxFQUFFO1lBQzdELE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUN4QyxpQkFBaUIsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7U0FDaEQsQ0FBQzthQUNELElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUMsQ0FBQztDQUNIO0FBRUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zLCB7IEF4aW9zSW5zdGFuY2UgfSBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBBZGRyZXNzQm94ZXMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3R5cGVzJztcbmltcG9ydCB7IEpzb25CSSB9IGZyb20gJy4vcGFyc2VyJztcblxuY2xhc3MgRXhwbG9yZXJBcGkge1xuICBhcGk6IEF4aW9zSW5zdGFuY2U7XG5cbiAgY29uc3RydWN0b3IoZXhwbG9yZXJBZGRyZXNzOiBzdHJpbmcpIHtcbiAgICB0aGlzLmFwaSA9IGF4aW9zLmNyZWF0ZSh7XG4gICAgICBiYXNlVVJMOiBleHBsb3JlckFkZHJlc3MsXG4gICAgICB0aW1lb3V0OiAxMDAwMCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXRzIHVuc3BlbnQgYm94ZXMgZm9yIGEgc3BlY2lmaWMgZXJnb3RyZWUgd2l0aCBkZWZhdWx0IGxpbWl0IG9mIDEwMCBhbmQgb2Zmc2V0IDBcbiAgICogQHBhcmFtIHRyZWVcbiAgICogQHBhcmFtIG9mZnNldFxuICAgKiBAcGFyYW0gbGltaXRcbiAgICovXG4gIGdldEJveGVzRm9yQWRkcmVzcyA9IGFzeW5jIChcbiAgICB0cmVlOiBzdHJpbmcsXG4gICAgb2Zmc2V0ID0gMCxcbiAgICBsaW1pdCA9IDEwMFxuICApOiBQcm9taXNlPEFkZHJlc3NCb3hlcz4gPT4ge1xuICAgIHJldHVybiB0aGlzLmFwaVxuICAgICAgLmdldDxBZGRyZXNzQm94ZXM+KGAvYXBpL3YxL2JveGVzL3Vuc3BlbnQvYnlFcmdvVHJlZS8ke3RyZWV9YCwge1xuICAgICAgICBwYXJhbXM6IHsgb2Zmc2V0OiBvZmZzZXQsIGxpbWl0OiBsaW1pdCB9LFxuICAgICAgICB0cmFuc2Zvcm1SZXNwb25zZTogKGRhdGEpID0+IEpzb25CSS5wYXJzZShkYXRhKSxcbiAgICAgIH0pXG4gICAgICAudGhlbigocmVzKSA9PiByZXMuZGF0YSk7XG4gIH07XG59XG5cbmV4cG9ydCB7IEV4cGxvcmVyQXBpIH07XG4iXX0=
@@ -0,0 +1,8 @@
1
+ export declare const JsonBI: {
2
+ parse: (text: string, reviver?: ((this: any, key: string, value: any) => any) | undefined) => any;
3
+ stringify: {
4
+ (value: any, replacer?: ((this: any, key: string, value: any) => any) | undefined, space?: string | number | undefined): string;
5
+ (value: any, replacer?: (string | number)[] | null | undefined, space?: string | number | undefined): string;
6
+ };
7
+ };
8
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../lib/network/parser.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;;;;;;CAGjB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import JSONBigInt from 'json-bigint';
2
+ export const JsonBI = JSONBigInt({
3
+ useNativeBigInt: true,
4
+ alwaysParseAsBig: true,
5
+ });
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL25ldHdvcmsvcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sVUFBVSxNQUFNLGFBQWEsQ0FBQztBQUVyQyxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDO0lBQy9CLGVBQWUsRUFBRSxJQUFJO0lBQ3JCLGdCQUFnQixFQUFFLElBQUk7Q0FDdkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEpTT05CaWdJbnQgZnJvbSAnanNvbi1iaWdpbnQnO1xuXG5leHBvcnQgY29uc3QgSnNvbkJJID0gSlNPTkJpZ0ludCh7XG4gIHVzZU5hdGl2ZUJpZ0ludDogdHJ1ZSxcbiAgYWx3YXlzUGFyc2VBc0JpZzogdHJ1ZSxcbn0pO1xuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rosen-bridge/watcher-data-extractor",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Extractor for rosen specific boxes on ergo blockchain",
5
5
  "author": "Sahand Zoufan",
6
6
  "license": "GPL-3.0",
@@ -10,7 +10,7 @@
10
10
  "prettify": "prettier --write . --ignore-path ../../.gitignore",
11
11
  "lint": "eslint --fix . && npm run prettify",
12
12
  "test": "rimraf sqlite && jest --detectOpenHandles; rimraf sqlite",
13
- "coverage": "c8 npm run test",
13
+ "coverage": "rimraf sqlite && jest --detectOpenHandles --coverage; rimraf sqlite",
14
14
  "build": "tsc --build",
15
15
  "type-check": "tsc --noEmit",
16
16
  "release": "npm run test && npm run build && npm publish --access public"
@@ -19,7 +19,7 @@
19
19
  "dist"
20
20
  ],
21
21
  "dependencies": {
22
- "@rosen-bridge/scanner": "^0.2.0",
22
+ "@rosen-bridge/scanner": "^0.2.1",
23
23
  "blakejs": "^1.2.1",
24
24
  "ergo-lib-wasm-nodejs": "^0.18.0",
25
25
  "reflect-metadata": "^0.1.13",
@@ -30,6 +30,7 @@
30
30
  "devDependencies": {
31
31
  "@babel/preset-env": "^7.19.0",
32
32
  "@types/jest": "^28.1.6",
33
+ "@types/json-bigint": "^1.0.1",
33
34
  "@types/node": "^18.0.6",
34
35
  "@typescript-eslint/eslint-plugin": "^5.30.7",
35
36
  "@typescript-eslint/parser": "^5.26.0",
@@ -37,6 +38,7 @@
37
38
  "eslint": "^8.16.0",
38
39
  "eslint-config-prettier": "^8.5.0",
39
40
  "jest": "^28.1.3",
41
+ "json-bigint": "^1.0.0",
40
42
  "prettier": "2.7.1",
41
43
  "rimraf": "^3.0.2",
42
44
  "ts-jest": "^28.0.7",