@rosen-bridge/watcher-data-extractor 12.2.2 → 13.0.0-8f3c7016
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/CHANGELOG.md +22 -0
- package/dist/actions/collateralAction.d.ts +3 -3
- package/dist/actions/collateralAction.d.ts.map +1 -1
- package/dist/actions/collateralAction.js +1 -1
- package/dist/actions/commitmentAction.d.ts +3 -3
- package/dist/actions/commitmentAction.d.ts.map +1 -1
- package/dist/actions/commitmentAction.js +1 -1
- package/dist/actions/eventTriggerAction.d.ts +3 -4
- package/dist/actions/eventTriggerAction.d.ts.map +1 -1
- package/dist/actions/eventTriggerAction.js +10 -12
- package/dist/actions/permitAction.d.ts +3 -3
- package/dist/actions/permitAction.d.ts.map +1 -1
- package/dist/actions/permitAction.js +1 -1
- package/dist/entities/collateralEntity.js +2 -2
- package/dist/entities/commitmentEntity.js +3 -3
- package/dist/entities/eventTriggerEntity.d.ts +2 -2
- package/dist/entities/eventTriggerEntity.d.ts.map +1 -1
- package/dist/entities/eventTriggerEntity.js +3 -3
- package/dist/entities/permitEntity.js +2 -2
- package/dist/extractor/collateralExtractor.d.ts +3 -3
- package/dist/extractor/collateralExtractor.d.ts.map +1 -1
- package/dist/extractor/collateralExtractor.js +2 -2
- package/dist/extractor/commitmentExtractor.d.ts +3 -3
- package/dist/extractor/commitmentExtractor.d.ts.map +1 -1
- package/dist/extractor/commitmentExtractor.js +2 -2
- package/dist/extractor/eventTriggerExtractor.d.ts +3 -3
- package/dist/extractor/eventTriggerExtractor.d.ts.map +1 -1
- package/dist/extractor/eventTriggerExtractor.js +8 -8
- package/dist/extractor/permitExtractor.d.ts +3 -3
- package/dist/extractor/permitExtractor.d.ts.map +1 -1
- package/dist/extractor/permitExtractor.js +2 -2
- package/dist/interfaces/extractedEventTrigger.d.ts +1 -1
- package/dist/interfaces/extractedEventTrigger.d.ts.map +1 -1
- package/dist/interfaces/extractedEventTrigger.js +1 -1
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +7 -1
- package/dist/migrations/postgres/1758958886549-migration.d.ts +7 -0
- package/dist/migrations/postgres/1758958886549-migration.d.ts.map +1 -0
- package/dist/migrations/postgres/1758958886549-migration.js +30 -0
- package/dist/migrations/sqlite/1758439835359-migration.d.ts +7 -0
- package/dist/migrations/sqlite/1758439835359-migration.d.ts.map +1 -0
- package/dist/migrations/sqlite/1758439835359-migration.js +204 -0
- package/dist/migrations/sqlite/1761774736153-migration.d.ts +7 -0
- package/dist/migrations/sqlite/1761774736153-migration.d.ts.map +1 -0
- package/dist/migrations/sqlite/1761774736153-migration.js +204 -0
- package/dist/migrations/sqlite/1762768664031-migration.d.ts +7 -0
- package/dist/migrations/sqlite/1762768664031-migration.d.ts.map +1 -0
- package/dist/migrations/sqlite/1762768664031-migration.js +204 -0
- package/package.json +3 -3
|
@@ -7,9 +7,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
-
import {
|
|
10
|
+
import { AbstractErgoBoxEntity } from '@rosen-bridge/abstract-extractor';
|
|
11
11
|
import { Column, Entity } from '@rosen-bridge/extended-typeorm';
|
|
12
|
-
let EventTriggerEntity = class EventTriggerEntity extends
|
|
12
|
+
let EventTriggerEntity = class EventTriggerEntity extends AbstractErgoBoxEntity {
|
|
13
13
|
eventId;
|
|
14
14
|
txId;
|
|
15
15
|
fromChain;
|
|
@@ -110,4 +110,4 @@ EventTriggerEntity = __decorate([
|
|
|
110
110
|
Entity('event_trigger_entity')
|
|
111
111
|
], EventTriggerEntity);
|
|
112
112
|
export default EventTriggerEntity;
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRUcmlnZ2VyRW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2VudGl0aWVzL2V2ZW50VHJpZ2dlckVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR2hFLElBQU0sa0JBQWtCLEdBQXhCLE1BQU0sa0JBQW1CLFNBQVEscUJBQXFCO0lBRXBELE9BQU8sQ0FBUztJQUdoQixJQUFJLENBQVM7SUFHYixTQUFTLENBQVM7SUFHbEIsT0FBTyxDQUFTO0lBR2hCLFdBQVcsQ0FBUztJQUdwQixTQUFTLENBQVM7SUFHbEIsTUFBTSxDQUFTO0lBR2YsU0FBUyxDQUFTO0lBR2xCLFVBQVUsQ0FBUztJQUduQixrQkFBa0IsQ0FBUztJQUczQixpQkFBaUIsQ0FBUztJQUcxQixrQkFBa0IsQ0FBUztJQUczQixVQUFVLENBQVM7SUFHbkIsYUFBYSxDQUFTO0lBR3RCLFNBQVMsQ0FBUztJQUdsQixRQUFRLENBQVM7SUFHakIsU0FBUyxDQUFpQjtJQUcxQixNQUFNLENBQWlCO0lBR3ZCLFdBQVcsQ0FBaUI7Q0FDN0IsQ0FBQTtBQXZEQztJQURDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDOzttREFDaEM7QUFHaEI7SUFEQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7O2dEQUNmO0FBR2I7SUFEQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7O3FEQUNWO0FBR2xCO0lBREMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDOzttREFDWjtBQUdoQjtJQURDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzs7dURBQ1I7QUFHcEI7SUFEQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7O3FEQUNWO0FBR2xCO0lBREMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDOztrREFDYjtBQUdmO0lBREMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDOztxREFDVjtBQUdsQjtJQURDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzs7c0RBQ1Q7QUFHbkI7SUFEQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7OzhEQUNEO0FBRzNCO0lBREMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDOzs2REFDRTtBQUcxQjtJQURDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzs7OERBQ0Q7QUFHM0I7SUFEQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7O3NEQUNUO0FBR25CO0lBREMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDOzt5REFDTjtBQUd0QjtJQURDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQzs7cURBQ047QUFHbEI7SUFEQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7O29EQUNYO0FBR2pCO0lBREMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7O3FEQUNmO0FBRzFCO0lBREMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7O2tEQUNsQjtBQUd2QjtJQURDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDOzt1REFDYjtBQXhEeEIsa0JBQWtCO0lBRHZCLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQztHQUN6QixrQkFBa0IsQ0F5RHZCO0FBRUQsZUFBZSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0RXJnb0JveEVudGl0eSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtZXh0cmFjdG9yJztcbmltcG9ydCB7IENvbHVtbiwgRW50aXR5IH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9leHRlbmRlZC10eXBlb3JtJztcblxuQEVudGl0eSgnZXZlbnRfdHJpZ2dlcl9lbnRpdHknKVxuY2xhc3MgRXZlbnRUcmlnZ2VyRW50aXR5IGV4dGVuZHMgQWJzdHJhY3RFcmdvQm94RW50aXR5IHtcbiAgQENvbHVtbih7IHR5cGU6ICd2YXJjaGFyJywgZGVmYXVsdDogJ05vdC1zZXQnIH0pXG4gIGV2ZW50SWQ6IHN0cmluZztcblxuICBAQ29sdW1uKHsgdHlwZTogJ3ZhcmNoYXInIH0pXG4gIHR4SWQ6IHN0cmluZztcblxuICBAQ29sdW1uKHsgdHlwZTogJ3ZhcmNoYXInIH0pXG4gIGZyb21DaGFpbjogc3RyaW5nO1xuXG4gIEBDb2x1bW4oeyB0eXBlOiAndmFyY2hhcicgfSlcbiAgdG9DaGFpbjogc3RyaW5nO1xuXG4gIEBDb2x1bW4oeyB0eXBlOiAndmFyY2hhcicgfSlcbiAgZnJvbUFkZHJlc3M6IHN0cmluZztcblxuICBAQ29sdW1uKHsgdHlwZTogJ3ZhcmNoYXInIH0pXG4gIHRvQWRkcmVzczogc3RyaW5nO1xuXG4gIEBDb2x1bW4oeyB0eXBlOiAndmFyY2hhcicgfSlcbiAgYW1vdW50OiBzdHJpbmc7XG5cbiAgQENvbHVtbih7IHR5cGU6ICd2YXJjaGFyJyB9KVxuICBicmlkZ2VGZWU6IHN0cmluZztcblxuICBAQ29sdW1uKHsgdHlwZTogJ3ZhcmNoYXInIH0pXG4gIG5ldHdvcmtGZWU6IHN0cmluZztcblxuICBAQ29sdW1uKHsgdHlwZTogJ3ZhcmNoYXInIH0pXG4gIHNvdXJjZUNoYWluVG9rZW5JZDogc3RyaW5nO1xuXG4gIEBDb2x1bW4oeyB0eXBlOiAnaW50JyB9KVxuICBzb3VyY2VDaGFpbkhlaWdodDogbnVtYmVyO1xuXG4gIEBDb2x1bW4oeyB0eXBlOiAndmFyY2hhcicgfSlcbiAgdGFyZ2V0Q2hhaW5Ub2tlbklkOiBzdHJpbmc7XG5cbiAgQENvbHVtbih7IHR5cGU6ICd2YXJjaGFyJyB9KVxuICBzb3VyY2VUeElkOiBzdHJpbmc7XG5cbiAgQENvbHVtbih7IHR5cGU6ICd2YXJjaGFyJyB9KVxuICBzb3VyY2VCbG9ja0lkOiBzdHJpbmc7XG5cbiAgQENvbHVtbih7IHR5cGU6ICdpbnQnIH0pXG4gIFdJRHNDb3VudDogbnVtYmVyO1xuXG4gIEBDb2x1bW4oeyB0eXBlOiAndmFyY2hhcicgfSlcbiAgV0lEc0hhc2g6IHN0cmluZztcblxuICBAQ29sdW1uKHsgbnVsbGFibGU6IHRydWUsIHR5cGU6ICd0ZXh0JyB9KVxuICBzcGVuZFR4SWQ/OiBzdHJpbmcgfCBudWxsO1xuXG4gIEBDb2x1bW4oeyBudWxsYWJsZTogdHJ1ZSwgdHlwZTogJ3RleHQnIH0pXG4gIHJlc3VsdD86IHN0cmluZyB8IG51bGw7XG5cbiAgQENvbHVtbih7IG51bGxhYmxlOiB0cnVlLCB0eXBlOiAndGV4dCcgfSlcbiAgcGF5bWVudFR4SWQ/OiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgZGVmYXVsdCBFdmVudFRyaWdnZXJFbnRpdHk7XG4iXX0=
|
|
@@ -33,7 +33,7 @@ __decorate([
|
|
|
33
33
|
__metadata("design:type", String)
|
|
34
34
|
], PermitEntity.prototype, "boxId", void 0);
|
|
35
35
|
__decorate([
|
|
36
|
-
Column({ type: '
|
|
36
|
+
Column({ type: 'varchar' }),
|
|
37
37
|
__metadata("design:type", String)
|
|
38
38
|
], PermitEntity.prototype, "boxSerialized", void 0);
|
|
39
39
|
__decorate([
|
|
@@ -65,4 +65,4 @@ PermitEntity = __decorate([
|
|
|
65
65
|
Unique(['boxId', 'extractor'])
|
|
66
66
|
], PermitEntity);
|
|
67
67
|
export default PermitEntity;
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWl0RW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2VudGl0aWVzL3Blcm1pdEVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixzQkFBc0IsRUFDdEIsTUFBTSxHQUNQLE1BQU0sZ0NBQWdDLENBQUM7QUFJeEMsSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBWTtJQUVoQixFQUFFLENBQVM7SUFHWCxTQUFTLENBQVM7SUFHbEIsS0FBSyxDQUFTO0lBR2QsYUFBYSxDQUFTO0lBR3RCLEdBQUcsQ0FBUztJQUdaLEtBQUssQ0FBUztJQUdkLE1BQU0sQ0FBUztJQUdmLFVBQVUsQ0FBaUI7SUFHM0IsV0FBVyxDQUFpQjtJQUc1QixJQUFJLENBQVM7Q0FDZCxDQUFBO0FBNUJDO0lBREMsc0JBQXNCLEVBQUU7O3dDQUNkO0FBR1g7SUFEQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7OytDQUNWO0FBR2xCO0lBREMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDOzsyQ0FDZDtBQUdkO0lBREMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDOzttREFDTjtBQUd0QjtJQURDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzs7eUNBQ2hCO0FBR1o7SUFEQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7OzJDQUNkO0FBR2Q7SUFEQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7OzRDQUNUO0FBR2Y7SUFEQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQzs7Z0RBQ2Q7QUFHM0I7SUFEQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQzs7aURBQ1o7QUFHNUI7SUFEQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7OzBDQUNmO0FBN0JULFlBQVk7SUFGakIsTUFBTSxDQUFDLGVBQWUsQ0FBQztJQUN2QixNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7R0FDekIsWUFBWSxDQThCakI7QUFFRCxlQUFlLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbHVtbixcbiAgRW50aXR5LFxuICBQcmltYXJ5R2VuZXJhdGVkQ29sdW1uLFxuICBVbmlxdWUsXG59IGZyb20gJ0Byb3Nlbi1icmlkZ2UvZXh0ZW5kZWQtdHlwZW9ybSc7XG5cbkBFbnRpdHkoJ3Blcm1pdF9lbnRpdHknKVxuQFVuaXF1ZShbJ2JveElkJywgJ2V4dHJhY3RvciddKVxuY2xhc3MgUGVybWl0RW50aXR5IHtcbiAgQFByaW1hcnlHZW5lcmF0ZWRDb2x1bW4oKVxuICBpZDogbnVtYmVyO1xuXG4gIEBDb2x1bW4oeyB0eXBlOiAndmFyY2hhcicgfSlcbiAgZXh0cmFjdG9yOiBzdHJpbmc7XG5cbiAgQENvbHVtbih7IHR5cGU6ICd2YXJjaGFyJyB9KVxuICBib3hJZDogc3RyaW5nO1xuXG4gIEBDb2x1bW4oeyB0eXBlOiAndmFyY2hhcicgfSlcbiAgYm94U2VyaWFsaXplZDogc3RyaW5nO1xuXG4gIEBDb2x1bW4oeyB0eXBlOiAndmFyY2hhcicgfSlcbiAgV0lEOiBzdHJpbmc7XG5cbiAgQENvbHVtbih7IHR5cGU6ICd2YXJjaGFyJyB9KVxuICBibG9jazogc3RyaW5nO1xuXG4gIEBDb2x1bW4oeyB0eXBlOiAnaW50JyB9KVxuICBoZWlnaHQ6IG51bWJlcjtcblxuICBAQ29sdW1uKHsgbnVsbGFibGU6IHRydWUsIHR5cGU6ICd0ZXh0JyB9KVxuICBzcGVuZEJsb2NrPzogc3RyaW5nIHwgbnVsbDtcblxuICBAQ29sdW1uKHsgbnVsbGFibGU6IHRydWUsIHR5cGU6ICdpbnQnIH0pXG4gIHNwZW5kSGVpZ2h0PzogbnVtYmVyIHwgbnVsbDtcblxuICBAQ29sdW1uKHsgdHlwZTogJ3ZhcmNoYXInIH0pXG4gIHR4SWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgUGVybWl0RW50aXR5O1xuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AbstractExtractor } from '@rosen-bridge/abstract-extractor';
|
|
2
2
|
import { AbstractLogger } from '@rosen-bridge/abstract-logger';
|
|
3
3
|
import { DataSource } from '@rosen-bridge/extended-typeorm';
|
|
4
|
-
import {
|
|
4
|
+
import { BlockInfo, Transaction } from '@rosen-bridge/scanner-interfaces';
|
|
5
5
|
import CollateralAction from '../actions/collateralAction';
|
|
6
6
|
export declare class CollateralExtractor extends AbstractExtractor<Transaction> {
|
|
7
7
|
private readonly id;
|
|
@@ -27,7 +27,7 @@ export declare class CollateralExtractor extends AbstractExtractor<Transaction>
|
|
|
27
27
|
* @return {Promise<boolean>} Promise<boolean> if no error occurred return
|
|
28
28
|
* true. otherwise, return false
|
|
29
29
|
*/
|
|
30
|
-
processTransactions: (txs: Transaction[], block:
|
|
30
|
+
processTransactions: (txs: Transaction[], block: BlockInfo) => Promise<boolean>;
|
|
31
31
|
/**
|
|
32
32
|
* checks if the passed box is a collateral box
|
|
33
33
|
*
|
|
@@ -53,7 +53,7 @@ export declare class CollateralExtractor extends AbstractExtractor<Transaction>
|
|
|
53
53
|
* @return {Promise<void>}
|
|
54
54
|
* @memberof CollateralExtractor
|
|
55
55
|
*/
|
|
56
|
-
|
|
56
|
+
initializeData: (initialBlock: BlockInfo) => Promise<void>;
|
|
57
57
|
/**
|
|
58
58
|
* removes or updates stored collateral boxes before initializing boxes
|
|
59
59
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collateralExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/collateralExtractor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"collateralExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/collateralExtractor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EACL,SAAS,EAET,WAAW,EACZ,MAAM,kCAAkC,CAAC;AAG1C,OAAO,gBAAgB,MAAM,6BAA6B,CAAC;AAM3D,qBAAa,mBAAoB,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IAMnE,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,OAAO,CAAC,WAAW,CAAC;gBAGD,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,EACvC,WAAW,EAAE,MAAM,EACF,MAAM,GAAE,cAAkC;IAU7D;;;;OAIG;IACH,KAAK,QAAO,MAAM,CAAY;IAE9B;;;;;;;OAOG;IACH,mBAAmB,GACjB,KAAK,WAAW,EAAE,EAClB,OAAO,SAAS,KACf,OAAO,CAAC,OAAO,CAAC,CAoCjB;IAEF;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe,CAOrB;IAEF;;;;;;;OAOG;IACH,SAAS,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAE7C;IAEF;;;;;;OAMG;IACH,cAAc,GAAU,cAAc,SAAS,KAAG,OAAO,CAAC,IAAI,CAAC,CAmC7D;IAEF;;;;;;;;OAQG;YACW,uBAAuB;IAsDrC;;;;;;;OAOG;IACH,OAAO,CAAC,wBAAwB,CAiC9B;IAEF;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB,CAgD3B;CACH"}
|
|
@@ -103,7 +103,7 @@ export class CollateralExtractor extends AbstractExtractor {
|
|
|
103
103
|
* @return {Promise<void>}
|
|
104
104
|
* @memberof CollateralExtractor
|
|
105
105
|
*/
|
|
106
|
-
|
|
106
|
+
initializeData = async (initialBlock) => {
|
|
107
107
|
const unspentCollaterals = await this.getAllUnspentCollaterals(initialBlock.height);
|
|
108
108
|
this.logger.debug(`unspent collateral box info with following IDs gotten form Ergo network: [${unspentCollaterals
|
|
109
109
|
.map((box) => box.boxId)
|
|
@@ -233,4 +233,4 @@ export class CollateralExtractor extends AbstractExtractor {
|
|
|
233
233
|
};
|
|
234
234
|
};
|
|
235
235
|
}
|
|
236
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGF0ZXJhbEV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9leHRyYWN0b3IvY29sbGF0ZXJhbEV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHNCQUFzQixDQUFDO0FBRWhELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFRNUUsT0FBTyx5QkFBaUMsTUFBTSw4QkFBOEIsQ0FBQztBQUU3RSxPQUFPLGdCQUFnQixNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbkQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGlCQUE4QjtJQU1sRDtJQUNBO0lBQ0E7SUFDQTtJQUVBO0lBVkYsUUFBUSxDQUFTO0lBQ3pCLE1BQU0sQ0FBbUI7SUFDMUIsV0FBVyxDQUFDO0lBRXBCLFlBQ21CLEVBQVUsRUFDVixNQUFjLEVBQ2QsT0FBZSxFQUNmLFVBQXNCLEVBQ3ZDLFdBQW1CLEVBQ0YsU0FBeUIsSUFBSSxXQUFXLEVBQUU7UUFFM0QsS0FBSyxFQUFFLENBQUM7UUFQUyxPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ1YsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRXRCLFdBQU0sR0FBTixNQUFNLENBQW9DO1FBRzNELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUN0RCxZQUFZLEVBQUU7YUFDZCxlQUFlLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMs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bSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdEV4dHJhY3RvciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtZXh0cmFjdG9yJztcbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyLCBEdW1teUxvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuaW1wb3J0IHtcbiAgQmxvY2ssXG4gIEJsb2NrSW5mbyxcbiAgT3V0cHV0Qm94LFxuICBUcmFuc2FjdGlvbixcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuaW1wb3J0IGVyZ29FeHBsb3JlckNsaWVudEZhY3RvcnksIHsgVjEgfSBmcm9tICdAcm9zZW4tY2xpZW50cy9lcmdvLWV4cGxvcmVyJztcblxuaW1wb3J0IENvbGxhdGVyYWxBY3Rpb24gZnJvbSAnLi4vYWN0aW9ucy9jb2xsYXRlcmFsQWN0aW9uJztcbmltcG9ydCB7IERlZmF1bHRBcGlMaW1pdCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBFeHRyYWN0ZWRDb2xsYXRlcmFsIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHRyYWN0ZWRDb2xsYXRlcmFsJztcbmltcG9ydCB7IFNwZW5kSW5mbyB9IGZyb20gJy4uL2ludGVyZmFjZXMvdHlwZXMnO1xuaW1wb3J0IHsgSnNvbkJJLCB1aW50OEFycmF5VG9IZXggfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBDb2xsYXRlcmFsRXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RFeHRyYWN0b3I8VHJhbnNhY3Rpb24+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBlcmdvVHJlZTogc3RyaW5nO1xuICByZWFkb25seSBhY3Rpb246IENvbGxhdGVyYWxBY3Rpb247XG4gIHByaXZhdGUgZXhwbG9yZXJBcGk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBpZDogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXdjTmZ0OiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhZGRyZXNzOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIGV4cGxvcmVyVXJsOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyID0gbmV3IER1bW15TG9nZ2VyKCksXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5lcmdvVHJlZSA9IGVyZ29MaWIuQWRkcmVzcy5mcm9tX2Jhc2U1OCh0aGlzLmFkZHJlc3MpXG4gICAgICAudG9fZXJnb190cmVlKClcbiAgICAgIC50b19iYXNlMTZfYnl0ZXMoKTtcbiAgICB0aGlzLmFjdGlvbiA9IG5ldyBDb2xsYXRlcmFsQWN0aW9uKHRoaXMuZGF0YVNvdXJjZSwgdGhpcy5sb2dnZXIpO1xuICAgIHRoaXMuZXhwbG9yZXJBcGkgPSBlcmdvRXhwbG9yZXJDbGllbnRGYWN0b3J5KGV4cGxvcmVyVXJsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgaWQgZm9yIGV4dHJhY3Rvci4gVGhpcyBpZCBtdXN0IGJlIHVuaXF1ZSBvdmVyIGFsbCBleHRyYWN0b3JzLlxuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICBnZXRJZCA9ICgpOiBzdHJpbmcgPT4gdGhpcy5pZDtcblxuICAvKipcbiAgICogcHJvY2VzcyBhIGxpc3Qgb2YgdHJhbnNhY3Rpb25zIGFuZCBzdG9yZSBjb2xsYXRlcmFsIGJveCBkZXRhaWxzXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25bXX0gdHhzIGxpc3Qgb2YgdHJhbnNhY3Rpb24gZm9yIGJsb2NrXG4gICAqIEBwYXJhbSB7QmxvY2t9IGJsb2NrIGJsb2NrIGlkIGZvciB0cmFuc2FjdGlvbnMgYXMgaGV4IGVuY29kZWRcbiAgICogQHJldHVybiB7UHJvbWlzZTxib29sZWFuPn0gUHJvbWlzZTxib29sZWFuPiBpZiBubyBlcnJvciBvY2N1cnJlZCByZXR1cm5cbiAgICogdHJ1ZS4gb3RoZXJ3aXNlLCByZXR1cm4gZmFsc2VcbiAgICovXG4gIHByb2Nlc3NUcmFuc2FjdGlvbnMgPSBhc3luYyAoXG4gICAgdHhzOiBUcmFuc2FjdGlvbltdLFxuICAgIGJsb2NrOiBCbG9jayxcbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJveGVzOiBBcnJheTxFeHRyYWN0ZWRDb2xsYXRlcmFsPiA9IFtdO1xuICAgICAgY29uc3Qgc3BlbnRJbmZvczogQXJyYXk8U3BlbmRJbmZvPiA9IFtdO1xuICAgICAgZm9yIChjb25zdCB0eCBvZiB0eHMpIHtcbiAgICAgICAgY29uc3Qgb3V0cHV0Qm94ID0gdHgub3V0cHV0cy5hdCgxKTtcbiAgICAgICAgaWYgKG91dHB1dEJveCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5pc0NvbGxhdGVyYWxCb3gob3V0cHV0Qm94KSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGV4dHJhY3RlZENvbGxhdGVyYWwgPSB0aGlzLnRvRXh0cmFjdGVkQ29sbGF0ZXJhbChcbiAgICAgICAgICBvdXRwdXRCb3gsXG4gICAgICAgICAgYmxvY2suaGFzaCxcbiAgICAgICAgICBibG9jay5oZWlnaHQsXG4gICAgICAgICk7XG4gICAgICAgIGlmIChleHRyYWN0ZWRDb2xsYXRlcmFsKSBib3hlcy5wdXNoKGV4dHJhY3RlZENvbGxhdGVyYWwpO1xuXG4gICAgICAgIGNvbnN0IGlucHV0Q29sbGF0ZXJhbCA9IHR4LmlucHV0cy5hdCgxKTtcbiAgICAgICAgaWYgKGlucHV0Q29sbGF0ZXJhbCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBzcGVudEluZm9zLnB1c2goeyB0eElkOiB0eC5pZCwgYm94SWQ6IGlucHV0Q29sbGF0ZXJhbC5ib3hJZCB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGJveGVzLmxlbmd0aCA+IDApXG4gICAgICAgIGF3YWl0IHRoaXMuYWN0aW9uLnN0b3JlQ29sbGF0ZXJhbHMoYm94ZXMsIGJsb2NrLCB0aGlzLmdldElkKCkpO1xuICAgICAgYXdhaXQgdGhpcy5hY3Rpb24uc3BlbmRDb2xsYXRlcmFscyhzcGVudEluZm9zLCBibG9jaywgdGhpcy5nZXRJZCgpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihcbiAgICAgICAgYEVycm9yIGluIHN0b3JpbmcgY29sbGF0ZXJhbHMgb2YgdGhlIGJsb2NrICR7YmxvY2t9OiAke2V9YCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgLyoqXG4gICAqIGNoZWNrcyBpZiB0aGUgcGFzc2VkIGJveCBpcyBhIGNvbGxhdGVyYWwgYm94XG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7T3V0cHV0Qm94fSBvdXRwdXRCb3hcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIENvbGxhdGVyYWxFeHRyYWN0b3JcbiAgICovXG4gIHByaXZhdGUgaXNDb2xsYXRlcmFsQm94ID0gKG91dHB1dEJveDogVjEuT3V0cHV0SW5mbyB8IE91dHB1dEJveCk6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IGF3Y05mdCA9IG91dHB1dEJveC5hc3NldHM/LmF0KDApPy50b2tlbklkO1xuICAgIHJldHVybiAoXG4gICAgICBhd2NOZnQgIT0gdW5kZWZpbmVkICYmXG4gICAgICBhd2NOZnQgPT09IHRoaXMuYXdjTmZ0ICYmXG4gICAgICBvdXRwdXRCb3guZXJnb1RyZWUgPT09IHRoaXMuZXJnb1RyZWVcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBEZWxldGUgYWxsIGNvbGxhdGVyYWxzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhc3NlZCBibG9jayBhbmQgZXh0cmFjdG9yIGFuZFxuICAgKiB1cGRhdGUgYWxsIGNvbGxhdGVyYWxzIHNwZW50IGluIHRoZSBzcGVjaWZpZWQgYmxvY2tcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGhhc2hcbiAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn1cbiAgICogQG1lbWJlcm9mIENvbGxhdGVyYWxFeHRyYWN0b3JcbiAgICovXG4gIGZvcmtCbG9jayA9IGFzeW5jIChoYXNoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBhd2FpdCB0aGlzLmFjdGlvbi5kZWxldGVCbG9jayhoYXNoLCB0aGlzLmdldElkKCkpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgZGF0YWJhc2Ugd2l0aCBvbGRlciBjb2xsYXRlcmFsc1xuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5pdGlhbEhlaWdodFxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fVxuICAgKiBAbWVtYmVyb2YgQ29sbGF0ZXJhbEV4dHJhY3RvclxuICAgKi9cbiAgaW5pdGlhbGl6ZUJveGVzID0gYXN5bmMgKGluaXRpYWxCbG9jazogQmxvY2tJbmZvKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgY29uc3QgdW5zcGVudENvbGxhdGVyYWxzID0gYXdhaXQgdGhpcy5nZXRBbGxVbnNwZW50Q29sbGF0ZXJhbHMoXG4gICAgICBpbml0aWFsQmxvY2suaGVpZ2h0LFxuICAgICk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICBgdW5zcGVudCBjb2xsYXRlcmFsIGJveCBpbmZvIHdpdGggZm9sbG93aW5nIElEcyBnb3R0ZW4gZm9ybSBFcmdvIG5ldHdvcms6IFske3Vuc3BlbnRDb2xsYXRlcmFsc1xuICAgICAgICAubWFwKChib3gpID0+IGJveC5ib3hJZClcbiAgICAgICAgLmpvaW4oJywgJyl9XWAsXG4gICAgKTtcblxuICAgIGNvbnN0IHN0b3JlZFVuc3BlbnRDb2xsYXRlcmFsQm94SWRzID1cbiAgICAgIGF3YWl0IHRoaXMuYWN0aW9uLmdldFVuc3BlbnRDb2xsYXRlcmFsQm94SWRzKHRoaXMuZ2V0SWQoKSk7XG4gICAgY29uc3QgdW5zcGVudENvbGxhdGVyYWxCb3hJZHMgPSBuZXcgU2V0KFxuICAgICAgdW5zcGVudENvbGxhdGVyYWxzLm1hcCgoYm94KSA9PiBib3guYm94SWQpLFxuICAgICk7XG4gICAgYXdhaXQgdGhpcy50aWR5VXBTdG9yZWRDb2xsYXRlcmFscyhcbiAgICAgIGluaXRpYWxCbG9jay5oZWlnaHQsXG4gICAgICBzdG9yZWRVbnNwZW50Q29sbGF0ZXJhbEJveElkcy5maWx0ZXIoXG4gICAgICAgIChib3hJZCkgPT4gIXVuc3BlbnRDb2xsYXRlcmFsQm94SWRzLmhhcyhib3hJZCksXG4gICAgICApLFxuICAgICk7XG5cbiAgICBmb3IgKGNvbnN0IGNvbGxhdGVyYWwgb2YgdW5zcGVudENvbGxhdGVyYWxzKSB7XG4gICAgICBpZiAoc3RvcmVkVW5zcGVudENvbGxhdGVyYWxCb3hJZHMuaW5jbHVkZXMoY29sbGF0ZXJhbC5ib3hJZCkpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYHVwZGF0aW5nIHVuc3BlbnQgY29sbGF0ZXJhbCB3aXRoIGJveElkPVske2NvbGxhdGVyYWwuYm94SWR9XSBhdCBpbml0aWFsaXphdGlvbiBwaGFzZWAsXG4gICAgICAgICk7XG4gICAgICAgIGF3YWl0IHRoaXMuYWN0aW9uLnVwZGF0ZUNvbGxhdGVyYWwoY29sbGF0ZXJhbCwgdGhpcy5nZXRJZCgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGBpbnNlcnRpbmcgdW5zcGVudCBjb2xsYXRlcmFsIHdpdGggYm94SWQ9WyR7Y29sbGF0ZXJhbC5ib3hJZH1dIHRvIGRhdGFiYXNlIGF0IGluaXRpYWxpemF0aW9uIHBoYXNlYCxcbiAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb24uaW5zZXJ0Q29sbGF0ZXJhbChjb2xsYXRlcmFsLCB0aGlzLmdldElkKCkpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogcmVtb3ZlcyBvciB1cGRhdGVzIHN0b3JlZCBjb2xsYXRlcmFsIGJveGVzIGJlZm9yZSBpbml0aWFsaXppbmcgYm94ZXNcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluaXRpYWxIZWlnaHRcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gY29sbGF0ZXJhbEJveElkc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fVxuICAgKiBAbWVtYmVyb2YgQ29sbGF0ZXJhbEV4dHJhY3RvclxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyB0aWR5VXBTdG9yZWRDb2xsYXRlcmFscyhcbiAgICBpbml0aWFsSGVpZ2h0OiBudW1iZXIsXG4gICAgY29sbGF0ZXJhbEJveElkczogc3RyaW5nW10sXG4gICkge1xuICAgIGZvciAoY29uc3QgYm94SWQgb2YgY29sbGF0ZXJhbEJveElkcykge1xuICAgICAgbGV0IGJveEluZm86IFYxLk91dHB1dEluZm87XG4gICAgICB0cnkge1xuICAgICAgICBib3hJbmZvID0gYXdhaXQgdGhpcy5leHBsb3JlckFwaS52MS5nZXRBcGlWMUJveGVzUDEoYm94SWQpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAoKGUgYXMgeyByZXNwb25zZTogeyBzdGF0dXM6IG51bWJlciB9IH0pLnJlc3BvbnNlPy5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuYWN0aW9uLmRlbGV0ZUNvbGxhdGVyYWwoYm94SWQsIHRoaXMuZ2V0SWQoKSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYHNvbWV0aGluZyB3ZW50IHdyb25nIHdoZW4gdHJ5aW5nIHRvIGdldCBib3g9WyR7Ym94SWR9XSBmcm9tIEVyZ28gbmV0d29yazogJHtcbiAgICAgICAgICAgICAgKGUgYXMgRXJyb3IpLm1lc3NhZ2VcbiAgICAgICAgICAgIH1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGJveEluZm8/LnNwZW50VHJhbnNhY3Rpb25JZCAhPSBudWxsKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgdHJhbnNhY3Rpb25JbmZvOiBWMS5UcmFuc2FjdGlvbkluZm8gPVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5leHBsb3JlckFwaS52MS5nZXRBcGlWMVRyYW5zYWN0aW9uc1AxKFxuICAgICAgICAgICAgICBib3hJbmZvLnNwZW50VHJhbnNhY3Rpb25JZCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAodHJhbnNhY3Rpb25JbmZvLmluY2x1c2lvbkhlaWdodCA8IGluaXRpYWxIZWlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgICBgY29sbGF0ZXJhbCB3aXRoIGJveElkPVske2JveElkfV0gaXMgc3BlbnQgYW5kIGlzIGJlaW5nIHVwZGF0ZWQgd2l0aCBzcGVuZEhlaWdodD1bJHt0cmFuc2FjdGlvbkluZm8uaW5jbHVzaW9uSGVpZ2h0fV0gYW5kIHNwZW5kQmxvY2s9WyR7dHJhbnNhY3Rpb25JbmZvLmJsb2NrSWR9XWAsXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmFjdGlvbi51cGRhdGVDb2xsYXRlcmFsKFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYm94SWQ6IGJveElkLFxuICAgICAgICAgICAgICAgIHNwZW5kSGVpZ2h0OiB0cmFuc2FjdGlvbkluZm8uaW5jbHVzaW9uSGVpZ2h0LFxuICAgICAgICAgICAgICAgIHNwZW5kQmxvY2s6IHRyYW5zYWN0aW9uSW5mby5ibG9ja0lkLFxuICAgICAgICAgICAgICAgIHNwZW5kVHhJZDogdHJhbnNhY3Rpb25JbmZvLmlkLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0aGlzLmdldElkKCksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBzb21ldGhpbmcgd2VudCB3cm9uZyB3aGVuIHRyeWluZyB0byBnZXQgdHJhbnNhY3Rpb249WyR7XG4gICAgICAgICAgICAgIGJveEluZm8uc3BlbnRUcmFuc2FjdGlvbklkXG4gICAgICAgICAgICB9XSBmcm9tIEVyZ28gbmV0d29yazogJHsoZSBhcyBFcnJvcik/Lm1lc3NhZ2V9YCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGdldHMgYWxsIHVuc3BlbnQgY29sbGF0ZXJhbHMgZnJvbSBFcmdvIGV4cGxvcmVyIGFwaVxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5pdGlhbEhlaWdodFxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEFycmF5PEV4dHJhY3RlZENvbGxhdGVyYWw+Pn1cbiAgICogQG1lbWJlcm9mIENvbGxhdGVyYWxFeHRyYWN0b3JcbiAgICovXG4gIHByaXZhdGUgZ2V0QWxsVW5zcGVudENvbGxhdGVyYWxzID0gYXN5bmMgKFxuICAgIGluaXRpYWxIZWlnaHQ6IG51bWJlcixcbiAgKTogUHJvbWlzZTxBcnJheTxFeHRyYWN0ZWRDb2xsYXRlcmFsPj4gPT4ge1xuICAgIGNvbnN0IGV4dHJhY3RlZEJveGVzOiBBcnJheTxFeHRyYWN0ZWRDb2xsYXRlcmFsPiA9IFtdO1xuICAgIGxldCBvZmZzZXQgPSAwO1xuICAgIGxldCB0b3RhbCA9IDE7XG4gICAgd2hpbGUgKG9mZnNldCA8IHRvdGFsKSB7XG4gICAgICBjb25zdCBib3hlcyA9IGF3YWl0IHRoaXMuZXhwbG9yZXJBcGkudjEuZ2V0QXBpVjFCb3hlc1Vuc3BlbnRCeWVyZ290cmVlUDEoXG4gICAgICAgIHRoaXMuZXJnb1RyZWUsXG4gICAgICAgIHsgb2Zmc2V0OiBvZmZzZXQsIGxpbWl0OiBEZWZhdWx0QXBpTGltaXQgfSxcbiAgICAgICk7XG5cbiAgICAgIGlmICghYm94ZXMuaXRlbXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBsb3JlciBhcGkgb3V0cHV0IGl0ZW1zIHNob3VsZCBub3QgYmUgdW5kZWZpbmVkLicpO1xuICAgICAgfVxuXG4gICAgICBleHRyYWN0ZWRCb3hlcy5wdXNoKFxuICAgICAgICAuLi5ib3hlcy5pdGVtc1xuICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAoYm94KSA9PlxuICAgICAgICAgICAgICBib3guY3JlYXRpb25IZWlnaHQgJiZcbiAgICAgICAgICAgICAgYm94LmNyZWF0aW9uSGVpZ2h0IDwgaW5pdGlhbEhlaWdodCAmJlxuICAgICAgICAgICAgICB0aGlzLmlzQ29sbGF0ZXJhbEJveChib3gpLFxuICAgICAgICAgIClcbiAgICAgICAgICAubWFwKChib3gpID0+XG4gICAgICAgICAgICB0aGlzLnRvRXh0cmFjdGVkQ29sbGF0ZXJhbChib3gsIGJveC5ibG9ja0lkLCBib3guc2V0dGxlbWVudEhlaWdodCksXG4gICAgICAgICAgKVxuICAgICAgICAgIC5maWx0ZXIoKGRhdGEpOiBkYXRhIGlzIEV4dHJhY3RlZENvbGxhdGVyYWwgPT4gZGF0YSAhPSB1bmRlZmluZWQpLFxuICAgICAgKTtcbiAgICAgIHRvdGFsID0gYm94ZXMudG90YWw7XG4gICAgICBvZmZzZXQgKz0gRGVmYXVsdEFwaUxpbWl0O1xuICAgIH1cbiAgICByZXR1cm4gZXh0cmFjdGVkQm94ZXM7XG4gIH07XG5cbiAgLyoqXG4gICAqIGNvbnZlcnRzIG91dHB1dCBib3ggaW5mb3JtYXRpb24gdG8gYW4gRXh0cmFjdGVkQ29sbGF0ZXJhbCBvYmplY3RcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHsoT3V0cHV0SW5mbyB8IE91dHB1dEJveCl9IGJveFxuICAgKiBAcmV0dXJuIHtFeHRyYWN0ZWRDb2xsYXRlcmFsfVxuICAgKiBAbWVtYmVyb2YgQ29sbGF0ZXJhbEV4dHJhY3RvclxuICAgKi9cbiAgcHJpdmF0ZSB0b0V4dHJhY3RlZENvbGxhdGVyYWwgPSAoXG4gICAgYm94OiBWMS5PdXRwdXRJbmZvIHwgT3V0cHV0Qm94LFxuICAgIGJsb2NrSWQ6IHN0cmluZyxcbiAgICBibG9ja0hlaWdodDogbnVtYmVyLFxuICApOiBFeHRyYWN0ZWRDb2xsYXRlcmFsIHwgdW5kZWZpbmVkID0+IHtcbiAgICBjb25zdCBlcmdvT3V0cHV0Qm94ID0gZXJnb0xpYi5FcmdvQm94LmZyb21fanNvbihKc29uQkkuc3RyaW5naWZ5KGJveCkpO1xuXG4gICAgY29uc3QgcjQgPSBlcmdvT3V0cHV0Qm94XG4gICAgICAucmVnaXN0ZXJfdmFsdWUoZXJnb0xpYi5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI0KVxuICAgICAgPy50b19ieXRlX2FycmF5KCk7XG4gICAgaWYgKHI0ID09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgYGNvbGxhdGVyYWwgYm94IHdpdGggYm94SWQ9WyR7Ym94LmJveElkfV0gaGFzIGFuIGludmFsaWQgUjQgcmVnaXN0ZXJgLFxuICAgICAgKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IHdpZCA9IHVpbnQ4QXJyYXlUb0hleChyNCk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICBgRXh0cmFjdGVkIFdJRD1bJHt3aWR9XSBmcm9tIFI0IHJlZ2lzdGVyIG9mIGJveD1bJHtib3guYm94SWR9XWAsXG4gICAgKTtcblxuICAgIGNvbnN0IHI1ID0gZXJnb091dHB1dEJveFxuICAgICAgLnJlZ2lzdGVyX3ZhbHVlKGVyZ29MaWIuTm9uTWFuZGF0b3J5UmVnaXN0ZXJJZC5SNSlcbiAgICAgID8udG9faTY0KClcbiAgICAgIC50b19zdHIoKTtcblxuICAgIGlmIChyNSA9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oXG4gICAgICAgIGBjb2xsYXRlcmFsIGJveCB3aXRoIGJveElkPVske2JveC5ib3hJZH1dIGhhcyBhbiBpbnZhbGlkIFI1IHJlZ2lzdGVyYCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCByd3RDb3VudCA9IEJpZ0ludChyNSk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICBgRXh0cmFjdGVkIHJ3dENvdW50PVske3J3dENvdW50fV0gZnJvbSBSNSByZWdpc3RlciBvZiBib3g9WyR7Ym94LmJveElkfV1gLFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYm94SWQ6IGJveC5ib3hJZCxcbiAgICAgIGJveFNlcmlhbGl6ZWQ6IEJ1ZmZlci5mcm9tKFxuICAgICAgICBlcmdvT3V0cHV0Qm94LnNpZ21hX3NlcmlhbGl6ZV9ieXRlcygpLFxuICAgICAgKS50b1N0cmluZygnYmFzZTY0JyksXG4gICAgICB3aWQ6IHdpZCxcbiAgICAgIHJ3dENvdW50OiByd3RDb3VudCxcbiAgICAgIHR4SWQ6IGJveC50cmFuc2FjdGlvbklkLFxuICAgICAgYmxvY2s6IGJsb2NrSWQsXG4gICAgICBoZWlnaHQ6IGJsb2NrSGVpZ2h0LFxuICAgIH07XG4gIH07XG59XG4iXX0=
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGF0ZXJhbEV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9leHRyYWN0b3IvY29sbGF0ZXJhbEV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHNCQUFzQixDQUFDO0FBRWhELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFPNUUsT0FBTyx5QkFBaUMsTUFBTSw4QkFBOEIsQ0FBQztBQUU3RSxPQUFPLGdCQUFnQixNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbkQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGlCQUE4QjtJQU1sRDtJQUNBO0lBQ0E7SUFDQTtJQUVBO0lBVkYsUUFBUSxDQUFTO0lBQ3pCLE1BQU0sQ0FBbUI7SUFDMUIsV0FBVyxDQUFDO0lBRXBCLFlBQ21CLEVBQVUsRUFDVixNQUFjLEVBQ2QsT0FBZSxFQUNmLFVBQXNCLEVBQ3ZDLFdBQW1CLEVBQ0YsU0FBeUIsSUFBSSxXQUFXLEVBQUU7UUFFM0QsS0FBSyxFQUFFLENBQUM7UUFQUyxPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ1YsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRXRCLFdBQU0sR0FBTixNQUFNLENBQW9DO1FBRzNELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUN0RCxZQUFZLEVBQUU7YUFDZCxlQUFlLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMs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b20gJ2VyZ28tbGliLXdhc20tbm9kZWpzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RFeHRyYWN0b3IgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWV4dHJhY3Rvcic7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciwgRHVtbXlMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9leHRlbmRlZC10eXBlb3JtJztcbmltcG9ydCB7XG4gIEJsb2NrSW5mbyxcbiAgT3V0cHV0Qm94LFxuICBUcmFuc2FjdGlvbixcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuaW1wb3J0IGVyZ29FeHBsb3JlckNsaWVudEZhY3RvcnksIHsgVjEgfSBmcm9tICdAcm9zZW4tY2xpZW50cy9lcmdvLWV4cGxvcmVyJztcblxuaW1wb3J0IENvbGxhdGVyYWxBY3Rpb24gZnJvbSAnLi4vYWN0aW9ucy9jb2xsYXRlcmFsQWN0aW9uJztcbmltcG9ydCB7IERlZmF1bHRBcGlMaW1pdCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBFeHRyYWN0ZWRDb2xsYXRlcmFsIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHRyYWN0ZWRDb2xsYXRlcmFsJztcbmltcG9ydCB7IFNwZW5kSW5mbyB9IGZyb20gJy4uL2ludGVyZmFjZXMvdHlwZXMnO1xuaW1wb3J0IHsgSnNvbkJJLCB1aW50OEFycmF5VG9IZXggfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBDb2xsYXRlcmFsRXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RFeHRyYWN0b3I8VHJhbnNhY3Rpb24+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBlcmdvVHJlZTogc3RyaW5nO1xuICByZWFkb25seSBhY3Rpb246IENvbGxhdGVyYWxBY3Rpb247XG4gIHByaXZhdGUgZXhwbG9yZXJBcGk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBpZDogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXdjTmZ0OiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhZGRyZXNzOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIGV4cGxvcmVyVXJsOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyID0gbmV3IER1bW15TG9nZ2VyKCksXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5lcmdvVHJlZSA9IGVyZ29MaWIuQWRkcmVzcy5mcm9tX2Jhc2U1OCh0aGlzLmFkZHJlc3MpXG4gICAgICAudG9fZXJnb190cmVlKClcbiAgICAgIC50b19iYXNlMTZfYnl0ZXMoKTtcbiAgICB0aGlzLmFjdGlvbiA9IG5ldyBDb2xsYXRlcmFsQWN0aW9uKHRoaXMuZGF0YVNvdXJjZSwgdGhpcy5sb2dnZXIpO1xuICAgIHRoaXMuZXhwbG9yZXJBcGkgPSBlcmdvRXhwbG9yZXJDbGllbnRGYWN0b3J5KGV4cGxvcmVyVXJsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgaWQgZm9yIGV4dHJhY3Rvci4gVGhpcyBpZCBtdXN0IGJlIHVuaXF1ZSBvdmVyIGFsbCBleHRyYWN0b3JzLlxuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICBnZXRJZCA9ICgpOiBzdHJpbmcgPT4gdGhpcy5pZDtcblxuICAvKipcbiAgICogcHJvY2VzcyBhIGxpc3Qgb2YgdHJhbnNhY3Rpb25zIGFuZCBzdG9yZSBjb2xsYXRlcmFsIGJveCBkZXRhaWxzXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25bXX0gdHhzIGxpc3Qgb2YgdHJhbnNhY3Rpb24gZm9yIGJsb2NrXG4gICAqIEBwYXJhbSB7QmxvY2t9IGJsb2NrIGJsb2NrIGlkIGZvciB0cmFuc2FjdGlvbnMgYXMgaGV4IGVuY29kZWRcbiAgICogQHJldHVybiB7UHJvbWlzZTxib29sZWFuPn0gUHJvbWlzZTxib29sZWFuPiBpZiBubyBlcnJvciBvY2N1cnJlZCByZXR1cm5cbiAgICogdHJ1ZS4gb3RoZXJ3aXNlLCByZXR1cm4gZmFsc2VcbiAgICovXG4gIHByb2Nlc3NUcmFuc2FjdGlvbnMgPSBhc3luYyAoXG4gICAgdHhzOiBUcmFuc2FjdGlvbltdLFxuICAgIGJsb2NrOiBCbG9ja0luZm8sXG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBib3hlczogQXJyYXk8RXh0cmFjdGVkQ29sbGF0ZXJhbD4gPSBbXTtcbiAgICAgIGNvbnN0IHNwZW50SW5mb3M6IEFycmF5PFNwZW5kSW5mbz4gPSBbXTtcbiAgICAgIGZvciAoY29uc3QgdHggb2YgdHhzKSB7XG4gICAgICAgIGNvbnN0IG91dHB1dEJveCA9IHR4Lm91dHB1dHMuYXQoMSk7XG4gICAgICAgIGlmIChvdXRwdXRCb3ggPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuaXNDb2xsYXRlcmFsQm94KG91dHB1dEJveCkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBleHRyYWN0ZWRDb2xsYXRlcmFsID0gdGhpcy50b0V4dHJhY3RlZENvbGxhdGVyYWwoXG4gICAgICAgICAgb3V0cHV0Qm94LFxuICAgICAgICAgIGJsb2NrLmhhc2gsXG4gICAgICAgICAgYmxvY2suaGVpZ2h0LFxuICAgICAgICApO1xuICAgICAgICBpZiAoZXh0cmFjdGVkQ29sbGF0ZXJhbCkgYm94ZXMucHVzaChleHRyYWN0ZWRDb2xsYXRlcmFsKTtcblxuICAgICAgICBjb25zdCBpbnB1dENvbGxhdGVyYWwgPSB0eC5pbnB1dHMuYXQoMSk7XG4gICAgICAgIGlmIChpbnB1dENvbGxhdGVyYWwgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc3BlbnRJbmZvcy5wdXNoKHsgdHhJZDogdHguaWQsIGJveElkOiBpbnB1dENvbGxhdGVyYWwuYm94SWQgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChib3hlcy5sZW5ndGggPiAwKVxuICAgICAgICBhd2FpdCB0aGlzLmFjdGlvbi5zdG9yZUNvbGxhdGVyYWxzKGJveGVzLCBibG9jaywgdGhpcy5nZXRJZCgpKTtcbiAgICAgIGF3YWl0IHRoaXMuYWN0aW9uLnNwZW5kQ29sbGF0ZXJhbHMoc3BlbnRJbmZvcywgYmxvY2ssIHRoaXMuZ2V0SWQoKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgIGBFcnJvciBpbiBzdG9yaW5nIGNvbGxhdGVyYWxzIG9mIHRoZSBibG9jayAke2Jsb2NrfTogJHtlfWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBjaGVja3MgaWYgdGhlIHBhc3NlZCBib3ggaXMgYSBjb2xsYXRlcmFsIGJveFxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge091dHB1dEJveH0gb3V0cHV0Qm94XG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqIEBtZW1iZXJvZiBDb2xsYXRlcmFsRXh0cmFjdG9yXG4gICAqL1xuICBwcml2YXRlIGlzQ29sbGF0ZXJhbEJveCA9IChvdXRwdXRCb3g6IFYxLk91dHB1dEluZm8gfCBPdXRwdXRCb3gpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBhd2NOZnQgPSBvdXRwdXRCb3guYXNzZXRzPy5hdCgwKT8udG9rZW5JZDtcbiAgICByZXR1cm4gKFxuICAgICAgYXdjTmZ0ICE9IHVuZGVmaW5lZCAmJlxuICAgICAgYXdjTmZ0ID09PSB0aGlzLmF3Y05mdCAmJlxuICAgICAgb3V0cHV0Qm94LmVyZ29UcmVlID09PSB0aGlzLmVyZ29UcmVlXG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogRGVsZXRlIGFsbCBjb2xsYXRlcmFscyBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXNzZWQgYmxvY2sgYW5kIGV4dHJhY3RvciBhbmRcbiAgICogdXBkYXRlIGFsbCBjb2xsYXRlcmFscyBzcGVudCBpbiB0aGUgc3BlY2lmaWVkIGJsb2NrXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBoYXNoXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59XG4gICAqIEBtZW1iZXJvZiBDb2xsYXRlcmFsRXh0cmFjdG9yXG4gICAqL1xuICBmb3JrQmxvY2sgPSBhc3luYyAoaGFzaDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgYXdhaXQgdGhpcy5hY3Rpb24uZGVsZXRlQmxvY2soaGFzaCwgdGhpcy5nZXRJZCgpKTtcbiAgfTtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGRhdGFiYXNlIHdpdGggb2xkZXIgY29sbGF0ZXJhbHNcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluaXRpYWxIZWlnaHRcbiAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn1cbiAgICogQG1lbWJlcm9mIENvbGxhdGVyYWxFeHRyYWN0b3JcbiAgICovXG4gIGluaXRpYWxpemVEYXRhID0gYXN5bmMgKGluaXRpYWxCbG9jazogQmxvY2tJbmZvKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgY29uc3QgdW5zcGVudENvbGxhdGVyYWxzID0gYXdhaXQgdGhpcy5nZXRBbGxVbnNwZW50Q29sbGF0ZXJhbHMoXG4gICAgICBpbml0aWFsQmxvY2suaGVpZ2h0LFxuICAgICk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICBgdW5zcGVudCBjb2xsYXRlcmFsIGJveCBpbmZvIHdpdGggZm9sbG93aW5nIElEcyBnb3R0ZW4gZm9ybSBFcmdvIG5ldHdvcms6IFske3Vuc3BlbnRDb2xsYXRlcmFsc1xuICAgICAgICAubWFwKChib3gpID0+IGJveC5ib3hJZClcbiAgICAgICAgLmpvaW4oJywgJyl9XWAsXG4gICAgKTtcblxuICAgIGNvbnN0IHN0b3JlZFVuc3BlbnRDb2xsYXRlcmFsQm94SWRzID1cbiAgICAgIGF3YWl0IHRoaXMuYWN0aW9uLmdldFVuc3BlbnRDb2xsYXRlcmFsQm94SWRzKHRoaXMuZ2V0SWQoKSk7XG4gICAgY29uc3QgdW5zcGVudENvbGxhdGVyYWxCb3hJZHMgPSBuZXcgU2V0KFxuICAgICAgdW5zcGVudENvbGxhdGVyYWxzLm1hcCgoYm94KSA9PiBib3guYm94SWQpLFxuICAgICk7XG4gICAgYXdhaXQgdGhpcy50aWR5VXBTdG9yZWRDb2xsYXRlcmFscyhcbiAgICAgIGluaXRpYWxCbG9jay5oZWlnaHQsXG4gICAgICBzdG9yZWRVbnNwZW50Q29sbGF0ZXJhbEJveElkcy5maWx0ZXIoXG4gICAgICAgIChib3hJZCkgPT4gIXVuc3BlbnRDb2xsYXRlcmFsQm94SWRzLmhhcyhib3hJZCksXG4gICAgICApLFxuICAgICk7XG5cbiAgICBmb3IgKGNvbnN0IGNvbGxhdGVyYWwgb2YgdW5zcGVudENvbGxhdGVyYWxzKSB7XG4gICAgICBpZiAoc3RvcmVkVW5zcGVudENvbGxhdGVyYWxCb3hJZHMuaW5jbHVkZXMoY29sbGF0ZXJhbC5ib3hJZCkpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYHVwZGF0aW5nIHVuc3BlbnQgY29sbGF0ZXJhbCB3aXRoIGJveElkPVske2NvbGxhdGVyYWwuYm94SWR9XSBhdCBpbml0aWFsaXphdGlvbiBwaGFzZWAsXG4gICAgICAgICk7XG4gICAgICAgIGF3YWl0IHRoaXMuYWN0aW9uLnVwZGF0ZUNvbGxhdGVyYWwoY29sbGF0ZXJhbCwgdGhpcy5nZXRJZCgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGBpbnNlcnRpbmcgdW5zcGVudCBjb2xsYXRlcmFsIHdpdGggYm94SWQ9WyR7Y29sbGF0ZXJhbC5ib3hJZH1dIHRvIGRhdGFiYXNlIGF0IGluaXRpYWxpemF0aW9uIHBoYXNlYCxcbiAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb24uaW5zZXJ0Q29sbGF0ZXJhbChjb2xsYXRlcmFsLCB0aGlzLmdldElkKCkpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogcmVtb3ZlcyBvciB1cGRhdGVzIHN0b3JlZCBjb2xsYXRlcmFsIGJveGVzIGJlZm9yZSBpbml0aWFsaXppbmcgYm94ZXNcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluaXRpYWxIZWlnaHRcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gY29sbGF0ZXJhbEJveElkc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fVxuICAgKiBAbWVtYmVyb2YgQ29sbGF0ZXJhbEV4dHJhY3RvclxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyB0aWR5VXBTdG9yZWRDb2xsYXRlcmFscyhcbiAgICBpbml0aWFsSGVpZ2h0OiBudW1iZXIsXG4gICAgY29sbGF0ZXJhbEJveElkczogc3RyaW5nW10sXG4gICkge1xuICAgIGZvciAoY29uc3QgYm94SWQgb2YgY29sbGF0ZXJhbEJveElkcykge1xuICAgICAgbGV0IGJveEluZm86IFYxLk91dHB1dEluZm87XG4gICAgICB0cnkge1xuICAgICAgICBib3hJbmZvID0gYXdhaXQgdGhpcy5leHBsb3JlckFwaS52MS5nZXRBcGlWMUJveGVzUDEoYm94SWQpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAoKGUgYXMgeyByZXNwb25zZTogeyBzdGF0dXM6IG51bWJlciB9IH0pLnJlc3BvbnNlPy5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuYWN0aW9uLmRlbGV0ZUNvbGxhdGVyYWwoYm94SWQsIHRoaXMuZ2V0SWQoKSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYHNvbWV0aGluZyB3ZW50IHdyb25nIHdoZW4gdHJ5aW5nIHRvIGdldCBib3g9WyR7Ym94SWR9XSBmcm9tIEVyZ28gbmV0d29yazogJHtcbiAgICAgICAgICAgICAgKGUgYXMgRXJyb3IpLm1lc3NhZ2VcbiAgICAgICAgICAgIH1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGJveEluZm8/LnNwZW50VHJhbnNhY3Rpb25JZCAhPSBudWxsKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgdHJhbnNhY3Rpb25JbmZvOiBWMS5UcmFuc2FjdGlvbkluZm8gPVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5leHBsb3JlckFwaS52MS5nZXRBcGlWMVRyYW5zYWN0aW9uc1AxKFxuICAgICAgICAgICAgICBib3hJbmZvLnNwZW50VHJhbnNhY3Rpb25JZCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAodHJhbnNhY3Rpb25JbmZvLmluY2x1c2lvbkhlaWdodCA8IGluaXRpYWxIZWlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgICBgY29sbGF0ZXJhbCB3aXRoIGJveElkPVske2JveElkfV0gaXMgc3BlbnQgYW5kIGlzIGJlaW5nIHVwZGF0ZWQgd2l0aCBzcGVuZEhlaWdodD1bJHt0cmFuc2FjdGlvbkluZm8uaW5jbHVzaW9uSGVpZ2h0fV0gYW5kIHNwZW5kQmxvY2s9WyR7dHJhbnNhY3Rpb25JbmZvLmJsb2NrSWR9XWAsXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmFjdGlvbi51cGRhdGVDb2xsYXRlcmFsKFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYm94SWQ6IGJveElkLFxuICAgICAgICAgICAgICAgIHNwZW5kSGVpZ2h0OiB0cmFuc2FjdGlvbkluZm8uaW5jbHVzaW9uSGVpZ2h0LFxuICAgICAgICAgICAgICAgIHNwZW5kQmxvY2s6IHRyYW5zYWN0aW9uSW5mby5ibG9ja0lkLFxuICAgICAgICAgICAgICAgIHNwZW5kVHhJZDogdHJhbnNhY3Rpb25JbmZvLmlkLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0aGlzLmdldElkKCksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBzb21ldGhpbmcgd2VudCB3cm9uZyB3aGVuIHRyeWluZyB0byBnZXQgdHJhbnNhY3Rpb249WyR7XG4gICAgICAgICAgICAgIGJveEluZm8uc3BlbnRUcmFuc2FjdGlvbklkXG4gICAgICAgICAgICB9XSBmcm9tIEVyZ28gbmV0d29yazogJHsoZSBhcyBFcnJvcik/Lm1lc3NhZ2V9YCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGdldHMgYWxsIHVuc3BlbnQgY29sbGF0ZXJhbHMgZnJvbSBFcmdvIGV4cGxvcmVyIGFwaVxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5pdGlhbEhlaWdodFxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEFycmF5PEV4dHJhY3RlZENvbGxhdGVyYWw+Pn1cbiAgICogQG1lbWJlcm9mIENvbGxhdGVyYWxFeHRyYWN0b3JcbiAgICovXG4gIHByaXZhdGUgZ2V0QWxsVW5zcGVudENvbGxhdGVyYWxzID0gYXN5bmMgKFxuICAgIGluaXRpYWxIZWlnaHQ6IG51bWJlcixcbiAgKTogUHJvbWlzZTxBcnJheTxFeHRyYWN0ZWRDb2xsYXRlcmFsPj4gPT4ge1xuICAgIGNvbnN0IGV4dHJhY3RlZEJveGVzOiBBcnJheTxFeHRyYWN0ZWRDb2xsYXRlcmFsPiA9IFtdO1xuICAgIGxldCBvZmZzZXQgPSAwO1xuICAgIGxldCB0b3RhbCA9IDE7XG4gICAgd2hpbGUgKG9mZnNldCA8IHRvdGFsKSB7XG4gICAgICBjb25zdCBib3hlcyA9IGF3YWl0IHRoaXMuZXhwbG9yZXJBcGkudjEuZ2V0QXBpVjFCb3hlc1Vuc3BlbnRCeWVyZ290cmVlUDEoXG4gICAgICAgIHRoaXMuZXJnb1RyZWUsXG4gICAgICAgIHsgb2Zmc2V0OiBvZmZzZXQsIGxpbWl0OiBEZWZhdWx0QXBpTGltaXQgfSxcbiAgICAgICk7XG5cbiAgICAgIGlmICghYm94ZXMuaXRlbXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBsb3JlciBhcGkgb3V0cHV0IGl0ZW1zIHNob3VsZCBub3QgYmUgdW5kZWZpbmVkLicpO1xuICAgICAgfVxuXG4gICAgICBleHRyYWN0ZWRCb3hlcy5wdXNoKFxuICAgICAgICAuLi5ib3hlcy5pdGVtc1xuICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAoYm94KSA9PlxuICAgICAgICAgICAgICBib3guY3JlYXRpb25IZWlnaHQgJiZcbiAgICAgICAgICAgICAgYm94LmNyZWF0aW9uSGVpZ2h0IDwgaW5pdGlhbEhlaWdodCAmJlxuICAgICAgICAgICAgICB0aGlzLmlzQ29sbGF0ZXJhbEJveChib3gpLFxuICAgICAgICAgIClcbiAgICAgICAgICAubWFwKChib3gpID0+XG4gICAgICAgICAgICB0aGlzLnRvRXh0cmFjdGVkQ29sbGF0ZXJhbChib3gsIGJveC5ibG9ja0lkLCBib3guc2V0dGxlbWVudEhlaWdodCksXG4gICAgICAgICAgKVxuICAgICAgICAgIC5maWx0ZXIoKGRhdGEpOiBkYXRhIGlzIEV4dHJhY3RlZENvbGxhdGVyYWwgPT4gZGF0YSAhPSB1bmRlZmluZWQpLFxuICAgICAgKTtcbiAgICAgIHRvdGFsID0gYm94ZXMudG90YWw7XG4gICAgICBvZmZzZXQgKz0gRGVmYXVsdEFwaUxpbWl0O1xuICAgIH1cbiAgICByZXR1cm4gZXh0cmFjdGVkQm94ZXM7XG4gIH07XG5cbiAgLyoqXG4gICAqIGNvbnZlcnRzIG91dHB1dCBib3ggaW5mb3JtYXRpb24gdG8gYW4gRXh0cmFjdGVkQ29sbGF0ZXJhbCBvYmplY3RcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHsoT3V0cHV0SW5mbyB8IE91dHB1dEJveCl9IGJveFxuICAgKiBAcmV0dXJuIHtFeHRyYWN0ZWRDb2xsYXRlcmFsfVxuICAgKiBAbWVtYmVyb2YgQ29sbGF0ZXJhbEV4dHJhY3RvclxuICAgKi9cbiAgcHJpdmF0ZSB0b0V4dHJhY3RlZENvbGxhdGVyYWwgPSAoXG4gICAgYm94OiBWMS5PdXRwdXRJbmZvIHwgT3V0cHV0Qm94LFxuICAgIGJsb2NrSWQ6IHN0cmluZyxcbiAgICBibG9ja0hlaWdodDogbnVtYmVyLFxuICApOiBFeHRyYWN0ZWRDb2xsYXRlcmFsIHwgdW5kZWZpbmVkID0+IHtcbiAgICBjb25zdCBlcmdvT3V0cHV0Qm94ID0gZXJnb0xpYi5FcmdvQm94LmZyb21fanNvbihKc29uQkkuc3RyaW5naWZ5KGJveCkpO1xuXG4gICAgY29uc3QgcjQgPSBlcmdvT3V0cHV0Qm94XG4gICAgICAucmVnaXN0ZXJfdmFsdWUoZXJnb0xpYi5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI0KVxuICAgICAgPy50b19ieXRlX2FycmF5KCk7XG4gICAgaWYgKHI0ID09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgYGNvbGxhdGVyYWwgYm94IHdpdGggYm94SWQ9WyR7Ym94LmJveElkfV0gaGFzIGFuIGludmFsaWQgUjQgcmVnaXN0ZXJgLFxuICAgICAgKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IHdpZCA9IHVpbnQ4QXJyYXlUb0hleChyNCk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICBgRXh0cmFjdGVkIFdJRD1bJHt3aWR9XSBmcm9tIFI0IHJlZ2lzdGVyIG9mIGJveD1bJHtib3guYm94SWR9XWAsXG4gICAgKTtcblxuICAgIGNvbnN0IHI1ID0gZXJnb091dHB1dEJveFxuICAgICAgLnJlZ2lzdGVyX3ZhbHVlKGVyZ29MaWIuTm9uTWFuZGF0b3J5UmVnaXN0ZXJJZC5SNSlcbiAgICAgID8udG9faTY0KClcbiAgICAgIC50b19zdHIoKTtcblxuICAgIGlmIChyNSA9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oXG4gICAgICAgIGBjb2xsYXRlcmFsIGJveCB3aXRoIGJveElkPVske2JveC5ib3hJZH1dIGhhcyBhbiBpbnZhbGlkIFI1IHJlZ2lzdGVyYCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCByd3RDb3VudCA9IEJpZ0ludChyNSk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICBgRXh0cmFjdGVkIHJ3dENvdW50PVske3J3dENvdW50fV0gZnJvbSBSNSByZWdpc3RlciBvZiBib3g9WyR7Ym94LmJveElkfV1gLFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYm94SWQ6IGJveC5ib3hJZCxcbiAgICAgIGJveFNlcmlhbGl6ZWQ6IEJ1ZmZlci5mcm9tKFxuICAgICAgICBlcmdvT3V0cHV0Qm94LnNpZ21hX3NlcmlhbGl6ZV9ieXRlcygpLFxuICAgICAgKS50b1N0cmluZygnYmFzZTY0JyksXG4gICAgICB3aWQ6IHdpZCxcbiAgICAgIHJ3dENvdW50OiByd3RDb3VudCxcbiAgICAgIHR4SWQ6IGJveC50cmFuc2FjdGlvbklkLFxuICAgICAgYmxvY2s6IGJsb2NrSWQsXG4gICAgICBoZWlnaHQ6IGJsb2NrSGVpZ2h0LFxuICAgIH07XG4gIH07XG59XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AbstractExtractor } from '@rosen-bridge/abstract-extractor';
|
|
2
2
|
import { AbstractLogger } from '@rosen-bridge/abstract-logger';
|
|
3
3
|
import { DataSource } from '@rosen-bridge/extended-typeorm';
|
|
4
|
-
import {
|
|
4
|
+
import { BlockInfo, Transaction } from '@rosen-bridge/scanner-interfaces';
|
|
5
5
|
import { TokenMap } from '@rosen-bridge/tokens';
|
|
6
6
|
declare class CommitmentExtractor extends AbstractExtractor<Transaction> {
|
|
7
7
|
readonly logger: AbstractLogger;
|
|
@@ -22,7 +22,7 @@ declare class CommitmentExtractor extends AbstractExtractor<Transaction> {
|
|
|
22
22
|
* @param txs
|
|
23
23
|
* @param block
|
|
24
24
|
*/
|
|
25
|
-
processTransactions: (txs: Array<Transaction>, block:
|
|
25
|
+
processTransactions: (txs: Array<Transaction>, block: BlockInfo) => Promise<boolean>;
|
|
26
26
|
/**
|
|
27
27
|
* fork one block and remove all stored information for this block
|
|
28
28
|
* @param hash: block hash
|
|
@@ -32,7 +32,7 @@ declare class CommitmentExtractor extends AbstractExtractor<Transaction> {
|
|
|
32
32
|
* Extractor box initialization
|
|
33
33
|
* No action needed for commitment extractor
|
|
34
34
|
*/
|
|
35
|
-
|
|
35
|
+
initializeData: () => Promise<void>;
|
|
36
36
|
}
|
|
37
37
|
export default CommitmentExtractor;
|
|
38
38
|
//# sourceMappingURL=commitmentExtractor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commitmentExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/commitmentExtractor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"commitmentExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/commitmentExtractor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAOhD,cAAM,mBAAoB,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IAC9D,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,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,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;gBAGlC,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EACxB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,QAAQ,EAChB,MAAM,CAAC,EAAE,cAAc;IAczB;;OAEG;IACH,KAAK,eAAiB;IAEtB;;;;;OAKG;IACH,mBAAmB,GACjB,KAAK,KAAK,CAAC,WAAW,CAAC,EACvB,OAAO,SAAS,KACf,OAAO,CAAC,OAAO,CAAC,CAmFjB;IAEF;;;OAGG;IACH,SAAS,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAE7C;IAEF;;;OAGG;IACH,cAAc,sBAEZ;CACH;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -110,9 +110,9 @@ class CommitmentExtractor extends AbstractExtractor {
|
|
|
110
110
|
* Extractor box initialization
|
|
111
111
|
* No action needed for commitment extractor
|
|
112
112
|
*/
|
|
113
|
-
|
|
113
|
+
initializeData = async () => {
|
|
114
114
|
return;
|
|
115
115
|
};
|
|
116
116
|
}
|
|
117
117
|
export default CommitmentExtractor;
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWl0bWVudEV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9leHRyYWN0b3IvY29tbWl0bWVudEV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLHNCQUFzQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFLNUUsT0FBTyxnQkFBZ0IsTUFBTSw2QkFBNkIsQ0FBQztBQUczRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxDLE1BQU0sbUJBQW9CLFNBQVEsaUJBQThCO0lBQ3JELE1BQU0sQ0FBaUI7SUFDaEMsRUFBRSxDQUFTO0lBQ00sVUFBVSxDQUFhO0lBQ3ZCLG9CQUFvQixDQUFnQjtJQUNwQyxLQUFLLENBQVM7SUFDZCxPQUFPLENBQW1CO0lBQzFCLFFBQVEsQ0FBVztJQUVwQyxZQUNFLEVBQVUsRUFDVixTQUF3QixFQUN4QixLQUFhLEVBQ2IsVUFBc0IsRUFDdEIsTUFBZ0IsRUFDaEIsTUFBdUI7UUFFdkIsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsZUFBZSxFQUFFLENBQ25FLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBRXRCOzs7OztPQUtHO0lBQ0gsbUJBQW1CLEdBQUcsQ0FDcEIsR0FBdUIsRUFDdkIsS0FBWSxFQUNNLEVBQUU7UUFDcEIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxXQUFXLEdBQStCLEVBQUUsQ0FBQztnQkFDbkQsTUFBTSxRQUFRLEdBQXFCLEVBQUUsQ0FBQztnQkFDdEMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO29CQUMxQixrQkFBa0I7b0JBQ2xCLEtBQUssTUFBTSxNQUFNLElBQUksV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUN6QyxJQUNFLE1BQU0sQ0FBQyxNQUFNOzRCQUNiLE1BQU0sQ0FBQyxtQkFBbUI7NEJBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUM7NEJBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxLQUFLOzRCQUN2QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDekQsQ0FBQzs0QkFDRCxJQUFJLENBQUM7Z0NBQ0gsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQ3ZDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQ3pCLENBQUM7Z0NBQ0YsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FDbEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FDL0IsQ0FBQztnQ0FDRixNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUNsQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUMvQixDQUFDO2dDQUNGLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQ2xDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQy9CLENBQUM7Z0NBQ0YsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO29DQUNuQixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7b0NBQ25DLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztvQ0FDbkMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO29DQUNuQyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQ0FDakQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7b0NBQ3ZELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO29DQUN6RCxXQUFXLENBQUMsSUFBSSxDQUFDO3dDQUNmLElBQUksRUFBRSxXQUFXLENBQUMsRUFBRTt3Q0FDcEIsR0FBRyxFQUFFLEdBQUc7d0NBQ1IsVUFBVSxFQUFFLFdBQVc7d0NBQ3ZCLE9BQU8sRUFBRSxTQUFTO3dDQUNsQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7d0NBQ25CLGFBQWEsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUN4QixVQUFVLENBQUMscUJBQXFCLEVBQUUsQ0FDbkMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO3dDQUNwQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7NkNBQ3BCLFVBQVUsQ0FDVCxJQUFJLENBQUMsS0FBSyxFQUNWLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUMvQixNQUFNLENBQ1A7NkNBQ0EsTUFBTSxDQUFDLFFBQVEsRUFBRTtxQ0FDckIsQ0FBQyxDQUFDO2dDQUNMLENBQUM7NEJBQ0gsQ0FBQzs0QkFBQyxNQUFNLENBQUM7Z0NBQ1AsUUFBUTs0QkFDVixDQUFDO3dCQUNILENBQUM7b0JBQ0gsQ0FBQztvQkFDRCxpQkFBaUI7b0JBQ2pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO3dCQUNuRCxRQUFRLENBQUMsSUFBSSxDQUFDOzRCQUNaLEtBQUssRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7NEJBQ2xDLElBQUksRUFBRSxXQUFXLENBQUMsRUFBRTs0QkFDcEIsS0FBSyxFQUFFLENBQUM7eUJBQ1QsQ0FBQyxDQUFDO29CQUNMLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsMkJBQTJCO2dCQUMzQixJQUFJLENBQUMsT0FBTztxQkFDVCxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7cUJBQzdDLElBQUksQ0FBQyxHQUFHLEVBQUU7b0JBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO3dCQUNoRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2hCLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUMsQ0FBQztxQkFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdCLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLHdDQUF3QyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQ3RELENBQUM7Z0JBQ0YsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1osQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUY7OztPQUdHO0lBQ0gsU0FBUyxHQUFHLEtBQUssRUFBRSxJQUFZLEVBQWlCLEVBQUU7UUFDaEQsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQyxDQUFDO0lBRUY7OztPQUdHO0lBQ0gsZUFBZSxHQUFHLEtBQUssSUFBSSxFQUFFO1FBQzNCLE9BQU87SUFDVCxDQUFDLENBQUM7Q0FDSDtBQUVELGVBQWUsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB3YXNtIGZyb20gJ2VyZ28tbGliLXdhc20tbm9kZWpzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RFeHRyYWN0b3IgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWV4dHJhY3Rvcic7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciwgRHVtbXlMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9leHRlbmRlZC10eXBlb3JtJztcbmltcG9ydCB7IEJsb2NrLCBUcmFuc2FjdGlvbiB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcbmltcG9ydCB7IFRva2VuTWFwIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS90b2tlbnMnO1xuXG5pbXBvcnQgQ29tbWl0bWVudEFjdGlvbiBmcm9tICcuLi9hY3Rpb25zL2NvbW1pdG1lbnRBY3Rpb24nO1xuaW1wb3J0IHsgZXh0cmFjdGVkQ29tbWl0bWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZXh0cmFjdGVkQ29tbWl0bWVudCc7XG5pbXBvcnQgeyBTcGVuZEluZm8gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3R5cGVzJztcbmltcG9ydCB7IEpzb25CSSB9IGZyb20gJy4uL3V0aWxzJztcblxuY2xhc3MgQ29tbWl0bWVudEV4dHJhY3RvciBleHRlbmRzIEFic3RyYWN0RXh0cmFjdG9yPFRyYW5zYWN0aW9uPiB7XG4gIHJlYWRvbmx5IGxvZ2dlcjogQWJzdHJhY3RMb2dnZXI7XG4gIGlkOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YVNvdXJjZTogRGF0YVNvdXJjZTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb21taXRtZW50c0VyZ29UcmVlczogQXJyYXk8c3RyaW5nPjtcbiAgcHJpdmF0ZSByZWFkb25seSBSV1RJZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvbnM6IENvbW1pdG1lbnRBY3Rpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgdG9rZW5NYXA6IFRva2VuTWFwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYWRkcmVzc2VzOiBBcnJheTxzdHJpbmc+LFxuICAgIFJXVElkOiBzdHJpbmcsXG4gICAgZGF0YVNvdXJjZTogRGF0YVNvdXJjZSxcbiAgICB0b2tlbnM6IFRva2VuTWFwLFxuICAgIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyLFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaWQgPSBpZDtcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBkYXRhU291cmNlO1xuICAgIHRoaXMuY29tbWl0bWVudHNFcmdvVHJlZXMgPSBhZGRyZXNzZXMubWFwKChhZGRyZXNzKSA9PlxuICAgICAgd2FzbS5BZGRyZXNzLmZyb21fYmFzZTU4KGFkZHJlc3MpLnRvX2VyZ29fdHJlZSgpLnRvX2Jhc2UxNl9ieXRlcygpLFxuICAgICk7XG4gICAgdGhpcy5SV1RJZCA9IFJXVElkO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyID8gbG9nZ2VyIDogbmV3IER1bW15TG9nZ2VyKCk7XG4gICAgdGhpcy5hY3Rpb25zID0gbmV3IENvbW1pdG1lbnRBY3Rpb24oZGF0YVNvdXJjZSwgdGhpcy5sb2dnZXIpO1xuICAgIHRoaXMudG9rZW5NYXAgPSB0b2tlbnM7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IElkIGZvciBjdXJyZW50IGV4dHJhY3RvclxuICAgKi9cbiAgZ2V0SWQgPSAoKSA9PiB0aGlzLmlkO1xuXG4gIC8qKlxuICAgKiBnZXRzIGJsb2NrIGlkIGFuZCB0cmFuc2FjdGlvbnMgY29ycmVzcG9uZGluZyB0byB0aGUgYmxvY2sgYW5kIHNhdmVzIGlmIHRoZXkgYXJlIHZhbGlkIHJvc2VuXG4gICAqICB0cmFuc2FjdGlvbnMgYW5kIGluIGNhc2Ugb2Ygc3VjY2VzcyByZXR1cm4gdHJ1ZSBhbmQgaW4gY2FzZSBvZiBmYWlsdXJlIHJldHVybnMgZmFsc2VcbiAgICogQHBhcmFtIHR4c1xuICAgKiBAcGFyYW0gYmxvY2tcbiAgICovXG4gIHByb2Nlc3NUcmFuc2FjdGlvbnMgPSAoXG4gICAgdHhzOiBBcnJheTxUcmFuc2FjdGlvbj4sXG4gICAgYmxvY2s6IEJsb2NrLFxuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY29tbWl0bWVudHM6IEFycmF5PGV4dHJhY3RlZENvbW1pdG1lbnQ+ID0gW107XG4gICAgICAgIGNvbnN0IHNwZW5kSWRzOiBBcnJheTxTcGVuZEluZm8+ID0gW107XG4gICAgICAgIHR4cy5mb3JFYWNoKCh0cmFuc2FjdGlvbikgPT4ge1xuICAgICAgICAgIC8vIHByb2Nlc3Mgb3V0cHV0c1xuICAgICAgICAgIGZvciAoY29uc3Qgb3V0cHV0IG9mIHRyYW5zYWN0aW9uLm91dHB1dHMpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgb3V0cHV0LmFzc2V0cyAmJlxuICAgICAgICAgICAgICBvdXRwdXQuYWRkaXRpb25hbFJlZ2lzdGVycyAmJlxuICAgICAgICAgICAgICBvdXRwdXQuYXNzZXRzLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICAgb3V0cHV0LmFzc2V0c1swXS50b2tlbklkID09PSB0aGlzLlJXVElkICYmXG4gICAgICAgICAgICAgIHRoaXMuY29tbWl0bWVudHNFcmdvVHJlZXMuaW5kZXhPZihvdXRwdXQuZXJnb1RyZWUpICE9PSAtMVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVjb2RlZEJveCA9IHdhc20uRXJnb0JveC5mcm9tX2pzb24oXG4gICAgICAgICAgICAgICAgICBKc29uQkkuc3RyaW5naWZ5KG91dHB1dCksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb25zdCBSNCA9IGRlY29kZWRCb3gucmVnaXN0ZXJfdmFsdWUoXG4gICAgICAgICAgICAgICAgICB3YXNtLk5vbk1hbmRhdG9yeVJlZ2lzdGVySWQuUjQsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb25zdCBSNSA9IGRlY29kZWRCb3gucmVnaXN0ZXJfdmFsdWUoXG4gICAgICAgICAgICAgICAgICB3YXNtLk5vbk1hbmRhdG9yeVJlZ2lzdGVySWQuUjUsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb25zdCBSNiA9IGRlY29kZWRCb3gucmVnaXN0ZXJfdmFsdWUoXG4gICAgICAgICAgICAgICAgICB3YXNtLk5vbk1hbmRhdG9yeVJlZ2lzdGVySWQuUjYsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoUjQgJiYgUjUgJiYgUjYpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IFI0VmFsdWUgPSBSNC50b19ieXRlX2FycmF5KCk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBSNVZhbHVlID0gUjUudG9fYnl0ZV9hcnJheSgpO1xuICAgICAgICAgICAgICAgICAgY29uc3QgUjZWYWx1ZSA9IFI2LnRvX2J5dGVfYXJyYXkoKTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IFdJRCA9IEJ1ZmZlci5mcm9tKFI0VmFsdWUpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RJZCA9IEJ1ZmZlci5mcm9tKFI1VmFsdWUpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50RGlnZXN0ID0gQnVmZmVyLmZyb20oUjZWYWx1ZSkudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgICAgICAgICAgICAgY29tbWl0bWVudHMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIHR4SWQ6IHRyYW5zYWN0aW9uLmlkLFxuICAgICAgICAgICAgICAgICAgICBXSUQ6IFdJRCxcbiAgICAgICAgICAgICAgICAgICAgY29tbWl0bWVudDogZXZlbnREaWdlc3QsXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50SWQ6IHJlcXVlc3RJZCxcbiAgICAgICAgICAgICAgICAgICAgYm94SWQ6IG91dHB1dC5ib3hJZCxcbiAgICAgICAgICAgICAgICAgICAgYm94U2VyaWFsaXplZDogQnVmZmVyLmZyb20oXG4gICAgICAgICAgICAgICAgICAgICAgZGVjb2RlZEJveC5zaWdtYV9zZXJpYWxpemVfYnl0ZXMoKSxcbiAgICAgICAgICAgICAgICAgICAgKS50b1N0cmluZygnYmFzZTY0JyksXG4gICAgICAgICAgICAgICAgICAgIHJ3dENvdW50OiB0aGlzLnRva2VuTWFwXG4gICAgICAgICAgICAgICAgICAgICAgLndyYXBBbW91bnQoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlJXVElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgQmlnSW50KG91dHB1dC5hc3NldHNbMF0uYW1vdW50KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdlcmdvJyxcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgLmFtb3VudC50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAvLyBlbXB0eVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIHByb2Nlc3MgaW5wdXRzXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0cmFuc2FjdGlvbi5pbnB1dHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHNwZW5kSWRzLnB1c2goe1xuICAgICAgICAgICAgICBib3hJZDogdHJhbnNhY3Rpb24uaW5wdXRzW2ldLmJveElkLFxuICAgICAgICAgICAgICB0eElkOiB0cmFuc2FjdGlvbi5pZCxcbiAgICAgICAgICAgICAgaW5kZXg6IGksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBwcm9jZXNzIHNhdmUgY29tbWl0bWVudHNcbiAgICAgICAgdGhpcy5hY3Rpb25zXG4gICAgICAgICAgLnN0b3JlQ29tbWl0bWVudHMoY29tbWl0bWVudHMsIGJsb2NrLCB0aGlzLmlkKVxuICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9ucy5zcGVuZENvbW1pdG1lbnRzKHNwZW5kSWRzLCBibG9jaywgdGhpcy5pZCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZSkgPT4gcmVqZWN0KGUpKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgICAgYEVycm9yIGluIHNvcmluZyBwZXJtaXRzIG9mIHRoZSBibG9jayAke2Jsb2NrfTogJHtlfWAsXG4gICAgICAgICk7XG4gICAgICAgIHJlamVjdChlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogZm9yayBvbmUgYmxvY2sgYW5kIHJlbW92ZSBhbGwgc3RvcmVkIGluZm9ybWF0aW9uIGZvciB0aGlzIGJsb2NrXG4gICAqIEBwYXJhbSBoYXNoOiBibG9jayBoYXNoXG4gICAqL1xuICBmb3JrQmxvY2sgPSBhc3luYyAoaGFzaDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgYXdhaXQgdGhpcy5hY3Rpb25zLmRlbGV0ZUJsb2NrKGhhc2gsIHRoaXMuZ2V0SWQoKSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEV4dHJhY3RvciBib3ggaW5pdGlhbGl6YXRpb25cbiAgICogTm8gYWN0aW9uIG5lZWRlZCBmb3IgY29tbWl0bWVudCBleHRyYWN0b3JcbiAgICovXG4gIGluaXRpYWxpemVCb3hlcyA9IGFzeW5jICgpID0+IHtcbiAgICByZXR1cm47XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbW1pdG1lbnRFeHRyYWN0b3I7XG4iXX0=
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWl0bWVudEV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9leHRyYWN0b3IvY29tbWl0bWVudEV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLHNCQUFzQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFLNUUsT0FBTyxnQkFBZ0IsTUFBTSw2QkFBNkIsQ0FBQztBQUczRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxDLE1BQU0sbUJBQW9CLFNBQVEsaUJBQThCO0lBQ3JELE1BQU0sQ0FBaUI7SUFDaEMsRUFBRSxDQUFTO0lBQ00sVUFBVSxDQUFhO0lBQ3ZCLG9CQUFvQixDQUFnQjtJQUNwQyxLQUFLLENBQVM7SUFDZCxPQUFPLENBQW1CO0lBQzFCLFFBQVEsQ0FBVztJQUVwQyxZQUNFLEVBQVUsRUFDVixTQUF3QixFQUN4QixLQUFhLEVBQ2IsVUFBc0IsRUFDdEIsTUFBZ0IsRUFDaEIsTUFBdUI7UUFFdkIsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsZUFBZSxFQUFFLENBQ25FLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENB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LENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixDQUFDO1lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZix3Q0FBd0MsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUN0RCxDQUFDO2dCQUNGLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNaLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILFNBQVMsR0FBRyxLQUFLLEVBQUUsSUFBWSxFQUFpQixFQUFFO1FBQ2hELE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILGNBQWMsR0FBRyxLQUFLLElBQUksRUFBRTtRQUMxQixPQUFPO0lBQ1QsQ0FBQyxDQUFDO0NBQ0g7QUFFRCxlQUFlLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgd2FzbSBmcm9tICdlcmdvLWxpYi13YXNtLW5vZGVqcyc7XG5cbmltcG9ydCB7IEFic3RyYWN0RXh0cmFjdG9yIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1leHRyYWN0b3InO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvZXh0ZW5kZWQtdHlwZW9ybSc7XG5pbXBvcnQgeyBCbG9ja0luZm8sIFRyYW5zYWN0aW9uIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuaW1wb3J0IHsgVG9rZW5NYXAgfSBmcm9tICdAcm9zZW4tYnJpZGdlL3Rva2Vucyc7XG5cbmltcG9ydCBDb21taXRtZW50QWN0aW9uIGZyb20gJy4uL2FjdGlvbnMvY29tbWl0bWVudEFjdGlvbic7XG5pbXBvcnQgeyBleHRyYWN0ZWRDb21taXRtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHRyYWN0ZWRDb21taXRtZW50JztcbmltcG9ydCB7IFNwZW5kSW5mbyB9IGZyb20gJy4uL2ludGVyZmFjZXMvdHlwZXMnO1xuaW1wb3J0IHsgSnNvbkJJIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5jbGFzcyBDb21taXRtZW50RXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RFeHRyYWN0b3I8VHJhbnNhY3Rpb24+IHtcbiAgcmVhZG9ubHkgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlcjtcbiAgaWQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhU291cmNlOiBEYXRhU291cmNlO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbW1pdG1lbnRzRXJnb1RyZWVzOiBBcnJheTxzdHJpbmc+O1xuICBwcml2YXRlIHJlYWRvbmx5IFJXVElkOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aW9uczogQ29tbWl0bWVudEFjdGlvbjtcbiAgcHJpdmF0ZSByZWFkb25seSB0b2tlbk1hcDogVG9rZW5NYXA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhZGRyZXNzZXM6IEFycmF5PHN0cmluZz4sXG4gICAgUldUSWQ6IHN0cmluZyxcbiAgICBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIHRva2VuczogVG9rZW5NYXAsXG4gICAgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pZCA9IGlkO1xuICAgIHRoaXMuZGF0YVNvdXJjZSA9IGRhdGFTb3VyY2U7XG4gICAgdGhpcy5jb21taXRtZW50c0VyZ29UcmVlcyA9IGFkZHJlc3Nlcy5tYXAoKGFkZHJlc3MpID0+XG4gICAgICB3YXNtLkFkZHJlc3MuZnJvbV9iYXNlNTgoYWRkcmVzcykudG9fZXJnb190cmVlKCkudG9fYmFzZTE2X2J5dGVzKCksXG4gICAgKTtcbiAgICB0aGlzLlJXVElkID0gUldUSWQ7XG4gICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIgPyBsb2dnZXIgOiBuZXcgRHVtbXlMb2dnZXIoKTtcbiAgICB0aGlzLmFjdGlvbnMgPSBuZXcgQ29tbWl0bWVudEFjdGlvbihkYXRhU291cmNlLCB0aGlzLmxvZ2dlcik7XG4gICAgdGhpcy50b2tlbk1hcCA9IHRva2VucztcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgSWQgZm9yIGN1cnJlbnQgZXh0cmFjdG9yXG4gICAqL1xuICBnZXRJZCA9ICgpID0+IHRoaXMuaWQ7XG5cbiAgLyoqXG4gICAqIGdldHMgYmxvY2sgaWQgYW5kIHRyYW5zYWN0aW9ucyBjb3JyZXNwb25kaW5nIHRvIHRoZSBibG9jayBhbmQgc2F2ZXMgaWYgdGhleSBhcmUgdmFsaWQgcm9zZW5cbiAgICogIHRyYW5zYWN0aW9ucyBhbmQgaW4gY2FzZSBvZiBzdWNjZXNzIHJldHVybiB0cnVlIGFuZCBpbiBjYXNlIG9mIGZhaWx1cmUgcmV0dXJucyBmYWxzZVxuICAgKiBAcGFyYW0gdHhzXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKi9cbiAgcHJvY2Vzc1RyYW5zYWN0aW9ucyA9IChcbiAgICB0eHM6IEFycmF5PFRyYW5zYWN0aW9uPixcbiAgICBibG9jazogQmxvY2tJbmZvLFxuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY29tbWl0bWVudHM6IEFycmF5PGV4dHJhY3RlZENvbW1pdG1lbnQ+ID0gW107XG4gICAgICAgIGNvbnN0IHNwZW5kSWRzOiBBcnJheTxTcGVuZEluZm8+ID0gW107XG4gICAgICAgIHR4cy5mb3JFYWNoKCh0cmFuc2FjdGlvbikgPT4ge1xuICAgICAgICAgIC8vIHByb2Nlc3Mgb3V0cHV0c1xuICAgICAgICAgIGZvciAoY29uc3Qgb3V0cHV0IG9mIHRyYW5zYWN0aW9uLm91dHB1dHMpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgb3V0cHV0LmFzc2V0cyAmJlxuICAgICAgICAgICAgICBvdXRwdXQuYWRkaXRpb25hbFJlZ2lzdGVycyAmJlxuICAgICAgICAgICAgICBvdXRwdXQuYXNzZXRzLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICAgb3V0cHV0LmFzc2V0c1swXS50b2tlbklkID09PSB0aGlzLlJXVElkICYmXG4gICAgICAgICAgICAgIHRoaXMuY29tbWl0bWVudHNFcmdvVHJlZXMuaW5kZXhPZihvdXRwdXQuZXJnb1RyZWUpICE9PSAtMVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVjb2RlZEJveCA9IHdhc20uRXJnb0JveC5mcm9tX2pzb24oXG4gICAgICAgICAgICAgICAgICBKc29uQkkuc3RyaW5naWZ5KG91dHB1dCksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb25zdCBSNCA9IGRlY29kZWRCb3gucmVnaXN0ZXJfdmFsdWUoXG4gICAgICAgICAgICAgICAgICB3YXNtLk5vbk1hbmRhdG9yeVJlZ2lzdGVySWQuUjQsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb25zdCBSNSA9IGRlY29kZWRCb3gucmVnaXN0ZXJfdmFsdWUoXG4gICAgICAgICAgICAgICAgICB3YXNtLk5vbk1hbmRhdG9yeVJlZ2lzdGVySWQuUjUsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb25zdCBSNiA9IGRlY29kZWRCb3gucmVnaXN0ZXJfdmFsdWUoXG4gICAgICAgICAgICAgICAgICB3YXNtLk5vbk1hbmRhdG9yeVJlZ2lzdGVySWQuUjYsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoUjQgJiYgUjUgJiYgUjYpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IFI0VmFsdWUgPSBSNC50b19ieXRlX2FycmF5KCk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBSNVZhbHVlID0gUjUudG9fYnl0ZV9hcnJheSgpO1xuICAgICAgICAgICAgICAgICAgY29uc3QgUjZWYWx1ZSA9IFI2LnRvX2J5dGVfYXJyYXkoKTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IFdJRCA9IEJ1ZmZlci5mcm9tKFI0VmFsdWUpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RJZCA9IEJ1ZmZlci5mcm9tKFI1VmFsdWUpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50RGlnZXN0ID0gQnVmZmVyLmZyb20oUjZWYWx1ZSkudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgICAgICAgICAgICAgY29tbWl0bWVudHMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIHR4SWQ6IHRyYW5zYWN0aW9uLmlkLFxuICAgICAgICAgICAgICAgICAgICBXSUQ6IFdJRCxcbiAgICAgICAgICAgICAgICAgICAgY29tbWl0bWVudDogZXZlbnREaWdlc3QsXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50SWQ6IHJlcXVlc3RJZCxcbiAgICAgICAgICAgICAgICAgICAgYm94SWQ6IG91dHB1dC5ib3hJZCxcbiAgICAgICAgICAgICAgICAgICAgYm94U2VyaWFsaXplZDogQnVmZmVyLmZyb20oXG4gICAgICAgICAgICAgICAgICAgICAgZGVjb2RlZEJveC5zaWdtYV9zZXJpYWxpemVfYnl0ZXMoKSxcbiAgICAgICAgICAgICAgICAgICAgKS50b1N0cmluZygnYmFzZTY0JyksXG4gICAgICAgICAgICAgICAgICAgIHJ3dENvdW50OiB0aGlzLnRva2VuTWFwXG4gICAgICAgICAgICAgICAgICAgICAgLndyYXBBbW91bnQoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlJXVElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgQmlnSW50KG91dHB1dC5hc3NldHNbMF0uYW1vdW50KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdlcmdvJyxcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgLmFtb3VudC50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAvLyBlbXB0eVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIHByb2Nlc3MgaW5wdXRzXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0cmFuc2FjdGlvbi5pbnB1dHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHNwZW5kSWRzLnB1c2goe1xuICAgICAgICAgICAgICBib3hJZDogdHJhbnNhY3Rpb24uaW5wdXRzW2ldLmJveElkLFxuICAgICAgICAgICAgICB0eElkOiB0cmFuc2FjdGlvbi5pZCxcbiAgICAgICAgICAgICAgaW5kZXg6IGksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBwcm9jZXNzIHNhdmUgY29tbWl0bWVudHNcbiAgICAgICAgdGhpcy5hY3Rpb25zXG4gICAgICAgICAgLnN0b3JlQ29tbWl0bWVudHMoY29tbWl0bWVudHMsIGJsb2NrLCB0aGlzLmlkKVxuICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9ucy5zcGVuZENvbW1pdG1lbnRzKHNwZW5kSWRzLCBibG9jaywgdGhpcy5pZCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZSkgPT4gcmVqZWN0KGUpKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgICAgYEVycm9yIGluIHNvcmluZyBwZXJtaXRzIG9mIHRoZSBibG9jayAke2Jsb2NrfTogJHtlfWAsXG4gICAgICAgICk7XG4gICAgICAgIHJlamVjdChlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogZm9yayBvbmUgYmxvY2sgYW5kIHJlbW92ZSBhbGwgc3RvcmVkIGluZm9ybWF0aW9uIGZvciB0aGlzIGJsb2NrXG4gICAqIEBwYXJhbSBoYXNoOiBibG9jayBoYXNoXG4gICAqL1xuICBmb3JrQmxvY2sgPSBhc3luYyAoaGFzaDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgYXdhaXQgdGhpcy5hY3Rpb25zLmRlbGV0ZUJsb2NrKGhhc2gsIHRoaXMuZ2V0SWQoKSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEV4dHJhY3RvciBib3ggaW5pdGlhbGl6YXRpb25cbiAgICogTm8gYWN0aW9uIG5lZWRlZCBmb3IgY29tbWl0bWVudCBleHRyYWN0b3JcbiAgICovXG4gIGluaXRpYWxpemVEYXRhID0gYXN5bmMgKCkgPT4ge1xuICAgIHJldHVybjtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29tbWl0bWVudEV4dHJhY3RvcjtcbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AbstractErgoBoxExtractor } from '@rosen-bridge/abstract-extractor';
|
|
2
2
|
import { AbstractLogger } from '@rosen-bridge/abstract-logger';
|
|
3
3
|
import { DataSource } from '@rosen-bridge/extended-typeorm';
|
|
4
4
|
import { BlockInfo, ErgoNetworkType, OutputBox, Transaction } from '@rosen-bridge/scanner-interfaces';
|
|
@@ -6,7 +6,7 @@ import EventTriggerAction from '../actions/eventTriggerAction';
|
|
|
6
6
|
import EventTriggerEntity from '../entities/eventTriggerEntity';
|
|
7
7
|
import { ExtractedEventTrigger } from '../interfaces/extractedEventTrigger';
|
|
8
8
|
import { EventResult } from '../types';
|
|
9
|
-
declare class EventTriggerExtractor extends
|
|
9
|
+
declare class EventTriggerExtractor extends AbstractErgoBoxExtractor<ExtractedEventTrigger, EventTriggerEntity> {
|
|
10
10
|
id: string;
|
|
11
11
|
protected readonly actions: EventTriggerAction;
|
|
12
12
|
private readonly eventTriggerErgoTree;
|
|
@@ -28,7 +28,7 @@ declare class EventTriggerExtractor extends AbstractInitializableErgoExtractor<E
|
|
|
28
28
|
* @param box
|
|
29
29
|
* @return true if the box has the required data and false otherwise
|
|
30
30
|
*/
|
|
31
|
-
|
|
31
|
+
hasBoxData: (box: OutputBox) => boolean;
|
|
32
32
|
/**
|
|
33
33
|
* extract box data to proper format (not including spending information)
|
|
34
34
|
* @param box
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventTriggerExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/eventTriggerExtractor.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"eventTriggerExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/eventTriggerExtractor.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,wBAAwB,EAGzB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EACL,SAAS,EACT,eAAe,EACf,SAAS,EACT,WAAW,EACZ,MAAM,kCAAkC,CAAC;AAE1C,OAAO,kBAAkB,MAAM,+BAA+B,CAAC;AAC/D,OAAO,kBAAkB,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,cAAM,qBAAsB,SAAQ,wBAAwB,CAC1D,qBAAqB,EACrB,kBAAkB,CACnB;IACC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IAC/C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAG3B,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,eAAe,EACrB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,cAAc,EACvB,UAAU,UAAO;IAiBnB;;OAEG;IACH,KAAK,eAAiB;IAEtB;;;;;;;;;OASG;IACH,UAAU,GAAI,KAAK,SAAS,KAAG,OAAO,CA2BpC;IAEF;;;;OAIG;IACH,cAAc,GACZ,KAAK,SAAS,KACb,IAAI,CAAC,qBAAqB,EAAE,YAAY,GAAG,aAAa,CAAC,GAAG,SAAS,CAwDtE;IAEF;;;;;OAKG;IACH,mBAAmB,GACjB,KAAK,KAAK,CAAC,WAAW,CAAC,EACvB,OAAO,SAAS,KACf,OAAO,CAAC,OAAO,CAAC,CAyDjB;IAEF;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,GAAI,aAAa,WAAW;;;MA0CtD;CACH;AAED,eAAe,qBAAqB,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { blake2b } from 'blakejs';
|
|
2
2
|
import * as wasm from 'ergo-lib-wasm-nodejs';
|
|
3
|
-
import {
|
|
3
|
+
import { AbstractErgoBoxExtractor, CallbackType, } from '@rosen-bridge/abstract-extractor';
|
|
4
4
|
import EventTriggerAction from '../actions/eventTriggerAction';
|
|
5
5
|
import { EventResult } from '../types';
|
|
6
6
|
import { JsonBI } from '../utils';
|
|
7
|
-
class EventTriggerExtractor extends
|
|
7
|
+
class EventTriggerExtractor extends AbstractErgoBoxExtractor {
|
|
8
8
|
id;
|
|
9
9
|
actions;
|
|
10
10
|
eventTriggerErgoTree;
|
|
@@ -12,7 +12,7 @@ class EventTriggerExtractor extends AbstractInitializableErgoExtractor {
|
|
|
12
12
|
fraudErgoTree;
|
|
13
13
|
RWT;
|
|
14
14
|
constructor(id, dataSource, type, url, address, RWT, permitAddress, fraudAddress, logger, initialize = true) {
|
|
15
|
-
super(type, url, address,
|
|
15
|
+
super({ type, url, address, active: initialize }, logger);
|
|
16
16
|
this.id = id;
|
|
17
17
|
this.eventTriggerErgoTree = wasm.Address.from_base58(address)
|
|
18
18
|
.to_ergo_tree()
|
|
@@ -40,7 +40,7 @@ class EventTriggerExtractor extends AbstractInitializableErgoExtractor {
|
|
|
40
40
|
* @param box
|
|
41
41
|
* @return true if the box has the required data and false otherwise
|
|
42
42
|
*/
|
|
43
|
-
|
|
43
|
+
hasBoxData = (box) => {
|
|
44
44
|
try {
|
|
45
45
|
if (box.additionalRegisters &&
|
|
46
46
|
box.additionalRegisters.R4 &&
|
|
@@ -89,7 +89,7 @@ class EventTriggerExtractor extends AbstractInitializableErgoExtractor {
|
|
|
89
89
|
return {
|
|
90
90
|
eventId: eventId,
|
|
91
91
|
txId: box.transactionId,
|
|
92
|
-
|
|
92
|
+
identifier: box.boxId,
|
|
93
93
|
serialized: Buffer.from(parsedBox.sigma_serialize_bytes()).toString('base64'),
|
|
94
94
|
toChain: Buffer.from(R5Serialized[2]).toString(),
|
|
95
95
|
toAddress: Buffer.from(R5Serialized[4]).toString(),
|
|
@@ -127,7 +127,7 @@ class EventTriggerExtractor extends AbstractInitializableErgoExtractor {
|
|
|
127
127
|
const { result, paymentTxId } = this.extractEventResult(transaction);
|
|
128
128
|
for (const output of transaction.outputs) {
|
|
129
129
|
// extract output box data
|
|
130
|
-
if (this.
|
|
130
|
+
if (this.hasBoxData(output)) {
|
|
131
131
|
this.logger.debug(`Trying to extract data from box ${output.boxId} at height ${block.height}`);
|
|
132
132
|
const data = this.extractBoxData(output);
|
|
133
133
|
if (data) {
|
|
@@ -146,7 +146,7 @@ class EventTriggerExtractor extends AbstractInitializableErgoExtractor {
|
|
|
146
146
|
});
|
|
147
147
|
});
|
|
148
148
|
if (boxes.length > 0) {
|
|
149
|
-
if (!(await this.actions.
|
|
149
|
+
if (!(await this.actions.storeEntities(boxes, block, this.getId()))) {
|
|
150
150
|
this.logger.warn(`Data insertion failed at height ${block.height} for extractor ${this.id}`);
|
|
151
151
|
return false;
|
|
152
152
|
}
|
|
@@ -212,4 +212,4 @@ class EventTriggerExtractor extends AbstractInitializableErgoExtractor {
|
|
|
212
212
|
};
|
|
213
213
|
}
|
|
214
214
|
export default EventTriggerExtractor;
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRUcmlnZ2VyRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2V4dHJhY3Rvci9ldmVudFRyaWdnZXJFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNsQyxPQUFPLEtBQUssSUFBSSxNQUFNLHNCQUFzQixDQUFDO0FBRTdDLE9BQU8sRUFDTCxrQ0FBa0MsRUFDbEMsWUFBWSxHQUViLE1BQU0sa0NBQWtDLENBQUM7QUFVMUMsT0FBTyxrQkFBa0IsTUFBTSwrQkFBK0IsQ0FBQztBQUcvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEMsTUFBTSxxQkFBc0IsU0FBUSxrQ0FHbkM7SUFDQyxFQUFFLENBQVM7SUFDUSxPQUFPLENBQXFCO0lBQzlCLG9CQUFvQixDQUFTO0lBQzdCLGNBQWMsQ0FBUztJQUN2QixhQUFhLENBQVM7SUFDdEIsR0FBRyxDQUFTO0lBRTdCLFlBQ0UsRUFBVSxFQUNWLFVBQXNCLEVBQ3RCLElBQXFCLEVBQ3JCLEdBQVcsRUFDWCxPQUFlLEVBQ2YsR0FBVyxFQUNYLGFBQXFCLEVBQ3JCLFlBQW9CLEVBQ3BCLE1BQXVCLEVBQ3ZCLFVBQVUsR0FBRyxJQUFJO1FBRWpCLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO2FBQzFELFlBQVksRUFBRTthQUNkLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8s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QUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ25ELENBQUM7d0JBQ0QsV0FBVyxHQUFHLElBQUksQ0FBQzt3QkFDbkIsSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7NEJBQ2hCLFdBQVcsR0FBRyxXQUFXLENBQUMsRUFBRSxDQUFDOzRCQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZixrQ0FBa0MsV0FBVyxDQUFDLEVBQUUsOENBQThDLENBQy9GLENBQUM7d0JBQ0osQ0FBQzt3QkFDRCwwREFBMEQ7d0JBQzFELE1BQU07b0JBQ1IsQ0FBQztnQkFDSCxDQUFDO2dCQUFDLE1BQU0sQ0FBQztvQkFDUCxTQUFTO2dCQUNYLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU87WUFDTCxNQUFNO1lBQ04sV0FBVztTQUNaLENBQUM7SUFDSixDQUFDLENBQUM7Q0FDSDtBQUVELGVBQWUscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBibGFrZTJiIH0gZnJvbSAnYmxha2Vqcyc7XG5pbXBvcnQgKiBhcyB3YXNtIGZyb20gJ2VyZ28tbGliLXdhc20tbm9kZWpzJztcblxuaW1wb3J0IHtcbiAgQWJzdHJhY3RJbml0aWFsaXphYmxlRXJnb0V4dHJhY3RvcixcbiAgQ2FsbGJhY2tUeXBlLFxuICBTcGVuZEluZm8sXG59IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtZXh0cmFjdG9yJztcbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvZXh0ZW5kZWQtdHlwZW9ybSc7XG5pbXBvcnQge1xuICBCbG9ja0luZm8sXG4gIEVyZ29OZXR3b3JrVHlwZSxcbiAgT3V0cHV0Qm94LFxuICBUcmFuc2FjdGlvbixcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuXG5pbXBvcnQgRXZlbnRUcmlnZ2VyQWN0aW9uIGZyb20gJy4uL2FjdGlvbnMvZXZlbnRUcmlnZ2VyQWN0aW9uJztcbmltcG9ydCBFdmVudFRyaWdnZXJFbnRpdHkgZnJvbSAnLi4vZW50aXRpZXMvZXZlbnRUcmlnZ2VyRW50aXR5JztcbmltcG9ydCB7IEV4dHJhY3RlZEV2ZW50VHJpZ2dlciB9IGZyb20gJy4uL2ludGVyZmFjZXMvZXh0cmFjdGVkRXZlbnRUcmlnZ2VyJztcbmltcG9ydCB7IEV2ZW50UmVzdWx0IH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgSnNvbkJJIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5jbGFzcyBFdmVudFRyaWdnZXJFeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdEluaXRpYWxpemFibGVFcmdvRXh0cmFjdG9yPFxuICBFeHRyYWN0ZWRFdmVudFRyaWdnZXIsXG4gIEV2ZW50VHJpZ2dlckVudGl0eVxuPiB7XG4gIGlkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCByZWFkb25seSBhY3Rpb25zOiBFdmVudFRyaWdnZXJBY3Rpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRUcmlnZ2VyRXJnb1RyZWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBwZXJtaXRFcmdvVHJlZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGZyYXVkRXJnb1RyZWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBSV1Q6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBpZDogc3RyaW5nLFxuICAgIGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsXG4gICAgdHlwZTogRXJnb05ldHdvcmtUeXBlLFxuICAgIHVybDogc3RyaW5nLFxuICAgIGFkZHJlc3M6IHN0cmluZyxcbiAgICBSV1Q6IHN0cmluZyxcbiAgICBwZXJtaXRBZGRyZXNzOiBzdHJpbmcsXG4gICAgZnJhdWRBZGRyZXNzOiBzdHJpbmcsXG4gICAgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIsXG4gICAgaW5pdGlhbGl6ZSA9IHRydWUsXG4gICkge1xuICAgIHN1cGVyKHR5cGUsIHVybCwgYWRkcmVzcywgbG9nZ2VyLCBpbml0aWFsaXplKTtcbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgdGhpcy5ldmVudFRyaWdnZXJFcmdvVHJlZSA9IHdhc20uQWRkcmVzcy5mcm9tX2Jhc2U1OChhZGRyZXNzKVxuICAgICAgLnRvX2VyZ29fdHJlZSgpXG4gICAgICAudG9fYmFzZTE2X2J5dGVzKCk7XG4gICAgdGhpcy5wZXJtaXRFcmdvVHJlZSA9IHdhc20uQWRkcmVzcy5mcm9tX2Jhc2U1OChwZXJtaXRBZGRyZXNzKVxuICAgICAgLnRvX2VyZ29fdHJlZSgpXG4gICAgICAudG9fYmFzZTE2X2J5dGVzKCk7XG4gICAgdGhpcy5mcmF1ZEVyZ29UcmVlID0gd2FzbS5BZGRyZXNzLmZyb21fYmFzZTU4KGZyYXVkQWRkcmVzcylcbiAgICAgIC50b19lcmdvX3RyZWUoKVxuICAgICAgLnRvX2Jhc2UxNl9ieXRlcygpO1xuICAgIHRoaXMuUldUID0gUldUO1xuICAgIHRoaXMuYWN0aW9ucyA9IG5ldyBFdmVudFRyaWdnZXJBY3Rpb24oZGF0YVNvdXJjZSwgdGhpcy5sb2dnZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBJZCBmb3IgY3VycmVudCBleHRyYWN0b3JcbiAgICovXG4gIGdldElkID0gKCkgPT4gdGhpcy5pZDtcblxuICAvKipcbiAgICogY2hlY2sgcHJvcGVyIGRhdGEgZm9ybWF0IGluIHRoZSBib3hcbiAgICogIC0gYm94IGVyZ29UcmVlXG4gICAqICAtIFJXVCBpbiBmaXJzdCB0b2tlbiBwbGFjZVxuICAgKiAgLSB3aWRMaXN0SGFzaCBpbiBSNFxuICAgKiAgLSBldmVudCBkYXRhIGluIFI1XG4gICAqICAtIHdpZENvdW50IGluIFI3XG4gICAqIEBwYXJhbSBib3hcbiAgICogQHJldHVybiB0cnVlIGlmIHRoZSBib3ggaGFzIHRoZSByZXF1aXJlZCBkYXRhIGFuZCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIGhhc0RhdGEgPSAoYm94OiBPdXRwdXRCb3gpOiBib29sZWFuID0+IHtcbiAgICB0cnkge1xuICAgICAgaWYgKFxuICAgICAgICBib3guYWRkaXRpb25hbFJlZ2lzdGVycyAmJlxuICAgICAgICBib3guYWRkaXRpb25hbFJlZ2lzdGVycy5SNCAmJlxuICAgICAgICBib3guYWRkaXRpb25hbFJlZ2lzdGVycy5SNSAmJlxuICAgICAgICBib3guYWRkaXRpb25hbFJlZ2lzdGVycy5SNyAmJlxuICAgICAgICBib3guYXNzZXRzICYmXG4gICAgICAgIGJveC5hc3NldHMubGVuZ3RoID4gMCAmJlxuICAgICAgICBib3guYXNzZXRzWzBdLnRva2VuSWQgPT09IHRoaXMuUldUICYmXG4gICAgICAgIGJveC5lcmdvVHJlZSA9PT0gdGhpcy5ldmVudFRyaWdnZXJFcmdvVHJlZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZEJveCA9IHdhc20uRXJnb0JveC5mcm9tX2pzb24oSnNvbkJJLnN0cmluZ2lmeShib3gpKTtcbiAgICAgICAgY29uc3QgUjRTZXJpYWxpemVkID0gcGFyc2VkQm94XG4gICAgICAgICAgLnJlZ2lzdGVyX3ZhbHVlKHdhc20uTm9uTWFuZGF0b3J5UmVnaXN0ZXJJZC5SNCkhXG4gICAgICAgICAgLnRvX2J5dGVfYXJyYXkoKTtcbiAgICAgICAgY29uc3QgUjVTZXJpYWxpemVkID0gcGFyc2VkQm94XG4gICAgICAgICAgLnJlZ2lzdGVyX3ZhbHVlKHdhc20uTm9uTWFuZGF0b3J5UmVnaXN0ZXJJZC5SNSkhXG4gICAgICAgICAgLnRvX2NvbGxfY29sbF9ieXRlKCk7XG4gICAgICAgIGlmIChSNFNlcmlhbGl6ZWQubGVuZ3RoID49IDEgJiYgUjVTZXJpYWxpemVkLmxlbmd0aCA+PSAxMikgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgYFVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQgd2hpbGUgY2hlY2tpbmcgdGhlIHByb3BlciB0cmlnZ2VyIGRhdGEgZm9ybWF0IGZvciBib3ggJHtib3guYm94SWR9OiAke2V9YCxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfTtcblxuICAvKipcbiAgICogZXh0cmFjdCBib3ggZGF0YSB0byBwcm9wZXIgZm9ybWF0IChub3QgaW5jbHVkaW5nIHNwZW5kaW5nIGluZm9ybWF0aW9uKVxuICAgKiBAcGFyYW0gYm94XG4gICAqIEByZXR1cm4gZXh0cmFjdGVkIGRhdGEgaW4gcHJvcGVyIGZvcm1hdFxuICAgKi9cbiAgZXh0cmFjdEJveERhdGEgPSAoXG4gICAgYm94OiBPdXRwdXRCb3gsXG4gICk6IE9taXQ8RXh0cmFjdGVkRXZlbnRUcmlnZ2VyLCAnc3BlbmRCbG9jaycgfCAnc3BlbmRIZWlnaHQnPiB8IHVuZGVmaW5lZCA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcnNlZEJveCA9IHdhc20uRXJnb0JveC5mcm9tX2pzb24oSnNvbkJJLnN0cmluZ2lmeShib3gpKTtcbiAgICAgIGNvbnN0IFI0U2VyaWFsaXplZCA9IHBhcnNlZEJveFxuICAgICAgICAucmVnaXN0ZXJfdmFsdWUod2FzbS5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI0KSFcbiAgICAgICAgLnRvX2J5dGVfYXJyYXkoKTtcbiAgICAgIGNvbnN0IFI1U2VyaWFsaXplZCA9IHBhcnNlZEJveFxuICAgICAgICAucmVnaXN0ZXJfdmFsdWUod2FzbS5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI1KSFcbiAgICAgICAgLnRvX2NvbGxfY29sbF9ieXRlKCk7XG5cbiAgICAgIGNvbnN0IFdJRHNDb3VudCA9IHBhcnNlZEJveFxuICAgICAgICAucmVnaXN0ZXJfdmFsdWUod2FzbS5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI3KSFcbiAgICAgICAgLnRvX2kzMigpO1xuICAgICAgY29uc3QgV0lEc0hhc2ggPSBCdWZmZXIuZnJvbShSNFNlcmlhbGl6ZWQpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIGNvbnN0IHNvdXJjZVR4SWQgPSBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbMF0pLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBldmVudElkID0gQnVmZmVyLmZyb20oYmxha2UyYihzb3VyY2VUeElkLCB1bmRlZmluZWQsIDMyKSkudG9TdHJpbmcoXG4gICAgICAgICdoZXgnLFxuICAgICAgKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGV2ZW50SWQ6IGV2ZW50SWQsXG4gICAgICAgIHR4SWQ6IGJveC50cmFuc2FjdGlvbklkLFxuICAgICAgICBib3hJZDogYm94LmJveElkLFxuICAgICAgICBzZXJpYWxpemVkOiBCdWZmZXIuZnJvbShwYXJzZWRCb3guc2lnbWFfc2VyaWFsaXplX2J5dGVzKCkpLnRvU3RyaW5nKFxuICAgICAgICAgICdiYXNlNjQnLFxuICAgICAgICApLFxuICAgICAgICB0b0NoYWluOiBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbMl0pLnRvU3RyaW5nKCksXG4gICAgICAgIHRvQWRkcmVzczogQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzRdKS50b1N0cmluZygpLFxuICAgICAgICBuZXR3b3JrRmVlOiBCaWdJbnQoXG4gICAgICAgICAgJzB4JyArIEJ1ZmZlci5mcm9tKFI1U2VyaWFsaXplZFs3XSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICApLnRvU3RyaW5nKDEwKSxcbiAgICAgICAgYnJpZGdlRmVlOiBCaWdJbnQoXG4gICAgICAgICAgJzB4JyArIEJ1ZmZlci5mcm9tKFI1U2VyaWFsaXplZFs2XSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICApLnRvU3RyaW5nKDEwKSxcbiAgICAgICAgYW1vdW50OiBCaWdJbnQoXG4gICAgICAgICAgJzB4JyArIEJ1ZmZlci5mcm9tKFI1U2VyaWFsaXplZFs1XSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICApLnRvU3RyaW5nKDEwKSxcbiAgICAgICAgc291cmNlQ2hhaW5Ub2tlbklkOiBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbOF0pLnRvU3RyaW5nKCksXG4gICAgICAgIHRhcmdldENoYWluVG9rZW5JZDogQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzldKS50b1N0cmluZygpLFxuICAgICAgICBzb3VyY2VUeElkOiBzb3VyY2VUeElkLFxuICAgICAgICBmcm9tQ2hhaW46IEJ1ZmZlci5mcm9tKFI1U2VyaWFsaXplZFsxXSkudG9TdHJpbmcoKSxcbiAgICAgICAgZnJvbUFkZHJlc3M6IEJ1ZmZlci5mcm9tKFI1U2VyaWFsaXplZFszXSkudG9TdHJpbmcoKSxcbiAgICAgICAgc291cmNlQmxvY2tJZDogQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzEwXSkudG9TdHJpbmcoKSxcbiAgICAgICAgV0lEc0NvdW50OiBXSURzQ291bnQsXG4gICAgICAgIFdJRHNIYXNoOiBXSURzSGFzaCxcbiAgICAgICAgc291cmNlQ2hhaW5IZWlnaHQ6IE51bWJlcihcbiAgICAgICAgICBCaWdJbnQoJzB4JyArIEJ1ZmZlci5mcm9tKFI1U2VyaWFsaXplZFsxMV0pLnRvU3RyaW5nKCdoZXgnKSkudG9TdHJpbmcoXG4gICAgICAgICAgICAxMCxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKFxuICAgICAgICBgVW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZCB3aGlsZSBleHRyYWN0aW5nIHRyaWdnZXIgZGF0YSBmb3IgYm94ICR7Ym94LmJveElkfTogJHtlfWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIGdldHMgYmxvY2sgaWQgYW5kIHRyYW5zYWN0aW9ucyBjb3JyZXNwb25kaW5nIHRvIHRoZSBibG9jayBhbmQgc2F2ZXMgaWYgdGhleSBhcmUgdmFsaWQgcm9zZW5cbiAgICogIHRyYW5zYWN0aW9ucyBhbmQgaW4gY2FzZSBvZiBzdWNjZXNzIHJldHVybiB0cnVlIGFuZCBpbiBjYXNlIG9mIGZhaWx1cmUgcmV0dXJucyBmYWxzZVxuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIHR4c1xuICAgKi9cbiAgcHJvY2Vzc1RyYW5zYWN0aW9ucyA9IGFzeW5jIChcbiAgICB0eHM6IEFycmF5PFRyYW5zYWN0aW9uPixcbiAgICBibG9jazogQmxvY2tJbmZvLFxuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYm94ZXM6IEFycmF5PEV4dHJhY3RlZEV2ZW50VHJpZ2dlcj4gPSBbXTtcbiAgICAgIGNvbnN0IHNwZW5kSW5mb0FycmF5OiBBcnJheTxTcGVuZEluZm8+ID0gW107XG4gICAgICB0eHMuZm9yRWFjaCgodHJhbnNhY3Rpb24pID0+IHtcbiAgICAgICAgLy8gZXh0cmFjdCBldmVudCByZXN1bHRcbiAgICAgICAgY29uc3QgeyByZXN1bHQsIHBheW1lbnRUeElkIH0gPSB0aGlzLmV4dHJhY3RFdmVudFJlc3VsdCh0cmFuc2FjdGlvbik7XG4gICAgICAgIGZvciAoY29uc3Qgb3V0cHV0IG9mIHRyYW5zYWN0aW9uLm91dHB1dHMpIHtcbiAgICAgICAgICAvLyBleHRyYWN0IG91dHB1dCBib3ggZGF0YVxuICAgICAgICAgIGlmICh0aGlzLmhhc0RhdGEob3V0cHV0KSkge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgIGBUcnlpbmcgdG8gZXh0cmFjdCBkYXRhIGZyb20gYm94ICR7b3V0cHV0LmJveElkfSBhdCBoZWlnaHQgJHtibG9jay5oZWlnaHR9YCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5leHRyYWN0Qm94RGF0YShvdXRwdXQpO1xuICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgICAgYEV4dHJhY3RlZCBkYXRhICR7SnNvbkJJLnN0cmluZ2lmeShkYXRhKX0gZnJvbSBib3ggJHtcbiAgICAgICAgICAgICAgICAgIG91dHB1dC5ib3hJZFxuICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBib3hlcy5wdXNoKGRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBwcm9jZXNzIGlucHV0c1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdHJhbnNhY3Rpb24uaW5wdXRzLmxlbmd0aDsgaW5kZXgrKylcbiAgICAgICAgICBzcGVuZEluZm9BcnJheS5wdXNoKHtcbiAgICAgICAgICAgIHR4SWQ6IHRyYW5zYWN0aW9uLmlkLFxuICAgICAgICAgICAgYm94SWQ6IHRyYW5zYWN0aW9uLmlucHV0c1tpbmRleF0uYm94SWQsXG4gICAgICAgICAgICBpbmRleDogaW5kZXgsXG4gICAgICAgICAgICBleHRyYXM6IHsgcmVzdWx0LCBwYXltZW50VHhJZCB9LFxuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICBpZiAoYm94ZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAoIShhd2FpdCB0aGlzLmFjdGlvbnMuc3RvcmVCb3hlcyhib3hlcywgYmxvY2ssIHRoaXMuZ2V0SWQoKSkpKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgICAgIGBEYXRhIGluc2VydGlvbiBmYWlsZWQgYXQgaGVpZ2h0ICR7YmxvY2suaGVpZ2h0fSBmb3IgZXh0cmFjdG9yICR7dGhpcy5pZH1gLFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudHJpZ2dlckNhbGxiYWNrcyhDYWxsYmFja1R5cGUuSW5zZXJ0LCBib3hlcyk7XG4gICAgICB9XG4gICAgICBjb25zdCBzcGVudERhdGEgPSBhd2FpdCB0aGlzLmFjdGlvbnMuc3BlbmRCb3hlcyhcbiAgICAgICAgc3BlbmRJbmZvQXJyYXksXG4gICAgICAgIGJsb2NrLFxuICAgICAgICB0aGlzLmlkLFxuICAgICAgKTtcbiAgICAgIHRoaXMudHJpZ2dlckNhbGxiYWNrcyhDYWxsYmFja1R5cGUuU3BlbmQsIHNwZW50RGF0YSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgIGBFcnJvciBpbiBzdG9yaW5nIGRhdGEgaW4gJHt0aGlzLmdldElkKCl9IG9mIHRoZSBibG9jayAke1xuICAgICAgICAgIGJsb2NrLmhlaWdodFxuICAgICAgICB9OiAke2V9YCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBleHRyYWN0cyByZXN1bHQgYW5kIHBheW1lbnRUeElkIGZyb20gYSB0cmFuc2FjdGlvblxuICAgKiByZXR1cm5zICd1bmtub3duJyBhcyByZXN1bHQgd2hlbiB0eCBpcyBuZWl0aGVyIGZyYXVkIG9yIHN1Y2Nlc3NmdWxcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcm90ZWN0ZWQgZXh0cmFjdEV2ZW50UmVzdWx0ID0gKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4ge1xuICAgIGxldCByZXN1bHQgPSBFdmVudFJlc3VsdC51bmtub3duO1xuICAgIGxldCBwYXltZW50VHhJZCA9ICcnO1xuICAgIGlmICh0cmFuc2FjdGlvbi5vdXRwdXRzWzBdLmVyZ29UcmVlID09PSB0aGlzLmZyYXVkRXJnb1RyZWUpXG4gICAgICByZXN1bHQgPSBFdmVudFJlc3VsdC5mcmF1ZDtcbiAgICBlbHNlIGlmICh0cmFuc2FjdGlvbi5vdXRwdXRzWzBdLmVyZ29UcmVlID09PSB0aGlzLnBlcm1pdEVyZ29UcmVlKSB7XG4gICAgICByZXN1bHQgPSBFdmVudFJlc3VsdC5zdWNjZXNzZnVsO1xuICAgICAgLy8gZmluZCBmaXJzdCBub24td2F0Y2hlciBib3ggd2l0aCBSNCB2YWx1ZVxuICAgICAgZm9yIChjb25zdCBib3ggb2YgdHJhbnNhY3Rpb24ub3V0cHV0cykge1xuICAgICAgICAvLyBpZiBpdCdzIHdhdGNoZXIgYm94LCBza2lwIGl0XG4gICAgICAgIGlmIChib3guZXJnb1RyZWUgPT09IHRoaXMucGVybWl0RXJnb1RyZWUpIGNvbnRpbnVlO1xuICAgICAgICBjb25zdCBvdXRwdXRQYXJzZWQgPSB3YXNtLkVyZ29Cb3guZnJvbV9qc29uKEpzb25CSS5zdHJpbmdpZnkoYm94KSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgUjRTZXJpYWxpemVkID0gb3V0cHV0UGFyc2VkXG4gICAgICAgICAgICAucmVnaXN0ZXJfdmFsdWUod2FzbS5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI0KVxuICAgICAgICAgICAgPy50b19ieXRlX2FycmF5KCk7XG4gICAgICAgICAgaWYgKFI0U2VyaWFsaXplZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBsZXQgdHhJZCA9IEJ1ZmZlci5mcm9tKFI0U2VyaWFsaXplZCkudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIC8vIHdlIGFzc3VtZWQgdHhJZCBvbmx5IGluY2x1ZGVzIHRoZXNlIGNoYXJhY3RlcnNcbiAgICAgICAgICAgIGlmICghdHhJZC5tYXRjaCgvXlswLTlhLXpBLVpcXC1fLl0rJC8pKSB7XG4gICAgICAgICAgICAgIC8vIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAgICAgICAgICAgICAgdHhJZCA9IEJ1ZmZlci5mcm9tKFI0U2VyaWFsaXplZCkudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGF5bWVudFR4SWQgPSB0eElkO1xuICAgICAgICAgICAgaWYgKHR4SWQgPT09ICcnKSB7XG4gICAgICAgICAgICAgIHBheW1lbnRUeElkID0gdHJhbnNhY3Rpb24uaWQ7XG4gICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgICAgIGBzdWNjZXNzZnVsIGV2ZW50IGlzIHNwZW50LiB0eCBbJHt0cmFuc2FjdGlvbi5pZH1dIGlzIGJvdGggcGF5bWVudCBhbmQgcmV3YXJkIGRpc3RyaWJ1dGlvbiB0eGAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBwYXltZW50VHhJZCBpcyBleHRyYWN0ZWQuIG5vIG5lZWQgdG8gcHJvY2VzcyBuZXh0IGJveGVzXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICByZXN1bHQsXG4gICAgICBwYXltZW50VHhJZCxcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBFdmVudFRyaWdnZXJFeHRyYWN0b3I7XG4iXX0=
|
|
215
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRUcmlnZ2VyRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2V4dHJhY3Rvci9ldmVudFRyaWdnZXJFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNsQyxPQUFPLEtBQUssSUFBSSxNQUFNLHNCQUFzQixDQUFDO0FBRTdDLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsWUFBWSxHQUViLE1BQU0sa0NBQWtDLENBQUM7QUFVMUMsT0FBTyxrQkFBa0IsTUFBTSwrQkFBK0IsQ0FBQztBQUcvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEMsTUFBTSxxQkFBc0IsU0FBUSx3QkFHbkM7SUFDQyxFQUFFLENBQVM7SUFDUSxPQUFPLENBQXFCO0lBQzlCLG9CQUFvQixDQUFTO0lBQzdCLGNBQWMsQ0FBUztJQUN2QixhQUFhLENBQVM7SUFDdEIsR0FBRyxDQUFTO0lBRTdCLFlBQ0UsRUFBVSxFQUNWLFVBQXNCLEVBQ3RCLElBQXFCLEVBQ3JCLEdBQVcsRUFDWCxPQUFlLEVBQ2YsR0FBVyxFQUNYLGFBQXFCLEVBQ3JCLFlBQW9CLEVBQ3BCLE1BQXVCLEVBQ3ZCLFVBQVUsR0FBRyxJQUFJO1FBRWpCLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7YUFDMUQsWUFBWSxFQUFFO2FBQ2QsZUFBZSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGNBQWMs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QUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDbkQsQ0FBQzt3QkFDRCxXQUFXLEdBQUcsSUFBSSxDQUFDO3dCQUNuQixJQUFJLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQzs0QkFDaEIsV0FBVyxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUM7NEJBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLGtDQUFrQyxXQUFXLENBQUMsRUFBRSw4Q0FBOEMsQ0FDL0YsQ0FBQzt3QkFDSixDQUFDO3dCQUNELDBEQUEwRDt3QkFDMUQsTUFBTTtvQkFDUixDQUFDO2dCQUNILENBQUM7Z0JBQUMsTUFBTSxDQUFDO29CQUNQLFNBQVM7Z0JBQ1gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTztZQUNMLE1BQU07WUFDTixXQUFXO1NBQ1osQ0FBQztJQUNKLENBQUMsQ0FBQztDQUNIO0FBRUQsZUFBZSxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJsYWtlMmIgfSBmcm9tICdibGFrZWpzJztcbmltcG9ydCAqIGFzIHdhc20gZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuXG5pbXBvcnQge1xuICBBYnN0cmFjdEVyZ29Cb3hFeHRyYWN0b3IsXG4gIENhbGxiYWNrVHlwZSxcbiAgU3BlbmRJbmZvLFxufSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWV4dHJhY3Rvcic7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuaW1wb3J0IHtcbiAgQmxvY2tJbmZvLFxuICBFcmdvTmV0d29ya1R5cGUsXG4gIE91dHB1dEJveCxcbiAgVHJhbnNhY3Rpb24sXG59IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcblxuaW1wb3J0IEV2ZW50VHJpZ2dlckFjdGlvbiBmcm9tICcuLi9hY3Rpb25zL2V2ZW50VHJpZ2dlckFjdGlvbic7XG5pbXBvcnQgRXZlbnRUcmlnZ2VyRW50aXR5IGZyb20gJy4uL2VudGl0aWVzL2V2ZW50VHJpZ2dlckVudGl0eSc7XG5pbXBvcnQgeyBFeHRyYWN0ZWRFdmVudFRyaWdnZXIgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2V4dHJhY3RlZEV2ZW50VHJpZ2dlcic7XG5pbXBvcnQgeyBFdmVudFJlc3VsdCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEpzb25CSSB9IGZyb20gJy4uL3V0aWxzJztcblxuY2xhc3MgRXZlbnRUcmlnZ2VyRXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RFcmdvQm94RXh0cmFjdG9yPFxuICBFeHRyYWN0ZWRFdmVudFRyaWdnZXIsXG4gIEV2ZW50VHJpZ2dlckVudGl0eVxuPiB7XG4gIGlkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCByZWFkb25seSBhY3Rpb25zOiBFdmVudFRyaWdnZXJBY3Rpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRUcmlnZ2VyRXJnb1RyZWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBwZXJtaXRFcmdvVHJlZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGZyYXVkRXJnb1RyZWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBSV1Q6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBpZDogc3RyaW5nLFxuICAgIGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsXG4gICAgdHlwZTogRXJnb05ldHdvcmtUeXBlLFxuICAgIHVybDogc3RyaW5nLFxuICAgIGFkZHJlc3M6IHN0cmluZyxcbiAgICBSV1Q6IHN0cmluZyxcbiAgICBwZXJtaXRBZGRyZXNzOiBzdHJpbmcsXG4gICAgZnJhdWRBZGRyZXNzOiBzdHJpbmcsXG4gICAgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIsXG4gICAgaW5pdGlhbGl6ZSA9IHRydWUsXG4gICkge1xuICAgIHN1cGVyKHsgdHlwZSwgdXJsLCBhZGRyZXNzLCBhY3RpdmU6IGluaXRpYWxpemUgfSwgbG9nZ2VyKTtcbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgdGhpcy5ldmVudFRyaWdnZXJFcmdvVHJlZSA9IHdhc20uQWRkcmVzcy5mcm9tX2Jhc2U1OChhZGRyZXNzKVxuICAgICAgLnRvX2VyZ29fdHJlZSgpXG4gICAgICAudG9fYmFzZTE2X2J5dGVzKCk7XG4gICAgdGhpcy5wZXJtaXRFcmdvVHJlZSA9IHdhc20uQWRkcmVzcy5mcm9tX2Jhc2U1OChwZXJtaXRBZGRyZXNzKVxuICAgICAgLnRvX2VyZ29fdHJlZSgpXG4gICAgICAudG9fYmFzZTE2X2J5dGVzKCk7XG4gICAgdGhpcy5mcmF1ZEVyZ29UcmVlID0gd2FzbS5BZGRyZXNzLmZyb21fYmFzZTU4KGZyYXVkQWRkcmVzcylcbiAgICAgIC50b19lcmdvX3RyZWUoKVxuICAgICAgLnRvX2Jhc2UxNl9ieXRlcygpO1xuICAgIHRoaXMuUldUID0gUldUO1xuICAgIHRoaXMuYWN0aW9ucyA9IG5ldyBFdmVudFRyaWdnZXJBY3Rpb24oZGF0YVNvdXJjZSwgdGhpcy5sb2dnZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBJZCBmb3IgY3VycmVudCBleHRyYWN0b3JcbiAgICovXG4gIGdldElkID0gKCkgPT4gdGhpcy5pZDtcblxuICAvKipcbiAgICogY2hlY2sgcHJvcGVyIGRhdGEgZm9ybWF0IGluIHRoZSBib3hcbiAgICogIC0gYm94IGVyZ29UcmVlXG4gICAqICAtIFJXVCBpbiBmaXJzdCB0b2tlbiBwbGFjZVxuICAgKiAgLSB3aWRMaXN0SGFzaCBpbiBSNFxuICAgKiAgLSBldmVudCBkYXRhIGluIFI1XG4gICAqICAtIHdpZENvdW50IGluIFI3XG4gICAqIEBwYXJhbSBib3hcbiAgICogQHJldHVybiB0cnVlIGlmIHRoZSBib3ggaGFzIHRoZSByZXF1aXJlZCBkYXRhIGFuZCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIGhhc0JveERhdGEgPSAoYm94OiBPdXRwdXRCb3gpOiBib29sZWFuID0+IHtcbiAgICB0cnkge1xuICAgICAgaWYgKFxuICAgICAgICBib3guYWRkaXRpb25hbFJlZ2lzdGVycyAmJlxuICAgICAgICBib3guYWRkaXRpb25hbFJlZ2lzdGVycy5SNCAmJlxuICAgICAgICBib3guYWRkaXRpb25hbFJlZ2lzdGVycy5SNSAmJlxuICAgICAgICBib3guYWRkaXRpb25hbFJlZ2lzdGVycy5SNyAmJlxuICAgICAgICBib3guYXNzZXRzICYmXG4gICAgICAgIGJveC5hc3NldHMubGVuZ3RoID4gMCAmJlxuICAgICAgICBib3guYXNzZXRzWzBdLnRva2VuSWQgPT09IHRoaXMuUldUICYmXG4gICAgICAgIGJveC5lcmdvVHJlZSA9PT0gdGhpcy5ldmVudFRyaWdnZXJFcmdvVHJlZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZEJveCA9IHdhc20uRXJnb0JveC5mcm9tX2pzb24oSnNvbkJJLnN0cmluZ2lmeShib3gpKTtcbiAgICAgICAgY29uc3QgUjRTZXJpYWxpemVkID0gcGFyc2VkQm94XG4gICAgICAgICAgLnJlZ2lzdGVyX3ZhbHVlKHdhc20uTm9uTWFuZGF0b3J5UmVnaXN0ZXJJZC5SNCkhXG4gICAgICAgICAgLnRvX2J5dGVfYXJyYXkoKTtcbiAgICAgICAgY29uc3QgUjVTZXJpYWxpemVkID0gcGFyc2VkQm94XG4gICAgICAgICAgLnJlZ2lzdGVyX3ZhbHVlKHdhc20uTm9uTWFuZGF0b3J5UmVnaXN0ZXJJZC5SNSkhXG4gICAgICAgICAgLnRvX2NvbGxfY29sbF9ieXRlKCk7XG4gICAgICAgIGlmIChSNFNlcmlhbGl6ZWQubGVuZ3RoID49IDEgJiYgUjVTZXJpYWxpemVkLmxlbmd0aCA+PSAxMikgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgYFVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQgd2hpbGUgY2hlY2tpbmcgdGhlIHByb3BlciB0cmlnZ2VyIGRhdGEgZm9ybWF0IGZvciBib3ggJHtib3guYm94SWR9OiAke2V9YCxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfTtcblxuICAvKipcbiAgICogZXh0cmFjdCBib3ggZGF0YSB0byBwcm9wZXIgZm9ybWF0IChub3QgaW5jbHVkaW5nIHNwZW5kaW5nIGluZm9ybWF0aW9uKVxuICAgKiBAcGFyYW0gYm94XG4gICAqIEByZXR1cm4gZXh0cmFjdGVkIGRhdGEgaW4gcHJvcGVyIGZvcm1hdFxuICAgKi9cbiAgZXh0cmFjdEJveERhdGEgPSAoXG4gICAgYm94OiBPdXRwdXRCb3gsXG4gICk6IE9taXQ8RXh0cmFjdGVkRXZlbnRUcmlnZ2VyLCAnc3BlbmRCbG9jaycgfCAnc3BlbmRIZWlnaHQnPiB8IHVuZGVmaW5lZCA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcnNlZEJveCA9IHdhc20uRXJnb0JveC5mcm9tX2pzb24oSnNvbkJJLnN0cmluZ2lmeShib3gpKTtcbiAgICAgIGNvbnN0IFI0U2VyaWFsaXplZCA9IHBhcnNlZEJveFxuICAgICAgICAucmVnaXN0ZXJfdmFsdWUod2FzbS5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI0KSFcbiAgICAgICAgLnRvX2J5dGVfYXJyYXkoKTtcbiAgICAgIGNvbnN0IFI1U2VyaWFsaXplZCA9IHBhcnNlZEJveFxuICAgICAgICAucmVnaXN0ZXJfdmFsdWUod2FzbS5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI1KSFcbiAgICAgICAgLnRvX2NvbGxfY29sbF9ieXRlKCk7XG5cbiAgICAgIGNvbnN0IFdJRHNDb3VudCA9IHBhcnNlZEJveFxuICAgICAgICAucmVnaXN0ZXJfdmFsdWUod2FzbS5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI3KSFcbiAgICAgICAgLnRvX2kzMigpO1xuICAgICAgY29uc3QgV0lEc0hhc2ggPSBCdWZmZXIuZnJvbShSNFNlcmlhbGl6ZWQpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIGNvbnN0IHNvdXJjZVR4SWQgPSBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbMF0pLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBldmVudElkID0gQnVmZmVyLmZyb20oYmxha2UyYihzb3VyY2VUeElkLCB1bmRlZmluZWQsIDMyKSkudG9TdHJpbmcoXG4gICAgICAgICdoZXgnLFxuICAgICAgKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGV2ZW50SWQ6IGV2ZW50SWQsXG4gICAgICAgIHR4SWQ6IGJveC50cmFuc2FjdGlvbklkLFxuICAgICAgICBpZGVudGlmaWVyOiBib3guYm94SWQsXG4gICAgICAgIHNlcmlhbGl6ZWQ6IEJ1ZmZlci5mcm9tKHBhcnNlZEJveC5zaWdtYV9zZXJpYWxpemVfYnl0ZXMoKSkudG9TdHJpbmcoXG4gICAgICAgICAgJ2Jhc2U2NCcsXG4gICAgICAgICksXG4gICAgICAgIHRvQ2hhaW46IEJ1ZmZlci5mcm9tKFI1U2VyaWFsaXplZFsyXSkudG9TdHJpbmcoKSxcbiAgICAgICAgdG9BZGRyZXNzOiBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbNF0pLnRvU3RyaW5nKCksXG4gICAgICAgIG5ldHdvcmtGZWU6IEJpZ0ludChcbiAgICAgICAgICAnMHgnICsgQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzddKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgICkudG9TdHJpbmcoMTApLFxuICAgICAgICBicmlkZ2VGZWU6IEJpZ0ludChcbiAgICAgICAgICAnMHgnICsgQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzZdKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgICkudG9TdHJpbmcoMTApLFxuICAgICAgICBhbW91bnQ6IEJpZ0ludChcbiAgICAgICAgICAnMHgnICsgQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzVdKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgICkudG9TdHJpbmcoMTApLFxuICAgICAgICBzb3VyY2VDaGFpblRva2VuSWQ6IEJ1ZmZlci5mcm9tKFI1U2VyaWFsaXplZFs4XSkudG9TdHJpbmcoKSxcbiAgICAgICAgdGFyZ2V0Q2hhaW5Ub2tlbklkOiBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbOV0pLnRvU3RyaW5nKCksXG4gICAgICAgIHNvdXJjZVR4SWQ6IHNvdXJjZVR4SWQsXG4gICAgICAgIGZyb21DaGFpbjogQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzFdKS50b1N0cmluZygpLFxuICAgICAgICBmcm9tQWRkcmVzczogQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzNdKS50b1N0cmluZygpLFxuICAgICAgICBzb3VyY2VCbG9ja0lkOiBCdWZmZXIuZnJvbShSNVNlcmlhbGl6ZWRbMTBdKS50b1N0cmluZygpLFxuICAgICAgICBXSURzQ291bnQ6IFdJRHNDb3VudCxcbiAgICAgICAgV0lEc0hhc2g6IFdJRHNIYXNoLFxuICAgICAgICBzb3VyY2VDaGFpbkhlaWdodDogTnVtYmVyKFxuICAgICAgICAgIEJpZ0ludCgnMHgnICsgQnVmZmVyLmZyb20oUjVTZXJpYWxpemVkWzExXSkudG9TdHJpbmcoJ2hleCcpKS50b1N0cmluZyhcbiAgICAgICAgICAgIDEwLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oXG4gICAgICAgIGBVbmV4cGVjdGVkIGVycm9yIG9jY3VycmVkIHdoaWxlIGV4dHJhY3RpbmcgdHJpZ2dlciBkYXRhIGZvciBib3ggJHtib3guYm94SWR9OiAke2V9YCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogZ2V0cyBibG9jayBpZCBhbmQgdHJhbnNhY3Rpb25zIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGJsb2NrIGFuZCBzYXZlcyBpZiB0aGV5IGFyZSB2YWxpZCByb3NlblxuICAgKiAgdHJhbnNhY3Rpb25zIGFuZCBpbiBjYXNlIG9mIHN1Y2Nlc3MgcmV0dXJuIHRydWUgYW5kIGluIGNhc2Ugb2YgZmFpbHVyZSByZXR1cm5zIGZhbHNlXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gdHhzXG4gICAqL1xuICBwcm9jZXNzVHJhbnNhY3Rpb25zID0gYXN5bmMgKFxuICAgIHR4czogQXJyYXk8VHJhbnNhY3Rpb24+LFxuICAgIGJsb2NrOiBCbG9ja0luZm8sXG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBib3hlczogQXJyYXk8RXh0cmFjdGVkRXZlbnRUcmlnZ2VyPiA9IFtdO1xuICAgICAgY29uc3Qgc3BlbmRJbmZvQXJyYXk6IEFycmF5PFNwZW5kSW5mbz4gPSBbXTtcbiAgICAgIHR4cy5mb3JFYWNoKCh0cmFuc2FjdGlvbikgPT4ge1xuICAgICAgICAvLyBleHRyYWN0IGV2ZW50IHJlc3VsdFxuICAgICAgICBjb25zdCB7IHJlc3VsdCwgcGF5bWVudFR4SWQgfSA9IHRoaXMuZXh0cmFjdEV2ZW50UmVzdWx0KHRyYW5zYWN0aW9uKTtcbiAgICAgICAgZm9yIChjb25zdCBvdXRwdXQgb2YgdHJhbnNhY3Rpb24ub3V0cHV0cykge1xuICAgICAgICAgIC8vIGV4dHJhY3Qgb3V0cHV0IGJveCBkYXRhXG4gICAgICAgICAgaWYgKHRoaXMuaGFzQm94RGF0YShvdXRwdXQpKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgICAgYFRyeWluZyB0byBleHRyYWN0IGRhdGEgZnJvbSBib3ggJHtvdXRwdXQuYm94SWR9IGF0IGhlaWdodCAke2Jsb2NrLmhlaWdodH1gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmV4dHJhY3RCb3hEYXRhKG91dHB1dCk7XG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgICAgICBgRXh0cmFjdGVkIGRhdGEgJHtKc29uQkkuc3RyaW5naWZ5KGRhdGEpfSBmcm9tIGJveCAke1xuICAgICAgICAgICAgICAgICAgb3V0cHV0LmJveElkXG4gICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGJveGVzLnB1c2goZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIHByb2Nlc3MgaW5wdXRzXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0cmFuc2FjdGlvbi5pbnB1dHMubGVuZ3RoOyBpbmRleCsrKVxuICAgICAgICAgIHNwZW5kSW5mb0FycmF5LnB1c2goe1xuICAgICAgICAgICAgdHhJZDogdHJhbnNhY3Rpb24uaWQsXG4gICAgICAgICAgICBib3hJZDogdHJhbnNhY3Rpb24uaW5wdXRzW2luZGV4XS5ib3hJZCxcbiAgICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICAgIGV4dHJhczogeyByZXN1bHQsIHBheW1lbnRUeElkIH0sXG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIGlmIChib3hlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmICghKGF3YWl0IHRoaXMuYWN0aW9ucy5zdG9yZUVudGl0aWVzKGJveGVzLCBibG9jaywgdGhpcy5nZXRJZCgpKSkpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKFxuICAgICAgICAgICAgYERhdGEgaW5zZXJ0aW9uIGZhaWxlZCBhdCBoZWlnaHQgJHtibG9jay5oZWlnaHR9IGZvciBleHRyYWN0b3IgJHt0aGlzLmlkfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50cmlnZ2VyQ2FsbGJhY2tzKENhbGxiYWNrVHlwZS5JbnNlcnQsIGJveGVzKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNwZW50RGF0YSA9IGF3YWl0IHRoaXMuYWN0aW9ucy5zcGVuZEJveGVzKFxuICAgICAgICBzcGVuZEluZm9BcnJheSxcbiAgICAgICAgYmxvY2ssXG4gICAgICAgIHRoaXMuaWQsXG4gICAgICApO1xuICAgICAgdGhpcy50cmlnZ2VyQ2FsbGJhY2tzKENhbGxiYWNrVHlwZS5TcGVuZCwgc3BlbnREYXRhKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihcbiAgICAgICAgYEVycm9yIGluIHN0b3JpbmcgZGF0YSBpbiAke3RoaXMuZ2V0SWQoKX0gb2YgdGhlIGJsb2NrICR7XG4gICAgICAgICAgYmxvY2suaGVpZ2h0XG4gICAgICAgIH06ICR7ZX1gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIHJlc3VsdCBhbmQgcGF5bWVudFR4SWQgZnJvbSBhIHRyYW5zYWN0aW9uXG4gICAqIHJldHVybnMgJ3Vua25vd24nIGFzIHJlc3VsdCB3aGVuIHR4IGlzIG5laXRoZXIgZnJhdWQgb3Igc3VjY2Vzc2Z1bFxuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb25cbiAgICogQHJldHVybnNcbiAgICovXG4gIHByb3RlY3RlZCBleHRyYWN0RXZlbnRSZXN1bHQgPSAodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiB7XG4gICAgbGV0IHJlc3VsdCA9IEV2ZW50UmVzdWx0LnVua25vd247XG4gICAgbGV0IHBheW1lbnRUeElkID0gJyc7XG4gICAgaWYgKHRyYW5zYWN0aW9uLm91dHB1dHNbMF0uZXJnb1RyZWUgPT09IHRoaXMuZnJhdWRFcmdvVHJlZSlcbiAgICAgIHJlc3VsdCA9IEV2ZW50UmVzdWx0LmZyYXVkO1xuICAgIGVsc2UgaWYgKHRyYW5zYWN0aW9uLm91dHB1dHNbMF0uZXJnb1RyZWUgPT09IHRoaXMucGVybWl0RXJnb1RyZWUpIHtcbiAgICAgIHJlc3VsdCA9IEV2ZW50UmVzdWx0LnN1Y2Nlc3NmdWw7XG4gICAgICAvLyBmaW5kIGZpcnN0IG5vbi13YXRjaGVyIGJveCB3aXRoIFI0IHZhbHVlXG4gICAgICBmb3IgKGNvbnN0IGJveCBvZiB0cmFuc2FjdGlvbi5vdXRwdXRzKSB7XG4gICAgICAgIC8vIGlmIGl0J3Mgd2F0Y2hlciBib3gsIHNraXAgaXRcbiAgICAgICAgaWYgKGJveC5lcmdvVHJlZSA9PT0gdGhpcy5wZXJtaXRFcmdvVHJlZSkgY29udGludWU7XG4gICAgICAgIGNvbnN0IG91dHB1dFBhcnNlZCA9IHdhc20uRXJnb0JveC5mcm9tX2pzb24oSnNvbkJJLnN0cmluZ2lmeShib3gpKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBSNFNlcmlhbGl6ZWQgPSBvdXRwdXRQYXJzZWRcbiAgICAgICAgICAgIC5yZWdpc3Rlcl92YWx1ZSh3YXNtLk5vbk1hbmRhdG9yeVJlZ2lzdGVySWQuUjQpXG4gICAgICAgICAgICA/LnRvX2J5dGVfYXJyYXkoKTtcbiAgICAgICAgICBpZiAoUjRTZXJpYWxpemVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxldCB0eElkID0gQnVmZmVyLmZyb20oUjRTZXJpYWxpemVkKS50b1N0cmluZygpO1xuICAgICAgICAgICAgLy8gd2UgYXNzdW1lZCB0eElkIG9ubHkgaW5jbHVkZXMgdGhlc2UgY2hhcmFjdGVyc1xuICAgICAgICAgICAgaWYgKCF0eElkLm1hdGNoKC9eWzAtOWEtekEtWlxcLV8uXSskLykpIHtcbiAgICAgICAgICAgICAgLy8gYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICAgICAgICAgICAgICB0eElkID0gQnVmZmVyLmZyb20oUjRTZXJpYWxpemVkKS50b1N0cmluZygnaGV4Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXltZW50VHhJZCA9IHR4SWQ7XG4gICAgICAgICAgICBpZiAodHhJZCA9PT0gJycpIHtcbiAgICAgICAgICAgICAgcGF5bWVudFR4SWQgPSB0cmFuc2FjdGlvbi5pZDtcbiAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgICAgYHN1Y2Nlc3NmdWwgZXZlbnQgaXMgc3BlbnQuIHR4IFske3RyYW5zYWN0aW9uLmlkfV0gaXMgYm90aCBwYXltZW50IGFuZCByZXdhcmQgZGlzdHJpYnV0aW9uIHR4YCxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHBheW1lbnRUeElkIGlzIGV4dHJhY3RlZC4gbm8gbmVlZCB0byBwcm9jZXNzIG5leHQgYm94ZXNcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlc3VsdCxcbiAgICAgIHBheW1lbnRUeElkLFxuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IEV2ZW50VHJpZ2dlckV4dHJhY3RvcjtcbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AbstractExtractor } from '@rosen-bridge/abstract-extractor';
|
|
2
2
|
import { AbstractLogger } from '@rosen-bridge/abstract-logger';
|
|
3
3
|
import { DataSource } from '@rosen-bridge/extended-typeorm';
|
|
4
|
-
import {
|
|
4
|
+
import { BlockInfo, Transaction } from '@rosen-bridge/scanner-interfaces';
|
|
5
5
|
import { V1 } from '@rosen-clients/ergo-explorer';
|
|
6
6
|
import PermitAction from '../actions/permitAction';
|
|
7
7
|
import { ExtractedPermit } from '../interfaces/extractedPermit';
|
|
@@ -96,12 +96,12 @@ declare class PermitExtractor extends AbstractExtractor<Transaction> {
|
|
|
96
96
|
* @param block
|
|
97
97
|
* @param txs
|
|
98
98
|
*/
|
|
99
|
-
processTransactions: (txs: Array<Transaction>, block:
|
|
99
|
+
processTransactions: (txs: Array<Transaction>, block: BlockInfo) => Promise<boolean>;
|
|
100
100
|
forkBlock: (hash: string) => Promise<void>;
|
|
101
101
|
/**
|
|
102
102
|
* Initializes the database with older permits related to the address
|
|
103
103
|
*/
|
|
104
|
-
|
|
104
|
+
initializeData: (initialBlock: BlockInfo) => Promise<void>;
|
|
105
105
|
/**
|
|
106
106
|
* Validate all remaining permits in the database
|
|
107
107
|
* update the correct ones and remove the invalid ones
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permitExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/permitExtractor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,
|
|
1
|
+
{"version":3,"file":"permitExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/permitExtractor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAkC,EAAE,EAAE,EAAE,MAAM,8BAA8B,CAAC;AAE7E,OAAO,YAAY,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,cAAM,eAAgB,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IAC1D,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,QAAQ,CAAC,WAAW;;oDArBqB,CAAC;gEAIJ,CAAC;gEAGpC,CAAC;8CAGL,CAAC;+CAIC,CAAC;;mCAME,CAAC;;;qEAc6B,CAAC;oEAKC,CAAC;;;2EAanB,CAAC;oDAMT,CAAC;4DAKG,CAAF;;;;;;;;;;;;;;iFAiCF,CAAN;;;;;;;gEA0CY,CAAC;yDAGwB,CAAC;;0DAMxB,CAAA;sEAKE,CAAC;iEAKrB,CADA;6EAK8C,CAAC;yDAMxB,CAAC;2EAIgC,CAAC;gEAM/C,CAAL;;0IAiBG,CAAC;yHAKI,CAAC;kHAUH,CAAC;mCAG8B,CAAC;;;;mCAYrC,CAAC;;;gEAcD,CAAC;oEAMW,CAAC;;mCAYV,CAAC;;0CAIN,CAAA;;gDAOkB,CAAA;;uEAUM,CAAC;;;;;;;MAhQR;gBAGnB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,cAAc;IAczB,KAAK,eAAiB;IAEtB;;;;;OAKG;IACH,mBAAmB,GACjB,KAAK,KAAK,CAAC,WAAW,CAAC,EACvB,OAAO,SAAS,KACf,OAAO,CAAC,OAAO,CAAC,CAoEjB;IAEF,SAAS,GAAU,MAAM,MAAM,mBAE7B;IAEF;;OAEG;IACH,cAAc,GAAU,cAAc,SAAS,mBA0B7C;IAEF;;;;;OAKG;IACH,wBAAwB,GACtB,uBAAuB,KAAK,CAAC,MAAM,CAAC,EACpC,eAAe,MAAM,mBAmBrB;IAEF;;;OAGG;IACH,kBAAkB,GAChB,OAAO,MAAM,KACZ,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAQrC;IAEF;;;;OAIG;IACH,oBAAoB,GAClB,eAAe,MAAM,KACpB,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAuBhC;IAEF;;;OAGG;IACH,UAAU,GAAU,MAAM,MAAM;;;OAM9B;IAEF;;;;;;;OAOG;IACH,iBAAiB,GAAU,OAAO,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,gCA4BpD;CACH;AAED,eAAe,eAAe,CAAC"}
|