@rosen-bridge/address-extractor 0.2.6 → 0.2.7
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.
- package/dist/actions/db.d.ts +3 -2
- package/dist/actions/db.d.ts.map +1 -1
- package/dist/actions/db.js +14 -4
- package/dist/extractor/ergoUtxoExtractor.d.ts +3 -2
- package/dist/extractor/ergoUtxoExtractor.d.ts.map +1 -1
- package/dist/extractor/ergoUtxoExtractor.js +7 -4
- package/dist/migrations/index.d.ts +6 -2
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +7 -3
- package/dist/migrations/postgres/boxEntity1671714075083.d.ts +7 -0
- package/dist/migrations/postgres/boxEntity1671714075083.d.ts.map +1 -0
- package/dist/migrations/postgres/boxEntity1671714075083.js +18 -0
- package/dist/migrations/sqlite/boxEntity1659770552000.d.ts +7 -0
- package/dist/migrations/sqlite/boxEntity1659770552000.d.ts.map +1 -0
- package/dist/migrations/sqlite/boxEntity1659770552000.js +18 -0
- package/dist/network/ergoNetworkApi.d.ts +3 -1
- package/dist/network/ergoNetworkApi.d.ts.map +1 -1
- package/dist/network/ergoNetworkApi.js +12 -4
- package/package.json +1 -1
package/dist/actions/db.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { DataSource } from 'typeorm';
|
|
2
2
|
import ExtractedBox from '../interfaces/ExtractedBox';
|
|
3
|
-
import { BlockEntity } from '@rosen-bridge/scanner';
|
|
3
|
+
import { BlockEntity, AbstractLogger } from '@rosen-bridge/scanner';
|
|
4
4
|
export declare class BoxEntityAction {
|
|
5
5
|
private readonly datasource;
|
|
6
|
-
|
|
6
|
+
readonly logger: AbstractLogger;
|
|
7
|
+
constructor(dataSource: DataSource, logger: AbstractLogger);
|
|
7
8
|
/**
|
|
8
9
|
* stores initial extracted boxes to the database
|
|
9
10
|
* @param boxes
|
package/dist/actions/db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../lib/actions/db.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAgB,MAAM,SAAS,CAAC;AACnD,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../lib/actions/db.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAgB,MAAM,SAAS,CAAC;AACnD,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEpE,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;gBAEpB,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc;IAK1D;;;;;OAKG;IACH,iBAAiB,UACR,MAAM,YAAY,CAAC,wBACJ,MAAM,aACjB,MAAM,sBAqCjB;IAEF;;;;;;OAMG;IACH,QAAQ,UACC,MAAM,YAAY,CAAC,cACd,MAAM,MAAM,CAAC,SAClB,WAAW,aACP,MAAM,sBA6DjB;IAEF;;;;;OAKG;IACH,gBAAgB,UAAiB,MAAM,aAAa,MAAM,mBAuBxD;CACH"}
|
package/dist/actions/db.js
CHANGED
|
@@ -2,8 +2,10 @@ import { BoxEntity } from '../entities/boxEntity';
|
|
|
2
2
|
import { In, LessThan } from 'typeorm';
|
|
3
3
|
export class BoxEntityAction {
|
|
4
4
|
datasource;
|
|
5
|
-
|
|
5
|
+
logger;
|
|
6
|
+
constructor(dataSource, logger) {
|
|
6
7
|
this.datasource = dataSource;
|
|
8
|
+
this.logger = logger;
|
|
7
9
|
}
|
|
8
10
|
/**
|
|
9
11
|
* stores initial extracted boxes to the database
|
|
@@ -30,12 +32,14 @@ export class BoxEntityAction {
|
|
|
30
32
|
serialized: box.serialized,
|
|
31
33
|
extractor: extractor,
|
|
32
34
|
};
|
|
35
|
+
this.logger.info(`Storing initial box ${box.boxId} and extractor ${extractor}`);
|
|
36
|
+
this.logger.debug(`Entity: ${JSON.stringify(entity)}`);
|
|
33
37
|
await repository.insert(entity);
|
|
34
38
|
}
|
|
35
39
|
await queryRunner.commitTransaction();
|
|
36
40
|
}
|
|
37
41
|
catch (e) {
|
|
38
|
-
|
|
42
|
+
this.logger.error(`An error occurred during store boxes action: ${e}`);
|
|
39
43
|
await queryRunner.rollbackTransaction();
|
|
40
44
|
throw new Error('Initialization failed while storing initial address boxes');
|
|
41
45
|
}
|
|
@@ -74,6 +78,8 @@ export class BoxEntityAction {
|
|
|
74
78
|
};
|
|
75
79
|
const dbBox = dbBoxes.filter((item) => item.boxId === box.boxId);
|
|
76
80
|
if (dbBox.length > 0) {
|
|
81
|
+
this.logger.info(`Updating box ${box.boxId} and extractor ${extractor}`);
|
|
82
|
+
this.logger.debug(`Entity: ${JSON.stringify(entity)}`);
|
|
77
83
|
await queryRunner.manager
|
|
78
84
|
.getRepository(BoxEntity)
|
|
79
85
|
.createQueryBuilder()
|
|
@@ -83,9 +89,12 @@ export class BoxEntityAction {
|
|
|
83
89
|
.execute();
|
|
84
90
|
}
|
|
85
91
|
else {
|
|
92
|
+
this.logger.info(`Storing box ${box.boxId}`);
|
|
93
|
+
this.logger.debug(JSON.stringify(entity));
|
|
86
94
|
await queryRunner.manager.getRepository(BoxEntity).insert(entity);
|
|
87
95
|
}
|
|
88
96
|
}
|
|
97
|
+
this.logger.debug(`Updating spendBlock for boxes ${spendBoxes}`);
|
|
89
98
|
await queryRunner.manager
|
|
90
99
|
.getRepository(BoxEntity)
|
|
91
100
|
.createQueryBuilder()
|
|
@@ -99,7 +108,7 @@ export class BoxEntityAction {
|
|
|
99
108
|
await queryRunner.commitTransaction();
|
|
100
109
|
}
|
|
101
110
|
catch (e) {
|
|
102
|
-
|
|
111
|
+
this.logger.error(`An error occurred during store boxes action: ${e}`);
|
|
103
112
|
await queryRunner.rollbackTransaction();
|
|
104
113
|
success = false;
|
|
105
114
|
}
|
|
@@ -115,6 +124,7 @@ export class BoxEntityAction {
|
|
|
115
124
|
* @param extractor
|
|
116
125
|
*/
|
|
117
126
|
deleteBlockBoxes = async (block, extractor) => {
|
|
127
|
+
this.logger.info(`Deleting boxes in block ${block} and extractor ${extractor}`);
|
|
118
128
|
await this.datasource
|
|
119
129
|
.createQueryBuilder()
|
|
120
130
|
.delete()
|
|
@@ -136,4 +146,4 @@ export class BoxEntityAction {
|
|
|
136
146
|
.execute();
|
|
137
147
|
};
|
|
138
148
|
}
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYWN0aW9ucy9kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFJbkQsTUFBTSxPQUFPLGVBQWU7SUFDVCxVQUFVLENBQWE7SUFFeEMsWUFBWSxVQUFzQjtRQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxpQkFBaUIsR0FBRyxLQUFLLEVBQ3ZCLEtBQTBCLEVBQzFCLG9CQUE0QixFQUM1QixTQUFpQixFQUNqQixFQUFFO1FBQ0YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3hELE1BQU0sV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzVCLE1BQU0sV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDckMsSUFBSTtZQUNGLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sVUFBVSxDQUFDLE1BQU0sQ0FBQztnQkFDdEIsY0FBYyxFQUFFLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQzthQUMvQyxDQUFDLENBQUM7WUFDSCxLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBRTtnQkFDdkIsTUFBTSxNQUFNLEdBQUc7b0JBQ2IsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO29CQUNwQixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7b0JBQ2hCLFdBQVcsRUFBRSxHQUFHLENBQUMsT0FBTztvQkFDeEIsY0FBYyxFQUFFLEdBQUcsQ0FBQyxNQUFNO29CQUMxQixVQUFVLEVBQUUsU0FBUztvQkFDckIsVUFBVSxFQUFFLEdB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ZW50aXRpZXMvYm94RW50aXR5JztcbmltcG9ydCB7IERhdGFTb3VyY2UsIEluLCBMZXNzVGhhbiB9IGZyb20gJ3R5cGVvcm0nO1xuaW1wb3J0IEV4dHJhY3RlZEJveCBmcm9tICcuLi9pbnRlcmZhY2VzL0V4dHJhY3RlZEJveCc7XG5pbXBvcnQgeyBCbG9ja0VudGl0eSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lcic7XG5cbmV4cG9ydCBjbGFzcyBCb3hFbnRpdHlBY3Rpb24ge1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFzb3VyY2U6IERhdGFTb3VyY2U7XG5cbiAgY29uc3RydWN0b3IoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSkge1xuICAgIHRoaXMuZGF0YXNvdXJjZSA9IGRhdGFTb3VyY2U7XG4gIH1cblxuICAvKipcbiAgICogc3RvcmVzIGluaXRpYWwgZXh0cmFjdGVkIGJveGVzIHRvIHRoZSBkYXRhYmFzZVxuICAgKiBAcGFyYW0gYm94ZXNcbiAgICogQHBhcmFtIGluaXRpYWxpemF0aW9uSGVpZ2h0XG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHN0b3JlSW5pdGlhbEJveGVzID0gYXN5bmMgKFxuICAgIGJveGVzOiBBcnJheTxFeHRyYWN0ZWRCb3g+LFxuICAgIGluaXRpYWxpemF0aW9uSGVpZ2h0OiBudW1iZXIsXG4gICAgZXh0cmFjdG9yOiBzdHJpbmdcbiAgKSA9PiB7XG4gICAgY29uc3QgcXVlcnlSdW5uZXIgPSB0aGlzLmRhdGFzb3VyY2UuY3JlYXRlUXVlcnlSdW5uZXIoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb25uZWN0KCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuc3RhcnRUcmFuc2FjdGlvbigpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXBvc2l0b3J5ID0gcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KEJveEVudGl0eSk7XG4gICAgICBhd2FpdCByZXBvc2l0b3J5LmRlbGV0ZSh7XG4gICAgICAgIGNyZWF0aW9uSGVpZ2h0OiBMZXNzVGhhbihpbml0aWFsaXphdGlvbkhlaWdodCksXG4gICAgICB9KTtcbiAgICAgIGZvciAoY29uc3QgYm94IG9mIGJveGVzKSB7XG4gICAgICAgIGNvbnN0IGVudGl0eSA9IHtcbiAgICAgICAgICBhZGRyZXNzOiBib3guYWRkcmVzcyxcbiAgICAgICAgICBib3hJZDogYm94LmJveElkLFxuICAgICAgICAgIGNyZWF0ZUJsb2NrOiBib3guYmxvY2tJZCxcbiAgICAgICAgICBjcmVhdGlvbkhlaWdodDogYm94LmhlaWdodCxcbiAgICAgICAgICBzcGVuZEJsb2NrOiB1bmRlZmluZWQsXG4gICAgICAgICAgc2VyaWFsaXplZDogYm94LnNlcmlhbGl6ZWQsXG4gICAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgIH07XG4gICAgICAgIGF3YWl0IHJlcG9zaXRvcnkuaW5zZXJ0KGVudGl0eSk7XG4gICAgICB9XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgc3RvcmUgYm94ZXMgYWN0aW9uOiAke2V9YCk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdJbml0aWFsaXphdGlvbiBmYWlsZWQgd2hpbGUgc3RvcmluZyBpbml0aWFsIGFkZHJlc3MgYm94ZXMnXG4gICAgICApO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBJdCBzdG9yZXMgbGlzdCBvZiBibG9ja3MgaW4gdGhlIGRhdGFTb3VyY2Ugd2l0aCBibG9jayBpZFxuICAgKiBAcGFyYW0gYm94ZXNcbiAgICogQHBhcmFtIHNwZW5kQm94ZXNcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHN0b3JlQm94ID0gYXN5bmMgKFxuICAgIGJveGVzOiBBcnJheTxFeHRyYWN0ZWRCb3g+LFxuICAgIHNwZW5kQm94ZXM6IEFycmF5PHN0cmluZz4sXG4gICAgYmxvY2s6IEJsb2NrRW50aXR5LFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nXG4gICkgPT4ge1xuICAgIGNvbnN0IGJveElkcyA9IGJveGVzLm1hcCgoaXRlbSkgPT4gaXRlbS5ib3hJZCk7XG4gICAgY29uc3QgZGJCb3hlcyA9IGF3YWl0IHRoaXMuZGF0YXNvdXJjZS5nZXRSZXBvc2l0b3J5KEJveEVudGl0eSkuZmluZEJ5KHtcbiAgICAgIGJveElkOiBJbihib3hJZHMpLFxuICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgfSk7XG4gICAgbGV0IHN1Y2Nlc3MgPSB0cnVlO1xuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5kYXRhc291cmNlLmNyZWF0ZVF1ZXJ5UnVubmVyKCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdCgpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnN0YXJ0VHJhbnNhY3Rpb24oKTtcbiAgICB0cnkge1xuICAgICAgZm9yIChjb25zdCBib3ggb2YgYm94ZXMpIHtcbiAgICAgICAgY29uc3QgZW50aXR5ID0ge1xuICAgICAgICAgIGFkZHJlc3M6IGJveC5hZGRyZXNzLFxuICAgICAgICAgIGJveElkOiBib3guYm94SWQsXG4gICAgICAgICAgY3JlYXRlQmxvY2s6IGJsb2NrLmhhc2gsXG4gICAgICAgICAgY3JlYXRpb25IZWlnaHQ6IGJsb2NrLmhlaWdodCxcbiAgICAgICAgICBzcGVuZEJsb2NrOiB1bmRlZmluZWQsXG4gICAgICAgICAgc2VyaWFsaXplZDogYm94LnNlcmlhbGl6ZWQsXG4gICAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRiQm94ID0gZGJCb3hlcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uYm94SWQgPT09IGJveC5ib3hJZCk7XG4gICAgICAgIGlmIChkYkJveC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgYXdhaXQgcXVlcnlSdW5uZXIubWFuYWdlclxuICAgICAgICAgICAgLmdldFJlcG9zaXRvcnkoQm94RW50aXR5KVxuICAgICAgICAgICAgLmNyZWF0ZVF1ZXJ5QnVpbGRlcigpXG4gICAgICAgICAgICAudXBkYXRlKClcbiAgICAgICAgICAgIC5zZXQoZW50aXR5KVxuICAgICAgICAgICAgLndoZXJlKHsgaWQ6IGRiQm94WzBdLmlkIH0pXG4gICAgICAgICAgICAuZXhlY3V0ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeShCb3hFbnRpdHkpLmluc2VydChlbnRpdHkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5tYW5hZ2VyXG4gICAgICAgIC5nZXRSZXBvc2l0b3J5KEJveEVudGl0eSlcbiAgICAgICAgLmNyZWF0ZVF1ZXJ5QnVpbGRlcigpXG4gICAgICAgIC51cGRhdGUoKVxuICAgICAgICAuc2V0KHsgc3BlbmRCbG9jazogYmxvY2suaGFzaCB9KVxuICAgICAgICAud2hlcmUoJ2JveElkIElOICg6Li4uYm94ZXMpIEFORCBleHRyYWN0b3IgPSA6ZXh0cmFjdG9yJywge1xuICAgICAgICAgIGJveGVzOiBzcGVuZEJveGVzLFxuICAgICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICB9KVxuICAgICAgICAuZXhlY3V0ZSgpO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhgQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHN0b3JlIGJveGVzIGFjdGlvbjogJHtlfWApO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuICAgIHJldHVybiBzdWNjZXNzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBkZWxldGUgYm94ZXMgaW4gc3BlY2lmaWMgYmxvY2sgZnJvbSBkYXRhYmFzZS4gaWYgYm94IHNwZW5kIGluIHRoaXMgYmxvY2sgbWFya2VkIGFzIHVuc3BlbnRcbiAgICogYW5kIGlmIGNyZWF0ZWQgaW4gdGhpcyBibG9jayByZW1vdmUgaXQgZnJvbSBkYXRhYmFzZVxuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgZGVsZXRlQmxvY2tCb3hlcyA9IGFzeW5jIChibG9jazogc3RyaW5nLCBleHRyYWN0b3I6IHN0cmluZykgPT4ge1xuICAgIGF3YWl0IHRoaXMuZGF0YXNvdXJjZVxuICAgICAgLmNyZWF0ZVF1ZXJ5QnVpbGRlcigpXG4gICAgICAuZGVsZXRlKClcbiAgICAgIC5mcm9tKEJveEVudGl0eSlcbiAgICAgIC53aGVyZSgnZXh0cmFjdG9yID0gOmV4dHJhY3RvciBBTkQgY3JlYXRlQmxvY2sgPSA6YmxvY2snLCB7XG4gICAgICAgIGJsb2NrOiBibG9jayxcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICB9KVxuICAgICAgLmV4ZWN1dGUoKTtcbiAgICBhd2FpdCB0aGlzLmRhdGFzb3VyY2VcbiAgICAgIC5nZXRSZXBvc2l0b3J5KEJveEVudGl0eSlcbiAgICAgIC5jcmVhdGVRdWVyeUJ1aWxkZXIoKVxuICAgICAgLnVwZGF0ZSgpXG4gICAgICAuc2V0KHsgc3BlbmRCbG9jazogbnVsbCB9KVxuICAgICAgLndoZXJlKCdzcGVuZEJsb2NrID0gOmJsb2NrIEFORCBleHRyYWN0b3IgPSA6ZXh0cmFjdG9yJywge1xuICAgICAgICBibG9jazogYmxvY2ssXG4gICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgfSlcbiAgICAgIC5leGVjdXRlKCk7XG4gIH07XG59XG4iXX0=
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYWN0aW9ucy9kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFJbkQsTUFBTSxPQUFPLGVBQWU7SUFDVCxVQUFVLENBQWE7SUFDL0IsTUFBTSxDQUFpQjtJQUVoQyxZQUFZLFVBQXNCLEVBQUUsTUFBc0I7UUFDeEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaUJBQWlCLEdBQUcsS0FBSyxFQUN2QixLQUEwQixFQUMxQixvQkFBNEIsRUFDNUIsU0FBaUIsRUFDakIsRUFBRTtRQUNGLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN4RCxNQUFNLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1QixNQUFNLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JDLElBQUk7WUFDRixNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoRSxNQUFNLFVBQVUsQ0FBQyxNQUFNLENBQUM7Z0JBQ3RCLGNBQWMsRUFBRSxRQUFRLENBQUMsb0JBQW9CLENBQUM7YUFDL0MsQ0FBQyxDQUFDO1lBQ0gsS0FBSyxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQUU7Z0JBQ3ZCLE1BQU0sTUFBTSxHQUFHO29CQUNiLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTztvQkFDcEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO29CQUNoQixXQUFXLEVBQUUsR0FBRyxDQUFDLE9BQU87b0JBQ3hCLGNB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QztTQUNqQjtnQkFBUztZQUNSLE1BQU0sV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzdCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQyxDQUFDO0lBRUY7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsR0FBRyxLQUFLLEVBQUUsS0FBYSxFQUFFLFNBQWlCLEVBQUUsRUFBRTtRQUM1RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZCwyQkFBMkIsS0FBSyxrQkFBa0IsU0FBUyxFQUFFLENBQzlELENBQUM7UUFDRixNQUFNLElBQUksQ0FBQyxVQUFVO2FBQ2xCLGtCQUFrQixFQUFFO2FBQ3BCLE1BQU0sRUFBRTthQUNSLElBQUksQ0FBQyxTQUFTLENBQUM7YUFDZixLQUFLLENBQUMsaURBQWlELEVBQUU7WUFDeEQsS0FBSyxFQUFFLEtBQUs7WUFDWixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDO2FBQ0QsT0FBTyxFQUFFLENBQUM7UUFDYixNQUFNLElBQUksQ0FBQyxVQUFVO2FBQ2xCLGFBQWEsQ0FBQyxTQUFTLENBQUM7YUFDeEIsa0JBQWtCLEVBQUU7YUFDcEIsTUFBTSxFQUFFO2FBQ1IsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDO2FBQ3pCLEtBQUssQ0FBQyxnREFBZ0QsRUFBRTtZQUN2RCxLQUFLLEVBQUUsS0FBSztZQUNaLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUM7YUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNmLENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm94RW50aXR5IH0gZnJvbSAnLi4vZW50aXRpZXMvYm94RW50aXR5JztcbmltcG9ydCB7IERhdGFTb3VyY2UsIEluLCBMZXNzVGhhbiB9IGZyb20gJ3R5cGVvcm0nO1xuaW1wb3J0IEV4dHJhY3RlZEJveCBmcm9tICcuLi9pbnRlcmZhY2VzL0V4dHJhY3RlZEJveCc7XG5pbXBvcnQgeyBCbG9ja0VudGl0eSwgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXInO1xuXG5leHBvcnQgY2xhc3MgQm94RW50aXR5QWN0aW9uIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhc291cmNlOiBEYXRhU291cmNlO1xuICByZWFkb25seSBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsIGxvZ2dlcjogQWJzdHJhY3RMb2dnZXIpIHtcbiAgICB0aGlzLmRhdGFzb3VyY2UgPSBkYXRhU291cmNlO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyO1xuICB9XG5cbiAgLyoqXG4gICAqIHN0b3JlcyBpbml0aWFsIGV4dHJhY3RlZCBib3hlcyB0byB0aGUgZGF0YWJhc2VcbiAgICogQHBhcmFtIGJveGVzXG4gICAqIEBwYXJhbSBpbml0aWFsaXphdGlvbkhlaWdodFxuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICBzdG9yZUluaXRpYWxCb3hlcyA9IGFzeW5jIChcbiAgICBib3hlczogQXJyYXk8RXh0cmFjdGVkQm94PixcbiAgICBpbml0aWFsaXphdGlvbkhlaWdodDogbnVtYmVyLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nXG4gICkgPT4ge1xuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5kYXRhc291cmNlLmNyZWF0ZVF1ZXJ5UnVubmVyKCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdCgpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnN0YXJ0VHJhbnNhY3Rpb24oKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVwb3NpdG9yeSA9IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeShCb3hFbnRpdHkpO1xuICAgICAgYXdhaXQgcmVwb3NpdG9yeS5kZWxldGUoe1xuICAgICAgICBjcmVhdGlvbkhlaWdodDogTGVzc1RoYW4oaW5pdGlhbGl6YXRpb25IZWlnaHQpLFxuICAgICAgfSk7XG4gICAgICBmb3IgKGNvbnN0IGJveCBvZiBib3hlcykge1xuICAgICAgICBjb25zdCBlbnRpdHkgPSB7XG4gICAgICAgICAgYWRkcmVzczogYm94LmFkZHJlc3MsXG4gICAgICAgICAgYm94SWQ6IGJveC5ib3hJZCxcbiAgICAgICAgICBjcmVhdGVCbG9jazogYm94LmJsb2NrSWQsXG4gICAgICAgICAgY3JlYXRpb25IZWlnaHQ6IGJveC5oZWlnaHQsXG4gICAgICAgICAgc3BlbmRCbG9jazogdW5kZWZpbmVkLFxuICAgICAgICAgIHNlcmlhbGl6ZWQ6IGJveC5zZXJpYWxpemVkLFxuICAgICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgIGBTdG9yaW5nIGluaXRpYWwgYm94ICR7Ym94LmJveElkfSBhbmQgZXh0cmFjdG9yICR7ZXh0cmFjdG9yfWBcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYEVudGl0eTogJHtKU09OLnN0cmluZ2lmeShlbnRpdHkpfWApO1xuICAgICAgICBhd2FpdCByZXBvc2l0b3J5Lmluc2VydChlbnRpdHkpO1xuICAgICAgfVxuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihgQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHN0b3JlIGJveGVzIGFjdGlvbjogJHtlfWApO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnSW5pdGlhbGl6YXRpb24gZmFpbGVkIHdoaWxlIHN0b3JpbmcgaW5pdGlhbCBhZGRyZXNzIGJveGVzJ1xuICAgICAgKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICAvKipcbiAgICogSXQgc3RvcmVzIGxpc3Qgb2YgYmxvY2tzIGluIHRoZSBkYXRhU291cmNlIHdpdGggYmxvY2sgaWRcbiAgICogQHBhcmFtIGJveGVzXG4gICAqIEBwYXJhbSBzcGVuZEJveGVzXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICBzdG9yZUJveCA9IGFzeW5jIChcbiAgICBib3hlczogQXJyYXk8RXh0cmFjdGVkQm94PixcbiAgICBzcGVuZEJveGVzOiBBcnJheTxzdHJpbmc+LFxuICAgIGJsb2NrOiBCbG9ja0VudGl0eSxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApID0+IHtcbiAgICBjb25zdCBib3hJZHMgPSBib3hlcy5tYXAoKGl0ZW0pID0+IGl0ZW0uYm94SWQpO1xuICAgIGNvbnN0IGRiQm94ZXMgPSBhd2FpdCB0aGlzLmRhdGFzb3VyY2UuZ2V0UmVwb3NpdG9yeShCb3hFbnRpdHkpLmZpbmRCeSh7XG4gICAgICBib3hJZDogSW4oYm94SWRzKSxcbiAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgIH0pO1xuICAgIGxldCBzdWNjZXNzID0gdHJ1ZTtcbiAgICBjb25zdCBxdWVyeVJ1bm5lciA9IHRoaXMuZGF0YXNvdXJjZS5jcmVhdGVRdWVyeVJ1bm5lcigpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3QoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKCk7XG4gICAgdHJ5IHtcbiAgICAgIGZvciAoY29uc3QgYm94IG9mIGJveGVzKSB7XG4gICAgICAgIGNvbnN0IGVudGl0eSA9IHtcbiAgICAgICAgICBhZGRyZXNzOiBib3guYWRkcmVzcyxcbiAgICAgICAgICBib3hJZDogYm94LmJveElkLFxuICAgICAgICAgIGNyZWF0ZUJsb2NrOiBibG9jay5oYXNoLFxuICAgICAgICAgIGNyZWF0aW9uSGVpZ2h0OiBibG9jay5oZWlnaHQsXG4gICAgICAgICAgc3BlbmRCbG9jazogdW5kZWZpbmVkLFxuICAgICAgICAgIHNlcmlhbGl6ZWQ6IGJveC5zZXJpYWxpemVkLFxuICAgICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkYkJveCA9IGRiQm94ZXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmJveElkID09PSBib3guYm94SWQpO1xuICAgICAgICBpZiAoZGJCb3gubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICAgICAgICBgVXBkYXRpbmcgYm94ICR7Ym94LmJveElkfSBhbmQgZXh0cmFjdG9yICR7ZXh0cmFjdG9yfWBcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBFbnRpdHk6ICR7SlNPTi5zdHJpbmdpZnkoZW50aXR5KX1gKTtcbiAgICAgICAgICBhd2FpdCBxdWVyeVJ1bm5lci5tYW5hZ2VyXG4gICAgICAgICAgICAuZ2V0UmVwb3NpdG9yeShCb3hFbnRpdHkpXG4gICAgICAgICAgICAuY3JlYXRlUXVlcnlCdWlsZGVyKClcbiAgICAgICAgICAgIC51cGRhdGUoKVxuICAgICAgICAgICAgLnNldChlbnRpdHkpXG4gICAgICAgICAgICAud2hlcmUoeyBpZDogZGJCb3hbMF0uaWQgfSlcbiAgICAgICAgICAgIC5leGVjdXRlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhgU3RvcmluZyBib3ggJHtib3guYm94SWR9YCk7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoSlNPTi5zdHJpbmdpZnkoZW50aXR5KSk7XG4gICAgICAgICAgYXdhaXQgcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KEJveEVudGl0eSkuaW5zZXJ0KGVudGl0eSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBVcGRhdGluZyBzcGVuZEJsb2NrIGZvciBib3hlcyAke3NwZW5kQm94ZXN9YCk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5tYW5hZ2VyXG4gICAgICAgIC5nZXRSZXBvc2l0b3J5KEJveEVudGl0eSlcbiAgICAgICAgLmNyZWF0ZVF1ZXJ5QnVpbGRlcigpXG4gICAgICAgIC51cGRhdGUoKVxuICAgICAgICAuc2V0KHsgc3BlbmRCbG9jazogYmxvY2suaGFzaCB9KVxuICAgICAgICAud2hlcmUoJ2JveElkIElOICg6Li4uYm94ZXMpIEFORCBleHRyYWN0b3IgPSA6ZXh0cmFjdG9yJywge1xuICAgICAgICAgIGJveGVzOiBzcGVuZEJveGVzLFxuICAgICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICB9KVxuICAgICAgICAuZXhlY3V0ZSgpO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihgQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHN0b3JlIGJveGVzIGFjdGlvbjogJHtlfWApO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuICAgIHJldHVybiBzdWNjZXNzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBkZWxldGUgYm94ZXMgaW4gc3BlY2lmaWMgYmxvY2sgZnJvbSBkYXRhYmFzZS4gaWYgYm94IHNwZW5kIGluIHRoaXMgYmxvY2sgbWFya2VkIGFzIHVuc3BlbnRcbiAgICogYW5kIGlmIGNyZWF0ZWQgaW4gdGhpcyBibG9jayByZW1vdmUgaXQgZnJvbSBkYXRhYmFzZVxuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgZGVsZXRlQmxvY2tCb3hlcyA9IGFzeW5jIChibG9jazogc3RyaW5nLCBleHRyYWN0b3I6IHN0cmluZykgPT4ge1xuICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICBgRGVsZXRpbmcgYm94ZXMgaW4gYmxvY2sgJHtibG9ja30gYW5kIGV4dHJhY3RvciAke2V4dHJhY3Rvcn1gXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLmRhdGFzb3VyY2VcbiAgICAgIC5jcmVhdGVRdWVyeUJ1aWxkZXIoKVxuICAgICAgLmRlbGV0ZSgpXG4gICAgICAuZnJvbShCb3hFbnRpdHkpXG4gICAgICAud2hlcmUoJ2V4dHJhY3RvciA9IDpleHRyYWN0b3IgQU5EIGNyZWF0ZUJsb2NrID0gOmJsb2NrJywge1xuICAgICAgICBibG9jazogYmxvY2ssXG4gICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgfSlcbiAgICAgIC5leGVjdXRlKCk7XG4gICAgYXdhaXQgdGhpcy5kYXRhc291cmNlXG4gICAgICAuZ2V0UmVwb3NpdG9yeShCb3hFbnRpdHkpXG4gICAgICAuY3JlYXRlUXVlcnlCdWlsZGVyKClcbiAgICAgIC51cGRhdGUoKVxuICAgICAgLnNldCh7IHNwZW5kQmxvY2s6IG51bGwgfSlcbiAgICAgIC53aGVyZSgnc3BlbmRCbG9jayA9IDpibG9jayBBTkQgZXh0cmFjdG9yID0gOmV4dHJhY3RvcicsIHtcbiAgICAgICAgYmxvY2s6IGJsb2NrLFxuICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgIH0pXG4gICAgICAuZXhlY3V0ZSgpO1xuICB9O1xufVxuIl19
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { DataSource } from 'typeorm';
|
|
2
2
|
import * as ergoLib from 'ergo-lib-wasm-nodejs';
|
|
3
3
|
import { BoxEntityAction } from '../actions/db';
|
|
4
|
-
import { AbstractExtractor } from '@rosen-bridge/scanner';
|
|
4
|
+
import { AbstractExtractor, AbstractLogger } from '@rosen-bridge/scanner';
|
|
5
5
|
import { BlockEntity } from '@rosen-bridge/scanner';
|
|
6
6
|
import { ExplorerApi } from '../network/ergoNetworkApi';
|
|
7
7
|
import { Transaction } from '@rosen-bridge/scanner';
|
|
8
8
|
export declare class ErgoUTXOExtractor implements AbstractExtractor<Transaction> {
|
|
9
|
+
readonly logger: AbstractLogger;
|
|
9
10
|
private readonly dataSource;
|
|
10
11
|
readonly actions: BoxEntityAction;
|
|
11
12
|
private readonly id;
|
|
@@ -13,7 +14,7 @@ export declare class ErgoUTXOExtractor implements AbstractExtractor<Transaction>
|
|
|
13
14
|
private readonly ergoTree?;
|
|
14
15
|
private readonly tokens;
|
|
15
16
|
readonly explorerApi: ExplorerApi;
|
|
16
|
-
constructor(dataSource: DataSource, id: string, networkType: ergoLib.NetworkPrefix, explorerUrl: string, address?: string, tokens?: Array<string>, timeout?: number);
|
|
17
|
+
constructor(dataSource: DataSource, id: string, networkType: ergoLib.NetworkPrefix, explorerUrl: string, address?: string, tokens?: Array<string>, logger?: AbstractLogger, timeout?: number);
|
|
17
18
|
private extractBoxFromJson;
|
|
18
19
|
/**
|
|
19
20
|
* get Id for current extractor
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ergoUtxoExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/ergoUtxoExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"ergoUtxoExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/ergoUtxoExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACL,iBAAiB,EACjB,cAAc,EAEf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,qBAAa,iBAAkB,YAAW,iBAAiB,CAAC,WAAW,CAAC;IACtE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;gBAGhC,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,OAAO,CAAC,aAAa,EAClC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EACtB,MAAM,CAAC,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,MAAM;IAclB,OAAO,CAAC,kBAAkB,CAWxB;IACF;;OAEG;IACH,KAAK,eAAsB;IAE3B;;;;;OAKG;IACH,mBAAmB,QACZ,MAAM,WAAW,CAAC,SAChB,WAAW,KACjB,QAAQ,OAAO,CAAC,CAyDjB;IAEF;;;OAGG;IACH,SAAS,SAAgB,MAAM,KAAG,QAAQ,IAAI,CAAC,CAE7C;IAEF;;OAEG;IACH,eAAe,kBAAyB,MAAM,mBA0C5C;CACH"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import * as ergoLib from 'ergo-lib-wasm-nodejs';
|
|
2
2
|
import { Buffer } from 'buffer';
|
|
3
3
|
import { BoxEntityAction } from '../actions/db';
|
|
4
|
+
import { DummyLogger, } from '@rosen-bridge/scanner';
|
|
4
5
|
import { ExplorerApi } from '../network/ergoNetworkApi';
|
|
5
6
|
import { JsonBI } from '../network/parser';
|
|
6
7
|
export class ErgoUTXOExtractor {
|
|
8
|
+
logger;
|
|
7
9
|
dataSource;
|
|
8
10
|
actions;
|
|
9
11
|
id;
|
|
@@ -11,16 +13,17 @@ export class ErgoUTXOExtractor {
|
|
|
11
13
|
ergoTree;
|
|
12
14
|
tokens;
|
|
13
15
|
explorerApi;
|
|
14
|
-
constructor(dataSource, id, networkType, explorerUrl, address, tokens, timeout) {
|
|
16
|
+
constructor(dataSource, id, networkType, explorerUrl, address, tokens, logger, timeout) {
|
|
15
17
|
this.dataSource = dataSource;
|
|
16
|
-
this.actions = new BoxEntityAction(dataSource);
|
|
17
18
|
this.id = id;
|
|
18
19
|
this.networkType = networkType;
|
|
19
20
|
this.ergoTree = address
|
|
20
21
|
? ergoLib.Address.from_base58(address).to_ergo_tree().to_base16_bytes()
|
|
21
22
|
: undefined;
|
|
22
23
|
this.tokens = tokens ? tokens : [];
|
|
23
|
-
this.
|
|
24
|
+
this.logger = logger ? logger : new DummyLogger();
|
|
25
|
+
this.explorerApi = new ExplorerApi(explorerUrl, this.logger, timeout);
|
|
26
|
+
this.actions = new BoxEntityAction(dataSource, this.logger);
|
|
24
27
|
}
|
|
25
28
|
extractBoxFromJson = (boxJson) => {
|
|
26
29
|
const box = ergoLib.ErgoBox.from_json(JsonBI.stringify(boxJson));
|
|
@@ -133,4 +136,4 @@ export class ErgoUTXOExtractor {
|
|
|
133
136
|
await this.actions.storeInitialBoxes(extractedBoxes, initialHeight, this.getId());
|
|
134
137
|
};
|
|
135
138
|
}
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJnb1V0eG9FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZXh0cmFjdG9yL2VyZ29VdHhvRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxPQUFPLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJM0MsTUFBTSxPQUFPLGlCQUFpQjtJQUNYLFVBQVUsQ0FBYTtJQUMvQixPQUFPLENBQWtCO0lBQ2pCLEVBQUUsQ0FBUztJQUNYLFdBQVcsQ0FBd0I7SUFDbkMsUUFBUSxDQUFVO0lBQ2xCLE1BQU0sQ0FBZ0I7SUFDOUIsV0FBVyxDQUFjO0lBRWxDLFlBQ0UsVUFBc0IsRUFDdEIsRUFBVSxFQUNWLFdBQWtDLEVBQ2xDLFdBQW1CLEVBQ25CLE9BQWdCLEVBQ2hCLE1BQXNCLEVBQ3RCLE9BQWdCO1FBRWhCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU87WUFDckIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLGVBQWUsRUFBRTtZQUN2RSxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFN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LEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNsRCxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUMxQixDQUFDO2dCQUNGLElBQUksY0FBYyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07b0JBQUUsT0FBTyxLQUFLLENBQUM7YUFDOUQ7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQzthQUNELEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDdEQsaUJBQWlCO1FBQ2pCLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FDbEMsY0FBYyxFQUNkLGFBQWEsRUFDYixJQUFJLENBQUMsS0FBSyxFQUFFLENBQ2IsQ0FBQztJQUNKLENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ3R5cGVvcm0nO1xuaW1wb3J0ICogYXMgZXJnb0xpYiBmcm9tICdlcmdvLWxpYi13YXNtLW5vZGVqcyc7XG5pbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInO1xuaW1wb3J0IHsgQm94RW50aXR5QWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucy9kYic7XG5pbXBvcnQgeyBBYnN0cmFjdEV4dHJhY3RvciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lcic7XG5pbXBvcnQgRXh0cmFjdGVkQm94IGZyb20gJy4uL2ludGVyZmFjZXMvRXh0cmFjdGVkQm94JztcbmltcG9ydCB7IEJsb2NrRW50aXR5IH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyJztcbmltcG9ydCB7IEV4cGxvcmVyQXBpIH0gZnJvbSAnLi4vbmV0d29yay9lcmdvTmV0d29ya0FwaSc7XG5pbXBvcnQgeyBKc29uQkkgfSBmcm9tICcuLi9uZXR3b3JrL3BhcnNlcic7XG5pbXBvcnQgeyBCb3hlcywgRXJnb0JveEpzb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3R5cGVzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyJztcblxuZXhwb3J0IGNsYXNzIEVyZ29VVFhPRXh0cmFjdG9yIGltcGxlbWVudHMgQWJzdHJhY3RFeHRyYWN0b3I8VHJhbnNhY3Rpb24+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhU291cmNlOiBEYXRhU291cmNlO1xuICByZWFkb25seSBhY3Rpb25zOiBCb3hFbnRpdHlBY3Rpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBuZXR3b3JrVHlwZTogZXJnb0xpYi5OZXR3b3JrUHJlZml4O1xuICBwcml2YXRlIHJlYWRvbmx5IGVyZ29UcmVlPzogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHRva2VuczogQXJyYXk8c3RyaW5nPjtcbiAgcmVhZG9ubHkgZXhwbG9yZXJBcGk6IEV4cGxvcmVyQXBpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBuZXR3b3JrVHlwZTogZXJnb0xpYi5OZXR3b3JrUHJlZml4LFxuICAgIGV4cGxvcmVyVXJsOiBzdHJpbmcsXG4gICAgYWRkcmVzcz86IHN0cmluZyxcbiAgICB0b2tlbnM/OiBBcnJheTxzdHJpbmc+LFxuICAgIHRpbWVvdXQ/OiBudW1iZXJcbiAgKSB7XG4gICAgdGhpcy5kYXRhU291cmNlID0gZGF0YVNvdXJjZTtcbiAgICB0aGlzLmFjdGlvbnMgPSBuZXcgQm94RW50aXR5QWN0aW9uKGRhdGFTb3VyY2UpO1xuICAgIHRoaXMuaWQgPSBpZDtcbiAgICB0aGlzLm5ldHdvcmtUeXBlID0gbmV0d29ya1R5cGU7XG4gICAgdGhpcy5lcmdvVHJlZSA9IGFkZHJlc3NcbiAgICAgID8gZXJnb0xpYi5BZGRyZXNzLmZyb21fYmFzZTU4KGFkZHJlc3MpLnRvX2VyZ29fdHJlZSgpLnRvX2Jhc2UxNl9ieXRlcygpXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLnRva2VucyA9IHRva2VucyA/IHRva2VucyA6IFtdO1xuICAgIHRoaXMuZXhwbG9yZXJBcGkgPSBuZXcgRXhwbG9yZXJBcGkoZXhwbG9yZXJVcmwsIHRpbWVvdXQpO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0Qm94RnJvbUpzb24gPSAoYm94SnNvbjogRXJnb0JveEpzb24pID0+IHtcbiAgICBjb25zdCBib3ggPSBlcmdvTGliLkVyZ29Cb3guZnJvbV9qc29uKEpzb25CSS5zdHJpbmdpZnkoYm94SnNvbikpO1xuICAgIHJldHVybiB7XG4gICAgICBib3hJZDogYm94LmJveF9pZCgpLnRvX3N0cigpLFxuICAgICAgYWRkcmVzczogZXJnb0xpYi5BZGRyZXNzLnJlY3JlYXRlX2Zyb21fZXJnb190cmVlKFxuICAgICAgICBlcmdvTGliLkVyZ29UcmVlLmZyb21fYmFzZTE2X2J5dGVzKGJveC5lcmdvX3RyZWUoKS50b19iYXNlMTZfYnl0ZXMoKSlcbiAgICAgICkudG9fYmFzZTU4KHRoaXMubmV0d29ya1R5cGUpLFxuICAgICAgc2VyaWFsaXplZDogQnVmZmVyLmZyb20oYm94LnNpZ21hX3NlcmlhbGl6ZV9ieXRlcygpKS50b1N0cmluZygnYmFzZTY0JyksXG4gICAgICBibG9ja0lkOiBib3hKc29uLmJsb2NrSWQsXG4gICAgICBoZWlnaHQ6IGJveEpzb24uc2V0dGxlbWVudEhlaWdodCxcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogZ2V0IElkIGZvciBjdXJyZW50IGV4dHJhY3RvclxuICAgKi9cbiAgZ2V0SWQgPSAoKSA9PiBgJHt0aGlzLmlkfWA7XG5cbiAgLyoqXG4gICAqIGdldHMgYmxvY2sgaWQgYW5kIHRyYW5zYWN0aW9ucyBjb3JyZXNwb25kaW5nIHRvIHRoZSBibG9jayBhbmQgc2F2ZXMgaWYgdGhleSBhcmUgdmFsaWQgcm9zZW5cbiAgICogIHRyYW5zYWN0aW9ucyBhbmQgaW4gY2FzZSBvZiBzdWNjZXNzIHJldHVybiB0cnVlIGFuZCBpbiBjYXNlIG9mIGZhaWx1cmUgcmV0dXJucyBmYWxzZVxuICAgKiBAcGFyYW0gdHhzXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKi9cbiAgcHJvY2Vzc1RyYW5zYWN0aW9ucyA9IChcbiAgICB0eHM6IEFycmF5PFRyYW5zYWN0aW9uPixcbiAgICBibG9jazogQmxvY2tFbnRpdHlcbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGJveGVzOiBBcnJheTxFeHRyYWN0ZWRCb3g+ID0gW107XG4gICAgICAgIGNvbnN0IHNwZW5kQm94ZXM6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgICAgICAgdHhzLmZvckVhY2goKHRyYW5zYWN0aW9uKSA9PiB7XG4gICAgICAgICAgZm9yIChjb25zdCBvdXRwdXQgb2YgdHJhbnNhY3Rpb24ub3V0cHV0cykge1xuICAgICAgICAgICAgaWYgKHRoaXMuZXJnb1RyZWUgJiYgb3V0cHV0LmVyZ29UcmVlICE9PSB0aGlzLmVyZ29UcmVlKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRUb2tlbnMgPSB0aGlzLnRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IG91dHB1dFRva2VucyA9IG91dHB1dC5hc3NldHMgPyBvdXRwdXQuYXNzZXRzIDogW107XG4gICAgICAgICAgICAgIGZvciAoY29uc3Qgb3V0cHV0VG9rZW4gb2Ygb3V0cHV0VG9rZW5zKSB7XG4gICAgICAgICAgICAgICAgaWYgKG91dHB1dFRva2VuLnRva2VuSWQgPT09IHRva2VuKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHRoaXMudG9rZW5zLmZpbHRlcihcbiAgICAgICAgICAgICAgICAodG9rZW4pID0+IGZpbHRlcmVkVG9rZW5zLmluZGV4T2YodG9rZW4pID09PSAtMVxuICAgICAgICAgICAgICApLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJveGVzLnB1c2goe1xuICAgICAgICAgICAgICBib3hJZDogb3V0cHV0LmJveElkLFxuICAgICAgICAgICAgICBhZGRyZXNzOiBlcmdvTGliLkFkZHJlc3MucmVjcmVhdGVfZnJvbV9lcmdvX3RyZWUoXG4gICAgICAgICAgICAgICAgZXJnb0xpYi5FcmdvVHJlZS5mcm9tX2Jhc2UxNl9ieXRlcyhvdXRwdXQuZXJnb1RyZWUpXG4gICAgICAgICAgICAgICkudG9fYmFzZTU4KHRoaXMubmV0d29ya1R5cGUpLFxuICAgICAgICAgICAgICBzZXJpYWxpemVkOiBCdWZmZXIuZnJvbShcbiAgICAgICAgICAgICAgICBlcmdvTGliLkVyZ29Cb3guZnJvbV9qc29uKFxuICAgICAgICAgICAgICAgICAgSnNvbkJJLnN0cmluZ2lmeShvdXRwdXQpXG4gICAgICAgICAgICAgICAgKS5zaWdtYV9zZXJpYWxpemVfYnl0ZXMoKVxuICAgICAgICAgICAgICApLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmb3IgKGNvbnN0IGlucHV0IG9mIHRyYW5zYWN0aW9uLmlucHV0cykge1xuICAgICAgICAgICAgc3BlbmRCb3hlcy5wdXNoKGlucHV0LmJveElkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFjdGlvbnNcbiAgICAgICAgICAuc3RvcmVCb3goYm94ZXMsIHNwZW5kQm94ZXMsIGJsb2NrLCB0aGlzLmdldElkKCkpXG4gICAgICAgICAgLnRoZW4oKHN0YXR1cykgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZShzdGF0dXMpO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgYEFuIGVycm9yIHVuY2FjaGVkIGV4Y2VwdGlvbiBvY2N1cnJlZCBkdXJpbmcgc3RvcmUgZXJnbyBvYnNlcnZhdGlvbjogJHtlfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJlamVjdChlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogZm9yayBvbmUgYmxvY2sgYW5kIHJlbW92ZSBhbGwgc3RvcmVkIGluZm9ybWF0aW9uIGZvciB0aGlzIGJsb2NrXG4gICAqIEBwYXJhbSBoYXNoOiBibG9jayBoYXNoXG4gICAqL1xuICBmb3JrQmxvY2sgPSBhc3luYyAoaGFzaDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgYXdhaXQgdGhpcy5hY3Rpb25zLmRlbGV0ZUJsb2NrQm94ZXMoaGFzaCwgdGhpcy5nZXRJZCgpKTtcbiAgfTtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGRhdGFiYXNlIHdpdGggb2xkZXIgYm94ZXMgcmVsYXRlZCB0byB0aGUgYWRkcmVzc1xuICAgKi9cbiAgaW5pdGlhbGl6ZUJveGVzID0gYXN5bmMgKGluaXRpYWxIZWlnaHQ6IG51bWJlcikgPT4ge1xuICAgIC8vIDEuIEdldCBCb3hlc1xuICAgIGNvbnN0IGFsbEJveGVzOiBBcnJheTxFcmdvQm94SnNvbj4gPSBbXTtcbiAgICBsZXQgb2Zmc2V0ID0gMCxcbiAgICAgIHRvdGFsID0gMTAwLFxuICAgICAgYm94ZXM6IEJveGVzO1xuICAgIHdoaWxlIChvZmZzZXQgPCB0b3RhbCkge1xuICAgICAgaWYgKHRoaXMuZXJnb1RyZWUpIHtcbiAgICAgICAgYm94ZXMgPSBhd2FpdCB0aGlzLmV4cGxvcmVyQXBpLmdldEJveGVzRm9yQWRkcmVzcyhcbiAgICAgICAgICB0aGlzLmVyZ29UcmVlLFxuICAgICAgICAgIG9mZnNldFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmICghdGhpcy5lcmdvVHJlZSAmJiB0aGlzLnRva2Vucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGJveGVzID0gYXdhaXQgdGhpcy5leHBsb3JlckFwaS5nZXRCb3hlc0J5VG9rZW5JZChcbiAgICAgICAgICB0aGlzLnRva2Vuc1swXSxcbiAgICAgICAgICBvZmZzZXRcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSByZXR1cm47XG4gICAgICBhbGxCb3hlcy5wdXNoKC4uLmJveGVzLml0ZW1zKTtcbiAgICAgIHRvdGFsID0gYm94ZXMudG90YWw7XG4gICAgICBvZmZzZXQgKz0gMTAwO1xuICAgIH1cbiAgICAvLyAyLiBGaWx0ZXIgQm94ZXNcbiAgICBjb25zdCBleHRyYWN0ZWRCb3hlcyA9IGFsbEJveGVzXG4gICAgICAuZmlsdGVyKChib3hKc29uKSA9PiBib3hKc29uLnNldHRsZW1lbnRIZWlnaHQgPCBpbml0aWFsSGVpZ2h0KVxuICAgICAgLmZpbHRlcigoYm94SnNvbikgPT4ge1xuICAgICAgICBpZiAodGhpcy50b2tlbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IGJveFRva2VucyA9IGJveEpzb24uYXNzZXRzLm1hcCgodG9rZW4pID0+IHRva2VuLnRva2VuSWQpO1xuICAgICAgICAgIGNvbnN0IHJlcXVpcmVkVG9rZW5zID0gdGhpcy50b2tlbnMuZmlsdGVyKCh0b2tlbikgPT5cbiAgICAgICAgICAgIGJveFRva2Vucy5pbmNsdWRlcyh0b2tlbilcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChyZXF1aXJlZFRva2Vucy5sZW5ndGggPCB0aGlzLnRva2Vucy5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0pXG4gICAgICAubWFwKChib3hKc29uKSA9PiB0aGlzLmV4dHJhY3RCb3hGcm9tSnNvbihib3hKc29uKSk7XG4gICAgLy8gMy4gU3RvcmUgQm94ZXNcbiAgICBhd2FpdCB0aGlzLmFjdGlvbnMuc3RvcmVJbml0aWFsQm94ZXMoXG4gICAgICBleHRyYWN0ZWRCb3hlcyxcbiAgICAgIGluaXRpYWxIZWlnaHQsXG4gICAgICB0aGlzLmdldElkKClcbiAgICApO1xuICB9O1xufVxuIl19
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJnb1V0eG9FeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZXh0cmFjdG9yL2VyZ29VdHhvRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxPQUFPLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFHTCxXQUFXLEdBQ1osTUFBTSx1QkFBdUIsQ0FBQztBQUcvQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSTNDLE1BQU0sT0FBTyxpQkFBaUI7SUFDbkIsTUFBTSxDQUFpQjtJQUNmLFVBQVUsQ0FBYTtJQUMvQixPQUFPLENBQWtCO0lBQ2pCLEVBQUUsQ0FBUztJQUNYLFdBQVcsQ0FBd0I7SUFDbkMsUUFBUSxDQUFVO0lBQ2xCLE1BQU0sQ0FBZ0I7SUFDOUIsV0FBVyxDQUFjO0lBRWxDLFlBQ0UsVUFBc0IsRUFDdEIsRUFBVSxFQUNWLFdBQWtDLEVBQ2xDLFdBQW1CLEVBQ25CLE9BQWdCLEVBQ2hCLE1BQXNCLEVBQ3RCLE1BQXVCLEVBQ3ZCLE9BQWdCO1FBRWhCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPO1lBQ3JCLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxlQUFlLEVBQUU7WUFDdkUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNkLElBQUksQ0FB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QUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNsQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDMUIsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDL0QsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNsRCxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUMxQixDQUFDO2dCQUNGLElBQUksY0FBYyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07b0JBQUUsT0FBTyxLQUFLLENBQUM7YUFDOUQ7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQzthQUNELEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDdEQsaUJBQWlCO1FBQ2pCLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FDbEMsY0FBYyxFQUNkLGFBQWEsRUFDYixJQUFJLENBQUMsS0FBSyxFQUFFLENBQ2IsQ0FBQztJQUNKLENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ3R5cGVvcm0nO1xuaW1wb3J0ICogYXMgZXJnb0xpYiBmcm9tICdlcmdvLWxpYi13YXNtLW5vZGVqcyc7XG5pbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInO1xuaW1wb3J0IHsgQm94RW50aXR5QWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucy9kYic7XG5pbXBvcnQge1xuICBBYnN0cmFjdEV4dHJhY3RvcixcbiAgQWJzdHJhY3RMb2dnZXIsXG4gIER1bW15TG9nZ2VyLFxufSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXInO1xuaW1wb3J0IEV4dHJhY3RlZEJveCBmcm9tICcuLi9pbnRlcmZhY2VzL0V4dHJhY3RlZEJveCc7XG5pbXBvcnQgeyBCbG9ja0VudGl0eSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lcic7XG5pbXBvcnQgeyBFeHBsb3JlckFwaSB9IGZyb20gJy4uL25ldHdvcmsvZXJnb05ldHdvcmtBcGknO1xuaW1wb3J0IHsgSnNvbkJJIH0gZnJvbSAnLi4vbmV0d29yay9wYXJzZXInO1xuaW1wb3J0IHsgQm94ZXMsIEVyZ29Cb3hKc29uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90eXBlcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lcic7XG5cbmV4cG9ydCBjbGFzcyBFcmdvVVRYT0V4dHJhY3RvciBpbXBsZW1lbnRzIEFic3RyYWN0RXh0cmFjdG9yPFRyYW5zYWN0aW9uPiB7XG4gIHJlYWRvbmx5IGxvZ2dlcjogQWJzdHJhY3RMb2dnZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YVNvdXJjZTogRGF0YVNvdXJjZTtcbiAgcmVhZG9ubHkgYWN0aW9uczogQm94RW50aXR5QWN0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgbmV0d29ya1R5cGU6IGVyZ29MaWIuTmV0d29ya1ByZWZpeDtcbiAgcHJpdmF0ZSByZWFkb25seSBlcmdvVHJlZT86IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSB0b2tlbnM6IEFycmF5PHN0cmluZz47XG4gIHJlYWRvbmx5IGV4cGxvcmVyQXBpOiBFeHBsb3JlckFwaTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgbmV0d29ya1R5cGU6IGVyZ29MaWIuTmV0d29ya1ByZWZpeCxcbiAgICBleHBsb3JlclVybDogc3RyaW5nLFxuICAgIGFkZHJlc3M/OiBzdHJpbmcsXG4gICAgdG9rZW5zPzogQXJyYXk8c3RyaW5nPixcbiAgICBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlcixcbiAgICB0aW1lb3V0PzogbnVtYmVyXG4gICkge1xuICAgIHRoaXMuZGF0YVNvdXJjZSA9IGRhdGFTb3VyY2U7XG4gICAgdGhpcy5pZCA9IGlkO1xuICAgIHRoaXMubmV0d29ya1R5cGUgPSBuZXR3b3JrVHlwZTtcbiAgICB0aGlzLmVyZ29UcmVlID0gYWRkcmVzc1xuICAgICAgPyBlcmdvTGliLkFkZHJlc3MuZnJvbV9iYXNlNTgoYWRkcmVzcykudG9fZXJnb190cmVlKCkudG9fYmFzZTE2X2J5dGVzKClcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIHRoaXMudG9rZW5zID0gdG9rZW5zID8gdG9rZW5zIDogW107XG4gICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIgPyBsb2dnZXIgOiBuZXcgRHVtbXlMb2dnZXIoKTtcbiAgICB0aGlzLmV4cGxvcmVyQXBpID0gbmV3IEV4cGxvcmVyQXBpKGV4cGxvcmVyVXJsLCB0aGlzLmxvZ2dlciwgdGltZW91dCk7XG4gICAgdGhpcy5hY3Rpb25zID0gbmV3IEJveEVudGl0eUFjdGlvbihkYXRhU291cmNlLCB0aGlzLmxvZ2dlcik7XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RCb3hGcm9tSnNvbiA9IChib3hKc29uOiBFcmdvQm94SnNvbikgPT4ge1xuICAgIGNvbnN0IGJveCA9IGVyZ29MaWIuRXJnb0JveC5mcm9tX2pzb24oSnNvbkJJLnN0cmluZ2lmeShib3hKc29uKSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJveElkOiBib3guYm94X2lkKCkudG9fc3RyKCksXG4gICAgICBhZGRyZXNzOiBlcmdvTGliLkFkZHJlc3MucmVjcmVhdGVfZnJvbV9lcmdvX3RyZWUoXG4gICAgICAgIGVyZ29MaWIuRXJnb1RyZWUuZnJvbV9iYXNlMTZfYnl0ZXMoYm94LmVyZ29fdHJlZSgpLnRvX2Jhc2UxNl9ieXRlcygpKVxuICAgICAgKS50b19iYXNlNTgodGhpcy5uZXR3b3JrVHlwZSksXG4gICAgICBzZXJpYWxpemVkOiBCdWZmZXIuZnJvbShib3guc2lnbWFfc2VyaWFsaXplX2J5dGVzKCkpLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgIGJsb2NrSWQ6IGJveEpzb24uYmxvY2tJZCxcbiAgICAgIGhlaWdodDogYm94SnNvbi5zZXR0bGVtZW50SGVpZ2h0LFxuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBnZXQgSWQgZm9yIGN1cnJlbnQgZXh0cmFjdG9yXG4gICAqL1xuICBnZXRJZCA9ICgpID0+IGAke3RoaXMuaWR9YDtcblxuICAvKipcbiAgICogZ2V0cyBibG9jayBpZCBhbmQgdHJhbnNhY3Rpb25zIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGJsb2NrIGFuZCBzYXZlcyBpZiB0aGV5IGFyZSB2YWxpZCByb3NlblxuICAgKiAgdHJhbnNhY3Rpb25zIGFuZCBpbiBjYXNlIG9mIHN1Y2Nlc3MgcmV0dXJuIHRydWUgYW5kIGluIGNhc2Ugb2YgZmFpbHVyZSByZXR1cm5zIGZhbHNlXG4gICAqIEBwYXJhbSB0eHNcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqL1xuICBwcm9jZXNzVHJhbnNhY3Rpb25zID0gKFxuICAgIHR4czogQXJyYXk8VHJhbnNhY3Rpb24+LFxuICAgIGJsb2NrOiBCbG9ja0VudGl0eVxuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgYm94ZXM6IEFycmF5PEV4dHJhY3RlZEJveD4gPSBbXTtcbiAgICAgICAgY29uc3Qgc3BlbmRCb3hlczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgICAgICB0eHMuZm9yRWFjaCgodHJhbnNhY3Rpb24pID0+IHtcbiAgICAgICAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiB0cmFuc2FjdGlvbi5vdXRwdXRzKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5lcmdvVHJlZSAmJiBvdXRwdXQuZXJnb1RyZWUgIT09IHRoaXMuZXJnb1RyZWUpIHtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJlZFRva2VucyA9IHRoaXMudG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgb3V0cHV0VG9rZW5zID0gb3V0cHV0LmFzc2V0cyA/IG91dHB1dC5hc3NldHMgOiBbXTtcbiAgICAgICAgICAgICAgZm9yIChjb25zdCBvdXRwdXRUb2tlbiBvZiBvdXRwdXRUb2tlbnMpIHtcbiAgICAgICAgICAgICAgICBpZiAob3V0cHV0VG9rZW4udG9rZW5JZCA9PT0gdG9rZW4pIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdGhpcy50b2tlbnMuZmlsdGVyKFxuICAgICAgICAgICAgICAgICh0b2tlbikgPT4gZmlsdGVyZWRUb2tlbnMuaW5kZXhPZih0b2tlbikgPT09IC0xXG4gICAgICAgICAgICAgICkubGVuZ3RoID4gMFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYm94ZXMucHVzaCh7XG4gICAgICAgICAgICAgIGJveElkOiBvdXRwdXQuYm94SWQsXG4gICAgICAgICAgICAgIGFkZHJlc3M6IGVyZ29MaWIuQWRkcmVzcy5yZWNyZWF0ZV9mcm9tX2VyZ29fdHJlZShcbiAgICAgICAgICAgICAgICBlcmdvTGliLkVyZ29UcmVlLmZyb21fYmFzZTE2X2J5dGVzKG91dHB1dC5lcmdvVHJlZSlcbiAgICAgICAgICAgICAgKS50b19iYXNlNTgodGhpcy5uZXR3b3JrVHlwZSksXG4gICAgICAgICAgICAgIHNlcmlhbGl6ZWQ6IEJ1ZmZlci5mcm9tKFxuICAgICAgICAgICAgICAgIGVyZ29MaWIuRXJnb0JveC5mcm9tX2pzb24oXG4gICAgICAgICAgICAgICAgICBKc29uQkkuc3RyaW5naWZ5KG91dHB1dClcbiAgICAgICAgICAgICAgICApLnNpZ21hX3NlcmlhbGl6ZV9ieXRlcygpXG4gICAgICAgICAgICAgICkudG9TdHJpbmcoJ2Jhc2U2NCcpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGZvciAoY29uc3QgaW5wdXQgb2YgdHJhbnNhY3Rpb24uaW5wdXRzKSB7XG4gICAgICAgICAgICBzcGVuZEJveGVzLnB1c2goaW5wdXQuYm94SWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYWN0aW9uc1xuICAgICAgICAgIC5zdG9yZUJveChib3hlcywgc3BlbmRCb3hlcywgYmxvY2ssIHRoaXMuZ2V0SWQoKSlcbiAgICAgICAgICAudGhlbigoc3RhdHVzKSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKHN0YXR1cyk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICBgQW4gZXJyb3IgdW5jYWNoZWQgZXhjZXB0aW9uIG9jY3VycmVkIGR1cmluZyBzdG9yZSBlcmdvIG9ic2VydmF0aW9uOiAke2V9YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBmb3JrIG9uZSBibG9jayBhbmQgcmVtb3ZlIGFsbCBzdG9yZWQgaW5mb3JtYXRpb24gZm9yIHRoaXMgYmxvY2tcbiAgICogQHBhcmFtIGhhc2g6IGJsb2NrIGhhc2hcbiAgICovXG4gIGZvcmtCbG9jayA9IGFzeW5jIChoYXNoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBhd2FpdCB0aGlzLmFjdGlvbnMuZGVsZXRlQmxvY2tCb3hlcyhoYXNoLCB0aGlzLmdldElkKCkpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgZGF0YWJhc2Ugd2l0aCBvbGRlciBib3hlcyByZWxhdGVkIHRvIHRoZSBhZGRyZXNzXG4gICAqL1xuICBpbml0aWFsaXplQm94ZXMgPSBhc3luYyAoaW5pdGlhbEhlaWdodDogbnVtYmVyKSA9PiB7XG4gICAgLy8gMS4gR2V0IEJveGVzXG4gICAgY29uc3QgYWxsQm94ZXM6IEFycmF5PEVyZ29Cb3hKc29uPiA9IFtdO1xuICAgIGxldCBvZmZzZXQgPSAwLFxuICAgICAgdG90YWwgPSAxMDAsXG4gICAgICBib3hlczogQm94ZXM7XG4gICAgd2hpbGUgKG9mZnNldCA8IHRvdGFsKSB7XG4gICAgICBpZiAodGhpcy5lcmdvVHJlZSkge1xuICAgICAgICBib3hlcyA9IGF3YWl0IHRoaXMuZXhwbG9yZXJBcGkuZ2V0Qm94ZXNGb3JBZGRyZXNzKFxuICAgICAgICAgIHRoaXMuZXJnb1RyZWUsXG4gICAgICAgICAgb2Zmc2V0XG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLmVyZ29UcmVlICYmIHRoaXMudG9rZW5zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgYm94ZXMgPSBhd2FpdCB0aGlzLmV4cGxvcmVyQXBpLmdldEJveGVzQnlUb2tlbklkKFxuICAgICAgICAgIHRoaXMudG9rZW5zWzBdLFxuICAgICAgICAgIG9mZnNldFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHJldHVybjtcbiAgICAgIGFsbEJveGVzLnB1c2goLi4uYm94ZXMuaXRlbXMpO1xuICAgICAgdG90YWwgPSBib3hlcy50b3RhbDtcbiAgICAgIG9mZnNldCArPSAxMDA7XG4gICAgfVxuICAgIC8vIDIuIEZpbHRlciBCb3hlc1xuICAgIGNvbnN0IGV4dHJhY3RlZEJveGVzID0gYWxsQm94ZXNcbiAgICAgIC5maWx0ZXIoKGJveEpzb24pID0+IGJveEpzb24uc2V0dGxlbWVudEhlaWdodCA8IGluaXRpYWxIZWlnaHQpXG4gICAgICAuZmlsdGVyKChib3hKc29uKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnRva2Vucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgYm94VG9rZW5zID0gYm94SnNvbi5hc3NldHMubWFwKCh0b2tlbikgPT4gdG9rZW4udG9rZW5JZCk7XG4gICAgICAgICAgY29uc3QgcmVxdWlyZWRUb2tlbnMgPSB0aGlzLnRva2Vucy5maWx0ZXIoKHRva2VuKSA9PlxuICAgICAgICAgICAgYm94VG9rZW5zLmluY2x1ZGVzKHRva2VuKVxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKHJlcXVpcmVkVG9rZW5zLmxlbmd0aCA8IHRoaXMudG9rZW5zLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSlcbiAgICAgIC5tYXAoKGJveEpzb24pID0+IHRoaXMuZXh0cmFjdEJveEZyb21Kc29uKGJveEpzb24pKTtcbiAgICAvLyAzLiBTdG9yZSBCb3hlc1xuICAgIGF3YWl0IHRoaXMuYWN0aW9ucy5zdG9yZUluaXRpYWxCb3hlcyhcbiAgICAgIGV4dHJhY3RlZEJveGVzLFxuICAgICAgaW5pdGlhbEhlaWdodCxcbiAgICAgIHRoaXMuZ2V0SWQoKVxuICAgICk7XG4gIH07XG59XG4iXX0=
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
import { boxEntity1659770552000 } from './boxEntity1659770552000';
|
|
2
|
-
|
|
1
|
+
import { boxEntity1659770552000 } from './sqlite/boxEntity1659770552000';
|
|
2
|
+
import { boxEntity1671714075083 } from './postgres/boxEntity1671714075083';
|
|
3
|
+
export declare const migrations: {
|
|
4
|
+
sqlite: (typeof boxEntity1659770552000)[];
|
|
5
|
+
postgres: (typeof boxEntity1671714075083)[];
|
|
6
|
+
};
|
|
3
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,eAAO,MAAM,UAAU;;;CAGtB,CAAC"}
|
package/dist/migrations/index.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
import { boxEntity1659770552000 } from './boxEntity1659770552000';
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { boxEntity1659770552000 } from './sqlite/boxEntity1659770552000';
|
|
2
|
+
import { boxEntity1671714075083 } from './postgres/boxEntity1671714075083';
|
|
3
|
+
export const migrations = {
|
|
4
|
+
sqlite: [boxEntity1659770552000],
|
|
5
|
+
postgres: [boxEntity1671714075083],
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWlncmF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzRSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsTUFBTSxFQUFFLENBQUMsc0JBQXNCLENBQUM7SUFDaEMsUUFBUSxFQUFFLENBQUMsc0JBQXNCLENBQUM7Q0FDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJveEVudGl0eTE2NTk3NzA1NTIwMDAgfSBmcm9tICcuL3NxbGl0ZS9ib3hFbnRpdHkxNjU5NzcwNTUyMDAwJztcbmltcG9ydCB7IGJveEVudGl0eTE2NzE3MTQwNzUwODMgfSBmcm9tICcuL3Bvc3RncmVzL2JveEVudGl0eTE2NzE3MTQwNzUwODMnO1xuXG5leHBvcnQgY29uc3QgbWlncmF0aW9ucyA9IHtcbiAgc3FsaXRlOiBbYm94RW50aXR5MTY1OTc3MDU1MjAwMF0sXG4gIHBvc3RncmVzOiBbYm94RW50aXR5MTY3MTcxNDA3NTA4M10sXG59O1xuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { MigrationInterface, QueryRunner } from 'typeorm';
|
|
2
|
+
export declare class boxEntity1671714075083 implements MigrationInterface {
|
|
3
|
+
name: string;
|
|
4
|
+
up(queryRunner: QueryRunner): Promise<void>;
|
|
5
|
+
down(queryRunner: QueryRunner): Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=boxEntity1671714075083.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boxEntity1671714075083.d.ts","sourceRoot":"","sources":["../../../lib/migrations/postgres/boxEntity1671714075083.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1D,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,IAAI,SAA4B;IAEnB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAG3D"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export class boxEntity1671714075083 {
|
|
2
|
+
name = 'boxEntity1671714075083';
|
|
3
|
+
async up(queryRunner) {
|
|
4
|
+
await queryRunner.query(`CREATE TABLE "box_entity" (
|
|
5
|
+
"id" serial PRIMARY KEY NOT NULL,
|
|
6
|
+
"address" varchar NOT NULL,
|
|
7
|
+
"boxId" varchar NOT NULL,
|
|
8
|
+
"createBlock" varchar NOT NULL,
|
|
9
|
+
"creationHeight" integer NOT NULL,
|
|
10
|
+
"serialized" varchar NOT NULL,
|
|
11
|
+
"spendBlock" text,
|
|
12
|
+
"extractor" varchar NOT NULL)`);
|
|
13
|
+
}
|
|
14
|
+
async down(queryRunner) {
|
|
15
|
+
await queryRunner.query(`DROP TABLE "box_entity"`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94RW50aXR5MTY3MTcxNDA3NTA4My5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9taWdyYXRpb25zL3Bvc3RncmVzL2JveEVudGl0eTE2NzE3MTQwNzUwODMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxJQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFFekIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUF3QjtRQUN0QyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQ3JCOzs7Ozs7OztzREFRZ0QsQ0FDakQsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQXdCO1FBQ3hDLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQ3JELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pZ3JhdGlvbkludGVyZmFjZSwgUXVlcnlSdW5uZXIgfSBmcm9tICd0eXBlb3JtJztcblxuZXhwb3J0IGNsYXNzIGJveEVudGl0eTE2NzE3MTQwNzUwODMgaW1wbGVtZW50cyBNaWdyYXRpb25JbnRlcmZhY2Uge1xuICBuYW1lID0gJ2JveEVudGl0eTE2NzE3MTQwNzUwODMnO1xuXG4gIHB1YmxpYyBhc3luYyB1cChxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShcbiAgICAgIGBDUkVBVEUgVEFCTEUgXCJib3hfZW50aXR5XCIgKFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJpZFwiIHNlcmlhbCBQUklNQVJZIEtFWSBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkcmVzc1wiIHZhcmNoYXIgTk9UIE5VTEwsIFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJib3hJZFwiIHZhcmNoYXIgTk9UIE5VTEwsIFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJjcmVhdGVCbG9ja1wiIHZhcmNoYXIgTk9UIE5VTEwsIFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJjcmVhdGlvbkhlaWdodFwiIGludGVnZXIgTk9UIE5VTEwsIFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzZXJpYWxpemVkXCIgdmFyY2hhciBOT1QgTlVMTCwgXG4gICAgICAgICAgICAgICAgICAgICAgICBcInNwZW5kQmxvY2tcIiB0ZXh0LCBcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIgdmFyY2hhciBOT1QgTlVMTClgXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkb3duKHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBEUk9QIFRBQkxFIFwiYm94X2VudGl0eVwiYCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { MigrationInterface, QueryRunner } from 'typeorm';
|
|
2
|
+
export declare class boxEntity1659770552000 implements MigrationInterface {
|
|
3
|
+
name: string;
|
|
4
|
+
up(queryRunner: QueryRunner): Promise<void>;
|
|
5
|
+
down(queryRunner: QueryRunner): Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=boxEntity1659770552000.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boxEntity1659770552000.d.ts","sourceRoot":"","sources":["../../../lib/migrations/sqlite/boxEntity1659770552000.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1D,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,IAAI,SAA4B;IAEnB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAG3D"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export class boxEntity1659770552000 {
|
|
2
|
+
name = 'boxEntity1659770552000';
|
|
3
|
+
async up(queryRunner) {
|
|
4
|
+
await queryRunner.query(`CREATE TABLE "box_entity" (
|
|
5
|
+
"id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
6
|
+
"address" varchar NOT NULL,
|
|
7
|
+
"boxId" varchar NOT NULL,
|
|
8
|
+
"createBlock" varchar NOT NULL,
|
|
9
|
+
"creationHeight" integer NOT NULL,
|
|
10
|
+
"serialized" varchar NOT NULL,
|
|
11
|
+
"spendBlock" text,
|
|
12
|
+
"extractor" varchar NOT NULL)`);
|
|
13
|
+
}
|
|
14
|
+
async down(queryRunner) {
|
|
15
|
+
await queryRunner.query(`DROP TABLE "box_entity"`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94RW50aXR5MTY1OTc3MDU1MjAwMC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9taWdyYXRpb25zL3NxbGl0ZS9ib3hFbnRpdHkxNjU5NzcwNTUyMDAwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsSUFBSSxHQUFHLHdCQUF3QixDQUFDO0lBRXpCLEtBQUssQ0FBQyxFQUFFLENBQUMsV0FBd0I7UUFDdEMsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUNyQjs7Ozs7Ozs7c0RBUWdELENBQ2pELENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUksQ0FBQyxXQUF3QjtRQUN4QyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNaWdyYXRpb25JbnRlcmZhY2UsIFF1ZXJ5UnVubmVyIH0gZnJvbSAndHlwZW9ybSc7XG5cbmV4cG9ydCBjbGFzcyBib3hFbnRpdHkxNjU5NzcwNTUyMDAwIGltcGxlbWVudHMgTWlncmF0aW9uSW50ZXJmYWNlIHtcbiAgbmFtZSA9ICdib3hFbnRpdHkxNjU5NzcwNTUyMDAwJztcblxuICBwdWJsaWMgYXN5bmMgdXAocXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoXG4gICAgICBgQ1JFQVRFIFRBQkxFIFwiYm94X2VudGl0eVwiIChcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaWRcIiBpbnRlZ2VyIFBSSU1BUlkgS0VZIEFVVE9JTkNSRU1FTlQgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFkZHJlc3NcIiB2YXJjaGFyIE5PVCBOVUxMLCBcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYm94SWRcIiB2YXJjaGFyIE5PVCBOVUxMLCBcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiY3JlYXRlQmxvY2tcIiB2YXJjaGFyIE5PVCBOVUxMLCBcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiY3JlYXRpb25IZWlnaHRcIiBpbnRlZ2VyIE5PVCBOVUxMLCBcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2VyaWFsaXplZFwiIHZhcmNoYXIgTk9UIE5VTEwsIFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzcGVuZEJsb2NrXCIgdGV4dCwgXG4gICAgICAgICAgICAgICAgICAgICAgICBcImV4dHJhY3RvclwiIHZhcmNoYXIgTk9UIE5VTEwpYFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZG93bihxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgRFJPUCBUQUJMRSBcImJveF9lbnRpdHlcImApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { AxiosInstance } from 'axios';
|
|
2
2
|
import { Boxes } from '../interfaces/types';
|
|
3
|
+
import { AbstractLogger } from '@rosen-bridge/scanner';
|
|
3
4
|
export declare class ExplorerApi {
|
|
4
5
|
api: AxiosInstance;
|
|
5
|
-
|
|
6
|
+
readonly logger: AbstractLogger;
|
|
7
|
+
constructor(explorerAddress: string, logger: AbstractLogger, timeout?: number);
|
|
6
8
|
/**
|
|
7
9
|
* gets unspent boxes for a specific ergotree with default limit of 100 and offset 0
|
|
8
10
|
* @param tree
|
|
@@ -1 +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,KAAK,EAAE,MAAM,qBAAqB,CAAC;
|
|
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,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,qBAAa,WAAW;IACtB,GAAG,EAAE,aAAa,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;gBAG9B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,MAAM;IASlB;;;;;OAKG;IACH,kBAAkB,SACV,MAAM,sCAGX,QAAQ,KAAK,CAAC,CAYf;IAEF;;;;;OAKG;IACH,iBAAiB,YACN,MAAM,sCAGd,QAAQ,KAAK,CAAC,CAiBf;CACH"}
|
|
@@ -2,11 +2,13 @@ import axios from 'axios';
|
|
|
2
2
|
import { JsonBI } from './parser';
|
|
3
3
|
export class ExplorerApi {
|
|
4
4
|
api;
|
|
5
|
-
|
|
5
|
+
logger;
|
|
6
|
+
constructor(explorerAddress, logger, timeout) {
|
|
6
7
|
this.api = axios.create({
|
|
7
8
|
baseURL: explorerAddress,
|
|
8
9
|
timeout: timeout ? timeout : 10000,
|
|
9
10
|
});
|
|
11
|
+
this.logger = logger;
|
|
10
12
|
}
|
|
11
13
|
/**
|
|
12
14
|
* gets unspent boxes for a specific ergotree with default limit of 100 and offset 0
|
|
@@ -15,12 +17,17 @@ export class ExplorerApi {
|
|
|
15
17
|
* @param limit
|
|
16
18
|
*/
|
|
17
19
|
getBoxesForAddress = async (tree, offset = 0, limit = 100) => {
|
|
20
|
+
this.logger.debug(`Getting boxes for ergoTree ${tree}`);
|
|
18
21
|
return this.api
|
|
19
22
|
.get(`/api/v1/boxes/unspent/byErgoTree/${tree}`, {
|
|
20
23
|
params: { offset: offset, limit: limit },
|
|
21
24
|
transformResponse: (data) => JsonBI.parse(data),
|
|
22
25
|
})
|
|
23
|
-
.then((res) => res.data)
|
|
26
|
+
.then((res) => res.data)
|
|
27
|
+
.catch((err) => {
|
|
28
|
+
this.logger.error(`Error getting boxes for ergoTree ${tree}: ${err}`);
|
|
29
|
+
throw err;
|
|
30
|
+
});
|
|
24
31
|
};
|
|
25
32
|
/**
|
|
26
33
|
* gets boxes containing tokenId
|
|
@@ -29,6 +36,7 @@ export class ExplorerApi {
|
|
|
29
36
|
* @param limit
|
|
30
37
|
*/
|
|
31
38
|
getBoxesByTokenId = async (tokenId, offset = 0, limit = 100) => {
|
|
39
|
+
this.logger.debug(`Getting boxes by tokenId ${tokenId}`);
|
|
32
40
|
return this.api
|
|
33
41
|
.get(`/v1/boxes/unspent/byTokenId/${tokenId}`, {
|
|
34
42
|
params: { offset: offset, limit: limit },
|
|
@@ -36,7 +44,7 @@ export class ExplorerApi {
|
|
|
36
44
|
})
|
|
37
45
|
.then((res) => res.data)
|
|
38
46
|
.catch((e) => {
|
|
39
|
-
|
|
47
|
+
this.logger.error(`An error occurred while getting boxes containing token [${tokenId}] from Ergo Explorer: [${e}]`);
|
|
40
48
|
return {
|
|
41
49
|
items: [],
|
|
42
50
|
total: 0,
|
|
@@ -44,4 +52,4 @@ export class ExplorerApi {
|
|
|
44
52
|
});
|
|
45
53
|
};
|
|
46
54
|
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJnb05ldHdvcmtBcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbmV0d29yay9lcmdvTmV0d29ya0FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQXdCLE1BQU0sT0FBTyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHbEMsTUFBTSxPQUFPLFdBQVc7SUFDdEIsR0FBRyxDQUFnQjtJQUNWLE1BQU0sQ0FBaUI7SUFFaEMsWUFDRSxlQUF1QixFQUN2QixNQUFzQixFQUN0QixPQUFnQjtRQUVoQixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDdEIsT0FBTyxFQUFFLGVBQWU7WUFDeEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLO1NBQ25DLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGtCQUFrQixHQUFHLEtBQUssRUFDeEIsSUFBWSxFQUNaLE1BQU0sR0FBRyxDQUFDLEVBQ1YsS0FBSyxHQUFHLEdBQUcsRUFDSyxFQUFFO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDhCQUE4QixJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLEdBQUc7YUFDWixHQUFHLENBQVEsb0NBQW9DLElBQUksRUFBRSxFQUFFO1lBQ3RELE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUN4QyxpQkFBaUIsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7U0FDaEQsQ0FBQzthQUNELElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQzthQUN2QixLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN0RSxNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDO0lBRUY7Ozs7O09BS0c7SUFDSCxpQkFBaUIsR0FBRyxLQUFLLEVBQ3ZCLE9BQWUsRUFDZixNQUFNLEdBQUcsQ0FBQyxFQUNWLEtBQUssR0FBRyxHQUFHLEVBQ0ssRUFBRTtRQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN6RCxPQUFPLElBQUksQ0FBQyxHQUFHO2FBQ1osR0FBRyxDQUFRLCtCQUErQixPQUFPLEVBQUUsRUFBRTtZQUNwRCxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7WUFDeEMsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1NBQ2hELENBQUM7YUFDRCxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7YUFDdkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZiwyREFBMkQsT0FBTywwQkFBMEIsQ0FBQyxHQUFHLENBQ2pHLENBQUM7WUFDRixPQUFPO2dCQUNMLEtBQUssRUFBRSxFQUFFO2dCQUNULEtBQUssRUFBRSxDQUFDO2FBQ1QsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MsIHsgQXhpb3NJbnN0YW5jZSB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IEJveGVzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90eXBlcyc7XG5pbXBvcnQgeyBKc29uQkkgfSBmcm9tICcuL3BhcnNlcic7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lcic7XG5cbmV4cG9ydCBjbGFzcyBFeHBsb3JlckFwaSB7XG4gIGFwaTogQXhpb3NJbnN0YW5jZTtcbiAgcmVhZG9ubHkgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBleHBsb3JlckFkZHJlc3M6IHN0cmluZyxcbiAgICBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyLFxuICAgIHRpbWVvdXQ/OiBudW1iZXJcbiAgKSB7XG4gICAgdGhpcy5hcGkgPSBheGlvcy5jcmVhdGUoe1xuICAgICAgYmFzZVVSTDogZXhwbG9yZXJBZGRyZXNzLFxuICAgICAgdGltZW91dDogdGltZW91dCA/IHRpbWVvdXQgOiAxMDAwMCxcbiAgICB9KTtcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXRzIHVuc3BlbnQgYm94ZXMgZm9yIGEgc3BlY2lmaWMgZXJnb3RyZWUgd2l0aCBkZWZhdWx0IGxpbWl0IG9mIDEwMCBhbmQgb2Zmc2V0IDBcbiAgICogQHBhcmFtIHRyZWVcbiAgICogQHBhcmFtIG9mZnNldFxuICAgKiBAcGFyYW0gbGltaXRcbiAgICovXG4gIGdldEJveGVzRm9yQWRkcmVzcyA9IGFzeW5jIChcbiAgICB0cmVlOiBzdHJpbmcsXG4gICAgb2Zmc2V0ID0gMCxcbiAgICBsaW1pdCA9IDEwMFxuICApOiBQcm9taXNlPEJveGVzPiA9PiB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoYEdldHRpbmcgYm94ZXMgZm9yIGVyZ29UcmVlICR7dHJlZX1gKTtcbiAgICByZXR1cm4gdGhpcy5hcGlcbiAgICAgIC5nZXQ8Qm94ZXM+KGAvYXBpL3YxL2JveGVzL3Vuc3BlbnQvYnlFcmdvVHJlZS8ke3RyZWV9YCwge1xuICAgICAgICBwYXJhbXM6IHsgb2Zmc2V0OiBvZmZzZXQsIGxpbWl0OiBsaW1pdCB9LFxuICAgICAgICB0cmFuc2Zvcm1SZXNwb25zZTogKGRhdGEpID0+IEpzb25CSS5wYXJzZShkYXRhKSxcbiAgICAgIH0pXG4gICAgICAudGhlbigocmVzKSA9PiByZXMuZGF0YSlcbiAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGBFcnJvciBnZXR0aW5nIGJveGVzIGZvciBlcmdvVHJlZSAke3RyZWV9OiAke2Vycn1gKTtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIGdldHMgYm94ZXMgY29udGFpbmluZyB0b2tlbklkXG4gICAqIEBwYXJhbSB0b2tlbklkIHRoZSBhZGRyZXNzIGVyZ29UcmVlXG4gICAqIEBwYXJhbSBvZmZzZXRcbiAgICogQHBhcmFtIGxpbWl0XG4gICAqL1xuICBnZXRCb3hlc0J5VG9rZW5JZCA9IGFzeW5jIChcbiAgICB0b2tlbklkOiBzdHJpbmcsXG4gICAgb2Zmc2V0ID0gMCxcbiAgICBsaW1pdCA9IDEwMFxuICApOiBQcm9taXNlPEJveGVzPiA9PiB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoYEdldHRpbmcgYm94ZXMgYnkgdG9rZW5JZCAke3Rva2VuSWR9YCk7XG4gICAgcmV0dXJuIHRoaXMuYXBpXG4gICAgICAuZ2V0PEJveGVzPihgL3YxL2JveGVzL3Vuc3BlbnQvYnlUb2tlbklkLyR7dG9rZW5JZH1gLCB7XG4gICAgICAgIHBhcmFtczogeyBvZmZzZXQ6IG9mZnNldCwgbGltaXQ6IGxpbWl0IH0sXG4gICAgICAgIHRyYW5zZm9ybVJlc3BvbnNlOiAoZGF0YSkgPT4gSnNvbkJJLnBhcnNlKGRhdGEpLFxuICAgICAgfSlcbiAgICAgIC50aGVuKChyZXMpID0+IHJlcy5kYXRhKVxuICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFxuICAgICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBnZXR0aW5nIGJveGVzIGNvbnRhaW5pbmcgdG9rZW4gWyR7dG9rZW5JZH1dIGZyb20gRXJnbyBFeHBsb3JlcjogWyR7ZX1dYFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGl0ZW1zOiBbXSxcbiAgICAgICAgICB0b3RhbDogMCxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICB9O1xufVxuIl19
|