@rosen-bridge/abstract-extractor 1.0.0 → 1.0.1-2e78c47d
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 +7 -0
- package/dist/ergo/AbstractErgoExtractor.d.ts +3 -2
- package/dist/ergo/AbstractErgoExtractor.d.ts.map +1 -1
- package/dist/ergo/AbstractErgoExtractor.js +3 -2
- package/dist/ergo/AbstractErgoExtractorAction.d.ts +35 -3
- package/dist/ergo/AbstractErgoExtractorAction.d.ts.map +1 -1
- package/dist/ergo/AbstractErgoExtractorAction.js +105 -33
- package/dist/ergo/interfaces.d.ts +7 -3
- package/dist/ergo/interfaces.d.ts.map +1 -1
- package/dist/ergo/interfaces.js +1 -1
- package/dist/ergo/network/ExplorerNetwork.d.ts.map +1 -1
- package/dist/ergo/network/ExplorerNetwork.js +8 -4
- package/dist/ergo/network/NodeNetwork.d.ts.map +1 -1
- package/dist/ergo/network/NodeNetwork.js +2 -1
- package/lib/ergo/AbstractErgoExtractor.ts +8 -2
- package/lib/ergo/AbstractErgoExtractorAction.ts +146 -46
- package/lib/ergo/interfaces.ts +8 -3
- package/lib/ergo/network/ExplorerNetwork.ts +10 -7
- package/lib/ergo/network/NodeNetwork.ts +2 -1
- package/package.json +3 -3
- package/tests/AbstractErgoExtractor.spec.ts +5 -2
- package/tests/network/testData.ts +11 -18
- package/tests/testData.ts +3 -11
- package/tsconfig.build.tsbuildinfo +1 -1
|
@@ -43,7 +43,7 @@ export class ExplorerNetwork extends AbstractNetwork {
|
|
|
43
43
|
transactionId: box.transactionId,
|
|
44
44
|
value: box.value,
|
|
45
45
|
additionalRegisters: mapValues(box.additionalRegisters, 'serializedValue'),
|
|
46
|
-
assets: box.assets?.map((asset) => pick(asset, ['tokenId', 'amount'])),
|
|
46
|
+
assets: box.assets?.map((asset) => pick(asset, ['tokenId', 'amount'])) ?? [],
|
|
47
47
|
spentHeight: spendInfo?.height,
|
|
48
48
|
spentBlockId: spendInfo?.hash,
|
|
49
49
|
spentTransactionId: box.spentTransactionId,
|
|
@@ -62,12 +62,14 @@ export class ExplorerNetwork extends AbstractNetwork {
|
|
|
62
62
|
dataInputs: tx.dataInputs?.map((dataInput) => ({
|
|
63
63
|
boxId: dataInput.boxId,
|
|
64
64
|
})) ?? [],
|
|
65
|
+
// TODO: Add input extension to explorer local/ergo/rosen-bridge/scanner/-/issues/156
|
|
65
66
|
inputs: tx.inputs?.map((input) => ({ boxId: input.boxId })) ?? [],
|
|
66
67
|
outputs: tx.outputs?.map((output) => ({
|
|
67
68
|
boxId: output.boxId,
|
|
68
69
|
transactionId: output.transactionId,
|
|
69
70
|
additionalRegisters: mapValues(output.additionalRegisters, 'serializedValue'),
|
|
70
|
-
assets: output.assets?.map((asset) => pick(asset, ['tokenId', 'amount']))
|
|
71
|
+
assets: output.assets?.map((asset) => pick(asset, ['tokenId', 'amount'])) ??
|
|
72
|
+
[],
|
|
71
73
|
ergoTree: output.ergoTree,
|
|
72
74
|
creationHeight: output.creationHeight,
|
|
73
75
|
index: output.index,
|
|
@@ -85,12 +87,14 @@ export class ExplorerNetwork extends AbstractNetwork {
|
|
|
85
87
|
dataInputs: tx.dataInputs?.map((dataInput) => ({
|
|
86
88
|
boxId: dataInput.id,
|
|
87
89
|
})) ?? [],
|
|
90
|
+
// TODO: Add input extension local/ergo/rosen-bridge/scanner/-/issues/156
|
|
88
91
|
inputs: tx.inputs?.map((input) => ({ boxId: input.id })) ?? [],
|
|
89
92
|
outputs: tx.outputs?.map((output) => ({
|
|
90
93
|
boxId: output.id,
|
|
91
94
|
transactionId: output.txId,
|
|
92
95
|
additionalRegisters: output.additionalRegisters,
|
|
93
|
-
assets: output.assets?.map((asset) => pick(asset, ['tokenId', 'amount']))
|
|
96
|
+
assets: output.assets?.map((asset) => pick(asset, ['tokenId', 'amount'])) ??
|
|
97
|
+
[],
|
|
94
98
|
ergoTree: output.ergoTree,
|
|
95
99
|
creationHeight: output.creationHeight,
|
|
96
100
|
index: output.index,
|
|
@@ -178,4 +182,4 @@ export class ExplorerNetwork extends AbstractNetwork {
|
|
|
178
182
|
return { boxes: resultBoxes, hasNextBatch: boxes.total > offset + limit };
|
|
179
183
|
};
|
|
180
184
|
}
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwbG9yZXJOZXR3b3JrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2VyZ28vbmV0d29yay9FeHBsb3Jlck5ldHdvcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyx5QkFBeUIsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFLcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTVDLE1BQU0sT0FBTyxlQUFnQixTQUFRLGVBQWU7SUFDMUMsR0FBRyxDQUFDO0lBRVosWUFBWSxHQUFXO1FBQ3JCLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLEdBQUcsR0FBRyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGVBQWUsR0FBRyxLQUFLLEVBQ3JCLEtBQWEsRUFDYixTQUFpQixFQUM0QixFQUFFO1FBQy9DLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0QsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7UUFDdEUsSUFBSSxVQUFVLElBQUksU0FBUztZQUN6QixNQUFNLEtBQUssQ0FDVCxpQ0FBaUMsS0FBSyxtQ0FBbUMsU0FBUyxHQUFHLENBQ3RGLENBQUM7UUFDSixPQUFPO1lBQ0wsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPO1lBQ2hCLE1BQU0sRUFBRSxFQUFFLENBQUMsZUFBZTtZQUMxQixVQUFVO1NBQ1gsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGOzs7O09BSUc7SUFDSyxVQUFVLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQW9CLEVBQUU7UUFDbEUsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLGtCQUFrQjtZQUN0QyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLGtCQUFrQixDQUFDO1lBQy9ELENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDZCxPQUFPO1lBQ0wsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO1lBQ3BCLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztZQUNoQixjQUFjLEVBQUUsR0FBRyxDQUFDLGNBQWM7WUFDbEMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxnQkFBZ0I7WUFDckMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRO1lBQ3RCLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztZQUNoQixhQUFhLEVBQUUsR0FBRyxDQUFDLGFBQWE7WUFDaEMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1lBQ2hCLG1CQUFtQixFQUFFLFNBQVMsQ0FDNUIsR0FBRyxDQUFDLG1CQUFtQixFQUN2QixpQkFBaUIsQ0FDbEI7WUFDRCxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUN0RSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU07WUFDOUIsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJO1lBQzdCLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxrQkFBa0I7WUFDMUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVO1NBQ2xDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRjs7O09BR0c7SUFDSyxrQkFBa0IsR0FBRyxDQUMzQixFQUFzQixFQUNELEVBQUU7UUFDdkIsT0FBTztZQUNMLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUNULGVBQWUsRUFBRSxFQUFFLENBQUMsZUFBZTtZQUNuQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU87WUFDbkIsVUFBVSxFQUNSLEVBQUUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNqQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUs7YUFDdkIsQ0FBQyxDQUFDLElBQUksRUFBRTtZQUNYLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDakUsT0FBTyxFQUNMLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7Z0JBQ25CLGFBQWEsRUFBRSxNQUFNLENBQUMsYUFBYTtnQkFDbkMsbUJBQW1CLEVBQUUsU0FBUyxDQUM1QixNQUFNLENBQUMsbUJBQW1CLEVBQzFCLGlCQUFpQixDQUNsQjtnQkFDRCxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNuQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQ25DO2dCQUNELFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtnQkFDekIsY0FBYyxFQUFFLE1BQU0sQ0FBQyxjQUFjO2dCQUNyQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7Z0JBQ25CLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSzthQUNwQixDQUFDLENBQUMsSUFBSSxFQUFFO1NBQ1osQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNLLHVCQUF1QixHQUFHLENBQUMsRUFBdUIsRUFBZSxFQUFFO1FBQ3pFLE9BQU87WUFDTCxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDVCxVQUFVLEVBQ1IsRUFBRSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ2pDLEtBQUssRUFBRSxTQUFTLENBQUMsRUFBRTthQUNwQixDQUFDLENBQUMsSUFBSSxFQUFFO1lBQ1gsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRTtZQUM5RCxPQUFPLEVBQ0wsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRTtnQkFDaEIsYUFBYSxFQUFFLE1BQU0sQ0FBQyxJQUFJO2dCQUMxQixtQkFBbUIsRUFBRSxNQUFNLENBQUMsbUJBQW1CO2dCQUMvQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNuQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQ25DO2dCQUNELFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtnQkFDekIsY0FBYyxFQUFFLE1BQU0sQ0FBQyxjQUFjO2dCQUNyQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7Z0JBQ25CLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSzthQUNwQixDQUFDLENBQUMsSUFBSSxFQUFFO1NBQ1osQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNILGdDQUFnQyxHQUFHLEtBQUssRUFDdEMsT0FBZSxFQUNmLFVBQWtCLEVBQ2xCLFFBQWdCLEVBQ3FCLEVBQUU7UUFDdkMsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQyxPQUFPLEVBQUU7WUFDckUsVUFBVTtZQUNWLFFBQVE7WUFDUixLQUFLLEVBQUUsU0FBUztTQUNqQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUs7WUFDWixNQUFNLElBQUksS0FBSyxDQUNiLHlEQUF5RCxDQUMxRCxDQUFDO1FBQ0osT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNILGtCQUFrQixHQUFHLEtBQUssRUFBRSxNQUFjLEVBQW1CLEVBQUU7UUFDN0QsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4RCxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNmLENBQUMsQ0FBQztJQUVGOzs7O09BSUc7SUFDSCxXQUFXLEdBQUcsS0FBSyxFQUFFLE9BQWUsRUFBK0IsRUFBRTtRQUNuRSxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FDYix1RUFBdUUsT0FBTyxFQUFFLENBQ2pGLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQzlDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsQ0FDakMsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNILGlCQUFpQixHQUFHLEtBQUssRUFDdkIsT0FBZSxFQUNmLE1BQWMsRUFDZCxLQUFhLEVBQ3lDLEVBQUU7UUFDeEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQyxPQUFPLEVBQUU7WUFDdkUsTUFBTSxFQUFFLE1BQU07WUFDZCxLQUFLLEVBQUUsS0FBSztZQUNaLGFBQWEsRUFBRSxNQUFNO1NBQ3RCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztRQUN4RSxNQUFNLFdBQVcsR0FBbUIsRUFBRSxDQUFDO1FBQ3ZDLEtBQUssTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlCLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsS0FBSyxHQUFHLE1BQU0sR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUM1RSxDQUFDLENBQUM7SUFFRjs7Ozs7O09BTUc7SUFDSCxpQkFBaUIsR0FBRyxLQUFLLEVBQ3ZCLE9BQWUsRUFDZixNQUFjLEVBQ2QsS0FBYSxFQUN5QyxFQUFFO1FBQ3hELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsT0FBTyxFQUFFO1lBQ2hFLE1BQU0sRUFBRSxNQUFNO1lBQ2QsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7UUFDdkUsTUFBTSxXQUFXLEdBQW1CLEVBQUUsQ0FBQztRQUN2QyxLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM5QixXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLEdBQUcsS0FBSyxFQUFFLENBQUM7SUFDNUUsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZXJnb0V4cGxvcmVyQ2xpZW50RmFjdG9yeSBmcm9tICdAcm9zZW4tY2xpZW50cy9lcmdvLWV4cGxvcmVyJztcbmltcG9ydCB7IEFic3RyYWN0TmV0d29yayB9IGZyb20gJy4vQWJzdHJhY3ROZXR3b3JrJztcbmltcG9ydCB7IFYxIH0gZnJvbSAnQHJvc2VuLWNsaWVudHMvZXJnby1leHBsb3Jlcic7XG5cbmltcG9ydCB7IEJsb2NrSW5mbyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgRXJnb0JveCwgRXh0ZW5kZWRUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IG1hcFZhbHVlcywgcGljayB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBUElfTElNSVQgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgRXhwbG9yZXJOZXR3b3JrIGV4dGVuZHMgQWJzdHJhY3ROZXR3b3JrIHtcbiAgcHJpdmF0ZSBhcGk7XG5cbiAgY29uc3RydWN0b3IodXJsOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYXBpID0gZXJnb0V4cGxvcmVyQ2xpZW50RmFjdG9yeSh1cmwpO1xuICB9XG5cbiAgLyoqXG4gICAqIHJldHVybiBzcGVuZGluZyBpbmZvcm1hdGlvbiBvZiBhIHNwZWNpZmllZCBib3ggYnkgaGF2aW5nIHNwZW5kVHhJZFxuICAgKiBAcGFyYW0gYm94SWRcbiAgICogQHBhcmFtIHNwZW5kVHhJZFxuICAgKi9cbiAgZ2V0U3BlbmRpbmdJbmZvID0gYXN5bmMgKFxuICAgIGJveElkOiBzdHJpbmcsXG4gICAgc3BlbmRUeElkOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxCbG9ja0luZm8gJiB7IHNwZW5kSW5kZXg6IG51bWJlciB9PiA9PiB7XG4gICAgY29uc3QgdHggPSBhd2FpdCB0aGlzLmFwaS52MS5nZXRBcGlWMVRyYW5zYWN0aW9uc1AxKHNwZW5kVHhJZCk7XG4gICAgY29uc3Qgc3BlbmRJbmRleCA9IHR4LmlucHV0cz8uZmluZEluZGV4KChib3gpID0+IGJveC5ib3hJZCA9PT0gYm94SWQpO1xuICAgIGlmIChzcGVuZEluZGV4ID09IHVuZGVmaW5lZClcbiAgICAgIHRocm93IEVycm9yKFxuICAgICAgICBgSW1wb3NzaWJsZSBiZWhhdmlvciwgdGhlIGJveCBbJHtib3hJZH1dIHNob3VsZCBoYXZlIGJlZW4gc3BlbnQgaW4gdHggWyR7c3BlbmRUeElkfV1gXG4gICAgICApO1xuICAgIHJldHVybiB7XG4gICAgICBoYXNoOiB0eC5ibG9ja0lkLFxuICAgICAgaGVpZ2h0OiB0eC5pbmNsdXNpb25IZWlnaHQsXG4gICAgICBzcGVuZEluZGV4LFxuICAgIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIGNvbnZlcnQgZXhwbG9yZXIgYXBpIGJveGVzIHRvIEVyZ29Cb3ggaW50ZXJmYWNlXG4gICAqIEBwYXJhbSBib3hcbiAgICogQHJldHVybnMgRXJnb0JveFxuICAgKi9cbiAgcHJpdmF0ZSBjb252ZXJ0Qm94ID0gYXN5bmMgKGJveDogVjEuT3V0cHV0SW5mbyk6IFByb21pc2U8RXJnb0JveD4gPT4ge1xuICAgIGNvbnN0IHNwZW5kSW5mbyA9IGJveC5zcGVudFRyYW5zYWN0aW9uSWRcbiAgICAgID8gYXdhaXQgdGhpcy5nZXRTcGVuZGluZ0luZm8oYm94LmJveElkLCBib3guc3BlbnRUcmFuc2FjdGlvbklkKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJsb2NrSWQ6IGJveC5ibG9ja0lkLFxuICAgICAgYm94SWQ6IGJveC5ib3hJZCxcbiAgICAgIGNyZWF0aW9uSGVpZ2h0OiBib3guY3JlYXRpb25IZWlnaHQsXG4gICAgICBpbmNsdXNpb25IZWlnaHQ6IGJveC5zZXR0bGVtZW50SGVpZ2h0LFxuICAgICAgZXJnb1RyZWU6IGJveC5lcmdvVHJlZSxcbiAgICAgIGluZGV4OiBib3guaW5kZXgsXG4gICAgICB0cmFuc2FjdGlvbklkOiBib3gudHJhbnNhY3Rpb25JZCxcbiAgICAgIHZhbHVlOiBib3gudmFsdWUsXG4gICAgICBhZGRpdGlvbmFsUmVnaXN0ZXJzOiBtYXBWYWx1ZXMoXG4gICAgICAgIGJveC5hZGRpdGlvbmFsUmVnaXN0ZXJzLFxuICAgICAgICAnc2VyaWFsaXplZFZhbHVlJ1xuICAgICAgKSxcbiAgICAgIGFzc2V0czogYm94LmFzc2V0cz8ubWFwKChhc3NldCkgPT4gcGljayhhc3NldCwgWyd0b2tlbklkJywgJ2Ftb3VudCddKSksXG4gICAgICBzcGVudEhlaWdodDogc3BlbmRJbmZvPy5oZWlnaHQsXG4gICAgICBzcGVudEJsb2NrSWQ6IHNwZW5kSW5mbz8uaGFzaCxcbiAgICAgIHNwZW50VHJhbnNhY3Rpb25JZDogYm94LnNwZW50VHJhbnNhY3Rpb25JZCxcbiAgICAgIHNwZW50SW5kZXg6IHNwZW5kSW5mbz8uc3BlbmRJbmRleCxcbiAgICB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiBjb252ZXJ0IGV4cGxvcmVyIHRyYW5zYWN0aW9uIHRvIGV4dHJhY3RvciB0cmFuc2FjdGlvbiB0eXBlXG4gICAqIEBwYXJhbSB0eFxuICAgKi9cbiAgcHJpdmF0ZSBjb252ZXJ0VHJhbnNhY3Rpb24gPSAoXG4gICAgdHg6IFYxLlRyYW5zYWN0aW9uSW5mb1xuICApOiBFeHRlbmRlZFRyYW5zYWN0aW9uID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHR4LmlkLFxuICAgICAgaW5jbHVzaW9uSGVpZ2h0OiB0eC5pbmNsdXNpb25IZWlnaHQsXG4gICAgICBibG9ja0lkOiB0eC5ibG9ja0lkLFxuICAgICAgZGF0YUlucHV0czpcbiAgICAgICAgdHguZGF0YUlucHV0cz8ubWFwKChkYXRhSW5wdXQpID0+ICh7XG4gICAgICAgICAgYm94SWQ6IGRhdGFJbnB1dC5ib3hJZCxcbiAgICAgICAgfSkpID8/IFtdLFxuICAgICAgaW5wdXRzOiB0eC5pbnB1dHM/Lm1hcCgoaW5wdXQpID0+ICh7IGJveElkOiBpbnB1dC5ib3hJZCB9KSkgPz8gW10sXG4gICAgICBvdXRwdXRzOlxuICAgICAgICB0eC5vdXRwdXRzPy5tYXAoKG91dHB1dCkgPT4gKHtcbiAgICAgICAgICBib3hJZDogb3V0cHV0LmJveElkLFxuICAgICAgICAgIHRyYW5zYWN0aW9uSWQ6IG91dHB1dC50cmFuc2FjdGlvbklkLFxuICAgICAgICAgIGFkZGl0aW9uYWxSZWdpc3RlcnM6IG1hcFZhbHVlcyhcbiAgICAgICAgICAgIG91dHB1dC5hZGRpdGlvbmFsUmVnaXN0ZXJzLFxuICAgICAgICAgICAgJ3NlcmlhbGl6ZWRWYWx1ZSdcbiAgICAgICAgICApLFxuICAgICAgICAgIGFzc2V0czogb3V0cHV0LmFzc2V0cz8ubWFwKChhc3NldCkgPT5cbiAgICAgICAgICAgIHBpY2soYXNzZXQsIFsndG9rZW5JZCcsICdhbW91bnQnXSlcbiAgICAgICAgICApLFxuICAgICAgICAgIGVyZ29UcmVlOiBvdXRwdXQuZXJnb1RyZWUsXG4gICAgICAgICAgY3JlYXRpb25IZWlnaHQ6IG91dHB1dC5jcmVhdGlvbkhlaWdodCxcbiAgICAgICAgICBpbmRleDogb3V0cHV0LmluZGV4LFxuICAgICAgICAgIHZhbHVlOiBvdXRwdXQudmFsdWUsXG4gICAgICAgIH0pKSA/PyBbXSxcbiAgICB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiBjb252ZXJ0IGV4cGxvcmVyIGJsb2NrIHRyYW5zYWN0aW9uIHRvIHRyYW5zYWN0aW9uIHR5cGVcbiAgICogQHBhcmFtIHR4XG4gICAqL1xuICBwcml2YXRlIGNvbnZlcnRCbG9ja1RyYW5zYWN0aW9uID0gKHR4OiBWMS5UcmFuc2FjdGlvbkluZm8xKTogVHJhbnNhY3Rpb24gPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdHguaWQsXG4gICAgICBkYXRhSW5wdXRzOlxuICAgICAgICB0eC5kYXRhSW5wdXRzPy5tYXAoKGRhdGFJbnB1dCkgPT4gKHtcbiAgICAgICAgICBib3hJZDogZGF0YUlucHV0LmlkLFxuICAgICAgICB9KSkgPz8gW10sXG4gICAgICBpbnB1dHM6IHR4LmlucHV0cz8ubWFwKChpbnB1dCkgPT4gKHsgYm94SWQ6IGlucHV0LmlkIH0pKSA/PyBbXSxcbiAgICAgIG91dHB1dHM6XG4gICAgICAgIHR4Lm91dHB1dHM/Lm1hcCgob3V0cHV0KSA9PiAoe1xuICAgICAgICAgIGJveElkOiBvdXRwdXQuaWQsXG4gICAgICAgICAgdHJhbnNhY3Rpb25JZDogb3V0cHV0LnR4SWQsXG4gICAgICAgICAgYWRkaXRpb25hbFJlZ2lzdGVyczogb3V0cHV0LmFkZGl0aW9uYWxSZWdpc3RlcnMsXG4gICAgICAgICAgYXNzZXRzOiBvdXRwdXQuYXNzZXRzPy5tYXAoKGFzc2V0KSA9PlxuICAgICAgICAgICAgcGljayhhc3NldCwgWyd0b2tlbklkJywgJ2Ftb3VudCddKVxuICAgICAgICAgICksXG4gICAgICAgICAgZXJnb1RyZWU6IG91dHB1dC5lcmdvVHJlZSxcbiAgICAgICAgICBjcmVhdGlvbkhlaWdodDogb3V0cHV0LmNyZWF0aW9uSGVpZ2h0LFxuICAgICAgICAgIGluZGV4OiBvdXRwdXQuaW5kZXgsXG4gICAgICAgICAgdmFsdWU6IG91dHB1dC52YWx1ZSxcbiAgICAgICAgfSkpID8/IFtdLFxuICAgIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIHVzZSBleHBsb3JlciBhcGkgdG8gcmV0dXJuIHJlbGF0ZWQgdHJhbnNhY3Rpb25zIG9mIHRoZSBzcGVjaWZpZWQgYWRkcmVzcyBpbiB0aGUgaGVpZ2h0IHJhbmdlXG4gICAqIEBwYXJhbSB0b2tlbklkXG4gICAqIEBwYXJhbSBvZmZzZXRcbiAgICogQHBhcmFtIGxpbWl0XG4gICAqIEByZXR1cm5zIHJlbGF0ZWQgdHJhbnNhY3Rpb25zXG4gICAqL1xuICBnZXRBZGRyZXNzVHJhbnNhY3Rpb25zV2l0aEhlaWdodCA9IGFzeW5jIChcbiAgICBhZGRyZXNzOiBzdHJpbmcsXG4gICAgZnJvbUhlaWdodDogbnVtYmVyLFxuICAgIHRvSGVpZ2h0OiBudW1iZXJcbiAgKTogUHJvbWlzZTxBcnJheTxFeHRlbmRlZFRyYW5zYWN0aW9uPj4gPT4ge1xuICAgIGNvbnN0IHR4cyA9IGF3YWl0IHRoaXMuYXBpLnYxLmdldEFwaVYxQWRkcmVzc2VzUDFUcmFuc2FjdGlvbnMoYWRkcmVzcywge1xuICAgICAgZnJvbUhlaWdodCxcbiAgICAgIHRvSGVpZ2h0LFxuICAgICAgbGltaXQ6IEFQSV9MSU1JVCxcbiAgICB9KTtcbiAgICBpZiAoIXR4cy5pdGVtcylcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0V4cGxvcmVyIEFkZHJlc3NUcmFuc2FjdGlvbnMgYXBpIGV4cGVjdGVkIHRvIGhhdmUgaXRlbXMnXG4gICAgICApO1xuICAgIHJldHVybiB0eHMuaXRlbXMubWFwKCh0eCkgPT4gdGhpcy5jb252ZXJ0VHJhbnNhY3Rpb24odHgpKTtcbiAgfTtcblxuICAvKipcbiAgICogdXNlIGV4cGxvcmVyIGFwaSB0byBnZXQgdGhlIGJsb2NrIGlkIGF0IHRoZSBzcGVjaWZpZWQgaGVpZ2h0XG4gICAqIEBwYXJhbSBoZWlnaHRcbiAgICogQHJldHVybnMgYmxvY2sgaWRcbiAgICovXG4gIGdldEJsb2NrSWRBdEhlaWdodCA9IGFzeW5jIChoZWlnaHQ6IG51bWJlcik6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gICAgY29uc3QgaWQgPSBhd2FpdCB0aGlzLmFwaS52MC5nZXRBcGlWMEJsb2Nrc0F0UDEoaGVpZ2h0KTtcbiAgICByZXR1cm4gaWRbMF07XG4gIH07XG5cbiAgLyoqXG4gICAqIHVzZSBleHBsb3JlciBhcGkgdG8gcmV0dXJuIGFsbCB0cmFuc2FjdGlvbnMgaW4gYSBibG9ja1xuICAgKiBAcGFyYW0gYmxvY2tJZFxuICAgKiBAcmV0dXJucyBjb252ZXJ0ZWQgdHJhbnNhY3Rpb25zXG4gICAqL1xuICBnZXRCbG9ja1R4cyA9IGFzeW5jIChibG9ja0lkOiBzdHJpbmcpOiBQcm9taXNlPEFycmF5PFRyYW5zYWN0aW9uPj4gPT4ge1xuICAgIGNvbnN0IGJsb2NrID0gYXdhaXQgdGhpcy5hcGkudjEuZ2V0QXBpVjFCbG9ja3NQMShibG9ja0lkKTtcbiAgICBpZiAoIWJsb2NrLmJsb2NrLmJsb2NrVHJhbnNhY3Rpb25zKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBFeHBlY3RlZCBleHBsb3JlciBibG9jayBhcGkgdG8gaW5jbHVkZSBibG9jayB0cmFuc2FjdGlvbnMgZm9yIGJsb2NrICR7YmxvY2tJZH1gXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gYmxvY2suYmxvY2suYmxvY2tUcmFuc2FjdGlvbnMubWFwKCh0eCkgPT5cbiAgICAgIHRoaXMuY29udmVydEJsb2NrVHJhbnNhY3Rpb24odHgpXG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogdXNlIGV4cGxvcmVyIGFwaSB0byByZXR1cm4gcmVsYXRlZCBib3hlcyBieSBzcGVjaWZpZWQgYWRkcmVzc1xuICAgKiBAcGFyYW0gYWRkcmVzc1xuICAgKiBAcGFyYW0gb2Zmc2V0XG4gICAqIEBwYXJhbSBsaW1pdFxuICAgKiBAcmV0dXJucyByZWxhdGVkIGJveGVzXG4gICAqL1xuICBnZXRCb3hlc0J5QWRkcmVzcyA9IGFzeW5jIChcbiAgICBhZGRyZXNzOiBzdHJpbmcsXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgbGltaXQ6IG51bWJlclxuICApOiBQcm9taXNlPHsgYm94ZXM6IEVyZ29Cb3hbXTsgaGFzTmV4dEJhdGNoOiBib29sZWFuIH0+ID0+IHtcbiAgICBjb25zdCBib3hlcyA9IGF3YWl0IHRoaXMuYXBpLnYxLmdldEFwaVYxQm94ZXNVbnNwZW50QnlhZGRyZXNzUDEoYWRkcmVzcywge1xuICAgICAgb2Zmc2V0OiBvZmZzZXQsXG4gICAgICBsaW1pdDogbGltaXQsXG4gICAgICBzb3J0RGlyZWN0aW9uOiAnZGVzYycsXG4gICAgfSk7XG4gICAgaWYgKCFib3hlcy5pdGVtcylcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwbG9yZXIgQm94ZXNCeUFkZHJlc3MgYXBpIGV4cGVjdGVkIHRvIGhhdmUgaXRlbXMnKTtcbiAgICBjb25zdCByZXN1bHRCb3hlczogQXJyYXk8RXJnb0JveD4gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGJveCBvZiBib3hlcy5pdGVtcykge1xuICAgICAgcmVzdWx0Qm94ZXMucHVzaChhd2FpdCB0aGlzLmNvbnZlcnRCb3goYm94KSk7XG4gICAgfVxuICAgIHJldHVybiB7IGJveGVzOiByZXN1bHRCb3hlcywgaGFzTmV4dEJhdGNoOiBib3hlcy50b3RhbCA+IG9mZnNldCArIGxpbWl0IH07XG4gIH07XG5cbiAgLyoqXG4gICAqIHVzZSBleHBsb3JlciBhcGkgdG8gcmV0dXJuIHJlbGF0ZWQgYm94ZXMgYnkgc3BlY2lmaWVkIHRva2VuIGlkXG4gICAqIEBwYXJhbSB0b2tlbklkXG4gICAqIEBwYXJhbSBvZmZzZXRcbiAgICogQHBhcmFtIGxpbWl0XG4gICAqIEByZXR1cm5zIHJlbGF0ZWQgYm94ZXNcbiAgICovXG4gIGdldEJveGVzQnlUb2tlbklkID0gYXN5bmMgKFxuICAgIHRva2VuSWQ6IHN0cmluZyxcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgICBsaW1pdDogbnVtYmVyXG4gICk6IFByb21pc2U8eyBib3hlczogRXJnb0JveFtdOyBoYXNOZXh0QmF0Y2g6IGJvb2xlYW4gfT4gPT4ge1xuICAgIGNvbnN0IGJveGVzID0gYXdhaXQgdGhpcy5hcGkudjEuZ2V0QXBpVjFCb3hlc0J5dG9rZW5pZFAxKHRva2VuSWQsIHtcbiAgICAgIG9mZnNldDogb2Zmc2V0LFxuICAgICAgbGltaXQ6IGxpbWl0LFxuICAgIH0pO1xuICAgIGlmICghYm94ZXMuaXRlbXMpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGxvcmVyIEJveGVzQnlUb2tlSWQgYXBpIGV4cGVjdGVkIHRvIGhhdmUgaXRlbXMnKTtcbiAgICBjb25zdCByZXN1bHRCb3hlczogQXJyYXk8RXJnb0JveD4gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGJveCBvZiBib3hlcy5pdGVtcykge1xuICAgICAgcmVzdWx0Qm94ZXMucHVzaChhd2FpdCB0aGlzLmNvbnZlcnRCb3goYm94KSk7XG4gICAgfVxuICAgIHJldHVybiB7IGJveGVzOiByZXN1bHRCb3hlcywgaGFzTmV4dEJhdGNoOiBib3hlcy50b3RhbCA+IG9mZnNldCArIGxpbWl0IH07XG4gIH07XG59XG4iXX0=
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwbG9yZXJOZXR3b3JrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2VyZ28vbmV0d29yay9FeHBsb3Jlck5ldHdvcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyx5QkFBeUIsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFLcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTVDLE1BQU0sT0FBTyxlQUFnQixTQUFRLGVBQWU7SUFDMUMsR0FBRyxDQUFDO0lBRVosWUFBWSxHQUFXO1FBQ3JCLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLEdBQUcsR0FBRyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGVBQWUsR0FBRyxLQUFLLEVBQ3JCLEtBQWEsRUFDYixTQUFpQixFQUM0QixFQUFFO1FBQy9DLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0QsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7UUFDdEUsSUFBSSxVQUFVLElBQUksU0FBUztZQUN6QixNQUFNLEtBQUssQ0FDVCxpQ0FBaUMsS0FBSyxtQ0FBbUMsU0FBUyxHQUFHLENBQ3RGLENBQUM7UUFDSixPQUFPO1lBQ0wsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPO1lBQ2hCLE1BQU0sRUFBRSxFQUFFLENBQUMsZUFBZTtZQUMxQixVQUFVO1NBQ1gsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGOzs7O09BSUc7SUFDSyxVQUFVLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQW9CLEVBQUU7UUFDbEUsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLGtCQUFrQjtZQUN0QyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLGtCQUFrQixDQUFDO1lBQy9ELENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDZCxPQUFPO1lBQ0wsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO1lBQ3BCLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztZQUNoQixjQUFjLEVBQUUsR0FBRyxDQUFDLGNBQWM7WUFDbEMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxnQkFBZ0I7WUFDckMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRO1lBQ3RCLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztZQUNoQixhQUFhLEVBQUUsR0FBRyxDQUFDLGFBQWE7WUFDaEMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1lBQ2hCLG1CQUFtQixFQUFFLFNBQVMsQ0FDNUIsR0FBRyxDQUFDLG1CQUFtQixFQUN2QixpQkFBaUIsQ0FDbEI7WUFDRCxNQUFNLEVBQ0osR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDdEUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNO1lBQzlCLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSTtZQUM3QixrQkFBa0IsRUFBRSxHQUFHLENBQUMsa0JBQWtCO1lBQzFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVTtTQUNsQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY7OztPQUdHO0lBQ0ssa0JBQWtCLEdBQUcsQ0FDM0IsRUFBc0IsRUFDRCxFQUFFO1FBQ3ZCLE9BQU87WUFDTCxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDVCxlQUFlLEVBQUUsRUFBRSxDQUFDLGVBQWU7WUFDbkMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPO1lBQ25CLFVBQVUsRUFDUixFQUFFLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDakMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLO2FBQ3ZCLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDWCxxRkFBcUY7WUFDckYsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRTtZQUNqRSxPQUFPLEVBQ0wsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztnQkFDbkIsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhO2dCQUNuQyxtQkFBbUIsRUFBRSxTQUFTLENBQzVCLE1BQU0sQ0FBQyxtQkFBbUIsRUFDMUIsaUJBQWlCLENBQ2xCO2dCQUNELE1BQU0sRUFDSixNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO29CQUNqRSxFQUFFO2dCQUNKLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtnQkFDekIsY0FBYyxFQUFFLE1BQU0sQ0FBQyxjQUFjO2dCQUNyQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7Z0JBQ25CLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSzthQUNwQixDQUFDLENBQUMsSUFBSSxFQUFFO1NBQ1osQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNLLHVCQUF1QixHQUFHLENBQUMsRUFBdUIsRUFBZSxFQUFFO1FBQ3pFLE9BQU87WUFDTCxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDVCxVQUFVLEVBQ1IsRUFBRSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ2pDLEtBQUssRUFBRSxTQUFTLENBQUMsRUFBRTthQUNwQixDQUFDLENBQUMsSUFBSSxFQUFFO1lBQ1gseUVBQXlFO1lBQ3pFLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDOUQsT0FBTyxFQUNMLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQixLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUU7Z0JBQ2hCLGFBQWEsRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDMUIsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLG1CQUFtQjtnQkFDL0MsTUFBTSxFQUNKLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7b0JBQ2pFLEVBQUU7Z0JBQ0osUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO2dCQUN6QixjQUFjLEVBQUUsTUFBTSxDQUFDLGNBQWM7Z0JBQ3JDLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztnQkFDbkIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO2FBQ3BCLENBQUMsQ0FBQyxJQUFJLEVBQUU7U0FDWixDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY7Ozs7OztPQU1HO0lBQ0gsZ0NBQWdDLEdBQUcsS0FBSyxFQUN0QyxPQUFlLEVBQ2YsVUFBa0IsRUFDbEIsUUFBZ0IsRUFDcUIsRUFBRTtRQUN2QyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLCtCQUErQixDQUFDLE9BQU8sRUFBRTtZQUNyRSxVQUFVO1lBQ1YsUUFBUTtZQUNSLEtBQUssRUFBRSxTQUFTO1NBQ2pCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQ2IseURBQXlELENBQzFELENBQUM7UUFDSixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDLENBQUM7SUFFRjs7OztPQUlHO0lBQ0gsa0JBQWtCLEdBQUcsS0FBSyxFQUFFLE1BQWMsRUFBbUIsRUFBRTtRQUM3RCxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNILFdBQVcsR0FBRyxLQUFLLEVBQUUsT0FBZSxFQUErQixFQUFFO1FBQ25FLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksS0FBSyxDQUNiLHVFQUF1RSxPQUFPLEVBQUUsQ0FDakYsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FDOUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxDQUNqQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY7Ozs7OztPQU1HO0lBQ0gsaUJBQWlCLEdBQUcsS0FBSyxFQUN2QixPQUFlLEVBQ2YsTUFBYyxFQUNkLEtBQWEsRUFDeUMsRUFBRTtRQUN4RCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLCtCQUErQixDQUFDLE9BQU8sRUFBRTtZQUN2RSxNQUFNLEVBQUUsTUFBTTtZQUNkLEtBQUssRUFBRSxLQUFLO1lBQ1osYUFBYSxFQUFFLE1BQU07U0FDdEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sV0FBVyxHQUFtQixFQUFFLENBQUM7UUFDdkMsS0FBSyxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDOUIsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxHQUFHLEtBQUssRUFBRSxDQUFDO0lBQzVFLENBQUMsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNILGlCQUFpQixHQUFHLEtBQUssRUFDdkIsT0FBZSxFQUNmLE1BQWMsRUFDZCxLQUFhLEVBQ3lDLEVBQUU7UUFDeEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUU7WUFDaEUsTUFBTSxFQUFFLE1BQU07WUFDZCxLQUFLLEVBQUUsS0FBSztTQUNiLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztRQUN2RSxNQUFNLFdBQVcsR0FBbUIsRUFBRSxDQUFDO1FBQ3ZDLEtBQUssTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlCLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsS0FBSyxHQUFHLE1BQU0sR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUM1RSxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBlcmdvRXhwbG9yZXJDbGllbnRGYWN0b3J5IGZyb20gJ0Byb3Nlbi1jbGllbnRzL2VyZ28tZXhwbG9yZXInO1xuaW1wb3J0IHsgQWJzdHJhY3ROZXR3b3JrIH0gZnJvbSAnLi9BYnN0cmFjdE5ldHdvcmsnO1xuaW1wb3J0IHsgVjEgfSBmcm9tICdAcm9zZW4tY2xpZW50cy9lcmdvLWV4cGxvcmVyJztcblxuaW1wb3J0IHsgQmxvY2tJbmZvIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBFcmdvQm94LCBFeHRlbmRlZFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgbWFwVmFsdWVzLCBwaWNrIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFQSV9MSU1JVCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBFeHBsb3Jlck5ldHdvcmsgZXh0ZW5kcyBBYnN0cmFjdE5ldHdvcmsge1xuICBwcml2YXRlIGFwaTtcblxuICBjb25zdHJ1Y3Rvcih1cmw6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hcGkgPSBlcmdvRXhwbG9yZXJDbGllbnRGYWN0b3J5KHVybCk7XG4gIH1cblxuICAvKipcbiAgICogcmV0dXJuIHNwZW5kaW5nIGluZm9ybWF0aW9uIG9mIGEgc3BlY2lmaWVkIGJveCBieSBoYXZpbmcgc3BlbmRUeElkXG4gICAqIEBwYXJhbSBib3hJZFxuICAgKiBAcGFyYW0gc3BlbmRUeElkXG4gICAqL1xuICBnZXRTcGVuZGluZ0luZm8gPSBhc3luYyAoXG4gICAgYm94SWQ6IHN0cmluZyxcbiAgICBzcGVuZFR4SWQ6IHN0cmluZ1xuICApOiBQcm9taXNlPEJsb2NrSW5mbyAmIHsgc3BlbmRJbmRleDogbnVtYmVyIH0+ID0+IHtcbiAgICBjb25zdCB0eCA9IGF3YWl0IHRoaXMuYXBpLnYxLmdldEFwaVYxVHJhbnNhY3Rpb25zUDEoc3BlbmRUeElkKTtcbiAgICBjb25zdCBzcGVuZEluZGV4ID0gdHguaW5wdXRzPy5maW5kSW5kZXgoKGJveCkgPT4gYm94LmJveElkID09PSBib3hJZCk7XG4gICAgaWYgKHNwZW5kSW5kZXggPT0gdW5kZWZpbmVkKVxuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgIGBJbXBvc3NpYmxlIGJlaGF2aW9yLCB0aGUgYm94IFske2JveElkfV0gc2hvdWxkIGhhdmUgYmVlbiBzcGVudCBpbiB0eCBbJHtzcGVuZFR4SWR9XWBcbiAgICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhhc2g6IHR4LmJsb2NrSWQsXG4gICAgICBoZWlnaHQ6IHR4LmluY2x1c2lvbkhlaWdodCxcbiAgICAgIHNwZW5kSW5kZXgsXG4gICAgfTtcbiAgfTtcblxuICAvKipcbiAgICogY29udmVydCBleHBsb3JlciBhcGkgYm94ZXMgdG8gRXJnb0JveCBpbnRlcmZhY2VcbiAgICogQHBhcmFtIGJveFxuICAgKiBAcmV0dXJucyBFcmdvQm94XG4gICAqL1xuICBwcml2YXRlIGNvbnZlcnRCb3ggPSBhc3luYyAoYm94OiBWMS5PdXRwdXRJbmZvKTogUHJvbWlzZTxFcmdvQm94PiA9PiB7XG4gICAgY29uc3Qgc3BlbmRJbmZvID0gYm94LnNwZW50VHJhbnNhY3Rpb25JZFxuICAgICAgPyBhd2FpdCB0aGlzLmdldFNwZW5kaW5nSW5mbyhib3guYm94SWQsIGJveC5zcGVudFRyYW5zYWN0aW9uSWQpXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgYmxvY2tJZDogYm94LmJsb2NrSWQsXG4gICAgICBib3hJZDogYm94LmJveElkLFxuICAgICAgY3JlYXRpb25IZWlnaHQ6IGJveC5jcmVhdGlvbkhlaWdodCxcbiAgICAgIGluY2x1c2lvbkhlaWdodDogYm94LnNldHRsZW1lbnRIZWlnaHQsXG4gICAgICBlcmdvVHJlZTogYm94LmVyZ29UcmVlLFxuICAgICAgaW5kZXg6IGJveC5pbmRleCxcbiAgICAgIHRyYW5zYWN0aW9uSWQ6IGJveC50cmFuc2FjdGlvbklkLFxuICAgICAgdmFsdWU6IGJveC52YWx1ZSxcbiAgICAgIGFkZGl0aW9uYWxSZWdpc3RlcnM6IG1hcFZhbHVlcyhcbiAgICAgICAgYm94LmFkZGl0aW9uYWxSZWdpc3RlcnMsXG4gICAgICAgICdzZXJpYWxpemVkVmFsdWUnXG4gICAgICApLFxuICAgICAgYXNzZXRzOlxuICAgICAgICBib3guYXNzZXRzPy5tYXAoKGFzc2V0KSA9PiBwaWNrKGFzc2V0LCBbJ3Rva2VuSWQnLCAnYW1vdW50J10pKSA/PyBbXSxcbiAgICAgIHNwZW50SGVpZ2h0OiBzcGVuZEluZm8/LmhlaWdodCxcbiAgICAgIHNwZW50QmxvY2tJZDogc3BlbmRJbmZvPy5oYXNoLFxuICAgICAgc3BlbnRUcmFuc2FjdGlvbklkOiBib3guc3BlbnRUcmFuc2FjdGlvbklkLFxuICAgICAgc3BlbnRJbmRleDogc3BlbmRJbmZvPy5zcGVuZEluZGV4LFxuICAgIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIGNvbnZlcnQgZXhwbG9yZXIgdHJhbnNhY3Rpb24gdG8gZXh0cmFjdG9yIHRyYW5zYWN0aW9uIHR5cGVcbiAgICogQHBhcmFtIHR4XG4gICAqL1xuICBwcml2YXRlIGNvbnZlcnRUcmFuc2FjdGlvbiA9IChcbiAgICB0eDogVjEuVHJhbnNhY3Rpb25JbmZvXG4gICk6IEV4dGVuZGVkVHJhbnNhY3Rpb24gPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdHguaWQsXG4gICAgICBpbmNsdXNpb25IZWlnaHQ6IHR4LmluY2x1c2lvbkhlaWdodCxcbiAgICAgIGJsb2NrSWQ6IHR4LmJsb2NrSWQsXG4gICAgICBkYXRhSW5wdXRzOlxuICAgICAgICB0eC5kYXRhSW5wdXRzPy5tYXAoKGRhdGFJbnB1dCkgPT4gKHtcbiAgICAgICAgICBib3hJZDogZGF0YUlucHV0LmJveElkLFxuICAgICAgICB9KSkgPz8gW10sXG4gICAgICAvLyBUT0RPOiBBZGQgaW5wdXQgZXh0ZW5zaW9uIHRvIGV4cGxvcmVyIGxvY2FsL2VyZ28vcm9zZW4tYnJpZGdlL3NjYW5uZXIvLS9pc3N1ZXMvMTU2XG4gICAgICBpbnB1dHM6IHR4LmlucHV0cz8ubWFwKChpbnB1dCkgPT4gKHsgYm94SWQ6IGlucHV0LmJveElkIH0pKSA/PyBbXSxcbiAgICAgIG91dHB1dHM6XG4gICAgICAgIHR4Lm91dHB1dHM/Lm1hcCgob3V0cHV0KSA9PiAoe1xuICAgICAgICAgIGJveElkOiBvdXRwdXQuYm94SWQsXG4gICAgICAgICAgdHJhbnNhY3Rpb25JZDogb3V0cHV0LnRyYW5zYWN0aW9uSWQsXG4gICAgICAgICAgYWRkaXRpb25hbFJlZ2lzdGVyczogbWFwVmFsdWVzKFxuICAgICAgICAgICAgb3V0cHV0LmFkZGl0aW9uYWxSZWdpc3RlcnMsXG4gICAgICAgICAgICAnc2VyaWFsaXplZFZhbHVlJ1xuICAgICAgICAgICksXG4gICAgICAgICAgYXNzZXRzOlxuICAgICAgICAgICAgb3V0cHV0LmFzc2V0cz8ubWFwKChhc3NldCkgPT4gcGljayhhc3NldCwgWyd0b2tlbklkJywgJ2Ftb3VudCddKSkgPz9cbiAgICAgICAgICAgIFtdLFxuICAgICAgICAgIGVyZ29UcmVlOiBvdXRwdXQuZXJnb1RyZWUsXG4gICAgICAgICAgY3JlYXRpb25IZWlnaHQ6IG91dHB1dC5jcmVhdGlvbkhlaWdodCxcbiAgICAgICAgICBpbmRleDogb3V0cHV0LmluZGV4LFxuICAgICAgICAgIHZhbHVlOiBvdXRwdXQudmFsdWUsXG4gICAgICAgIH0pKSA/PyBbXSxcbiAgICB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiBjb252ZXJ0IGV4cGxvcmVyIGJsb2NrIHRyYW5zYWN0aW9uIHRvIHRyYW5zYWN0aW9uIHR5cGVcbiAgICogQHBhcmFtIHR4XG4gICAqL1xuICBwcml2YXRlIGNvbnZlcnRCbG9ja1RyYW5zYWN0aW9uID0gKHR4OiBWMS5UcmFuc2FjdGlvbkluZm8xKTogVHJhbnNhY3Rpb24gPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdHguaWQsXG4gICAgICBkYXRhSW5wdXRzOlxuICAgICAgICB0eC5kYXRhSW5wdXRzPy5tYXAoKGRhdGFJbnB1dCkgPT4gKHtcbiAgICAgICAgICBib3hJZDogZGF0YUlucHV0LmlkLFxuICAgICAgICB9KSkgPz8gW10sXG4gICAgICAvLyBUT0RPOiBBZGQgaW5wdXQgZXh0ZW5zaW9uIGxvY2FsL2VyZ28vcm9zZW4tYnJpZGdlL3NjYW5uZXIvLS9pc3N1ZXMvMTU2XG4gICAgICBpbnB1dHM6IHR4LmlucHV0cz8ubWFwKChpbnB1dCkgPT4gKHsgYm94SWQ6IGlucHV0LmlkIH0pKSA/PyBbXSxcbiAgICAgIG91dHB1dHM6XG4gICAgICAgIHR4Lm91dHB1dHM/Lm1hcCgob3V0cHV0KSA9PiAoe1xuICAgICAgICAgIGJveElkOiBvdXRwdXQuaWQsXG4gICAgICAgICAgdHJhbnNhY3Rpb25JZDogb3V0cHV0LnR4SWQsXG4gICAgICAgICAgYWRkaXRpb25hbFJlZ2lzdGVyczogb3V0cHV0LmFkZGl0aW9uYWxSZWdpc3RlcnMsXG4gICAgICAgICAgYXNzZXRzOlxuICAgICAgICAgICAgb3V0cHV0LmFzc2V0cz8ubWFwKChhc3NldCkgPT4gcGljayhhc3NldCwgWyd0b2tlbklkJywgJ2Ftb3VudCddKSkgPz9cbiAgICAgICAgICAgIFtdLFxuICAgICAgICAgIGVyZ29UcmVlOiBvdXRwdXQuZXJnb1RyZWUsXG4gICAgICAgICAgY3JlYXRpb25IZWlnaHQ6IG91dHB1dC5jcmVhdGlvbkhlaWdodCxcbiAgICAgICAgICBpbmRleDogb3V0cHV0LmluZGV4LFxuICAgICAgICAgIHZhbHVlOiBvdXRwdXQudmFsdWUsXG4gICAgICAgIH0pKSA/PyBbXSxcbiAgICB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiB1c2UgZXhwbG9yZXIgYXBpIHRvIHJldHVybiByZWxhdGVkIHRyYW5zYWN0aW9ucyBvZiB0aGUgc3BlY2lmaWVkIGFkZHJlc3MgaW4gdGhlIGhlaWdodCByYW5nZVxuICAgKiBAcGFyYW0gdG9rZW5JZFxuICAgKiBAcGFyYW0gb2Zmc2V0XG4gICAqIEBwYXJhbSBsaW1pdFxuICAgKiBAcmV0dXJucyByZWxhdGVkIHRyYW5zYWN0aW9uc1xuICAgKi9cbiAgZ2V0QWRkcmVzc1RyYW5zYWN0aW9uc1dpdGhIZWlnaHQgPSBhc3luYyAoXG4gICAgYWRkcmVzczogc3RyaW5nLFxuICAgIGZyb21IZWlnaHQ6IG51bWJlcixcbiAgICB0b0hlaWdodDogbnVtYmVyXG4gICk6IFByb21pc2U8QXJyYXk8RXh0ZW5kZWRUcmFuc2FjdGlvbj4+ID0+IHtcbiAgICBjb25zdCB0eHMgPSBhd2FpdCB0aGlzLmFwaS52MS5nZXRBcGlWMUFkZHJlc3Nlc1AxVHJhbnNhY3Rpb25zKGFkZHJlc3MsIHtcbiAgICAgIGZyb21IZWlnaHQsXG4gICAgICB0b0hlaWdodCxcbiAgICAgIGxpbWl0OiBBUElfTElNSVQsXG4gICAgfSk7XG4gICAgaWYgKCF0eHMuaXRlbXMpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdFeHBsb3JlciBBZGRyZXNzVHJhbnNhY3Rpb25zIGFwaSBleHBlY3RlZCB0byBoYXZlIGl0ZW1zJ1xuICAgICAgKTtcbiAgICByZXR1cm4gdHhzLml0ZW1zLm1hcCgodHgpID0+IHRoaXMuY29udmVydFRyYW5zYWN0aW9uKHR4KSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIHVzZSBleHBsb3JlciBhcGkgdG8gZ2V0IHRoZSBibG9jayBpZCBhdCB0aGUgc3BlY2lmaWVkIGhlaWdodFxuICAgKiBAcGFyYW0gaGVpZ2h0XG4gICAqIEByZXR1cm5zIGJsb2NrIGlkXG4gICAqL1xuICBnZXRCbG9ja0lkQXRIZWlnaHQgPSBhc3luYyAoaGVpZ2h0OiBudW1iZXIpOiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICAgIGNvbnN0IGlkID0gYXdhaXQgdGhpcy5hcGkudjAuZ2V0QXBpVjBCbG9ja3NBdFAxKGhlaWdodCk7XG4gICAgcmV0dXJuIGlkWzBdO1xuICB9O1xuXG4gIC8qKlxuICAgKiB1c2UgZXhwbG9yZXIgYXBpIHRvIHJldHVybiBhbGwgdHJhbnNhY3Rpb25zIGluIGEgYmxvY2tcbiAgICogQHBhcmFtIGJsb2NrSWRcbiAgICogQHJldHVybnMgY29udmVydGVkIHRyYW5zYWN0aW9uc1xuICAgKi9cbiAgZ2V0QmxvY2tUeHMgPSBhc3luYyAoYmxvY2tJZDogc3RyaW5nKTogUHJvbWlzZTxBcnJheTxUcmFuc2FjdGlvbj4+ID0+IHtcbiAgICBjb25zdCBibG9jayA9IGF3YWl0IHRoaXMuYXBpLnYxLmdldEFwaVYxQmxvY2tzUDEoYmxvY2tJZCk7XG4gICAgaWYgKCFibG9jay5ibG9jay5ibG9ja1RyYW5zYWN0aW9ucykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgRXhwZWN0ZWQgZXhwbG9yZXIgYmxvY2sgYXBpIHRvIGluY2x1ZGUgYmxvY2sgdHJhbnNhY3Rpb25zIGZvciBibG9jayAke2Jsb2NrSWR9YFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGJsb2NrLmJsb2NrLmJsb2NrVHJhbnNhY3Rpb25zLm1hcCgodHgpID0+XG4gICAgICB0aGlzLmNvbnZlcnRCbG9ja1RyYW5zYWN0aW9uKHR4KVxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIHVzZSBleHBsb3JlciBhcGkgdG8gcmV0dXJuIHJlbGF0ZWQgYm94ZXMgYnkgc3BlY2lmaWVkIGFkZHJlc3NcbiAgICogQHBhcmFtIGFkZHJlc3NcbiAgICogQHBhcmFtIG9mZnNldFxuICAgKiBAcGFyYW0gbGltaXRcbiAgICogQHJldHVybnMgcmVsYXRlZCBib3hlc1xuICAgKi9cbiAgZ2V0Qm94ZXNCeUFkZHJlc3MgPSBhc3luYyAoXG4gICAgYWRkcmVzczogc3RyaW5nLFxuICAgIG9mZnNldDogbnVtYmVyLFxuICAgIGxpbWl0OiBudW1iZXJcbiAgKTogUHJvbWlzZTx7IGJveGVzOiBFcmdvQm94W107IGhhc05leHRCYXRjaDogYm9vbGVhbiB9PiA9PiB7XG4gICAgY29uc3QgYm94ZXMgPSBhd2FpdCB0aGlzLmFwaS52MS5nZXRBcGlWMUJveGVzVW5zcGVudEJ5YWRkcmVzc1AxKGFkZHJlc3MsIHtcbiAgICAgIG9mZnNldDogb2Zmc2V0LFxuICAgICAgbGltaXQ6IGxpbWl0LFxuICAgICAgc29ydERpcmVjdGlvbjogJ2Rlc2MnLFxuICAgIH0pO1xuICAgIGlmICghYm94ZXMuaXRlbXMpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGxvcmVyIEJveGVzQnlBZGRyZXNzIGFwaSBleHBlY3RlZCB0byBoYXZlIGl0ZW1zJyk7XG4gICAgY29uc3QgcmVzdWx0Qm94ZXM6IEFycmF5PEVyZ29Cb3g+ID0gW107XG4gICAgZm9yIChjb25zdCBib3ggb2YgYm94ZXMuaXRlbXMpIHtcbiAgICAgIHJlc3VsdEJveGVzLnB1c2goYXdhaXQgdGhpcy5jb252ZXJ0Qm94KGJveCkpO1xuICAgIH1cbiAgICByZXR1cm4geyBib3hlczogcmVzdWx0Qm94ZXMsIGhhc05leHRCYXRjaDogYm94ZXMudG90YWwgPiBvZmZzZXQgKyBsaW1pdCB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiB1c2UgZXhwbG9yZXIgYXBpIHRvIHJldHVybiByZWxhdGVkIGJveGVzIGJ5IHNwZWNpZmllZCB0b2tlbiBpZFxuICAgKiBAcGFyYW0gdG9rZW5JZFxuICAgKiBAcGFyYW0gb2Zmc2V0XG4gICAqIEBwYXJhbSBsaW1pdFxuICAgKiBAcmV0dXJucyByZWxhdGVkIGJveGVzXG4gICAqL1xuICBnZXRCb3hlc0J5VG9rZW5JZCA9IGFzeW5jIChcbiAgICB0b2tlbklkOiBzdHJpbmcsXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgbGltaXQ6IG51bWJlclxuICApOiBQcm9taXNlPHsgYm94ZXM6IEVyZ29Cb3hbXTsgaGFzTmV4dEJhdGNoOiBib29sZWFuIH0+ID0+IHtcbiAgICBjb25zdCBib3hlcyA9IGF3YWl0IHRoaXMuYXBpLnYxLmdldEFwaVYxQm94ZXNCeXRva2VuaWRQMSh0b2tlbklkLCB7XG4gICAgICBvZmZzZXQ6IG9mZnNldCxcbiAgICAgIGxpbWl0OiBsaW1pdCxcbiAgICB9KTtcbiAgICBpZiAoIWJveGVzLml0ZW1zKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBsb3JlciBCb3hlc0J5VG9rZUlkIGFwaSBleHBlY3RlZCB0byBoYXZlIGl0ZW1zJyk7XG4gICAgY29uc3QgcmVzdWx0Qm94ZXM6IEFycmF5PEVyZ29Cb3g+ID0gW107XG4gICAgZm9yIChjb25zdCBib3ggb2YgYm94ZXMuaXRlbXMpIHtcbiAgICAgIHJlc3VsdEJveGVzLnB1c2goYXdhaXQgdGhpcy5jb252ZXJ0Qm94KGJveCkpO1xuICAgIH1cbiAgICByZXR1cm4geyBib3hlczogcmVzdWx0Qm94ZXMsIGhhc05leHRCYXRjaDogYm94ZXMudG90YWwgPiBvZmZzZXQgKyBsaW1pdCB9O1xuICB9O1xufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeNetwork.d.ts","sourceRoot":"","sources":["../../../lib/ergo/network/NodeNetwork.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,GAAG,CAAC;gBAEA,GAAG,EAAE,MAAM;IAKvB;;;;OAIG;IACH,OAAO,CAAC,UAAU,CAqBhB;IAEF;;;OAGG;IACH,OAAO,CAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"NodeNetwork.d.ts","sourceRoot":"","sources":["../../../lib/ergo/network/NodeNetwork.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,GAAG,CAAC;gBAEA,GAAG,EAAE,MAAM;IAKvB;;;;OAIG;IACH,OAAO,CAAC,UAAU,CAqBhB;IAEF;;;OAGG;IACH,OAAO,CAAC,kBAAkB,CAqBxB;IAEF;;;;OAIG;IACH,eAAe,UACN,MAAM,aACF,MAAM,KAChB,QAAQ,SAAS,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAY5C;IAEF;;;;;;OAMG;IACH,iBAAiB,YACN,MAAM,UACP,MAAM,SACP,MAAM,KACZ,QAAQ;QAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,CAAC,CAYrD;IAEF;;;;;;OAMG;IACH,iBAAiB,YACN,MAAM,UACP,MAAM,SACP,MAAM,KACZ,QAAQ;QAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,CAAC,CAWrD;IAEF;;;;;;OAMG;IACH,qCAAqC,YAC1B,MAAM,UACP,MAAM,SACP,MAAM,KACZ,QAAQ;QAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAa9D;CACH"}
|
|
@@ -52,6 +52,7 @@ export class NodeNetwork extends AbstractNetwork {
|
|
|
52
52
|
additionalRegisters: output.additionalRegisters,
|
|
53
53
|
boxId: output.boxId || '',
|
|
54
54
|
})),
|
|
55
|
+
// TODO: Add input extension local/ergo/rosen-bridge/scanner/-/issues/156
|
|
55
56
|
inputs: tx.inputs.map((input) => ({ boxId: input.boxId })) ?? [],
|
|
56
57
|
dataInputs: tx.dataInputs,
|
|
57
58
|
};
|
|
@@ -127,4 +128,4 @@ export class NodeNetwork extends AbstractNetwork {
|
|
|
127
128
|
};
|
|
128
129
|
};
|
|
129
130
|
}
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9kZU5ldHdvcmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZXJnby9uZXR3b3JrL05vZGVOZXR3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8scUJBR04sTUFBTSwwQkFBMEIsQ0FBQztBQUlsQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsTUFBTSxPQUFPLFdBQVksU0FBUSxlQUFlO0lBQ3RDLEdBQUcsQ0FBQztJQUVaLFlBQVksR0FBVztRQUNyQixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxHQUFHLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxVQUFVLEdBQUcsS0FBSyxFQUFFLEdBQW1CLEVBQW9CLEVBQUU7UUFDbkUsTUFBTSxFQUFFLEdBQUcsTUFBTSxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxhQUFjLENBQUMsQ0FBQztRQUM5RCxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsa0JBQWtCO1lBQ3RDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQU0sRUFBRSxHQUFHLENBQUMsa0JBQWtCLENBQUM7WUFDaEUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNkLE9BQU87WUFDTCxhQUFhLEVBQUUsR0FBRyxDQUFDLGFBQWEsSUFBSSxFQUFFO1lBQ3RDLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUM7WUFDckIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUN0QixRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVEsSUFBSSxFQUFFO1lBQzVCLGNBQWMsRUFBRSxHQUFHLENBQUMsY0FBYyxJQUFJLENBQUM7WUFDdkMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxlQUFlO1lBQ25DLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUU7WUFDeEIsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLG1CQUFtQjtZQUM1QyxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3RCLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTztZQUNuQixZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUk7WUFDN0IsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNO1lBQzlCLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxrQkFBa0I7WUFDMUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVO1NBQ2xDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRjs7O09BR0c7SUFDSyxrQkFBa0IsR0FBRyxDQUMzQixFQUEwQixFQUNMLEVBQUU7UUFDdkIsT0FBTztZQUNMLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUU7WUFDZixlQUFlLEVBQUUsRUFBRSxDQUFDLGVBQWU7WUFDbkMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPO1lBQ25CLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDbkMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhLElBQUksRUFBRTtnQkFDekMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQztnQkFDeEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDekIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLElBQUksRUFBRTtnQkFDL0IsY0FBYyxFQUFFLE1BQU0sQ0FBQyxjQUFjLElBQUksQ0FBQztnQkFDMUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRTtnQkFDM0IsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLG1CQUFtQjtnQkFDL0MsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTthQUMxQixDQUFDLENBQUM7WUFDSCxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFO1lBQ2hFLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVTtTQUMxQixDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNILGVBQWUsR0FBRyxLQUFLLEVBQ3JCLEtBQWEsRUFDYixTQUFpQixFQUM0QixFQUFFO1FBQy9DLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0MsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLENBQUM7UUFDckUsSUFBSSxVQUFVLElBQUksU0FBUztZQUN6QixNQUFNLEtBQUssQ0FDVCxpQ0FBaUMsS0FBSyxtQ0FBbUMsU0FBUyxHQUFHLENBQ3RGLENBQUM7UUFDSixPQUFPO1lBQ0wsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPO1lBQ2hCLE1BQU0sRUFBRSxFQUFFLENBQUMsZUFBZTtZQUMxQixVQUFVO1NBQ1gsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNILGlCQUFpQixHQUFHLEtBQUssRUFDdkIsT0FBZSxFQUNmLE1BQWMsRUFDZCxLQUFhLEVBQ3lDLEVBQUU7UUFDeEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLE9BQU8sRUFBRTtZQUM3RCxNQUFNLEVBQUUsTUFBTTtZQUNkLEtBQUssRUFBRSxLQUFLO1lBQ1osYUFBYSxFQUFFLE1BQU07U0FDdEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUs7WUFDUixNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7UUFDekUsTUFBTSxTQUFTLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNqQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNyRCxDQUFDO1FBQ0YsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDOUQsQ0FBQyxDQUFDO0lBRUY7Ozs7OztPQU1HO0lBQ0gsaUJBQWlCLEdBQUcsS0FBSyxFQUN2QixPQUFlLEVBQ2YsTUFBYyxFQUNkLEtBQWEsRUFDeUMsRUFBRTtRQUN4RCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFO1lBQ3RELE1BQU0sRUFBRSxNQUFNO1lBQ2QsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7UUFDekUsTUFBTSxTQUFTLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNqQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDM0QsQ0FBQztRQUNGLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNwRSxDQUFDLENBQUM7SUFFRjs7Ozs7O09BTUc7SUFDSCxxQ0FBcUMsR0FBRyxLQUFLLEVBQzNDLE9BQWUsRUFDZixNQUFjLEVBQ2QsS0FBYSxFQUNrRCxFQUFFO1FBQ2pFLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFO1lBQ2xELE1BQU07WUFDTixLQUFLO1NBQ04sQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FDYix5REFBeUQsQ0FDMUQsQ0FBQztRQUNKLE9BQU87WUFDTCxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN6RCxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQU07U0FDbEIsQ0FBQztJQUNKLENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGVyZ29Ob2RlQ2xpZW50RmFjdG9yeSwge1xuICBJbmRleGVkRXJnb0JveCxcbiAgSW5kZXhlZEVyZ29UcmFuc2FjdGlvbixcbn0gZnJvbSAnQHJvc2VuLWNsaWVudHMvZXJnby1ub2RlJztcblxuaW1wb3J0IHsgQmxvY2tJbmZvIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBFcmdvQm94LCBFeHRlbmRlZFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBYnN0cmFjdE5ldHdvcmsgfSBmcm9tICcuL0Fic3RyYWN0TmV0d29yayc7XG5cbmV4cG9ydCBjbGFzcyBOb2RlTmV0d29yayBleHRlbmRzIEFic3RyYWN0TmV0d29yayB7XG4gIHByaXZhdGUgYXBpO1xuXG4gIGNvbnN0cnVjdG9yKHVybDogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFwaSA9IGVyZ29Ob2RlQ2xpZW50RmFjdG9yeSh1cmwpO1xuICB9XG5cbiAgLyoqXG4gICAqIGNvbnZlcnQgbm9kZSBhcGkgYm94ZXMgdG8gRXJnb0JveCBpbnRlcmZhY2VcbiAgICogQHBhcmFtIGJveFxuICAgKiBAcmV0dXJucyBFcmdvQm94XG4gICAqL1xuICBwcml2YXRlIGNvbnZlcnRCb3ggPSBhc3luYyAoYm94OiBJbmRleGVkRXJnb0JveCk6IFByb21pc2U8RXJnb0JveD4gPT4ge1xuICAgIGNvbnN0IHR4ID0gYXdhaXQgYXdhaXQgdGhpcy5hcGkuZ2V0VHhCeUlkKGJveC50cmFuc2FjdGlvbklkISk7XG4gICAgY29uc3Qgc3BlbmRJbmZvID0gYm94LnNwZW50VHJhbnNhY3Rpb25JZFxuICAgICAgPyBhd2FpdCB0aGlzLmdldFNwZW5kaW5nSW5mbyhib3guYm94SWQhLCBib3guc3BlbnRUcmFuc2FjdGlvbklkKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRyYW5zYWN0aW9uSWQ6IGJveC50cmFuc2FjdGlvbklkIHx8ICcnLFxuICAgICAgaW5kZXg6IGJveC5pbmRleCB8fCAwLFxuICAgICAgdmFsdWU6IGJveC52YWx1ZSB8fCAwbixcbiAgICAgIGVyZ29UcmVlOiBib3guZXJnb1RyZWUgfHwgJycsXG4gICAgICBjcmVhdGlvbkhlaWdodDogYm94LmNyZWF0aW9uSGVpZ2h0IHx8IDAsXG4gICAgICBpbmNsdXNpb25IZWlnaHQ6IHR4LmluY2x1c2lvbkhlaWdodCxcbiAgICAgIGFzc2V0czogYm94LmFzc2V0cyB8fCBbXSxcbiAgICAgIGFkZGl0aW9uYWxSZWdpc3RlcnM6IGJveC5hZGRpdGlvbmFsUmVnaXN0ZXJzLFxuICAgICAgYm94SWQ6IGJveC5ib3hJZCB8fCAnJyxcbiAgICAgIGJsb2NrSWQ6IHR4LmJsb2NrSWQsXG4gICAgICBzcGVudEJsb2NrSWQ6IHNwZW5kSW5mbz8uaGFzaCxcbiAgICAgIHNwZW50SGVpZ2h0OiBzcGVuZEluZm8/LmhlaWdodCxcbiAgICAgIHNwZW50VHJhbnNhY3Rpb25JZDogYm94LnNwZW50VHJhbnNhY3Rpb25JZCxcbiAgICAgIHNwZW50SW5kZXg6IHNwZW5kSW5mbz8uc3BlbmRJbmRleCxcbiAgICB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiBjb252ZXJ0IE5vZGUgdHJhbnNhY3Rpb24gdG8gZXh0cmFjdG9yIHRyYW5zYWN0aW9uIHR5cGVcbiAgICogQHBhcmFtIHR4XG4gICAqL1xuICBwcml2YXRlIGNvbnZlcnRUcmFuc2FjdGlvbiA9IChcbiAgICB0eDogSW5kZXhlZEVyZ29UcmFuc2FjdGlvblxuICApOiBFeHRlbmRlZFRyYW5zYWN0aW9uID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHR4LmlkIHx8ICcnLFxuICAgICAgaW5jbHVzaW9uSGVpZ2h0OiB0eC5pbmNsdXNpb25IZWlnaHQsXG4gICAgICBibG9ja0lkOiB0eC5ibG9ja0lkLFxuICAgICAgb3V0cHV0czogdHgub3V0cHV0cy5tYXAoKG91dHB1dCkgPT4gKHtcbiAgICAgICAgdHJhbnNhY3Rpb25JZDogb3V0cHV0LnRyYW5zYWN0aW9uSWQgfHwgJycsXG4gICAgICAgIGluZGV4OiBvdXRwdXQuaW5kZXggfHwgMCxcbiAgICAgICAgdmFsdWU6IG91dHB1dC52YWx1ZSB8fCAwbixcbiAgICAgICAgZXJnb1RyZWU6IG91dHB1dC5lcmdvVHJlZSB8fCAnJyxcbiAgICAgICAgY3JlYXRpb25IZWlnaHQ6IG91dHB1dC5jcmVhdGlvbkhlaWdodCB8fCAwLFxuICAgICAgICBhc3NldHM6IG91dHB1dC5hc3NldHMgfHwgW10sXG4gICAgICAgIGFkZGl0aW9uYWxSZWdpc3RlcnM6IG91dHB1dC5hZGRpdGlvbmFsUmVnaXN0ZXJzLFxuICAgICAgICBib3hJZDogb3V0cHV0LmJveElkIHx8ICcnLFxuICAgICAgfSkpLFxuICAgICAgaW5wdXRzOiB0eC5pbnB1dHMubWFwKChpbnB1dCkgPT4gKHsgYm94SWQ6IGlucHV0LmJveElkIH0pKSA/PyBbXSxcbiAgICAgIGRhdGFJbnB1dHM6IHR4LmRhdGFJbnB1dHMsXG4gICAgfTtcbiAgfTtcblxuICAvKipcbiAgICogcmV0dXJuIHNwZW5kaW5nIGluZm9ybWF0aW9uIG9mIGEgc3BlY2lmaWVkIGJveCBieSBoYXZpbmcgc3BlbmRUeElkXG4gICAqIEBwYXJhbSBib3hJZFxuICAgKiBAcGFyYW0gc3BlbmRUeElkXG4gICAqL1xuICBnZXRTcGVuZGluZ0luZm8gPSBhc3luYyAoXG4gICAgYm94SWQ6IHN0cmluZyxcbiAgICBzcGVuZFR4SWQ6IHN0cmluZ1xuICApOiBQcm9taXNlPEJsb2NrSW5mbyAmIHsgc3BlbmRJbmRleDogbnVtYmVyIH0+ID0+IHtcbiAgICBjb25zdCB0eCA9IGF3YWl0IHRoaXMuYXBpLmdldFR4QnlJZChzcGVuZFR4SWQpO1xuICAgIGNvbnN0IHNwZW5kSW5kZXggPSB0eC5pbnB1dHM/LmZpbmRJbmRleCgoYm94KSA9PiBib3guYm94SWQgPT0gYm94SWQpO1xuICAgIGlmIChzcGVuZEluZGV4ID09IHVuZGVmaW5lZClcbiAgICAgIHRocm93IEVycm9yKFxuICAgICAgICBgSW1wb3NzaWJsZSBiZWhhdmlvciwgdGhlIGJveCBbJHtib3hJZH1dIHNob3VsZCBoYXZlIGJlZW4gc3BlbnQgaW4gdHggWyR7c3BlbmRUeElkfV1gXG4gICAgICApO1xuICAgIHJldHVybiB7XG4gICAgICBoYXNoOiB0eC5ibG9ja0lkLFxuICAgICAgaGVpZ2h0OiB0eC5pbmNsdXNpb25IZWlnaHQsXG4gICAgICBzcGVuZEluZGV4LFxuICAgIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIHVzZSBub2RlIGFwaSB0byByZXR1cm4gcmVsYXRlZCBib3hlcyBieSBzcGVjaWZpZWQgYWRkcmVzc1xuICAgKiBAcGFyYW0gYWRkcmVzc1xuICAgKiBAcGFyYW0gb2Zmc2V0XG4gICAqIEBwYXJhbSBsaW1pdFxuICAgKiBAcmV0dXJucyByZWxhdGVkIGJveGVzXG4gICAqL1xuICBnZXRCb3hlc0J5QWRkcmVzcyA9IGFzeW5jIChcbiAgICBhZGRyZXNzOiBzdHJpbmcsXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgbGltaXQ6IG51bWJlclxuICApOiBQcm9taXNlPHsgYm94ZXM6IEVyZ29Cb3hbXTsgaGFzTmV4dEJhdGNoOiBib29sZWFuIH0+ID0+IHtcbiAgICBjb25zdCBib3hlcyA9IGF3YWl0IHRoaXMuYXBpLmdldEJveGVzQnlBZGRyZXNzVW5zcGVudChhZGRyZXNzLCB7XG4gICAgICBvZmZzZXQ6IG9mZnNldCxcbiAgICAgIGxpbWl0OiBsaW1pdCxcbiAgICAgIHNvcnREaXJlY3Rpb246ICdkZXNjJyxcbiAgICB9KTtcbiAgICBpZiAoIWJveGVzKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFcmdvIG5vZGUgQm94ZXNCeUFkZHJlc3MgYXBpIGV4cGVjdGVkIHRvIGhhdmUgaXRlbXMnKTtcbiAgICBjb25zdCBlcmdvQm94ZXMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGJveGVzLm1hcChhc3luYyAoYm94KSA9PiBhd2FpdCB0aGlzLmNvbnZlcnRCb3goYm94KSlcbiAgICApO1xuICAgIHJldHVybiB7IGJveGVzOiBlcmdvQm94ZXMsIGhhc05leHRCYXRjaDogYm94ZXMubGVuZ3RoID4gMCB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiB1c2Ugbm9kZSBhcGkgdG8gcmV0dXJuIHJlbGF0ZWQgYm94ZXMgYnkgc3BlY2lmaWVkIHRva2VuIGlkXG4gICAqIEBwYXJhbSB0b2tlbklkXG4gICAqIEBwYXJhbSBvZmZzZXRcbiAgICogQHBhcmFtIGxpbWl0XG4gICAqIEByZXR1cm5zIHJlbGF0ZWQgYm94ZXNcbiAgICovXG4gIGdldEJveGVzQnlUb2tlbklkID0gYXN5bmMgKFxuICAgIHRva2VuSWQ6IHN0cmluZyxcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgICBsaW1pdDogbnVtYmVyXG4gICk6IFByb21pc2U8eyBib3hlczogRXJnb0JveFtdOyBoYXNOZXh0QmF0Y2g6IGJvb2xlYW4gfT4gPT4ge1xuICAgIGNvbnN0IGJveGVzID0gYXdhaXQgdGhpcy5hcGkuZ2V0Qm94ZXNCeVRva2VuSWQodG9rZW5JZCwge1xuICAgICAgb2Zmc2V0OiBvZmZzZXQsXG4gICAgICBsaW1pdDogbGltaXQsXG4gICAgfSk7XG4gICAgaWYgKCFib3hlcy5pdGVtcylcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXJnbyBub2RlIEJveGVzQnlUb2tlbklkIGFwaSBleHBlY3RlZCB0byBoYXZlIGl0ZW1zJyk7XG4gICAgY29uc3QgZXJnb0JveGVzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBib3hlcy5pdGVtcy5tYXAoYXN5bmMgKGJveCkgPT4gYXdhaXQgdGhpcy5jb252ZXJ0Qm94KGJveCkpXG4gICAgKTtcbiAgICByZXR1cm4geyBib3hlczogZXJnb0JveGVzLCBoYXNOZXh0QmF0Y2g6IGJveGVzLml0ZW1zLmxlbmd0aCA+IDAgfTtcbiAgfTtcblxuICAvKipcbiAgICogdXNlIG5vZGUgYXBpIHRvIHJldHVybiByZWxhdGVkIHRyYW5zYWN0aW9ucyBvZiB0aGUgc3BlY2lmaWVkIGFkZHJlc3Mgd2l0aCBsaW1pdCBvZmZzZXRcbiAgICogQHBhcmFtIHRva2VuSWRcbiAgICogQHBhcmFtIG9mZnNldFxuICAgKiBAcGFyYW0gbGltaXRcbiAgICogQHJldHVybnMgcmVsYXRlZCB0cmFuc2FjdGlvbnNcbiAgICovXG4gIGdldEFkZHJlc3NUcmFuc2FjdGlvbnNXaXRoT2Zmc2V0TGltaXQgPSBhc3luYyAoXG4gICAgYWRkcmVzczogc3RyaW5nLFxuICAgIG9mZnNldDogbnVtYmVyLFxuICAgIGxpbWl0OiBudW1iZXJcbiAgKTogUHJvbWlzZTx7IGl0ZW1zOiBBcnJheTxFeHRlbmRlZFRyYW5zYWN0aW9uPjsgdG90YWw6IG51bWJlciB9PiA9PiB7XG4gICAgY29uc3QgdHhzID0gYXdhaXQgdGhpcy5hcGkuZ2V0VHhzQnlBZGRyZXNzKGFkZHJlc3MsIHtcbiAgICAgIG9mZnNldCxcbiAgICAgIGxpbWl0LFxuICAgIH0pO1xuICAgIGlmICghdHhzLml0ZW1zKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnRXhwbG9yZXIgQWRkcmVzc1RyYW5zYWN0aW9ucyBhcGkgZXhwZWN0ZWQgdG8gaGF2ZSBpdGVtcydcbiAgICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGl0ZW1zOiB0eHMuaXRlbXMubWFwKCh0eCkgPT4gdGhpcy5jb252ZXJ0VHJhbnNhY3Rpb24odHgpKSxcbiAgICAgIHRvdGFsOiB0eHMudG90YWwhLFxuICAgIH07XG4gIH07XG59XG4iXX0=
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9kZU5ldHdvcmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZXJnby9uZXR3b3JrL05vZGVOZXR3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8scUJBR04sTUFBTSwwQkFBMEIsQ0FBQztBQUlsQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsTUFBTSxPQUFPLFdBQVksU0FBUSxlQUFlO0lBQ3RDLEdBQUcsQ0FBQztJQUVaLFlBQVksR0FBVztRQUNyQixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxHQUFHLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxVQUFVLEdBQUcsS0FBSyxFQUFFLEdBQW1CLEVBQW9CLEVBQUU7UUFDbkUsTUFBTSxFQUFFLEdBQUcsTUFBTSxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxhQUFjLENBQUMsQ0FBQztRQUM5RCxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsa0JBQWtCO1lBQ3RDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQU0sRUFBRSxHQUFHLENBQUMsa0JBQWtCLENBQUM7WUFDaEUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNkLE9BQU87WUFDTCxhQUFhLEVBQUUsR0FBRyxDQUFDLGFBQWEsSUFBSSxFQUFFO1lBQ3RDLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUM7WUFDckIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUN0QixRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVEsSUFBSSxFQUFFO1lBQzVCLGNBQWMsRUFBRSxHQUFHLENBQUMsY0FBYyxJQUFJLENBQUM7WUFDdkMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxlQUFlO1lBQ25DLE1BQU0sRUFB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QUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRTtZQUNsRCxNQUFNO1lBQ04sS0FBSztTQUNOLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQ2IseURBQXlELENBQzFELENBQUM7UUFDSixPQUFPO1lBQ0wsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDekQsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFNO1NBQ2xCLENBQUM7SUFDSixDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBlcmdvTm9kZUNsaWVudEZhY3RvcnksIHtcbiAgSW5kZXhlZEVyZ29Cb3gsXG4gIEluZGV4ZWRFcmdvVHJhbnNhY3Rpb24sXG59IGZyb20gJ0Byb3Nlbi1jbGllbnRzL2VyZ28tbm9kZSc7XG5cbmltcG9ydCB7IEJsb2NrSW5mbyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgRXJnb0JveCwgRXh0ZW5kZWRUcmFuc2FjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQWJzdHJhY3ROZXR3b3JrIH0gZnJvbSAnLi9BYnN0cmFjdE5ldHdvcmsnO1xuXG5leHBvcnQgY2xhc3MgTm9kZU5ldHdvcmsgZXh0ZW5kcyBBYnN0cmFjdE5ldHdvcmsge1xuICBwcml2YXRlIGFwaTtcblxuICBjb25zdHJ1Y3Rvcih1cmw6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hcGkgPSBlcmdvTm9kZUNsaWVudEZhY3RvcnkodXJsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjb252ZXJ0IG5vZGUgYXBpIGJveGVzIHRvIEVyZ29Cb3ggaW50ZXJmYWNlXG4gICAqIEBwYXJhbSBib3hcbiAgICogQHJldHVybnMgRXJnb0JveFxuICAgKi9cbiAgcHJpdmF0ZSBjb252ZXJ0Qm94ID0gYXN5bmMgKGJveDogSW5kZXhlZEVyZ29Cb3gpOiBQcm9taXNlPEVyZ29Cb3g+ID0+IHtcbiAgICBjb25zdCB0eCA9IGF3YWl0IGF3YWl0IHRoaXMuYXBpLmdldFR4QnlJZChib3gudHJhbnNhY3Rpb25JZCEpO1xuICAgIGNvbnN0IHNwZW5kSW5mbyA9IGJveC5zcGVudFRyYW5zYWN0aW9uSWRcbiAgICAgID8gYXdhaXQgdGhpcy5nZXRTcGVuZGluZ0luZm8oYm94LmJveElkISwgYm94LnNwZW50VHJhbnNhY3Rpb25JZClcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICB0cmFuc2FjdGlvbklkOiBib3gudHJhbnNhY3Rpb25JZCB8fCAnJyxcbiAgICAgIGluZGV4OiBib3guaW5kZXggfHwgMCxcbiAgICAgIHZhbHVlOiBib3gudmFsdWUgfHwgMG4sXG4gICAgICBlcmdvVHJlZTogYm94LmVyZ29UcmVlIHx8ICcnLFxuICAgICAgY3JlYXRpb25IZWlnaHQ6IGJveC5jcmVhdGlvbkhlaWdodCB8fCAwLFxuICAgICAgaW5jbHVzaW9uSGVpZ2h0OiB0eC5pbmNsdXNpb25IZWlnaHQsXG4gICAgICBhc3NldHM6IGJveC5hc3NldHMgfHwgW10sXG4gICAgICBhZGRpdGlvbmFsUmVnaXN0ZXJzOiBib3guYWRkaXRpb25hbFJlZ2lzdGVycyxcbiAgICAgIGJveElkOiBib3guYm94SWQgfHwgJycsXG4gICAgICBibG9ja0lkOiB0eC5ibG9ja0lkLFxuICAgICAgc3BlbnRCbG9ja0lkOiBzcGVuZEluZm8/Lmhhc2gsXG4gICAgICBzcGVudEhlaWdodDogc3BlbmRJbmZvPy5oZWlnaHQsXG4gICAgICBzcGVudFRyYW5zYWN0aW9uSWQ6IGJveC5zcGVudFRyYW5zYWN0aW9uSWQsXG4gICAgICBzcGVudEluZGV4OiBzcGVuZEluZm8/LnNwZW5kSW5kZXgsXG4gICAgfTtcbiAgfTtcblxuICAvKipcbiAgICogY29udmVydCBOb2RlIHRyYW5zYWN0aW9uIHRvIGV4dHJhY3RvciB0cmFuc2FjdGlvbiB0eXBlXG4gICAqIEBwYXJhbSB0eFxuICAgKi9cbiAgcHJpdmF0ZSBjb252ZXJ0VHJhbnNhY3Rpb24gPSAoXG4gICAgdHg6IEluZGV4ZWRFcmdvVHJhbnNhY3Rpb25cbiAgKTogRXh0ZW5kZWRUcmFuc2FjdGlvbiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiB0eC5pZCB8fCAnJyxcbiAgICAgIGluY2x1c2lvbkhlaWdodDogdHguaW5jbHVzaW9uSGVpZ2h0LFxuICAgICAgYmxvY2tJZDogdHguYmxvY2tJZCxcbiAgICAgIG91dHB1dHM6IHR4Lm91dHB1dHMubWFwKChvdXRwdXQpID0+ICh7XG4gICAgICAgIHRyYW5zYWN0aW9uSWQ6IG91dHB1dC50cmFuc2FjdGlvbklkIHx8ICcnLFxuICAgICAgICBpbmRleDogb3V0cHV0LmluZGV4IHx8IDAsXG4gICAgICAgIHZhbHVlOiBvdXRwdXQudmFsdWUgfHwgMG4sXG4gICAgICAgIGVyZ29UcmVlOiBvdXRwdXQuZXJnb1RyZWUgfHwgJycsXG4gICAgICAgIGNyZWF0aW9uSGVpZ2h0OiBvdXRwdXQuY3JlYXRpb25IZWlnaHQgfHwgMCxcbiAgICAgICAgYXNzZXRzOiBvdXRwdXQuYXNzZXRzIHx8IFtdLFxuICAgICAgICBhZGRpdGlvbmFsUmVnaXN0ZXJzOiBvdXRwdXQuYWRkaXRpb25hbFJlZ2lzdGVycyxcbiAgICAgICAgYm94SWQ6IG91dHB1dC5ib3hJZCB8fCAnJyxcbiAgICAgIH0pKSxcbiAgICAgIC8vIFRPRE86IEFkZCBpbnB1dCBleHRlbnNpb24gbG9jYWwvZXJnby9yb3Nlbi1icmlkZ2Uvc2Nhbm5lci8tL2lzc3Vlcy8xNTZcbiAgICAgIGlucHV0czogdHguaW5wdXRzLm1hcCgoaW5wdXQpID0+ICh7IGJveElkOiBpbnB1dC5ib3hJZCEgfSkpID8/IFtdLFxuICAgICAgZGF0YUlucHV0czogdHguZGF0YUlucHV0cyxcbiAgICB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiByZXR1cm4gc3BlbmRpbmcgaW5mb3JtYXRpb24gb2YgYSBzcGVjaWZpZWQgYm94IGJ5IGhhdmluZyBzcGVuZFR4SWRcbiAgICogQHBhcmFtIGJveElkXG4gICAqIEBwYXJhbSBzcGVuZFR4SWRcbiAgICovXG4gIGdldFNwZW5kaW5nSW5mbyA9IGFzeW5jIChcbiAgICBib3hJZDogc3RyaW5nLFxuICAgIHNwZW5kVHhJZDogc3RyaW5nXG4gICk6IFByb21pc2U8QmxvY2tJbmZvICYgeyBzcGVuZEluZGV4OiBudW1iZXIgfT4gPT4ge1xuICAgIGNvbnN0IHR4ID0gYXdhaXQgdGhpcy5hcGkuZ2V0VHhCeUlkKHNwZW5kVHhJZCk7XG4gICAgY29uc3Qgc3BlbmRJbmRleCA9IHR4LmlucHV0cz8uZmluZEluZGV4KChib3gpID0+IGJveC5ib3hJZCA9PSBib3hJZCk7XG4gICAgaWYgKHNwZW5kSW5kZXggPT0gdW5kZWZpbmVkKVxuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgIGBJbXBvc3NpYmxlIGJlaGF2aW9yLCB0aGUgYm94IFske2JveElkfV0gc2hvdWxkIGhhdmUgYmVlbiBzcGVudCBpbiB0eCBbJHtzcGVuZFR4SWR9XWBcbiAgICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhhc2g6IHR4LmJsb2NrSWQsXG4gICAgICBoZWlnaHQ6IHR4LmluY2x1c2lvbkhlaWdodCxcbiAgICAgIHNwZW5kSW5kZXgsXG4gICAgfTtcbiAgfTtcblxuICAvKipcbiAgICogdXNlIG5vZGUgYXBpIHRvIHJldHVybiByZWxhdGVkIGJveGVzIGJ5IHNwZWNpZmllZCBhZGRyZXNzXG4gICAqIEBwYXJhbSBhZGRyZXNzXG4gICAqIEBwYXJhbSBvZmZzZXRcbiAgICogQHBhcmFtIGxpbWl0XG4gICAqIEByZXR1cm5zIHJlbGF0ZWQgYm94ZXNcbiAgICovXG4gIGdldEJveGVzQnlBZGRyZXNzID0gYXN5bmMgKFxuICAgIGFkZHJlc3M6IHN0cmluZyxcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgICBsaW1pdDogbnVtYmVyXG4gICk6IFByb21pc2U8eyBib3hlczogRXJnb0JveFtdOyBoYXNOZXh0QmF0Y2g6IGJvb2xlYW4gfT4gPT4ge1xuICAgIGNvbnN0IGJveGVzID0gYXdhaXQgdGhpcy5hcGkuZ2V0Qm94ZXNCeUFkZHJlc3NVbnNwZW50KGFkZHJlc3MsIHtcbiAgICAgIG9mZnNldDogb2Zmc2V0LFxuICAgICAgbGltaXQ6IGxpbWl0LFxuICAgICAgc29ydERpcmVjdGlvbjogJ2Rlc2MnLFxuICAgIH0pO1xuICAgIGlmICghYm94ZXMpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VyZ28gbm9kZSBCb3hlc0J5QWRkcmVzcyBhcGkgZXhwZWN0ZWQgdG8gaGF2ZSBpdGVtcycpO1xuICAgIGNvbnN0IGVyZ29Cb3hlcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgYm94ZXMubWFwKGFzeW5jIChib3gpID0+IGF3YWl0IHRoaXMuY29udmVydEJveChib3gpKVxuICAgICk7XG4gICAgcmV0dXJuIHsgYm94ZXM6IGVyZ29Cb3hlcywgaGFzTmV4dEJhdGNoOiBib3hlcy5sZW5ndGggPiAwIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIHVzZSBub2RlIGFwaSB0byByZXR1cm4gcmVsYXRlZCBib3hlcyBieSBzcGVjaWZpZWQgdG9rZW4gaWRcbiAgICogQHBhcmFtIHRva2VuSWRcbiAgICogQHBhcmFtIG9mZnNldFxuICAgKiBAcGFyYW0gbGltaXRcbiAgICogQHJldHVybnMgcmVsYXRlZCBib3hlc1xuICAgKi9cbiAgZ2V0Qm94ZXNCeVRva2VuSWQgPSBhc3luYyAoXG4gICAgdG9rZW5JZDogc3RyaW5nLFxuICAgIG9mZnNldDogbnVtYmVyLFxuICAgIGxpbWl0OiBudW1iZXJcbiAgKTogUHJvbWlzZTx7IGJveGVzOiBFcmdvQm94W107IGhhc05leHRCYXRjaDogYm9vbGVhbiB9PiA9PiB7XG4gICAgY29uc3QgYm94ZXMgPSBhd2FpdCB0aGlzLmFwaS5nZXRCb3hlc0J5VG9rZW5JZCh0b2tlbklkLCB7XG4gICAgICBvZmZzZXQ6IG9mZnNldCxcbiAgICAgIGxpbWl0OiBsaW1pdCxcbiAgICB9KTtcbiAgICBpZiAoIWJveGVzLml0ZW1zKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFcmdvIG5vZGUgQm94ZXNCeVRva2VuSWQgYXBpIGV4cGVjdGVkIHRvIGhhdmUgaXRlbXMnKTtcbiAgICBjb25zdCBlcmdvQm94ZXMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGJveGVzLml0ZW1zLm1hcChhc3luYyAoYm94KSA9PiBhd2FpdCB0aGlzLmNvbnZlcnRCb3goYm94KSlcbiAgICApO1xuICAgIHJldHVybiB7IGJveGVzOiBlcmdvQm94ZXMsIGhhc05leHRCYXRjaDogYm94ZXMuaXRlbXMubGVuZ3RoID4gMCB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiB1c2Ugbm9kZSBhcGkgdG8gcmV0dXJuIHJlbGF0ZWQgdHJhbnNhY3Rpb25zIG9mIHRoZSBzcGVjaWZpZWQgYWRkcmVzcyB3aXRoIGxpbWl0IG9mZnNldFxuICAgKiBAcGFyYW0gdG9rZW5JZFxuICAgKiBAcGFyYW0gb2Zmc2V0XG4gICAqIEBwYXJhbSBsaW1pdFxuICAgKiBAcmV0dXJucyByZWxhdGVkIHRyYW5zYWN0aW9uc1xuICAgKi9cbiAgZ2V0QWRkcmVzc1RyYW5zYWN0aW9uc1dpdGhPZmZzZXRMaW1pdCA9IGFzeW5jIChcbiAgICBhZGRyZXNzOiBzdHJpbmcsXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgbGltaXQ6IG51bWJlclxuICApOiBQcm9taXNlPHsgaXRlbXM6IEFycmF5PEV4dGVuZGVkVHJhbnNhY3Rpb24+OyB0b3RhbDogbnVtYmVyIH0+ID0+IHtcbiAgICBjb25zdCB0eHMgPSBhd2FpdCB0aGlzLmFwaS5nZXRUeHNCeUFkZHJlc3MoYWRkcmVzcywge1xuICAgICAgb2Zmc2V0LFxuICAgICAgbGltaXQsXG4gICAgfSk7XG4gICAgaWYgKCF0eHMuaXRlbXMpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdFeHBsb3JlciBBZGRyZXNzVHJhbnNhY3Rpb25zIGFwaSBleHBlY3RlZCB0byBoYXZlIGl0ZW1zJ1xuICAgICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgaXRlbXM6IHR4cy5pdGVtcy5tYXAoKHR4KSA9PiB0aGlzLmNvbnZlcnRUcmFuc2FjdGlvbih0eCkpLFxuICAgICAgdG90YWw6IHR4cy50b3RhbCEsXG4gICAgfTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
CallbackType,
|
|
15
15
|
CallbackMap,
|
|
16
16
|
CallbackDataMap,
|
|
17
|
+
InputExtension,
|
|
17
18
|
} from './interfaces';
|
|
18
19
|
import { AbstractErgoExtractorEntity } from './AbstractErgoExtractorEntity';
|
|
19
20
|
|
|
@@ -99,9 +100,13 @@ export abstract class AbstractErgoExtractor<
|
|
|
99
100
|
/**
|
|
100
101
|
* extract box data to proper format (not including spending information)
|
|
101
102
|
* @param box
|
|
103
|
+
* @param inputExtensions all input box extensions in transaction
|
|
102
104
|
* @return extracted data in proper format
|
|
103
105
|
*/
|
|
104
|
-
abstract extractBoxData: (
|
|
106
|
+
abstract extractBoxData: (
|
|
107
|
+
box: OutputBox,
|
|
108
|
+
inputExtensions: InputExtension[]
|
|
109
|
+
) => ExtractedData | undefined;
|
|
105
110
|
|
|
106
111
|
/**
|
|
107
112
|
* check proper data format in the box
|
|
@@ -124,12 +129,13 @@ export abstract class AbstractErgoExtractor<
|
|
|
124
129
|
const boxes: Array<ExtractedData> = [];
|
|
125
130
|
const spentInfos: Array<SpendInfo> = [];
|
|
126
131
|
for (const tx of txs) {
|
|
132
|
+
const inputExtensions = tx.inputs.map((input) => input.extension || {});
|
|
127
133
|
for (const output of tx.outputs) {
|
|
128
134
|
if (!this.hasData(output)) {
|
|
129
135
|
continue;
|
|
130
136
|
}
|
|
131
137
|
this.logger.debug(`Trying to extract data from box ${output.boxId}`);
|
|
132
|
-
const extractedData = this.extractBoxData(output);
|
|
138
|
+
const extractedData = this.extractBoxData(output, inputExtensions);
|
|
133
139
|
if (extractedData) {
|
|
134
140
|
this.logger.debug(
|
|
135
141
|
`Extracted data ${JsonBigInt.stringify(extractedData)} from box ${
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
Not,
|
|
6
6
|
EntityTarget,
|
|
7
7
|
FindOptionsWhere,
|
|
8
|
+
QueryRunner,
|
|
8
9
|
} from 'typeorm';
|
|
9
10
|
import { chunk, difference, pick } from 'lodash-es';
|
|
10
11
|
import { AbstractLogger, DummyLogger } from '@rosen-bridge/abstract-logger';
|
|
@@ -38,18 +39,122 @@ export abstract class AbstractErgoExtractorAction<
|
|
|
38
39
|
/**
|
|
39
40
|
* create the database entity from extracted data and block information
|
|
40
41
|
*/
|
|
41
|
-
protected
|
|
42
|
+
protected createEntity = (
|
|
42
43
|
data: ExtractedData[],
|
|
43
44
|
block: BlockInfo,
|
|
44
45
|
extractor: string
|
|
45
|
-
)
|
|
46
|
+
): Array<Omit<ExtractorEntity, 'id'>> => {
|
|
47
|
+
throw Error(
|
|
48
|
+
'You must implement `createEntity` or override `insertEntities` and `updateEntities`'
|
|
49
|
+
);
|
|
50
|
+
};
|
|
46
51
|
|
|
47
52
|
/**
|
|
48
53
|
* convert the database entity back to raw data
|
|
49
54
|
*/
|
|
50
|
-
protected
|
|
55
|
+
protected convertEntityToData = (
|
|
51
56
|
entities: ExtractorEntity[]
|
|
52
|
-
)
|
|
57
|
+
): ExtractedData[] => {
|
|
58
|
+
throw Error(
|
|
59
|
+
'You must implement `convertEntityToData` or override `deleteBlockEntities`'
|
|
60
|
+
);
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* insert entities extracted from a block to database
|
|
65
|
+
* @param queryRunner
|
|
66
|
+
* @param boxesToInsert
|
|
67
|
+
* @param block
|
|
68
|
+
* @param extractor
|
|
69
|
+
*/
|
|
70
|
+
protected insertEntities = async (
|
|
71
|
+
queryRunner: QueryRunner,
|
|
72
|
+
boxesToInsert: Array<ExtractedData>,
|
|
73
|
+
block: BlockInfo,
|
|
74
|
+
extractor: string
|
|
75
|
+
) => {
|
|
76
|
+
const repository = queryRunner.manager.getRepository(this.repo);
|
|
77
|
+
await repository.insert(
|
|
78
|
+
this.createEntity(boxesToInsert, block, extractor) as any
|
|
79
|
+
);
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* update entities related to a box
|
|
84
|
+
* @param queryRunner
|
|
85
|
+
* @param updateBox
|
|
86
|
+
* @param block
|
|
87
|
+
* @param extractor
|
|
88
|
+
*/
|
|
89
|
+
protected updateEntity = async (
|
|
90
|
+
queryRunner: QueryRunner,
|
|
91
|
+
updateBox: ExtractedData,
|
|
92
|
+
block: BlockInfo,
|
|
93
|
+
extractor: string
|
|
94
|
+
) => {
|
|
95
|
+
const repository = queryRunner.manager.getRepository(this.repo);
|
|
96
|
+
const box = this.createEntity([updateBox], block, extractor)[0];
|
|
97
|
+
await repository.update(
|
|
98
|
+
{
|
|
99
|
+
boxId: box.boxId,
|
|
100
|
+
extractor: extractor,
|
|
101
|
+
} as FindOptionsWhere<ExtractorEntity>,
|
|
102
|
+
box as any
|
|
103
|
+
);
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* delete all data extracted from a block
|
|
108
|
+
* @param queryRunner
|
|
109
|
+
* @param extractor
|
|
110
|
+
* @param block
|
|
111
|
+
* @returns
|
|
112
|
+
*/
|
|
113
|
+
protected deleteBlockEntities = async (
|
|
114
|
+
queryRunner: QueryRunner,
|
|
115
|
+
extractor: string,
|
|
116
|
+
block: string
|
|
117
|
+
): Promise<ExtractedData[]> => {
|
|
118
|
+
const repository = queryRunner.manager.getRepository(this.repo);
|
|
119
|
+
const deletedData = await repository.find({
|
|
120
|
+
where: { extractor: extractor, block: block } as any,
|
|
121
|
+
});
|
|
122
|
+
await repository.delete({
|
|
123
|
+
extractor: extractor,
|
|
124
|
+
block: block,
|
|
125
|
+
} as any);
|
|
126
|
+
return this.convertEntityToData(deletedData);
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* delete all data extracted from a block
|
|
131
|
+
* @param queryRunner
|
|
132
|
+
* @param extractor
|
|
133
|
+
* @param block
|
|
134
|
+
* @returns
|
|
135
|
+
*/
|
|
136
|
+
protected updateBlockEntities = async (
|
|
137
|
+
queryRunner: QueryRunner,
|
|
138
|
+
extractor: string,
|
|
139
|
+
block: string
|
|
140
|
+
): Promise<ExtractorEntity[]> => {
|
|
141
|
+
const repository = queryRunner.manager.getRepository(this.repo);
|
|
142
|
+
const updatedData = await repository.find({
|
|
143
|
+
where: {
|
|
144
|
+
extractor: extractor,
|
|
145
|
+
spendBlock: block,
|
|
146
|
+
block: Not(block),
|
|
147
|
+
} as any,
|
|
148
|
+
});
|
|
149
|
+
await repository.update(
|
|
150
|
+
{
|
|
151
|
+
spendBlock: block,
|
|
152
|
+
extractor: extractor,
|
|
153
|
+
} as FindOptionsWhere<ExtractorEntity>,
|
|
154
|
+
{ spendBlock: null, spendHeight: 0 } as any
|
|
155
|
+
);
|
|
156
|
+
return updatedData;
|
|
157
|
+
};
|
|
53
158
|
|
|
54
159
|
/**
|
|
55
160
|
* insert all extracted box data in an atomic transaction
|
|
@@ -65,7 +170,6 @@ export abstract class AbstractErgoExtractorAction<
|
|
|
65
170
|
block: BlockInfo,
|
|
66
171
|
extractor: string
|
|
67
172
|
): Promise<boolean> => {
|
|
68
|
-
let success = true;
|
|
69
173
|
let boxesToInsert: ExtractedData[] = [],
|
|
70
174
|
boxesToUpdate: ExtractedData[] = [];
|
|
71
175
|
const queryRunner = this.datasource.createQueryRunner();
|
|
@@ -87,9 +191,7 @@ export abstract class AbstractErgoExtractorAction<
|
|
|
87
191
|
|
|
88
192
|
if (boxesToInsert.length > 0) {
|
|
89
193
|
this.logger.debug(`Inserting boxes`);
|
|
90
|
-
await
|
|
91
|
-
this.createEntity(boxesToInsert, block, extractor) as any
|
|
92
|
-
);
|
|
194
|
+
await this.insertEntities(queryRunner, boxesToInsert, block, extractor);
|
|
93
195
|
}
|
|
94
196
|
if (boxesToUpdate.length > 0)
|
|
95
197
|
this.logger.info(
|
|
@@ -97,27 +199,21 @@ export abstract class AbstractErgoExtractorAction<
|
|
|
97
199
|
.map((col) => col.boxId)
|
|
98
200
|
.join(', ')}]`
|
|
99
201
|
);
|
|
100
|
-
for (const box of
|
|
202
|
+
for (const box of boxesToUpdate) {
|
|
101
203
|
this.logger.debug(
|
|
102
204
|
`Updating boxes in database [${JsonBigInt.stringify(box)}]`
|
|
103
205
|
);
|
|
104
|
-
await
|
|
105
|
-
{
|
|
106
|
-
boxId: box.boxId,
|
|
107
|
-
extractor: extractor,
|
|
108
|
-
} as FindOptionsWhere<ExtractorEntity>,
|
|
109
|
-
box as any
|
|
110
|
-
);
|
|
206
|
+
await this.updateEntity(queryRunner, box, block, extractor);
|
|
111
207
|
}
|
|
112
208
|
await queryRunner.commitTransaction();
|
|
209
|
+
return true;
|
|
113
210
|
} catch (e) {
|
|
114
211
|
this.logger.error(`An error occurred during store boxes action: ${e}`);
|
|
115
212
|
await queryRunner.rollbackTransaction();
|
|
116
|
-
|
|
213
|
+
return false;
|
|
117
214
|
} finally {
|
|
118
215
|
await queryRunner.release();
|
|
119
216
|
}
|
|
120
|
-
return success;
|
|
121
217
|
};
|
|
122
218
|
|
|
123
219
|
/**
|
|
@@ -176,33 +272,37 @@ export abstract class AbstractErgoExtractorAction<
|
|
|
176
272
|
block: string,
|
|
177
273
|
extractor: string
|
|
178
274
|
): Promise<{ deletedData: ExtractedData[]; updatedData: BoxInfo[] }> => {
|
|
179
|
-
this.
|
|
180
|
-
|
|
181
|
-
);
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
block
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
{
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
275
|
+
const queryRunner = this.datasource.createQueryRunner();
|
|
276
|
+
await queryRunner.connect();
|
|
277
|
+
await queryRunner.startTransaction();
|
|
278
|
+
try {
|
|
279
|
+
this.logger.info(
|
|
280
|
+
`Deleting boxes in block ${block} and extractor ${extractor}`
|
|
281
|
+
);
|
|
282
|
+
const updatedData = await this.updateBlockEntities(
|
|
283
|
+
queryRunner,
|
|
284
|
+
extractor,
|
|
285
|
+
block
|
|
286
|
+
);
|
|
287
|
+
const deletedData = await this.deleteBlockEntities(
|
|
288
|
+
queryRunner,
|
|
289
|
+
extractor,
|
|
290
|
+
block
|
|
291
|
+
);
|
|
292
|
+
await queryRunner.commitTransaction();
|
|
293
|
+
return {
|
|
294
|
+
deletedData,
|
|
295
|
+
updatedData: updatedData.map((data) => pick(data, 'boxId')),
|
|
296
|
+
};
|
|
297
|
+
} catch (error) {
|
|
298
|
+
await queryRunner.rollbackTransaction();
|
|
299
|
+
this.logger.error(
|
|
300
|
+
`An error occurred while deleting data extracted from block ${block}`,
|
|
301
|
+
error
|
|
302
|
+
);
|
|
303
|
+
throw error;
|
|
304
|
+
} finally {
|
|
305
|
+
await queryRunner.release();
|
|
306
|
+
}
|
|
207
307
|
};
|
|
208
308
|
}
|
package/lib/ergo/interfaces.ts
CHANGED
|
@@ -3,8 +3,13 @@ export enum ErgoNetworkType {
|
|
|
3
3
|
Node = 'node',
|
|
4
4
|
}
|
|
5
5
|
|
|
6
|
+
export type InputExtension = {
|
|
7
|
+
[key: string]: string;
|
|
8
|
+
};
|
|
9
|
+
|
|
6
10
|
export type InputBox = {
|
|
7
11
|
boxId: string;
|
|
12
|
+
extension?: InputExtension;
|
|
8
13
|
};
|
|
9
14
|
|
|
10
15
|
export type DataInput = {
|
|
@@ -30,10 +35,10 @@ export type OutputBox = {
|
|
|
30
35
|
value: bigint;
|
|
31
36
|
ergoTree: string;
|
|
32
37
|
creationHeight: number;
|
|
33
|
-
assets
|
|
34
|
-
additionalRegisters
|
|
38
|
+
assets: Array<Asset>;
|
|
39
|
+
additionalRegisters: AdditionalRegisters;
|
|
35
40
|
transactionId: string;
|
|
36
|
-
index:
|
|
41
|
+
index: number;
|
|
37
42
|
};
|
|
38
43
|
|
|
39
44
|
export interface ErgoBox extends OutputBox {
|
|
@@ -59,7 +59,8 @@ export class ExplorerNetwork extends AbstractNetwork {
|
|
|
59
59
|
box.additionalRegisters,
|
|
60
60
|
'serializedValue'
|
|
61
61
|
),
|
|
62
|
-
assets:
|
|
62
|
+
assets:
|
|
63
|
+
box.assets?.map((asset) => pick(asset, ['tokenId', 'amount'])) ?? [],
|
|
63
64
|
spentHeight: spendInfo?.height,
|
|
64
65
|
spentBlockId: spendInfo?.hash,
|
|
65
66
|
spentTransactionId: box.spentTransactionId,
|
|
@@ -82,6 +83,7 @@ export class ExplorerNetwork extends AbstractNetwork {
|
|
|
82
83
|
tx.dataInputs?.map((dataInput) => ({
|
|
83
84
|
boxId: dataInput.boxId,
|
|
84
85
|
})) ?? [],
|
|
86
|
+
// TODO: Add input extension to explorer local/ergo/rosen-bridge/scanner/-/issues/156
|
|
85
87
|
inputs: tx.inputs?.map((input) => ({ boxId: input.boxId })) ?? [],
|
|
86
88
|
outputs:
|
|
87
89
|
tx.outputs?.map((output) => ({
|
|
@@ -91,9 +93,9 @@ export class ExplorerNetwork extends AbstractNetwork {
|
|
|
91
93
|
output.additionalRegisters,
|
|
92
94
|
'serializedValue'
|
|
93
95
|
),
|
|
94
|
-
assets:
|
|
95
|
-
pick(asset, ['tokenId', 'amount'])
|
|
96
|
-
|
|
96
|
+
assets:
|
|
97
|
+
output.assets?.map((asset) => pick(asset, ['tokenId', 'amount'])) ??
|
|
98
|
+
[],
|
|
97
99
|
ergoTree: output.ergoTree,
|
|
98
100
|
creationHeight: output.creationHeight,
|
|
99
101
|
index: output.index,
|
|
@@ -113,15 +115,16 @@ export class ExplorerNetwork extends AbstractNetwork {
|
|
|
113
115
|
tx.dataInputs?.map((dataInput) => ({
|
|
114
116
|
boxId: dataInput.id,
|
|
115
117
|
})) ?? [],
|
|
118
|
+
// TODO: Add input extension local/ergo/rosen-bridge/scanner/-/issues/156
|
|
116
119
|
inputs: tx.inputs?.map((input) => ({ boxId: input.id })) ?? [],
|
|
117
120
|
outputs:
|
|
118
121
|
tx.outputs?.map((output) => ({
|
|
119
122
|
boxId: output.id,
|
|
120
123
|
transactionId: output.txId,
|
|
121
124
|
additionalRegisters: output.additionalRegisters,
|
|
122
|
-
assets:
|
|
123
|
-
pick(asset, ['tokenId', 'amount'])
|
|
124
|
-
|
|
125
|
+
assets:
|
|
126
|
+
output.assets?.map((asset) => pick(asset, ['tokenId', 'amount'])) ??
|
|
127
|
+
[],
|
|
125
128
|
ergoTree: output.ergoTree,
|
|
126
129
|
creationHeight: output.creationHeight,
|
|
127
130
|
index: output.index,
|
|
@@ -64,7 +64,8 @@ export class NodeNetwork extends AbstractNetwork {
|
|
|
64
64
|
additionalRegisters: output.additionalRegisters,
|
|
65
65
|
boxId: output.boxId || '',
|
|
66
66
|
})),
|
|
67
|
-
|
|
67
|
+
// TODO: Add input extension local/ergo/rosen-bridge/scanner/-/issues/156
|
|
68
|
+
inputs: tx.inputs.map((input) => ({ boxId: input.boxId! })) ?? [],
|
|
68
69
|
dataInputs: tx.dataInputs,
|
|
69
70
|
};
|
|
70
71
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rosen-bridge/abstract-extractor",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1-2e78c47d",
|
|
4
4
|
"description": "Rosen Bridge extractor interfaces to work with scanner",
|
|
5
5
|
"repository": "",
|
|
6
6
|
"license": "GPL-3.0",
|
|
@@ -36,10 +36,10 @@
|
|
|
36
36
|
"node": ">=20.11.0"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@rosen-bridge/abstract-logger": "^
|
|
39
|
+
"@rosen-bridge/abstract-logger": "^2.0.1",
|
|
40
40
|
"@rosen-bridge/json-bigint": "^0.1.0",
|
|
41
41
|
"@rosen-clients/ergo-explorer": "^1.1.2",
|
|
42
|
-
"@rosen-clients/ergo-node": "^1.
|
|
42
|
+
"@rosen-clients/ergo-node": "^1.2.0",
|
|
43
43
|
"lodash-es": "^4.17.21",
|
|
44
44
|
"typeorm": "^0.3.20",
|
|
45
45
|
"uuid": "^9.0.0"
|
|
@@ -22,7 +22,7 @@ describe('AbstractErgoExtractor', () => {
|
|
|
22
22
|
* - spy `extractBoxData` and `storeBoxes`
|
|
23
23
|
* - run test (call `processTransactions`)
|
|
24
24
|
* @expected
|
|
25
|
-
* - to call `extractBoxData` for the specific box
|
|
25
|
+
* - to call `extractBoxData` for the specific box and all input extensions
|
|
26
26
|
* - to insert the extracted box to database
|
|
27
27
|
* - to return true when total procedure is successful
|
|
28
28
|
* - to trigger `INSERT` callbacks with correct data
|
|
@@ -49,7 +49,10 @@ describe('AbstractErgoExtractor', () => {
|
|
|
49
49
|
const result = await extractor.processTransactions([tx], block);
|
|
50
50
|
|
|
51
51
|
expect(extractSpy).toBeCalledTimes(1);
|
|
52
|
-
expect(extractSpy).toBeCalledWith(tx.outputs[0]
|
|
52
|
+
expect(extractSpy).toBeCalledWith(tx.outputs[0], [
|
|
53
|
+
tx.inputs[0].extension,
|
|
54
|
+
{},
|
|
55
|
+
]);
|
|
53
56
|
expect(storeSpy).toBeCalledWith([extractedData], block, 'Test');
|
|
54
57
|
expect(result).toEqual(true);
|
|
55
58
|
expect(triggerCallbacks).toBeCalledWith(CallbackType.Insert, [
|