@rosen-bridge/abstract-extractor 2.1.0 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/ergo/{AbstractErgoExtractor.d.ts → abstractErgoExtractor.d.ts} +3 -3
  3. package/dist/ergo/abstractErgoExtractor.d.ts.map +1 -0
  4. package/dist/ergo/{AbstractErgoExtractor.js → abstractErgoExtractor.js} +3 -3
  5. package/dist/ergo/{AbstractErgoExtractorAction.d.ts → abstractErgoExtractorAction.d.ts} +6 -4
  6. package/dist/ergo/abstractErgoExtractorAction.d.ts.map +1 -0
  7. package/dist/ergo/abstractErgoExtractorAction.js +219 -0
  8. package/dist/ergo/{AbstractErgoExtractorEntity.d.ts → abstractErgoExtractorEntity.d.ts} +1 -1
  9. package/dist/ergo/{AbstractErgoExtractorEntity.d.ts.map → abstractErgoExtractorEntity.d.ts.map} +1 -1
  10. package/dist/ergo/{AbstractErgoExtractorEntity.js → abstractErgoExtractorEntity.js} +1 -1
  11. package/dist/ergo/index.d.ts +6 -6
  12. package/dist/ergo/index.js +7 -7
  13. package/dist/ergo/initializable/{AbstractInitializable.d.ts → abstractInitializable.d.ts} +4 -4
  14. package/dist/ergo/initializable/{AbstractInitializable.d.ts.map → abstractInitializable.d.ts.map} +1 -1
  15. package/dist/ergo/initializable/abstractInitializable.js +162 -0
  16. package/dist/ergo/initializable/{AbstractInitializableAction.d.ts → abstractInitializableAction.d.ts} +4 -4
  17. package/dist/ergo/initializable/abstractInitializableAction.d.ts.map +1 -0
  18. package/dist/ergo/initializable/{AbstractInitializableAction.js → abstractInitializableAction.js} +2 -2
  19. package/dist/ergo/initializable/index.d.ts +2 -2
  20. package/dist/ergo/initializable/index.js +3 -3
  21. package/dist/{lib/ergo/network/AbstractNetwork.d.ts → ergo/network/abstractNetwork.d.ts} +1 -1
  22. package/dist/ergo/network/{AbstractNetwork.d.ts.map → abstractNetwork.d.ts.map} +1 -1
  23. package/dist/ergo/network/{AbstractNetwork.js → abstractNetwork.js} +1 -1
  24. package/dist/{lib/ergo/network/ExplorerNetwork.d.ts → ergo/network/explorerNetwork.d.ts} +2 -2
  25. package/dist/ergo/network/explorerNetwork.d.ts.map +1 -0
  26. package/dist/ergo/network/{ExplorerNetwork.js → explorerNetwork.js} +3 -3
  27. package/dist/ergo/network/{NodeNetwork.d.ts → nodeNetwork.d.ts} +2 -2
  28. package/dist/ergo/network/nodeNetwork.d.ts.map +1 -0
  29. package/dist/ergo/network/nodeNetwork.js +131 -0
  30. package/dist/ergo/utils.d.ts.map +1 -1
  31. package/dist/ergo/utils.js +1 -1
  32. package/package.json +24 -16
  33. package/.eslintignore +0 -1
  34. package/dist/ergo/AbstractErgoExtractor.d.ts.map +0 -1
  35. package/dist/ergo/AbstractErgoExtractorAction.d.ts.map +0 -1
  36. package/dist/ergo/AbstractErgoExtractorAction.js +0 -222
  37. package/dist/ergo/initializable/AbstractInitializable.js +0 -163
  38. package/dist/ergo/initializable/AbstractInitializableAction.d.ts.map +0 -1
  39. package/dist/ergo/network/AbstractNetwork.d.ts +0 -26
  40. package/dist/ergo/network/ExplorerNetwork.d.ts +0 -74
  41. package/dist/ergo/network/ExplorerNetwork.d.ts.map +0 -1
  42. package/dist/ergo/network/NodeNetwork.d.ts.map +0 -1
  43. package/dist/ergo/network/NodeNetwork.js +0 -131
  44. package/dist/lib/abstractExtractor.d.ts +0 -25
  45. package/dist/lib/abstractExtractor.d.ts.map +0 -1
  46. package/dist/lib/abstractExtractor.js +0 -3
  47. package/dist/lib/constants.d.ts +0 -4
  48. package/dist/lib/constants.d.ts.map +0 -1
  49. package/dist/lib/constants.js +0 -4
  50. package/dist/lib/ergo/AbstractErgoExtractor.d.ts +0 -80
  51. package/dist/lib/ergo/AbstractErgoExtractor.d.ts.map +0 -1
  52. package/dist/lib/ergo/AbstractErgoExtractor.js +0 -142
  53. package/dist/lib/ergo/AbstractErgoExtractorAction.d.ts +0 -92
  54. package/dist/lib/ergo/AbstractErgoExtractorAction.d.ts.map +0 -1
  55. package/dist/lib/ergo/AbstractErgoExtractorAction.js +0 -222
  56. package/dist/lib/ergo/AbstractErgoExtractorEntity.d.ts +0 -11
  57. package/dist/lib/ergo/AbstractErgoExtractorEntity.d.ts.map +0 -1
  58. package/dist/lib/ergo/AbstractErgoExtractorEntity.js +0 -57
  59. package/dist/lib/ergo/index.d.ts +0 -10
  60. package/dist/lib/ergo/index.d.ts.map +0 -1
  61. package/dist/lib/ergo/index.js +0 -10
  62. package/dist/lib/ergo/initializable/AbstractInitializable.d.ts +0 -48
  63. package/dist/lib/ergo/initializable/AbstractInitializable.d.ts.map +0 -1
  64. package/dist/lib/ergo/initializable/AbstractInitializable.js +0 -163
  65. package/dist/lib/ergo/initializable/AbstractInitializableAction.d.ts +0 -14
  66. package/dist/lib/ergo/initializable/AbstractInitializableAction.d.ts.map +0 -1
  67. package/dist/lib/ergo/initializable/AbstractInitializableAction.js +0 -16
  68. package/dist/lib/ergo/initializable/index.d.ts +0 -3
  69. package/dist/lib/ergo/initializable/index.d.ts.map +0 -1
  70. package/dist/lib/ergo/initializable/index.js +0 -3
  71. package/dist/lib/ergo/interfaces.d.ts +0 -47
  72. package/dist/lib/ergo/interfaces.d.ts.map +0 -1
  73. package/dist/lib/ergo/interfaces.js +0 -8
  74. package/dist/lib/ergo/network/AbstractNetwork.d.ts.map +0 -1
  75. package/dist/lib/ergo/network/AbstractNetwork.js +0 -3
  76. package/dist/lib/ergo/network/ExplorerNetwork.d.ts.map +0 -1
  77. package/dist/lib/ergo/network/ExplorerNetwork.js +0 -185
  78. package/dist/lib/ergo/network/NodeNetwork.d.ts +0 -60
  79. package/dist/lib/ergo/network/NodeNetwork.d.ts.map +0 -1
  80. package/dist/lib/ergo/network/NodeNetwork.js +0 -131
  81. package/dist/lib/ergo/utils.d.ts +0 -8
  82. package/dist/lib/ergo/utils.d.ts.map +0 -1
  83. package/dist/lib/ergo/utils.js +0 -16
  84. package/dist/lib/index.d.ts +0 -4
  85. package/dist/lib/index.d.ts.map +0 -1
  86. package/dist/lib/index.js +0 -4
  87. package/dist/tests/AbstractErgoExtractor.mock.d.ts +0 -11
  88. package/dist/tests/AbstractErgoExtractor.mock.d.ts.map +0 -1
  89. package/dist/tests/AbstractErgoExtractor.mock.js +0 -11
  90. package/dist/tests/AbstractErgoExtractor.spec.d.ts +0 -2
  91. package/dist/tests/AbstractErgoExtractor.spec.d.ts.map +0 -1
  92. package/dist/tests/AbstractErgoExtractor.spec.js +0 -240
  93. package/dist/tests/AbstractErgoExtractorAction.mock.d.ts +0 -15
  94. package/dist/tests/AbstractErgoExtractorAction.mock.d.ts.map +0 -1
  95. package/dist/tests/AbstractErgoExtractorAction.mock.js +0 -27
  96. package/dist/tests/AbstractErgoExtractorAction.spec.d.ts +0 -2
  97. package/dist/tests/AbstractErgoExtractorAction.spec.d.ts.map +0 -1
  98. package/dist/tests/AbstractErgoExtractorAction.spec.js +0 -221
  99. package/dist/tests/initializable/AbstractInitializable.mock.d.ts +0 -61
  100. package/dist/tests/initializable/AbstractInitializable.mock.d.ts.map +0 -1
  101. package/dist/tests/initializable/AbstractInitializable.mock.js +0 -18
  102. package/dist/tests/initializable/AbstractInitializable.spec.d.ts +0 -2
  103. package/dist/tests/initializable/AbstractInitializable.spec.d.ts.map +0 -1
  104. package/dist/tests/initializable/AbstractInitializable.spec.js +0 -299
  105. package/dist/tests/initializable/AbstractInitializableAction.mock.d.ts +0 -15
  106. package/dist/tests/initializable/AbstractInitializableAction.mock.d.ts.map +0 -1
  107. package/dist/tests/initializable/AbstractInitializableAction.mock.js +0 -27
  108. package/dist/tests/initializable/AbstractInitializableAction.spec.d.ts +0 -2
  109. package/dist/tests/initializable/AbstractInitializableAction.spec.d.ts.map +0 -1
  110. package/dist/tests/initializable/AbstractInitializableAction.spec.js +0 -54
  111. package/dist/tests/initializable/testData.d.ts +0 -94
  112. package/dist/tests/initializable/testData.d.ts.map +0 -1
  113. package/dist/tests/initializable/testData.js +0 -235
  114. package/dist/tests/network/ExplorerNetwork.spec.d.ts +0 -2
  115. package/dist/tests/network/ExplorerNetwork.spec.d.ts.map +0 -1
  116. package/dist/tests/network/ExplorerNetwork.spec.js +0 -61
  117. package/dist/tests/network/NodeNetwork.spec.d.ts +0 -2
  118. package/dist/tests/network/NodeNetwork.spec.d.ts.map +0 -1
  119. package/dist/tests/network/NodeNetwork.spec.js +0 -48
  120. package/dist/tests/network/testData.d.ts +0 -752
  121. package/dist/tests/network/testData.d.ts.map +0 -1
  122. package/dist/tests/network/testData.js +0 -1401
  123. package/dist/tests/testData.d.ts +0 -32
  124. package/dist/tests/testData.d.ts.map +0 -1
  125. package/dist/tests/testData.js +0 -121
  126. package/dist/tests/testUtils.d.ts +0 -9
  127. package/dist/tests/testUtils.d.ts.map +0 -1
  128. package/dist/tests/testUtils.js +0 -31
  129. package/dist/tsconfig.tsbuildinfo +0 -1
  130. package/dist/vitest.config.d.ts +0 -3
  131. package/dist/vitest.config.d.ts.map +0 -1
  132. package/dist/vitest.config.js +0 -18
  133. package/lib/abstractExtractor.ts +0 -31
  134. package/lib/constants.ts +0 -3
  135. package/lib/ergo/AbstractErgoExtractor.ts +0 -227
  136. package/lib/ergo/AbstractErgoExtractorAction.ts +0 -319
  137. package/lib/ergo/AbstractErgoExtractorEntity.ts +0 -32
  138. package/lib/ergo/index.ts +0 -9
  139. package/lib/ergo/initializable/AbstractInitializable.ts +0 -228
  140. package/lib/ergo/initializable/AbstractInitializableAction.ts +0 -33
  141. package/lib/ergo/initializable/index.ts +0 -2
  142. package/lib/ergo/interfaces.ts +0 -51
  143. package/lib/ergo/network/AbstractNetwork.ts +0 -29
  144. package/lib/ergo/network/ExplorerNetwork.ts +0 -237
  145. package/lib/ergo/network/NodeNetwork.ts +0 -169
  146. package/lib/ergo/utils.ts +0 -15
  147. package/lib/index.ts +0 -3
  148. package/tests/AbstractErgoExtractor.mock.ts +0 -33
  149. package/tests/AbstractErgoExtractor.spec.ts +0 -284
  150. package/tests/AbstractErgoExtractorAction.mock.ts +0 -45
  151. package/tests/AbstractErgoExtractorAction.spec.ts +0 -268
  152. package/tests/initializable/AbstractInitializable.mock.ts +0 -44
  153. package/tests/initializable/AbstractInitializable.spec.ts +0 -386
  154. package/tests/initializable/AbstractInitializableAction.mock.ts +0 -45
  155. package/tests/initializable/AbstractInitializableAction.spec.ts +0 -64
  156. package/tests/initializable/testData.ts +0 -283
  157. package/tests/network/ExplorerNetwork.spec.ts +0 -73
  158. package/tests/network/NodeNetwork.spec.ts +0 -56
  159. package/tests/network/testData.ts +0 -1708
  160. package/tests/testData.ts +0 -140
  161. package/tests/testUtils.ts +0 -22
  162. package/tsconfig.build.json +0 -9
  163. package/tsconfig.build.tsbuildinfo +0 -1
  164. package/tsconfig.json +0 -9
  165. package/vitest.config.ts +0 -18
package/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # @rosen-bridge/abstract-extractor
2
2
 
3
+ ## 2.1.2
4
+
5
+ ### Patch Changes
6
+
7
+ - Fix package-lock and move typescript and types/node into root
8
+ - Update eslint and plugins:
9
+ - Apply new rules such as sort imports and file name
10
+ - Update dependencies
11
+ - @rosen-bridge/scanner-interfaces@0.2.1
12
+ - @rosen-bridge/abstract-scanner@0.2.1
13
+ - @rosen-bridge/extended-typeorm@1.0.1
14
+ - @rosen-clients/rate-limited-axios@1.1.0
15
+ - @rosen-bridge/rosen-extractor@10.1.1
16
+ - @rosen-bridge/tokens@4.0.1
17
+ - @rosen-bridge/abstract-logger@3.0.1
18
+ - @rosen-bridge/json-bigint@1.1.0
19
+ - @rosen-clients/ergo-explorer@2.1.0
20
+ - @rosen-clients/ergo-node@3.1.0
21
+
22
+ ## 2.1.1
23
+
24
+ ### Patch Changes
25
+
26
+ - Update dependencies
27
+ - @rosen-bridge/extended-typeorm@1.0.0
28
+ - @rosen-bridge/abstract-logger@3.0.0
29
+ - @rosen-bridge/json-bigint@1.0.0
30
+ - @rosen-clients/ergo-explorer@2.0.0
31
+ - @rosen-clients/ergo-node@3.0.0
32
+
3
33
  ## 2.1.0
4
34
 
5
35
  ### Minor Changes
@@ -1,9 +1,9 @@
1
1
  import { AbstractLogger, DummyLogger } from '@rosen-bridge/abstract-logger';
2
2
  import { Transaction, OutputBox, InputExtension, BlockInfo } from '@rosen-bridge/scanner-interfaces';
3
3
  import { AbstractExtractor } from '../abstractExtractor';
4
- import { AbstractErgoExtractorAction } from './AbstractErgoExtractorAction';
4
+ import { AbstractErgoExtractorAction } from './abstractErgoExtractorAction';
5
+ import { AbstractErgoExtractorEntity } from './abstractErgoExtractorEntity';
5
6
  import { AbstractBoxData, CallbackType, CallbackMap, CallbackDataMap, TxExtra } from './interfaces';
6
- import { AbstractErgoExtractorEntity } from './AbstractErgoExtractorEntity';
7
7
  export declare abstract class AbstractErgoExtractor<ExtractedData extends AbstractBoxData, ExtractorEntity extends AbstractErgoExtractorEntity> extends AbstractExtractor<Transaction> {
8
8
  protected abstract actions: AbstractErgoExtractorAction<ExtractedData, ExtractorEntity>;
9
9
  protected logger: AbstractLogger;
@@ -77,4 +77,4 @@ export declare abstract class AbstractErgoExtractor<ExtractedData extends Abstra
77
77
  */
78
78
  forkBlock: (hash: string) => Promise<void>;
79
79
  }
80
- //# sourceMappingURL=AbstractErgoExtractor.d.ts.map
80
+ //# sourceMappingURL=abstractErgoExtractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstractErgoExtractor.d.ts","sourceRoot":"","sources":["../../lib/ergo/abstractErgoExtractor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5E,OAAO,EACL,WAAW,EACX,SAAS,EACT,cAAc,EACd,SAAS,EACV,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EACL,eAAe,EAEf,YAAY,EACZ,WAAW,EACX,eAAe,EACf,OAAO,EACR,MAAM,cAAc,CAAC;AAEtB,8BAAsB,qBAAqB,CACzC,aAAa,SAAS,eAAe,EACrC,eAAe,SAAS,2BAA2B,CACnD,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IACtC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CACrD,aAAa,EACb,eAAe,CAChB,CAAC;IACF,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;IACjC,SAAS,CAAC,SAAS,EAAE;SAClB,CAAC,IAAI,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;KAChE,CAKC;IACF,OAAO,CAAC,aAAa,CAAe;gBAExB,MAAM,cAAoB;IAKtC;;;;;;OAMG;IACH,IAAI,GAAU,CAAC,SAAS,YAAY,EAClC,MAAM,CAAC,EACP,UAAU,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KACtC,OAAO,CAAC,MAAM,CAAC,CAOhB;IAEF;;;;;;OAMG;IACH,MAAM,GAAU,MAAM,YAAY,EAAE,IAAI,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC,CAY/D;IAEF;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAC/C,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GACtC,IAAI;IAOP;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,EAAE,CACvB,GAAG,EAAE,SAAS,EACd,eAAe,EAAE,cAAc,EAAE,EACjC,OAAO,CAAC,EAAE,OAAO,KACd,aAAa,GAAG,SAAS,CAAC;IAE/B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,CAAC;IAE9C;;;;OAIG;IACH,uBAAuB,GAAI,IAAI,WAAW;;;;QAQxC;IAEF;;;;;OAKG;IACH,uBAAuB,GACrB,IAAI,WAAW,KACd,OAAO,CAER;IAEF;;;;;OAKG;IACH,mBAAmB,GACjB,KAAK,WAAW,EAAE,EAClB,OAAO,SAAS,KACf,OAAO,CAAC,OAAO,CAAC,CAwDjB;IAEF;;;OAGG;IACH,SAAS,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAM7C;CACH"}
@@ -1,7 +1,7 @@
1
- import { DummyLogger } from '@rosen-bridge/abstract-logger';
2
- import JsonBigInt from '@rosen-bridge/json-bigint';
3
1
  import { Mutex } from 'await-semaphore';
4
2
  import { v4 as uuidv4 } from 'uuid';
3
+ import { DummyLogger } from '@rosen-bridge/abstract-logger';
4
+ import JsonBigInt from '@rosen-bridge/json-bigint';
5
5
  import { AbstractExtractor } from '../abstractExtractor';
6
6
  import { CallbackType, } from './interfaces';
7
7
  export class AbstractErgoExtractor extends AbstractExtractor {
@@ -139,4 +139,4 @@ export class AbstractErgoExtractor extends AbstractExtractor {
139
139
  this.triggerCallbacks(CallbackType.Update, result.updatedData);
140
140
  };
141
141
  }
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RFcmdvRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2VyZ28vQWJzdHJhY3RFcmdvRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUUsT0FBTyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFDbkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBUXBDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpELE9BQU8sRUFHTCxZQUFZLEdBSWIsTUFBTSxjQUFjLENBQUM7QUFHdEIsTUFBTSxPQUFnQixxQkFHcEIsU0FBUSxpQkFBOEI7SUFLNUIsTUFBTSxDQUFpQjtJQUN2QixTQUFTLEdBRWY7UUFDRixDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRTtRQUNoQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRTtRQUNoQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRTtRQUNoQyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRTtLQUNoQyxDQUFDO0lBQ00sYUFBYSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7SUFFcEMsWUFBWSxNQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUU7UUFDcEMsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxHQUFHLEtBQUssRUFDVixJQUFPLEVBQ1AsUUFBdUMsRUFDdEIsRUFBRTtRQUNuQixNQUFNLE9BQU8s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QUFFLENBQ2IsQ0FBQztZQUNGLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDdkQsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2Ysc0NBQXNDLElBQUksQ0FBQyxLQUFLLEVBQUUsaUJBQ2hELEtBQUssQ0FBQyxNQUNSLGdCQUFnQixDQUFDLEVBQUUsQ0FDcEIsQ0FBQztZQUNGLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBRUY7OztPQUdHO0lBQ0gsU0FBUyxHQUFHLEtBQUssRUFBRSxJQUFZLEVBQWlCLEVBQUU7UUFDaEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN2RSxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDL0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pFLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUMvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdExvZ2dlciwgRHVtbXlMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgSnNvbkJpZ0ludCBmcm9tICdAcm9zZW4tYnJpZGdlL2pzb24tYmlnaW50JztcbmltcG9ydCB7IE11dGV4IH0gZnJvbSAnYXdhaXQtc2VtYXBob3JlJztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHtcbiAgVHJhbnNhY3Rpb24sXG4gIE91dHB1dEJveCxcbiAgSW5wdXRFeHRlbnNpb24sXG4gIEJsb2NrSW5mbyxcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdEV4dHJhY3RvciB9IGZyb20gJy4uL2Fic3RyYWN0RXh0cmFjdG9yJztcbmltcG9ydCB7IEFic3RyYWN0RXJnb0V4dHJhY3RvckFjdGlvbiB9IGZyb20gJy4vQWJzdHJhY3RFcmdvRXh0cmFjdG9yQWN0aW9uJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Qm94RGF0YSxcbiAgU3BlbmRJbmZvLFxuICBDYWxsYmFja1R5cGUsXG4gIENhbGxiYWNrTWFwLFxuICBDYWxsYmFja0RhdGFNYXAsXG4gIFR4RXh0cmEsXG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBYnN0cmFjdEVyZ29FeHRyYWN0b3JFbnRpdHkgfSBmcm9tICcuL0Fic3RyYWN0RXJnb0V4dHJhY3RvckVudGl0eSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEVyZ29FeHRyYWN0b3I8XG4gIEV4dHJhY3RlZERhdGEgZXh0ZW5kcyBBYnN0cmFjdEJveERhdGEsXG4gIEV4dHJhY3RvckVudGl0eSBleHRlbmRzIEFic3RyYWN0RXJnb0V4dHJhY3RvckVudGl0eSxcbj4gZXh0ZW5kcyBBYnN0cmFjdEV4dHJhY3RvcjxUcmFuc2FjdGlvbj4ge1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgYWN0aW9uczogQWJzdHJhY3RFcmdvRXh0cmFjdG9yQWN0aW9uPFxuICAgIEV4dHJhY3RlZERhdGEsXG4gICAgRXh0cmFjdG9yRW50aXR5XG4gID47XG4gIHByb3RlY3RlZCBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyO1xuICBwcm90ZWN0ZWQgY2FsbGJhY2tzOiB7XG4gICAgW0sgaW4gQ2FsbGJhY2tUeXBlXTogTWFwPHN0cmluZywgQ2FsbGJhY2tNYXA8RXh0cmFjdGVkRGF0YT5bS10+O1xuICB9ID0ge1xuICAgIFtDYWxsYmFja1R5cGUuVXBkYXRlXTogbmV3IE1hcCgpLFxuICAgIFtDYWxsYmFja1R5cGUuSW5zZXJ0XTogbmV3IE1hcCgpLFxuICAgIFtDYWxsYmFja1R5cGUuRGVsZXRlXTogbmV3IE1hcCgpLFxuICAgIFtDYWxsYmFja1R5cGUuU3BlbmRdOiBuZXcgTWFwKCksXG4gIH07XG4gIHByaXZhdGUgY2FsbGJhY2tNdXRleCA9IG5ldyBNdXRleCgpO1xuXG4gIGNvbnN0cnVjdG9yKGxvZ2dlciA9IG5ldyBEdW1teUxvZ2dlcigpKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBob29rIGEgbmV3IGNhbGxiYWNrIG9uIGEgY2FsbGJhY2sgdHlwZVxuICAgKiBAcGFyYW0gdHlwZVxuICAgKiBAcGFyYW0gaWRcbiAgICogQHBhcmFtIGNhbGxiYWNrXG4gICAqIEByZXR1cm5zIGNhbGxiYWNrIHJlZ2lzdGVyZWQgaWRcbiAgICovXG4gIGhvb2sgPSBhc3luYyA8VCBleHRlbmRzIENhbGxiYWNrVHlwZT4oXG4gICAgdHlwZTogVCxcbiAgICBjYWxsYmFjazogQ2FsbGJhY2tNYXA8RXh0cmFjdGVkRGF0YT5bVF0sXG4gICk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gICAgY29uc3QgcmVsZWFzZSA9IGF3YWl0IHRoaXMuY2FsbGJhY2tNdXRleC5hY3F1aXJlKCk7XG4gICAgY29uc3QgY2FsbGJhY2tNYXAgPSB0aGlzLmNhbGxiYWNrc1t0eXBlXTtcbiAgICBjb25zdCBpZCA9IHV1aWR2NCgpO1xuICAgIGNhbGxiYWNrTWFwLnNldChpZCwgY2FsbGJhY2spO1xuICAgIHJlbGVhc2UoKTtcbiAgICByZXR1cm4gaWQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIHVuaG9vayBhIGNhbGxiYWNrIG9uIGEgdHlwZVxuICAgKiByZXR1cm5zIGZhbHNlIGlmIHRoZXJlIGlzIG5vIHJlZ2lzdGVyZWQgY2FsbGJhY2sgd2l0aCB0aGUgaWRcbiAgICogQHBhcmFtIHR5cGVcbiAgICogQHBhcmFtIGlkXG4gICAqIEByZXR1cm5zIHN1Y2Nlc3Mgc3RhdHVzXG4gICAqL1xuICB1bmhvb2sgPSBhc3luYyAodHlwZTogQ2FsbGJhY2tUeXBlLCBpZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgY29uc3QgcmVsZWFzZSA9IGF3YWl0IHRoaXMuY2FsbGJhY2tNdXRleC5hY3F1aXJlKCk7XG4gICAgY29uc3QgY2FsbGJhY2tNYXAgPSB0aGlzLmNhbGxiYWNrc1t0eXBlXTtcbiAgICBpZiAoIWNhbGxiYWNrTWFwLmhhcyhpZCkpIHtcbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oXG4gICAgICAgIGBDYWxsYmFjayB3aXRoIElkIFske2lkfV0gaXMgbm90IHJlZ2lzdGVyZWQgZm9yIHR5cGUgWyR7dHlwZX1dLmAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjYWxsYmFja01hcC5kZWxldGUoaWQpO1xuICAgIHJlbGVhc2UoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICAvKipcbiAgICogdHJpZ2dlciBhbGwgY2FsbGJhY2tzIHJlZ2lzdGVyZWQgb24gYSBzcGVjaWZpYyB0eXBlIHdpdGggdGhlIHByb3ZpZGVkIGRhdGFcbiAgICogQHBhcmFtIHR5cGVcbiAgICogQHBhcmFtIGRhdGFcbiAgICovXG4gIHByb3RlY3RlZCB0cmlnZ2VyQ2FsbGJhY2tzPFQgZXh0ZW5kcyBDYWxsYmFja1R5cGU+KFxuICAgIHR5cGU6IFQsXG4gICAgZGF0YTogQ2FsbGJhY2tEYXRhTWFwPEV4dHJhY3RlZERhdGE+W1RdLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjYWxsYmFja01hcCA9IHRoaXMuY2FsbGJhY2tzW3R5cGVdO1xuICAgIGNhbGxiYWNrTWFwLmZvckVhY2goKGNhbGxiYWNrKSA9PiB7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBleHRyYWN0IGJveCBkYXRhIHRvIHByb3BlciBmb3JtYXQgKG5vdCBpbmNsdWRpbmcgc3BlbmRpbmcgaW5mb3JtYXRpb24pXG4gICAqIEBwYXJhbSBib3hcbiAgICogQHBhcmFtIGlucHV0RXh0ZW5zaW9ucyBhbGwgaW5wdXQgYm94IGV4dGVuc2lvbnMgaW4gdHJhbnNhY3Rpb25cbiAgICogQHJldHVybiBleHRyYWN0ZWQgZGF0YSBpbiBwcm9wZXIgZm9ybWF0XG4gICAqL1xuICBhYnN0cmFjdCBleHRyYWN0Qm94RGF0YTogKFxuICAgIGJveDogT3V0cHV0Qm94LFxuICAgIGlucHV0RXh0ZW5zaW9uczogSW5wdXRFeHRlbnNpb25bXSxcbiAgICB0eEV4dHJhPzogVHhFeHRyYSxcbiAgKSA9PiBFeHRyYWN0ZWREYXRhIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBjaGVjayBwcm9wZXIgZGF0YSBmb3JtYXQgaW4gdGhlIGJveFxuICAgKiBAcGFyYW0gYm94XG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgYm94IGhhcyB0aGUgcmVxdWlyZWQgZGF0YSBhbmQgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBhYnN0cmFjdCBoYXNEYXRhOiAoYm94OiBPdXRwdXRCb3gpID0+IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGNyZWF0ZSBzcGVuZCBpbmZvIGFycmF5IGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHR4XG4gICAqIEByZXR1cm5zIHNwZW5kIGluZm8gYXJyYXkgb2YgdGhlIHRyYW5zYWN0aW9uXG4gICAqL1xuICBnZXRUcmFuc2FjdGlvblNwZW5kSW5mbyA9ICh0eDogVHJhbnNhY3Rpb24pID0+IHtcbiAgICBsZXQgYm94SW5kZXggPSAxO1xuICAgIGNvbnN0IHNwZW5kSW5mb0FycmF5ID0gW107XG4gICAgZm9yIChjb25zdCBpbnB1dCBvZiB0eC5pbnB1dHMpIHtcbiAgICAgIHNwZW5kSW5mb0FycmF5LnB1c2goeyB0eElkOiB0eC5pZCwgYm94SWQ6IGlucHV0LmJveElkLCBpbmRleDogYm94SW5kZXggfSk7XG4gICAgICBib3hJbmRleCArPSAxO1xuICAgIH1cbiAgICByZXR1cm4gc3BlbmRJbmZvQXJyYXk7XG4gIH07XG5cbiAgLyoqXG4gICAqIGV4dHJhY3QgdHJhbnNhY3Rpb24gZXh0cmEgaW5mb3JtYXRpb25cbiAgICogb3ZlcnJpZGUgdGhpcyBmdW5jdGlvbiBpZiB0aGVyZSBpcyBleHRyYSBuZWVkZWQgaW5mb3JtYXRpb25cbiAgICogQHBhcmFtIHR4XG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBnZXRUcmFuc2FjdGlvbkV4dHJhRGF0YSA9IChcbiAgICB0eDogVHJhbnNhY3Rpb24sIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICk6IFR4RXh0cmEgPT4ge1xuICAgIHJldHVybiB7fTtcbiAgfTtcblxuICAvKipcbiAgICogcHJvY2VzcyBhIGxpc3Qgb2YgdHJhbnNhY3Rpb25zIGluIGEgYmxvY2sgYW5kIHN0b3JlIHJlcXVpcmVkIGluZm9ybWF0aW9uXG4gICAqIEBwYXJhbSB0eHMgbGlzdCBvZiB0cmFuc2FjdGlvbnMgaW4gdGhlIGJsb2NrXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHByb2Nlc3MgaXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSBhbmQgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBwcm9jZXNzVHJhbnNhY3Rpb25zID0gYXN5bmMgKFxuICAgIHR4czogVHJhbnNhY3Rpb25bXSxcbiAgICBibG9jazogQmxvY2tJbmZvLFxuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYm94ZXM6IEFycmF5PEV4dHJhY3RlZERhdGE+ID0gW107XG4gICAgICBjb25zdCBzcGVudEluZm9zOiBBcnJheTxTcGVuZEluZm8+ID0gW107XG4gICAgICBmb3IgKGNvbnN0IHR4IG9mIHR4cykge1xuICAgICAgICBjb25zdCBpbnB1dEV4dGVuc2lvbnMgPSB0eC5pbnB1dHMubWFwKChpbnB1dCkgPT4gaW5wdXQuZXh0ZW5zaW9uIHx8IHt9KTtcbiAgICAgICAgZm9yIChjb25zdCBvdXRwdXQgb2YgdHgub3V0cHV0cykge1xuICAgICAgICAgIGlmICghdGhpcy5oYXNEYXRhKG91dHB1dCkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgVHJ5aW5nIHRvIGV4dHJhY3QgZGF0YSBmcm9tIGJveCAke291dHB1dC5ib3hJZH1gKTtcbiAgICAgICAgICBjb25zdCBleHRyYWN0ZWREYXRhID0gdGhpcy5leHRyYWN0Qm94RGF0YShcbiAgICAgICAgICAgIG91dHB1dCxcbiAgICAgICAgICAgIGlucHV0RXh0ZW5zaW9ucyxcbiAgICAgICAgICAgIHRoaXMuZ2V0VHJhbnNhY3Rpb25FeHRyYURhdGEodHgpLFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGV4dHJhY3RlZERhdGEpIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgICBgRXh0cmFjdGVkIGRhdGEgJHtKc29uQmlnSW50LnN0cmluZ2lmeShleHRyYWN0ZWREYXRhKX0gZnJvbSBib3ggJHtcbiAgICAgICAgICAgICAgICBvdXRwdXQuYm94SWRcbiAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgYm94ZXMucHVzaChleHRyYWN0ZWREYXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc3BlbnRJbmZvcy5wdXNoKC4uLnRoaXMuZ2V0VHJhbnNhY3Rpb25TcGVuZEluZm8odHgpKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGJveGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaWYgKCEoYXdhaXQgdGhpcy5hY3Rpb25zLnN0b3JlQm94ZXMoYm94ZXMsIGJsb2NrLCB0aGlzLmdldElkKCkpKSkge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oXG4gICAgICAgICAgICBgRGF0YSBpbnNlcnRpb24gZmFpbGVkIGZvciAke3RoaXMuZ2V0SWQoKX0gYXQgdGhlIGJsb2NrICR7XG4gICAgICAgICAgICAgIGJsb2NrLmhlaWdodFxuICAgICAgICAgICAgfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50cmlnZ2VyQ2FsbGJhY2tzKENhbGxiYWNrVHlwZS5JbnNlcnQsIGJveGVzKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNwZW50RGF0YSA9IGF3YWl0IHRoaXMuYWN0aW9ucy5zcGVuZEJveGVzKFxuICAgICAgICBzcGVudEluZm9zLFxuICAgICAgICBibG9jayxcbiAgICAgICAgdGhpcy5nZXRJZCgpLFxuICAgICAgKTtcbiAgICAgIGlmIChzcGVudERhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnRyaWdnZXJDYWxsYmFja3MoQ2FsbGJhY2tUeXBlLlNwZW5kLCBzcGVudERhdGEpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFxuICAgICAgICBgUHJvY2Vzc2luZyB0cmFuc2FjdGlvbnMgZmFpbGVkIGZvciAke3RoaXMuZ2V0SWQoKX0gYXQgdGhlIGJsb2NrICR7XG4gICAgICAgICAgYmxvY2suaGVpZ2h0XG4gICAgICAgIH0gd2l0aCBlcnJvcjogJHtlfWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICAvKipcbiAgICogZm9yayBvbmUgYmxvY2sgYW5kIHJlbW92ZSBhbGwgc3RvcmVkIGluZm9ybWF0aW9uIGZvciB0aGlzIGJsb2NrXG4gICAqIEBwYXJhbSBoYXNoIGJsb2NrIGhhc2hcbiAgICovXG4gIGZvcmtCbG9jayA9IGFzeW5jIChoYXNoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmFjdGlvbnMuZGVsZXRlQmxvY2tCb3hlcyhoYXNoLCB0aGlzLmdldElkKCkpO1xuICAgIGlmIChyZXN1bHQuZGVsZXRlZERhdGEubGVuZ3RoID4gMClcbiAgICAgIHRoaXMudHJpZ2dlckNhbGxiYWNrcyhDYWxsYmFja1R5cGUuRGVsZXRlLCByZXN1bHQuZGVsZXRlZERhdGEpO1xuICAgIGlmIChyZXN1bHQudXBkYXRlZERhdGEubGVuZ3RoID4gMClcbiAgICAgIHRoaXMudHJpZ2dlckNhbGxiYWNrcyhDYWxsYmFja1R5cGUuVXBkYXRlLCByZXN1bHQudXBkYXRlZERhdGEpO1xuICB9O1xufVxuIl19
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RFcmdvRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2VyZ28vYWJzdHJhY3RFcmdvRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sVUFBVSxNQUFNLDJCQUEyQixDQUFDO0FBUW5ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3pELE9BQU8sRUFHTCxZQUFZLEdBSWIsTUFBTSxjQUFjLENBQUM7QUFFdEIsTUFBTSxPQUFnQixxQkFHcEIsU0FBUSxpQkFBOEI7SUFLNUIsTUFBTSxDQUFpQjtJQUN2QixTQUFTLEdBRWY7UUFDRixDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRTtRQUNoQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRTtRQUNoQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRTtRQUNoQyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRTtLQUNoQyxDQUFDO0lBQ00sYUFBYSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7SUFFcEMsWUFBWSxNQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUU7UUFDcEMsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxHQUFHLEtBQUssRUFDVixJQUFPLEVBQ1AsUUFBdUMsRUFDdEIsRUFBRTtRQUNuQixNQUFNLE9BQU8s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QUFFLENBQ2IsQ0FBQztZQUNGLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDdkQsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2Ysc0NBQXNDLElBQUksQ0FBQyxLQUFLLEVBQUUsaUJBQ2hELEtBQUssQ0FBQyxNQUNSLGdCQUFnQixDQUFDLEVBQUUsQ0FDcEIsQ0FBQztZQUNGLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBRUY7OztPQUdHO0lBQ0gsU0FBUyxHQUFHLEtBQUssRUFBRSxJQUFZLEVBQWlCLEVBQUU7UUFDaEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN2RSxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDL0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pFLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUMvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNdXRleCB9IGZyb20gJ2F3YWl0LXNlbWFwaG9yZSc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcblxuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IEpzb25CaWdJbnQgZnJvbSAnQHJvc2VuLWJyaWRnZS9qc29uLWJpZ2ludCc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbixcbiAgT3V0cHV0Qm94LFxuICBJbnB1dEV4dGVuc2lvbixcbiAgQmxvY2tJbmZvLFxufSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXItaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7IEFic3RyYWN0RXh0cmFjdG9yIH0gZnJvbSAnLi4vYWJzdHJhY3RFeHRyYWN0b3InO1xuaW1wb3J0IHsgQWJzdHJhY3RFcmdvRXh0cmFjdG9yQWN0aW9uIH0gZnJvbSAnLi9hYnN0cmFjdEVyZ29FeHRyYWN0b3JBY3Rpb24nO1xuaW1wb3J0IHsgQWJzdHJhY3RFcmdvRXh0cmFjdG9yRW50aXR5IH0gZnJvbSAnLi9hYnN0cmFjdEVyZ29FeHRyYWN0b3JFbnRpdHknO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RCb3hEYXRhLFxuICBTcGVuZEluZm8sXG4gIENhbGxiYWNrVHlwZSxcbiAgQ2FsbGJhY2tNYXAsXG4gIENhbGxiYWNrRGF0YU1hcCxcbiAgVHhFeHRyYSxcbn0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RXJnb0V4dHJhY3RvcjxcbiAgRXh0cmFjdGVkRGF0YSBleHRlbmRzIEFic3RyYWN0Qm94RGF0YSxcbiAgRXh0cmFjdG9yRW50aXR5IGV4dGVuZHMgQWJzdHJhY3RFcmdvRXh0cmFjdG9yRW50aXR5LFxuPiBleHRlbmRzIEFic3RyYWN0RXh0cmFjdG9yPFRyYW5zYWN0aW9uPiB7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBhY3Rpb25zOiBBYnN0cmFjdEVyZ29FeHRyYWN0b3JBY3Rpb248XG4gICAgRXh0cmFjdGVkRGF0YSxcbiAgICBFeHRyYWN0b3JFbnRpdHlcbiAgPjtcbiAgcHJvdGVjdGVkIGxvZ2dlcjogQWJzdHJhY3RMb2dnZXI7XG4gIHByb3RlY3RlZCBjYWxsYmFja3M6IHtcbiAgICBbSyBpbiBDYWxsYmFja1R5cGVdOiBNYXA8c3RyaW5nLCBDYWxsYmFja01hcDxFeHRyYWN0ZWREYXRhPltLXT47XG4gIH0gPSB7XG4gICAgW0NhbGxiYWNrVHlwZS5VcGRhdGVdOiBuZXcgTWFwKCksXG4gICAgW0NhbGxiYWNrVHlwZS5JbnNlcnRdOiBuZXcgTWFwKCksXG4gICAgW0NhbGxiYWNrVHlwZS5EZWxldGVdOiBuZXcgTWFwKCksXG4gICAgW0NhbGxiYWNrVHlwZS5TcGVuZF06IG5ldyBNYXAoKSxcbiAgfTtcbiAgcHJpdmF0ZSBjYWxsYmFja011dGV4ID0gbmV3IE11dGV4KCk7XG5cbiAgY29uc3RydWN0b3IobG9nZ2VyID0gbmV3IER1bW15TG9nZ2VyKCkpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyO1xuICB9XG5cbiAgLyoqXG4gICAqIGhvb2sgYSBuZXcgY2FsbGJhY2sgb24gYSBjYWxsYmFjayB0eXBlXG4gICAqIEBwYXJhbSB0eXBlXG4gICAqIEBwYXJhbSBpZFxuICAgKiBAcGFyYW0gY2FsbGJhY2tcbiAgICogQHJldHVybnMgY2FsbGJhY2sgcmVnaXN0ZXJlZCBpZFxuICAgKi9cbiAgaG9vayA9IGFzeW5jIDxUIGV4dGVuZHMgQ2FsbGJhY2tUeXBlPihcbiAgICB0eXBlOiBULFxuICAgIGNhbGxiYWNrOiBDYWxsYmFja01hcDxFeHRyYWN0ZWREYXRhPltUXSxcbiAgKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgICBjb25zdCByZWxlYXNlID0gYXdhaXQgdGhpcy5jYWxsYmFja011dGV4LmFjcXVpcmUoKTtcbiAgICBjb25zdCBjYWxsYmFja01hcCA9IHRoaXMuY2FsbGJhY2tzW3R5cGVdO1xuICAgIGNvbnN0IGlkID0gdXVpZHY0KCk7XG4gICAgY2FsbGJhY2tNYXAuc2V0KGlkLCBjYWxsYmFjayk7XG4gICAgcmVsZWFzZSgpO1xuICAgIHJldHVybiBpZDtcbiAgfTtcblxuICAvKipcbiAgICogdW5ob29rIGEgY2FsbGJhY2sgb24gYSB0eXBlXG4gICAqIHJldHVybnMgZmFsc2UgaWYgdGhlcmUgaXMgbm8gcmVnaXN0ZXJlZCBjYWxsYmFjayB3aXRoIHRoZSBpZFxuICAgKiBAcGFyYW0gdHlwZVxuICAgKiBAcGFyYW0gaWRcbiAgICogQHJldHVybnMgc3VjY2VzcyBzdGF0dXNcbiAgICovXG4gIHVuaG9vayA9IGFzeW5jICh0eXBlOiBDYWxsYmFja1R5cGUsIGlkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICBjb25zdCByZWxlYXNlID0gYXdhaXQgdGhpcy5jYWxsYmFja011dGV4LmFjcXVpcmUoKTtcbiAgICBjb25zdCBjYWxsYmFja01hcCA9IHRoaXMuY2FsbGJhY2tzW3R5cGVdO1xuICAgIGlmICghY2FsbGJhY2tNYXAuaGFzKGlkKSkge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgYENhbGxiYWNrIHdpdGggSWQgWyR7aWR9XSBpcyBub3QgcmVnaXN0ZXJlZCBmb3IgdHlwZSBbJHt0eXBlfV0uYCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNhbGxiYWNrTWFwLmRlbGV0ZShpZCk7XG4gICAgcmVsZWFzZSgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiB0cmlnZ2VyIGFsbCBjYWxsYmFja3MgcmVnaXN0ZXJlZCBvbiBhIHNwZWNpZmljIHR5cGUgd2l0aCB0aGUgcHJvdmlkZWQgZGF0YVxuICAgKiBAcGFyYW0gdHlwZVxuICAgKiBAcGFyYW0gZGF0YVxuICAgKi9cbiAgcHJvdGVjdGVkIHRyaWdnZXJDYWxsYmFja3M8VCBleHRlbmRzIENhbGxiYWNrVHlwZT4oXG4gICAgdHlwZTogVCxcbiAgICBkYXRhOiBDYWxsYmFja0RhdGFNYXA8RXh0cmFjdGVkRGF0YT5bVF0sXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGNhbGxiYWNrTWFwID0gdGhpcy5jYWxsYmFja3NbdHlwZV07XG4gICAgY2FsbGJhY2tNYXAuZm9yRWFjaCgoY2FsbGJhY2spID0+IHtcbiAgICAgIGNhbGxiYWNrKGRhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIGV4dHJhY3QgYm94IGRhdGEgdG8gcHJvcGVyIGZvcm1hdCAobm90IGluY2x1ZGluZyBzcGVuZGluZyBpbmZvcm1hdGlvbilcbiAgICogQHBhcmFtIGJveFxuICAgKiBAcGFyYW0gaW5wdXRFeHRlbnNpb25zIGFsbCBpbnB1dCBib3ggZXh0ZW5zaW9ucyBpbiB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJuIGV4dHJhY3RlZCBkYXRhIGluIHByb3BlciBmb3JtYXRcbiAgICovXG4gIGFic3RyYWN0IGV4dHJhY3RCb3hEYXRhOiAoXG4gICAgYm94OiBPdXRwdXRCb3gsXG4gICAgaW5wdXRFeHRlbnNpb25zOiBJbnB1dEV4dGVuc2lvbltdLFxuICAgIHR4RXh0cmE/OiBUeEV4dHJhLFxuICApID0+IEV4dHJhY3RlZERhdGEgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIGNoZWNrIHByb3BlciBkYXRhIGZvcm1hdCBpbiB0aGUgYm94XG4gICAqIEBwYXJhbSBib3hcbiAgICogQHJldHVybiB0cnVlIGlmIHRoZSBib3ggaGFzIHRoZSByZXF1aXJlZCBkYXRhIGFuZCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIGFic3RyYWN0IGhhc0RhdGE6IChib3g6IE91dHB1dEJveCkgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogY3JlYXRlIHNwZW5kIGluZm8gYXJyYXkgZm9yIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gdHhcbiAgICogQHJldHVybnMgc3BlbmQgaW5mbyBhcnJheSBvZiB0aGUgdHJhbnNhY3Rpb25cbiAgICovXG4gIGdldFRyYW5zYWN0aW9uU3BlbmRJbmZvID0gKHR4OiBUcmFuc2FjdGlvbikgPT4ge1xuICAgIGxldCBib3hJbmRleCA9IDE7XG4gICAgY29uc3Qgc3BlbmRJbmZvQXJyYXkgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGlucHV0IG9mIHR4LmlucHV0cykge1xuICAgICAgc3BlbmRJbmZvQXJyYXkucHVzaCh7IHR4SWQ6IHR4LmlkLCBib3hJZDogaW5wdXQuYm94SWQsIGluZGV4OiBib3hJbmRleCB9KTtcbiAgICAgIGJveEluZGV4ICs9IDE7XG4gICAgfVxuICAgIHJldHVybiBzcGVuZEluZm9BcnJheTtcbiAgfTtcblxuICAvKipcbiAgICogZXh0cmFjdCB0cmFuc2FjdGlvbiBleHRyYSBpbmZvcm1hdGlvblxuICAgKiBvdmVycmlkZSB0aGlzIGZ1bmN0aW9uIGlmIHRoZXJlIGlzIGV4dHJhIG5lZWRlZCBpbmZvcm1hdGlvblxuICAgKiBAcGFyYW0gdHhcbiAgICogQHJldHVybnNcbiAgICovXG4gIGdldFRyYW5zYWN0aW9uRXh0cmFEYXRhID0gKFxuICAgIHR4OiBUcmFuc2FjdGlvbiwgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgKTogVHhFeHRyYSA9PiB7XG4gICAgcmV0dXJuIHt9O1xuICB9O1xuXG4gIC8qKlxuICAgKiBwcm9jZXNzIGEgbGlzdCBvZiB0cmFuc2FjdGlvbnMgaW4gYSBibG9jayBhbmQgc3RvcmUgcmVxdWlyZWQgaW5mb3JtYXRpb25cbiAgICogQHBhcmFtIHR4cyBsaXN0IG9mIHRyYW5zYWN0aW9ucyBpbiB0aGUgYmxvY2tcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgcHJvY2VzcyBpcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5IGFuZCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHByb2Nlc3NUcmFuc2FjdGlvbnMgPSBhc3luYyAoXG4gICAgdHhzOiBUcmFuc2FjdGlvbltdLFxuICAgIGJsb2NrOiBCbG9ja0luZm8sXG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBib3hlczogQXJyYXk8RXh0cmFjdGVkRGF0YT4gPSBbXTtcbiAgICAgIGNvbnN0IHNwZW50SW5mb3M6IEFycmF5PFNwZW5kSW5mbz4gPSBbXTtcbiAgICAgIGZvciAoY29uc3QgdHggb2YgdHhzKSB7XG4gICAgICAgIGNvbnN0IGlucHV0RXh0ZW5zaW9ucyA9IHR4LmlucHV0cy5tYXAoKGlucHV0KSA9PiBpbnB1dC5leHRlbnNpb24gfHwge30pO1xuICAgICAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiB0eC5vdXRwdXRzKSB7XG4gICAgICAgICAgaWYgKCF0aGlzLmhhc0RhdGEob3V0cHV0KSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBUcnlpbmcgdG8gZXh0cmFjdCBkYXRhIGZyb20gYm94ICR7b3V0cHV0LmJveElkfWApO1xuICAgICAgICAgIGNvbnN0IGV4dHJhY3RlZERhdGEgPSB0aGlzLmV4dHJhY3RCb3hEYXRhKFxuICAgICAgICAgICAgb3V0cHV0LFxuICAgICAgICAgICAgaW5wdXRFeHRlbnNpb25zLFxuICAgICAgICAgICAgdGhpcy5nZXRUcmFuc2FjdGlvbkV4dHJhRGF0YSh0eCksXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoZXh0cmFjdGVkRGF0YSkge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgIGBFeHRyYWN0ZWQgZGF0YSAke0pzb25CaWdJbnQuc3RyaW5naWZ5KGV4dHJhY3RlZERhdGEpfSBmcm9tIGJveCAke1xuICAgICAgICAgICAgICAgIG91dHB1dC5ib3hJZFxuICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBib3hlcy5wdXNoKGV4dHJhY3RlZERhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzcGVudEluZm9zLnB1c2goLi4udGhpcy5nZXRUcmFuc2FjdGlvblNwZW5kSW5mbyh0eCkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoYm94ZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAoIShhd2FpdCB0aGlzLmFjdGlvbnMuc3RvcmVCb3hlcyhib3hlcywgYmxvY2ssIHRoaXMuZ2V0SWQoKSkpKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgICAgIGBEYXRhIGluc2VydGlvbiBmYWlsZWQgZm9yICR7dGhpcy5nZXRJZCgpfSBhdCB0aGUgYmxvY2sgJHtcbiAgICAgICAgICAgICAgYmxvY2suaGVpZ2h0XG4gICAgICAgICAgICB9YCxcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRyaWdnZXJDYWxsYmFja3MoQ2FsbGJhY2tUeXBlLkluc2VydCwgYm94ZXMpO1xuICAgICAgfVxuICAgICAgY29uc3Qgc3BlbnREYXRhID0gYXdhaXQgdGhpcy5hY3Rpb25zLnNwZW5kQm94ZXMoXG4gICAgICAgIHNwZW50SW5mb3MsXG4gICAgICAgIGJsb2NrLFxuICAgICAgICB0aGlzLmdldElkKCksXG4gICAgICApO1xuICAgICAgaWYgKHNwZW50RGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMudHJpZ2dlckNhbGxiYWNrcyhDYWxsYmFja1R5cGUuU3BlbmQsIHNwZW50RGF0YSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgIGBQcm9jZXNzaW5nIHRyYW5zYWN0aW9ucyBmYWlsZWQgZm9yICR7dGhpcy5nZXRJZCgpfSBhdCB0aGUgYmxvY2sgJHtcbiAgICAgICAgICBibG9jay5oZWlnaHRcbiAgICAgICAgfSB3aXRoIGVycm9yOiAke2V9YCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBmb3JrIG9uZSBibG9jayBhbmQgcmVtb3ZlIGFsbCBzdG9yZWQgaW5mb3JtYXRpb24gZm9yIHRoaXMgYmxvY2tcbiAgICogQHBhcmFtIGhhc2ggYmxvY2sgaGFzaFxuICAgKi9cbiAgZm9ya0Jsb2NrID0gYXN5bmMgKGhhc2g6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYWN0aW9ucy5kZWxldGVCbG9ja0JveGVzKGhhc2gsIHRoaXMuZ2V0SWQoKSk7XG4gICAgaWYgKHJlc3VsdC5kZWxldGVkRGF0YS5sZW5ndGggPiAwKVxuICAgICAgdGhpcy50cmlnZ2VyQ2FsbGJhY2tzKENhbGxiYWNrVHlwZS5EZWxldGUsIHJlc3VsdC5kZWxldGVkRGF0YSk7XG4gICAgaWYgKHJlc3VsdC51cGRhdGVkRGF0YS5sZW5ndGggPiAwKVxuICAgICAgdGhpcy50cmlnZ2VyQ2FsbGJhY2tzKENhbGxiYWNrVHlwZS5VcGRhdGUsIHJlc3VsdC51cGRhdGVkRGF0YSk7XG4gIH07XG59XG4iXX0=
@@ -1,8 +1,8 @@
1
- import { DataSource, Repository, EntityTarget, QueryRunner } from '@rosen-bridge/extended-typeorm';
2
1
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
2
+ import { DataSource, Repository, EntityTarget, QueryRunner } from '@rosen-bridge/extended-typeorm';
3
3
  import { BlockInfo } from '@rosen-bridge/scanner-interfaces';
4
+ import { AbstractErgoExtractorEntity } from './abstractErgoExtractorEntity';
4
5
  import { AbstractBoxData, BoxInfo, SpendInfo } from './interfaces';
5
- import { AbstractErgoExtractorEntity } from './AbstractErgoExtractorEntity';
6
6
  export declare abstract class AbstractErgoExtractorAction<ExtractedData extends AbstractBoxData, ExtractorEntity extends AbstractErgoExtractorEntity> {
7
7
  private readonly datasource;
8
8
  readonly logger: AbstractLogger;
@@ -12,7 +12,9 @@ export declare abstract class AbstractErgoExtractorAction<ExtractedData extends
12
12
  /**
13
13
  * create the database entity from extracted data and block information
14
14
  */
15
- protected createEntity: (data: ExtractedData[], block: BlockInfo, extractor: string) => Array<Omit<ExtractorEntity, 'id'>>;
15
+ protected createEntity: (data: ExtractedData[], // eslint-disable-line @typescript-eslint/no-unused-vars
16
+ block: BlockInfo, // eslint-disable-line @typescript-eslint/no-unused-vars
17
+ extractor: string) => Array<Omit<ExtractorEntity, "id">>;
16
18
  /**
17
19
  * convert the database entity back to raw data
18
20
  */
@@ -84,4 +86,4 @@ export declare abstract class AbstractErgoExtractorAction<ExtractedData extends
84
86
  updatedData: BoxInfo[];
85
87
  }>;
86
88
  }
87
- //# sourceMappingURL=AbstractErgoExtractorAction.d.ts.map
89
+ //# sourceMappingURL=abstractErgoExtractorAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstractErgoExtractorAction.d.ts","sourceRoot":"","sources":["../../lib/ergo/abstractErgoExtractorAction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EACL,UAAU,EAEV,UAAU,EAEV,YAAY,EAEZ,WAAW,EACZ,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAG7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEnE,8BAAsB,2BAA2B,CAC/C,aAAa,SAAS,eAAe,EACrC,eAAe,SAAS,2BAA2B;IAEnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;IAC3D,OAAO,CAAC,IAAI,CAAgC;gBAG1C,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,YAAY,CAAC,eAAe,CAAC,EACnC,MAAM,CAAC,EAAE,cAAc;IAQzB;;OAEG;IACH,SAAS,CAAC,YAAY,GACpB,MAAM,aAAa,EAAE,EAAE,wDAAwD;IAC/E,OAAO,SAAS,EAAE,wDAAwD;IAC1E,WAAW,MAAM,KAChB,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAInC;IAEF;;OAEG;IACH,SAAS,CAAC,mBAAmB,GAC3B,UAAU,eAAe,EAAE,KAC1B,aAAa,EAAE,CAIhB;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,cAAc,GACtB,aAAa,WAAW,EACxB,eAAe,KAAK,CAAC,aAAa,CAAC,EACnC,OAAO,SAAS,EAChB,WAAW,MAAM,mBAMjB;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,YAAY,GACpB,aAAa,WAAW,EACxB,WAAW,aAAa,EACxB,OAAO,SAAS,EAChB,WAAW,MAAM,mBAWjB;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,mBAAmB,GAC3B,aAAa,WAAW,EACxB,WAAW,MAAM,EACjB,OAAO,MAAM,KACZ,OAAO,CAAC,aAAa,EAAE,CAAC,CAazB;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,mBAAmB,GAC3B,aAAa,WAAW,EACxB,WAAW,MAAM,EACjB,OAAO,MAAM,KACZ,OAAO,CAAC,eAAe,EAAE,CAAC,CAsB3B;IAEF;;;;;;;;OAQG;IACH,UAAU,GACR,OAAO,KAAK,CAAC,aAAa,CAAC,EAC3B,OAAO,SAAS,EAChB,WAAW,MAAM,KAChB,OAAO,CAAC,OAAO,CAAC,CA6CjB;IAEF;;;;;;;;;;OAUG;IACH,UAAU,GACR,YAAY,KAAK,CAAC,SAAS,CAAC,EAC5B,OAAO,SAAS,EAChB,WAAW,MAAM,KAChB,OAAO,CAAC,OAAO,EAAE,CAAC,CA8BnB;IAEF;;;;;;;OAOG;IACH,gBAAgB,GACd,OAAO,MAAM,EACb,WAAW,MAAM,KAChB,OAAO,CAAC;QAAE,WAAW,EAAE,aAAa,EAAE,CAAC;QAAC,WAAW,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC,CAiClE;CACH"}
@@ -0,0 +1,219 @@
1
+ import { chunk, difference, pick } from 'lodash-es';
2
+ import { DummyLogger } from '@rosen-bridge/abstract-logger';
3
+ import { In, Not, } from '@rosen-bridge/extended-typeorm';
4
+ import JsonBigInt from '@rosen-bridge/json-bigint';
5
+ import { DB_CHUNK_SIZE } from '../constants';
6
+ export class AbstractErgoExtractorAction {
7
+ datasource;
8
+ logger;
9
+ repository;
10
+ repo;
11
+ constructor(dataSource, repo, logger) {
12
+ this.datasource = dataSource;
13
+ this.logger = logger ? logger : new DummyLogger();
14
+ this.repository = this.datasource.getRepository(repo);
15
+ this.repo = repo;
16
+ }
17
+ /**
18
+ * create the database entity from extracted data and block information
19
+ */
20
+ createEntity = (data, // eslint-disable-line @typescript-eslint/no-unused-vars
21
+ block, // eslint-disable-line @typescript-eslint/no-unused-vars
22
+ extractor) => {
23
+ throw Error('You must implement `createEntity` or override `insertEntities` and `updateEntities`');
24
+ };
25
+ /**
26
+ * convert the database entity back to raw data
27
+ */
28
+ convertEntityToData = (entities) => {
29
+ throw Error('You must implement `convertEntityToData` or override `deleteBlockEntities`');
30
+ };
31
+ /**
32
+ * insert entities extracted from a block to database
33
+ * @param queryRunner
34
+ * @param boxesToInsert
35
+ * @param block
36
+ * @param extractor
37
+ */
38
+ insertEntities = async (queryRunner, boxesToInsert, block, extractor) => {
39
+ const repository = queryRunner.manager.getRepository(this.repo);
40
+ await repository.insert(this.createEntity(boxesToInsert, block, extractor));
41
+ };
42
+ /**
43
+ * update entities related to a box
44
+ * @param queryRunner
45
+ * @param updateBox
46
+ * @param block
47
+ * @param extractor
48
+ */
49
+ updateEntity = async (queryRunner, updateBox, block, extractor) => {
50
+ const repository = queryRunner.manager.getRepository(this.repo);
51
+ const box = this.createEntity([updateBox], block, extractor)[0];
52
+ await repository.update({
53
+ boxId: box.boxId,
54
+ extractor: extractor,
55
+ }, box);
56
+ };
57
+ /**
58
+ * delete all data extracted from a block
59
+ * @param queryRunner
60
+ * @param extractor
61
+ * @param block
62
+ * @returns
63
+ */
64
+ deleteBlockEntities = async (queryRunner, extractor, block) => {
65
+ const repository = queryRunner.manager.getRepository(this.repo);
66
+ const deletedData = await repository.find({
67
+ where: {
68
+ extractor: extractor,
69
+ block: block,
70
+ },
71
+ });
72
+ await repository.delete({
73
+ extractor: extractor,
74
+ block: block,
75
+ });
76
+ return this.convertEntityToData(deletedData);
77
+ };
78
+ /**
79
+ * delete all data extracted from a block
80
+ * @param queryRunner
81
+ * @param extractor
82
+ * @param block
83
+ * @returns
84
+ */
85
+ updateBlockEntities = async (queryRunner, extractor, block) => {
86
+ const repository = this.datasource.getRepository(this.repo);
87
+ const updatedData = await repository.find({
88
+ where: {
89
+ extractor: extractor,
90
+ spendBlock: block,
91
+ block: Not(block),
92
+ },
93
+ });
94
+ await repository.update({
95
+ spendBlock: block,
96
+ extractor: extractor,
97
+ }, {
98
+ spendBlock: null,
99
+ spendHeight: 0,
100
+ });
101
+ return updatedData;
102
+ };
103
+ /**
104
+ * insert all extracted box data in an atomic transaction
105
+ * update the data if a box with the same id is already stored in db
106
+ * @param boxes
107
+ * @param block
108
+ * @param extractor
109
+ * @return inserted items and updated box ids
110
+ * returns undefined in case of any problem
111
+ */
112
+ storeBoxes = async (boxes, block, extractor) => {
113
+ let boxesToInsert = [], boxesToUpdate = [];
114
+ const queryRunner = this.datasource.createQueryRunner();
115
+ await queryRunner.connect();
116
+ await queryRunner.startTransaction();
117
+ try {
118
+ const repository = queryRunner.manager.getRepository(this.repo);
119
+ const dbBoxIds = (await repository.findBy({
120
+ boxId: In(boxes.map((item) => item.boxId)),
121
+ extractor: extractor,
122
+ })).map((box) => box.boxId);
123
+ if (dbBoxIds.length > 0)
124
+ this.logger.debug(`Found stored boxes with same boxId`, dbBoxIds);
125
+ boxesToUpdate = boxes.filter((box) => dbBoxIds.includes(box.boxId));
126
+ boxesToInsert = difference(boxes, boxesToUpdate);
127
+ if (boxesToInsert.length > 0) {
128
+ this.logger.debug(`Inserting boxes`);
129
+ await this.insertEntities(queryRunner, boxesToInsert, block, extractor);
130
+ }
131
+ if (boxesToUpdate.length > 0)
132
+ this.logger.info(`Updating boxes with following Ids in the database: [${boxesToUpdate
133
+ .map((col) => col.boxId)
134
+ .join(', ')}]`);
135
+ for (const box of boxesToUpdate) {
136
+ this.logger.debug(`Updating boxes in database [${JsonBigInt.stringify(box)}]`);
137
+ await this.updateEntity(queryRunner, box, block, extractor);
138
+ }
139
+ await queryRunner.commitTransaction();
140
+ return true;
141
+ }
142
+ catch (e) {
143
+ this.logger.error(`An error occurred during store boxes action: ${e}`);
144
+ await queryRunner.rollbackTransaction();
145
+ return false;
146
+ }
147
+ finally {
148
+ await queryRunner.release();
149
+ }
150
+ };
151
+ /**
152
+ * update spending information of stored boxes
153
+ * chunk spendInfos to prevent large database queries
154
+ * Note: It only updates the spendHeight and spendBlock fields. If updating
155
+ * anything else is required, override this implementation to include the
156
+ * additional fields.
157
+ * @param spendInfos
158
+ * @param block
159
+ * @param extractor
160
+ * @returns spent box ids
161
+ */
162
+ spendBoxes = async (spendInfos, block, extractor) => {
163
+ const spentData = [];
164
+ const spendInfoChunks = chunk(spendInfos, DB_CHUNK_SIZE);
165
+ for (const spendInfoChunk of spendInfoChunks) {
166
+ const boxIds = spendInfoChunk.map((info) => info.boxId);
167
+ const updateResult = await this.repository.update({
168
+ boxId: In(boxIds),
169
+ extractor: extractor,
170
+ }, {
171
+ spendBlock: block.hash,
172
+ spendHeight: block.height,
173
+ });
174
+ if (updateResult.affected && updateResult.affected > 0) {
175
+ const spentRows = await this.repository.findBy({
176
+ boxId: In(boxIds),
177
+ spendBlock: block.hash,
178
+ });
179
+ spentData.push(...spentRows);
180
+ for (const row of spentRows) {
181
+ this.logger.debug(`Spent box with boxId [${row.boxId}] at height ${block.height}`);
182
+ }
183
+ }
184
+ }
185
+ return spentData.map((data) => pick(data, 'boxId'));
186
+ };
187
+ /**
188
+ * delete extracted data from a specific block
189
+ * if a box is spend in this block mark it as unspent
190
+ * if a box is created in this block remove it from database
191
+ * @param block
192
+ * @param extractor
193
+ * @return deleted items and updated box ids
194
+ */
195
+ deleteBlockBoxes = async (block, extractor) => {
196
+ const queryRunner = this.datasource.createQueryRunner();
197
+ await queryRunner.connect();
198
+ await queryRunner.startTransaction();
199
+ try {
200
+ this.logger.info(`Deleting boxes in block ${block} and extractor ${extractor}`);
201
+ const updatedData = await this.updateBlockEntities(queryRunner, extractor, block);
202
+ const deletedData = await this.deleteBlockEntities(queryRunner, extractor, block);
203
+ await queryRunner.commitTransaction();
204
+ return {
205
+ deletedData,
206
+ updatedData: updatedData.map((data) => pick(data, 'boxId')),
207
+ };
208
+ }
209
+ catch (error) {
210
+ await queryRunner.rollbackTransaction();
211
+ this.logger.error(`An error occurred while deleting data extracted from block ${block}`, error);
212
+ throw error;
213
+ }
214
+ finally {
215
+ await queryRunner.release();
216
+ }
217
+ };
218
+ }
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RFcmdvRXh0cmFjdG9yQWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2VyZ28vYWJzdHJhY3RFcmdvRXh0cmFjdG9yQWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwRCxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFFTCxFQUFFLEVBRUYsR0FBRyxHQUlKLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFHbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUk3QyxNQUFNLE9BQWdCLDJCQUEyQjtJQUk5QixVQUFVLENBQWE7SUFDL0IsTUFBTSxDQUFpQjtJQUNiLFVBQVUsQ0FBOEI7SUFDbkQsSUFBSSxDQUFnQztJQUU1QyxZQUNFLFVBQXNCLEVBQ3RCLElBQW1DLEVBQ25DLE1BQXVCO1FBRXZCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDTyxZQUFZLEdBQUcsQ0FDdkIsSUFBcUIsRUFBRSx3REFBd0Q7SUFDL0UsS0FBZ0IsRUFBRSx3REFBd0Q7SUFDMUUsU0FBaUIsRUFDbUIsRUFBRTtRQUN0QyxNQUFNLEtBQUssQ0FDVCxxRkFBcUYsQ0FDdEYsQ0FBQztJQUNKLENBQUMs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Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNodW5rLCBkaWZmZXJlbmNlLCBwaWNrIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHtcbiAgRGF0YVNvdXJjZSxcbiAgSW4sXG4gIFJlcG9zaXRvcnksXG4gIE5vdCxcbiAgRW50aXR5VGFyZ2V0LFxuICBGaW5kT3B0aW9uc1doZXJlLFxuICBRdWVyeVJ1bm5lcixcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9leHRlbmRlZC10eXBlb3JtJztcbmltcG9ydCBKc29uQmlnSW50IGZyb20gJ0Byb3Nlbi1icmlkZ2UvanNvbi1iaWdpbnQnO1xuaW1wb3J0IHsgQmxvY2tJbmZvIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBEQl9DSFVOS19TSVpFIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEFic3RyYWN0RXJnb0V4dHJhY3RvckVudGl0eSB9IGZyb20gJy4vYWJzdHJhY3RFcmdvRXh0cmFjdG9yRW50aXR5JztcbmltcG9ydCB7IEFic3RyYWN0Qm94RGF0YSwgQm94SW5mbywgU3BlbmRJbmZvIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RXJnb0V4dHJhY3RvckFjdGlvbjxcbiAgRXh0cmFjdGVkRGF0YSBleHRlbmRzIEFic3RyYWN0Qm94RGF0YSxcbiAgRXh0cmFjdG9yRW50aXR5IGV4dGVuZHMgQWJzdHJhY3RFcmdvRXh0cmFjdG9yRW50aXR5LFxuPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YXNvdXJjZTogRGF0YVNvdXJjZTtcbiAgcmVhZG9ubHkgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlcjtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlcG9zaXRvcnk6IFJlcG9zaXRvcnk8RXh0cmFjdG9yRW50aXR5PjtcbiAgcHJpdmF0ZSByZXBvOiBFbnRpdHlUYXJnZXQ8RXh0cmFjdG9yRW50aXR5PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIHJlcG86IEVudGl0eVRhcmdldDxFeHRyYWN0b3JFbnRpdHk+LFxuICAgIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyLFxuICApIHtcbiAgICB0aGlzLmRhdGFzb3VyY2UgPSBkYXRhU291cmNlO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyID8gbG9nZ2VyIDogbmV3IER1bW15TG9nZ2VyKCk7XG4gICAgdGhpcy5yZXBvc2l0b3J5ID0gdGhpcy5kYXRhc291cmNlLmdldFJlcG9zaXRvcnkocmVwbyk7XG4gICAgdGhpcy5yZXBvID0gcmVwbztcbiAgfVxuXG4gIC8qKlxuICAgKiBjcmVhdGUgdGhlIGRhdGFiYXNlIGVudGl0eSBmcm9tIGV4dHJhY3RlZCBkYXRhIGFuZCBibG9jayBpbmZvcm1hdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZUVudGl0eSA9IChcbiAgICBkYXRhOiBFeHRyYWN0ZWREYXRhW10sIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgYmxvY2s6IEJsb2NrSW5mbywgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBleHRyYWN0b3I6IHN0cmluZywgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgKTogQXJyYXk8T21pdDxFeHRyYWN0b3JFbnRpdHksICdpZCc+PiA9PiB7XG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICAnWW91IG11c3QgaW1wbGVtZW50IGBjcmVhdGVFbnRpdHlgIG9yIG92ZXJyaWRlIGBpbnNlcnRFbnRpdGllc2AgYW5kIGB1cGRhdGVFbnRpdGllc2AnLFxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIGNvbnZlcnQgdGhlIGRhdGFiYXNlIGVudGl0eSBiYWNrIHRvIHJhdyBkYXRhXG4gICAqL1xuICBwcm90ZWN0ZWQgY29udmVydEVudGl0eVRvRGF0YSA9IChcbiAgICBlbnRpdGllczogRXh0cmFjdG9yRW50aXR5W10sIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICk6IEV4dHJhY3RlZERhdGFbXSA9PiB7XG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICAnWW91IG11c3QgaW1wbGVtZW50IGBjb252ZXJ0RW50aXR5VG9EYXRhYCBvciBvdmVycmlkZSBgZGVsZXRlQmxvY2tFbnRpdGllc2AnLFxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIGluc2VydCBlbnRpdGllcyBleHRyYWN0ZWQgZnJvbSBhIGJsb2NrIHRvIGRhdGFiYXNlXG4gICAqIEBwYXJhbSBxdWVyeVJ1bm5lclxuICAgKiBAcGFyYW0gYm94ZXNUb0luc2VydFxuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgcHJvdGVjdGVkIGluc2VydEVudGl0aWVzID0gYXN5bmMgKFxuICAgIHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lcixcbiAgICBib3hlc1RvSW5zZXJ0OiBBcnJheTxFeHRyYWN0ZWREYXRhPixcbiAgICBibG9jazogQmxvY2tJbmZvLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nLFxuICApID0+IHtcbiAgICBjb25zdCByZXBvc2l0b3J5ID0gcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KHRoaXMucmVwbyk7XG4gICAgYXdhaXQgcmVwb3NpdG9yeS5pbnNlcnQoXG4gICAgICB0aGlzLmNyZWF0ZUVudGl0eShib3hlc1RvSW5zZXJ0LCBibG9jaywgZXh0cmFjdG9yKSBhcyBhbnksIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIHVwZGF0ZSBlbnRpdGllcyByZWxhdGVkIHRvIGEgYm94XG4gICAqIEBwYXJhbSBxdWVyeVJ1bm5lclxuICAgKiBAcGFyYW0gdXBkYXRlQm94XG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlRW50aXR5ID0gYXN5bmMgKFxuICAgIHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lcixcbiAgICB1cGRhdGVCb3g6IEV4dHJhY3RlZERhdGEsXG4gICAgYmxvY2s6IEJsb2NrSW5mbyxcbiAgICBleHRyYWN0b3I6IHN0cmluZyxcbiAgKSA9PiB7XG4gICAgY29uc3QgcmVwb3NpdG9yeSA9IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeSh0aGlzLnJlcG8pO1xuICAgIGNvbnN0IGJveCA9IHRoaXMuY3JlYXRlRW50aXR5KFt1cGRhdGVCb3hdLCBibG9jaywgZXh0cmFjdG9yKVswXTtcbiAgICBhd2FpdCByZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgIHtcbiAgICAgICAgYm94SWQ6IGJveC5ib3hJZCxcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICB9IGFzIEZpbmRPcHRpb25zV2hlcmU8RXh0cmFjdG9yRW50aXR5PixcbiAgICAgIGJveCBhcyBhbnksIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIGRlbGV0ZSBhbGwgZGF0YSBleHRyYWN0ZWQgZnJvbSBhIGJsb2NrXG4gICAqIEBwYXJhbSBxdWVyeVJ1bm5lclxuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJvdGVjdGVkIGRlbGV0ZUJsb2NrRW50aXRpZXMgPSBhc3luYyAoXG4gICAgcXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nLFxuICAgIGJsb2NrOiBzdHJpbmcsXG4gICk6IFByb21pc2U8RXh0cmFjdGVkRGF0YVtdPiA9PiB7XG4gICAgY29uc3QgcmVwb3NpdG9yeSA9IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeSh0aGlzLnJlcG8pO1xuICAgIGNvbnN0IGRlbGV0ZWREYXRhID0gYXdhaXQgcmVwb3NpdG9yeS5maW5kKHtcbiAgICAgIHdoZXJlOiB7XG4gICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICBibG9jazogYmxvY2ssXG4gICAgICB9IGFzIEZpbmRPcHRpb25zV2hlcmU8RXh0cmFjdG9yRW50aXR5PixcbiAgICB9KTtcbiAgICBhd2FpdCByZXBvc2l0b3J5LmRlbGV0ZSh7XG4gICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgIGJsb2NrOiBibG9jayxcbiAgICB9IGFzIHVua25vd24gYXMgRmluZE9wdGlvbnNXaGVyZTxFeHRyYWN0b3JFbnRpdHk+KTtcbiAgICByZXR1cm4gdGhpcy5jb252ZXJ0RW50aXR5VG9EYXRhKGRlbGV0ZWREYXRhKTtcbiAgfTtcblxuICAvKipcbiAgICogZGVsZXRlIGFsbCBkYXRhIGV4dHJhY3RlZCBmcm9tIGEgYmxvY2tcbiAgICogQHBhcmFtIHF1ZXJ5UnVubmVyXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlQmxvY2tFbnRpdGllcyA9IGFzeW5jIChcbiAgICBxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIsXG4gICAgZXh0cmFjdG9yOiBzdHJpbmcsXG4gICAgYmxvY2s6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxFeHRyYWN0b3JFbnRpdHlbXT4gPT4ge1xuICAgIGNvbnN0IHJlcG9zaXRvcnkgPSB0aGlzLmRhdGFzb3VyY2UuZ2V0UmVwb3NpdG9yeShcbiAgICAgIHRoaXMucmVwbyBhcyBFbnRpdHlUYXJnZXQ8bmV3ICgpID0+IEV4dHJhY3RvckVudGl0eT4sXG4gICAgKTtcbiAgICBjb25zdCB1cGRhdGVkRGF0YSA9IGF3YWl0IHJlcG9zaXRvcnkuZmluZCh7XG4gICAgICB3aGVyZToge1xuICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgICAgc3BlbmRCbG9jazogYmxvY2ssXG4gICAgICAgIGJsb2NrOiBOb3QoYmxvY2spLFxuICAgICAgfSBhcyB1bmtub3duIGFzIEZpbmRPcHRpb25zV2hlcmU8RXh0cmFjdG9yRW50aXR5PixcbiAgICB9KTtcbiAgICBhd2FpdCByZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgIHtcbiAgICAgICAgc3BlbmRCbG9jazogYmxvY2ssXG4gICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgfSBhcyB1bmtub3duIGFzIEZpbmRPcHRpb25zV2hlcmU8RXh0cmFjdG9yRW50aXR5PixcbiAgICAgIHtcbiAgICAgICAgc3BlbmRCbG9jazogbnVsbCxcbiAgICAgICAgc3BlbmRIZWlnaHQ6IDAsXG4gICAgICB9LFxuICAgICk7XG4gICAgcmV0dXJuIHVwZGF0ZWREYXRhIGFzIHVua25vd24gYXMgRXh0cmFjdG9yRW50aXR5W107XG4gIH07XG5cbiAgLyoqXG4gICAqIGluc2VydCBhbGwgZXh0cmFjdGVkIGJveCBkYXRhIGluIGFuIGF0b21pYyB0cmFuc2FjdGlvblxuICAgKiB1cGRhdGUgdGhlIGRhdGEgaWYgYSBib3ggd2l0aCB0aGUgc2FtZSBpZCBpcyBhbHJlYWR5IHN0b3JlZCBpbiBkYlxuICAgKiBAcGFyYW0gYm94ZXNcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICogQHJldHVybiBpbnNlcnRlZCBpdGVtcyBhbmQgdXBkYXRlZCBib3ggaWRzXG4gICAqIHJldHVybnMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgYW55IHByb2JsZW1cbiAgICovXG4gIHN0b3JlQm94ZXMgPSBhc3luYyAoXG4gICAgYm94ZXM6IEFycmF5PEV4dHJhY3RlZERhdGE+LFxuICAgIGJsb2NrOiBCbG9ja0luZm8sXG4gICAgZXh0cmFjdG9yOiBzdHJpbmcsXG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIGxldCBib3hlc1RvSW5zZXJ0OiBFeHRyYWN0ZWREYXRhW10gPSBbXSxcbiAgICAgIGJveGVzVG9VcGRhdGU6IEV4dHJhY3RlZERhdGFbXSA9IFtdO1xuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5kYXRhc291cmNlLmNyZWF0ZVF1ZXJ5UnVubmVyKCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdCgpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnN0YXJ0VHJhbnNhY3Rpb24oKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVwb3NpdG9yeSA9IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeSh0aGlzLnJlcG8pO1xuICAgICAgY29uc3QgZGJCb3hJZHMgPSAoXG4gICAgICAgIGF3YWl0IHJlcG9zaXRvcnkuZmluZEJ5KHtcbiAgICAgICAgICBib3hJZDogSW4oYm94ZXMubWFwKChpdGVtKSA9PiBpdGVtLmJveElkKSksXG4gICAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgIH0gYXMgRmluZE9wdGlvbnNXaGVyZTxFeHRyYWN0b3JFbnRpdHk+KVxuICAgICAgKS5tYXAoKGJveCkgPT4gYm94LmJveElkKTtcbiAgICAgIGlmIChkYkJveElkcy5sZW5ndGggPiAwKVxuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgRm91bmQgc3RvcmVkIGJveGVzIHdpdGggc2FtZSBib3hJZGAsIGRiQm94SWRzKTtcblxuICAgICAgYm94ZXNUb1VwZGF0ZSA9IGJveGVzLmZpbHRlcigoYm94KSA9PiBkYkJveElkcy5pbmNsdWRlcyhib3guYm94SWQpKTtcbiAgICAgIGJveGVzVG9JbnNlcnQgPSBkaWZmZXJlbmNlKGJveGVzLCBib3hlc1RvVXBkYXRlKTtcblxuICAgICAgaWYgKGJveGVzVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgSW5zZXJ0aW5nIGJveGVzYCk7XG4gICAgICAgIGF3YWl0IHRoaXMuaW5zZXJ0RW50aXRpZXMocXVlcnlSdW5uZXIsIGJveGVzVG9JbnNlcnQsIGJsb2NrLCBleHRyYWN0b3IpO1xuICAgICAgfVxuICAgICAgaWYgKGJveGVzVG9VcGRhdGUubGVuZ3RoID4gMClcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgICBgVXBkYXRpbmcgYm94ZXMgd2l0aCBmb2xsb3dpbmcgSWRzIGluIHRoZSBkYXRhYmFzZTogWyR7Ym94ZXNUb1VwZGF0ZVxuICAgICAgICAgICAgLm1hcCgoY29sKSA9PiBjb2wuYm94SWQpXG4gICAgICAgICAgICAuam9pbignLCAnKX1dYCxcbiAgICAgICAgKTtcbiAgICAgIGZvciAoY29uc3QgYm94IG9mIGJveGVzVG9VcGRhdGUpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYFVwZGF0aW5nIGJveGVzIGluIGRhdGFiYXNlIFske0pzb25CaWdJbnQuc3RyaW5naWZ5KGJveCl9XWAsXG4gICAgICAgICk7XG4gICAgICAgIGF3YWl0IHRoaXMudXBkYXRlRW50aXR5KHF1ZXJ5UnVubmVyLCBib3gsIGJsb2NrLCBleHRyYWN0b3IpO1xuICAgICAgfVxuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGBBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgc3RvcmUgYm94ZXMgYWN0aW9uOiAke2V9YCk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJlbGVhc2UoKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIHVwZGF0ZSBzcGVuZGluZyBpbmZvcm1hdGlvbiBvZiBzdG9yZWQgYm94ZXNcbiAgICogY2h1bmsgc3BlbmRJbmZvcyB0byBwcmV2ZW50IGxhcmdlIGRhdGFiYXNlIHF1ZXJpZXNcbiAgICogTm90ZTogSXQgb25seSB1cGRhdGVzIHRoZSBzcGVuZEhlaWdodCBhbmQgc3BlbmRCbG9jayBmaWVsZHMuIElmIHVwZGF0aW5nXG4gICAqIGFueXRoaW5nIGVsc2UgaXMgcmVxdWlyZWQsIG92ZXJyaWRlIHRoaXMgaW1wbGVtZW50YXRpb24gdG8gaW5jbHVkZSB0aGVcbiAgICogYWRkaXRpb25hbCBmaWVsZHMuXG4gICAqIEBwYXJhbSBzcGVuZEluZm9zXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqIEByZXR1cm5zIHNwZW50IGJveCBpZHNcbiAgICovXG4gIHNwZW5kQm94ZXMgPSBhc3luYyAoXG4gICAgc3BlbmRJbmZvczogQXJyYXk8U3BlbmRJbmZvPixcbiAgICBibG9jazogQmxvY2tJbmZvLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nLFxuICApOiBQcm9taXNlPEJveEluZm9bXT4gPT4ge1xuICAgIGNvbnN0IHNwZW50RGF0YSA9IFtdO1xuICAgIGNvbnN0IHNwZW5kSW5mb0NodW5rcyA9IGNodW5rKHNwZW5kSW5mb3MsIERCX0NIVU5LX1NJWkUpO1xuICAgIGZvciAoY29uc3Qgc3BlbmRJbmZvQ2h1bmsgb2Ygc3BlbmRJbmZvQ2h1bmtzKSB7XG4gICAgICBjb25zdCBib3hJZHMgPSBzcGVuZEluZm9DaHVuay5tYXAoKGluZm8pID0+IGluZm8uYm94SWQpO1xuICAgICAgY29uc3QgdXBkYXRlUmVzdWx0ID0gYXdhaXQgdGhpcy5yZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgICAge1xuICAgICAgICAgIGJveElkOiBJbihib3hJZHMpLFxuICAgICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICB9IGFzIEZpbmRPcHRpb25zV2hlcmU8RXh0cmFjdG9yRW50aXR5PixcbiAgICAgICAge1xuICAgICAgICAgIHNwZW5kQmxvY2s6IGJsb2NrLmhhc2gsXG4gICAgICAgICAgc3BlbmRIZWlnaHQ6IGJsb2NrLmhlaWdodCxcbiAgICAgICAgfSBhcyBhbnksIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgKTtcblxuICAgICAgaWYgKHVwZGF0ZVJlc3VsdC5hZmZlY3RlZCAmJiB1cGRhdGVSZXN1bHQuYWZmZWN0ZWQgPiAwKSB7XG4gICAgICAgIGNvbnN0IHNwZW50Um93cyA9IGF3YWl0IHRoaXMucmVwb3NpdG9yeS5maW5kQnkoe1xuICAgICAgICAgIGJveElkOiBJbihib3hJZHMpLFxuICAgICAgICAgIHNwZW5kQmxvY2s6IGJsb2NrLmhhc2gsXG4gICAgICAgIH0gYXMgRmluZE9wdGlvbnNXaGVyZTxFeHRyYWN0b3JFbnRpdHk+KTtcbiAgICAgICAgc3BlbnREYXRhLnB1c2goLi4uc3BlbnRSb3dzKTtcbiAgICAgICAgZm9yIChjb25zdCByb3cgb2Ygc3BlbnRSb3dzKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBgU3BlbnQgYm94IHdpdGggYm94SWQgWyR7cm93LmJveElkfV0gYXQgaGVpZ2h0ICR7YmxvY2suaGVpZ2h0fWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3BlbnREYXRhLm1hcCgoZGF0YSkgPT4gcGljayhkYXRhLCAnYm94SWQnKSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIGRlbGV0ZSBleHRyYWN0ZWQgZGF0YSBmcm9tIGEgc3BlY2lmaWMgYmxvY2tcbiAgICogaWYgYSBib3ggaXMgc3BlbmQgaW4gdGhpcyBibG9jayBtYXJrIGl0IGFzIHVuc3BlbnRcbiAgICogaWYgYSBib3ggaXMgY3JlYXRlZCBpbiB0aGlzIGJsb2NrIHJlbW92ZSBpdCBmcm9tIGRhdGFiYXNlXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqIEByZXR1cm4gZGVsZXRlZCBpdGVtcyBhbmQgdXBkYXRlZCBib3ggaWRzXG4gICAqL1xuICBkZWxldGVCbG9ja0JveGVzID0gYXN5bmMgKFxuICAgIGJsb2NrOiBzdHJpbmcsXG4gICAgZXh0cmFjdG9yOiBzdHJpbmcsXG4gICk6IFByb21pc2U8eyBkZWxldGVkRGF0YTogRXh0cmFjdGVkRGF0YVtdOyB1cGRhdGVkRGF0YTogQm94SW5mb1tdIH0+ID0+IHtcbiAgICBjb25zdCBxdWVyeVJ1bm5lciA9IHRoaXMuZGF0YXNvdXJjZS5jcmVhdGVRdWVyeVJ1bm5lcigpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3QoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKCk7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICAgIGBEZWxldGluZyBib3hlcyBpbiBibG9jayAke2Jsb2NrfSBhbmQgZXh0cmFjdG9yICR7ZXh0cmFjdG9yfWAsXG4gICAgICApO1xuICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSBhd2FpdCB0aGlzLnVwZGF0ZUJsb2NrRW50aXRpZXMoXG4gICAgICAgIHF1ZXJ5UnVubmVyLFxuICAgICAgICBleHRyYWN0b3IsXG4gICAgICAgIGJsb2NrLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGRlbGV0ZWREYXRhID0gYXdhaXQgdGhpcy5kZWxldGVCbG9ja0VudGl0aWVzKFxuICAgICAgICBxdWVyeVJ1bm5lcixcbiAgICAgICAgZXh0cmFjdG9yLFxuICAgICAgICBibG9jayxcbiAgICAgICk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGVsZXRlZERhdGEsXG4gICAgICAgIHVwZGF0ZWREYXRhOiB1cGRhdGVkRGF0YS5tYXAoKGRhdGEpID0+IHBpY2soZGF0YSwgJ2JveElkJykpLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBkZWxldGluZyBkYXRhIGV4dHJhY3RlZCBmcm9tIGJsb2NrICR7YmxvY2t9YCxcbiAgICAgICAgZXJyb3IsXG4gICAgICApO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJlbGVhc2UoKTtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -8,4 +8,4 @@ export declare abstract class AbstractErgoExtractorEntity {
8
8
  extractor: string;
9
9
  serialized: string;
10
10
  }
11
- //# sourceMappingURL=AbstractErgoExtractorEntity.d.ts.map
11
+ //# sourceMappingURL=abstractErgoExtractorEntity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractErgoExtractorEntity.d.ts","sourceRoot":"","sources":["../../lib/ergo/AbstractErgoExtractorEntity.ts"],"names":[],"mappings":"AAMA,8BACsB,2BAA2B;IAE/C,EAAE,EAAE,MAAM,CAAC;IAGX,KAAK,EAAE,MAAM,CAAC;IAGd,KAAK,EAAE,MAAM,CAAC;IAGd,MAAM,EAAE,MAAM,CAAC;IAGf,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAG3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAG5B,SAAS,EAAE,MAAM,CAAC;IAGlB,UAAU,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"abstractErgoExtractorEntity.d.ts","sourceRoot":"","sources":["../../lib/ergo/abstractErgoExtractorEntity.ts"],"names":[],"mappings":"AAMA,8BACsB,2BAA2B;IAE/C,EAAE,EAAE,MAAM,CAAC;IAGX,KAAK,EAAE,MAAM,CAAC;IAGd,KAAK,EAAE,MAAM,CAAC;IAGd,MAAM,EAAE,MAAM,CAAC;IAGf,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAG3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAG5B,SAAS,EAAE,MAAM,CAAC;IAGlB,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -54,4 +54,4 @@ AbstractErgoExtractorEntity = __decorate([
54
54
  Unique(['boxId', 'extractor'])
55
55
  ], AbstractErgoExtractorEntity);
56
56
  export { AbstractErgoExtractorEntity };
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RFcmdvRXh0cmFjdG9yRW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2VyZ28vQWJzdHJhY3RFcmdvRXh0cmFjdG9yRW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxNQUFNLEVBQ04sc0JBQXNCLEVBQ3RCLE1BQU0sR0FDUCxNQUFNLGdDQUFnQyxDQUFDO0FBR2pDLElBQWUsMkJBQTJCLEdBQTFDLE1BQWUsMkJBQTJCO0lBRS9DLEVBQUUsQ0FBUztJQUdYLEtBQUssQ0FBUztJQUdkLEtBQUssQ0FBUztJQUdkLE1BQU0sQ0FBUztJQUdmLFVBQVUsQ0FBaUI7SUFHM0IsV0FBVyxDQUFpQjtJQUc1QixTQUFTLENBQVM7SUFHbEIsVUFBVSxDQUFTO0NBQ3BCLENBQUE7QUF0QkM7SUFEQyxzQkFBc0IsRUFBRTs7dURBQ2Q7QUFHWDtJQURDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzs7MERBQ2Q7QUFHZDtJQURDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzs7MERBQ2Q7QUFHZDtJQURDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQzs7MkRBQ1Q7QUFHZjtJQURDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDOzsrREFDakI7QUFHM0I7SUFEQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQzs7Z0VBQ1o7QUFHNUI7SUFEQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7OzhEQUNWO0FBR2xCO0lBREMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDOzsrREFDVDtBQXZCQywyQkFBMkI7SUFEaEQsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0dBQ1QsMkJBQTJCLENBd0JoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbHVtbixcbiAgUHJpbWFyeUdlbmVyYXRlZENvbHVtbixcbiAgVW5pcXVlLFxufSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuXG5AVW5pcXVlKFsnYm94SWQnLCAnZXh0cmFjdG9yJ10pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RFcmdvRXh0cmFjdG9yRW50aXR5IHtcbiAgQFByaW1hcnlHZW5lcmF0ZWRDb2x1bW4oKVxuICBpZDogbnVtYmVyO1xuXG4gIEBDb2x1bW4oeyB0eXBlOiAndmFyY2hhcicgfSlcbiAgYm94SWQ6IHN0cmluZztcblxuICBAQ29sdW1uKHsgdHlwZTogJ3ZhcmNoYXInIH0pXG4gIGJsb2NrOiBzdHJpbmc7XG5cbiAgQENvbHVtbih7IHR5cGU6ICdpbnQnIH0pXG4gIGhlaWdodDogbnVtYmVyO1xuXG4gIEBDb2x1bW4oeyBudWxsYWJsZTogdHJ1ZSwgdHlwZTogJ3ZhcmNoYXInIH0pXG4gIHNwZW5kQmxvY2s/OiBzdHJpbmcgfCBudWxsO1xuXG4gIEBDb2x1bW4oeyBudWxsYWJsZTogdHJ1ZSwgdHlwZTogJ2ludCcgfSlcbiAgc3BlbmRIZWlnaHQ/OiBudW1iZXIgfCBudWxsO1xuXG4gIEBDb2x1bW4oeyB0eXBlOiAndmFyY2hhcicgfSlcbiAgZXh0cmFjdG9yOiBzdHJpbmc7XG5cbiAgQENvbHVtbih7IHR5cGU6ICd2YXJjaGFyJyB9KVxuICBzZXJpYWxpemVkOiBzdHJpbmc7XG59XG4iXX0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RFcmdvRXh0cmFjdG9yRW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2VyZ28vYWJzdHJhY3RFcmdvRXh0cmFjdG9yRW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxNQUFNLEVBQ04sc0JBQXNCLEVBQ3RCLE1BQU0sR0FDUCxNQUFNLGdDQUFnQyxDQUFDO0FBR2pDLElBQWUsMkJBQTJCLEdBQTFDLE1BQWUsMkJBQTJCO0lBRS9DLEVBQUUsQ0FBUztJQUdYLEtBQUssQ0FBUztJQUdkLEtBQUssQ0FBUztJQUdkLE1BQU0sQ0FBUztJQUdmLFVBQVUsQ0FBaUI7SUFHM0IsV0FBVyxDQUFpQjtJQUc1QixTQUFTLENBQVM7SUFHbEIsVUFBVSxDQUFTO0NBQ3BCLENBQUE7QUF0QkM7SUFEQyxzQkFBc0IsRUFBRTs7dURBQ2Q7QUFHWDtJQURDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzs7MERBQ2Q7QUFHZDtJQURDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzs7MERBQ2Q7QUFHZDtJQURDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQzs7MkRBQ1Q7QUFHZjtJQURDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDOzsrREFDakI7QUFHM0I7SUFEQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQzs7Z0VBQ1o7QUFHNUI7SUFEQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7OzhEQUNWO0FBR2xCO0lBREMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDOzsrREFDVDtBQXZCQywyQkFBMkI7SUFEaEQsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0dBQ1QsMkJBQTJCLENBd0JoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbHVtbixcbiAgUHJpbWFyeUdlbmVyYXRlZENvbHVtbixcbiAgVW5pcXVlLFxufSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuXG5AVW5pcXVlKFsnYm94SWQnLCAnZXh0cmFjdG9yJ10pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RFcmdvRXh0cmFjdG9yRW50aXR5IHtcbiAgQFByaW1hcnlHZW5lcmF0ZWRDb2x1bW4oKVxuICBpZDogbnVtYmVyO1xuXG4gIEBDb2x1bW4oeyB0eXBlOiAndmFyY2hhcicgfSlcbiAgYm94SWQ6IHN0cmluZztcblxuICBAQ29sdW1uKHsgdHlwZTogJ3ZhcmNoYXInIH0pXG4gIGJsb2NrOiBzdHJpbmc7XG5cbiAgQENvbHVtbih7IHR5cGU6ICdpbnQnIH0pXG4gIGhlaWdodDogbnVtYmVyO1xuXG4gIEBDb2x1bW4oeyBudWxsYWJsZTogdHJ1ZSwgdHlwZTogJ3ZhcmNoYXInIH0pXG4gIHNwZW5kQmxvY2s/OiBzdHJpbmcgfCBudWxsO1xuXG4gIEBDb2x1bW4oeyBudWxsYWJsZTogdHJ1ZSwgdHlwZTogJ2ludCcgfSlcbiAgc3BlbmRIZWlnaHQ/OiBudW1iZXIgfCBudWxsO1xuXG4gIEBDb2x1bW4oeyB0eXBlOiAndmFyY2hhcicgfSlcbiAgZXh0cmFjdG9yOiBzdHJpbmc7XG5cbiAgQENvbHVtbih7IHR5cGU6ICd2YXJjaGFyJyB9KVxuICBzZXJpYWxpemVkOiBzdHJpbmc7XG59XG4iXX0=
@@ -1,10 +1,10 @@
1
- export * from './AbstractErgoExtractor';
2
- export * from './AbstractErgoExtractorAction';
1
+ export * from './abstractErgoExtractor';
2
+ export * from './abstractErgoExtractorAction';
3
3
  export * from './interfaces';
4
- export * from './network/ExplorerNetwork';
5
- export * from './network/NodeNetwork';
6
- export * from './network/AbstractNetwork';
4
+ export * from './network/explorerNetwork';
5
+ export * from './network/nodeNetwork';
6
+ export * from './network/abstractNetwork';
7
7
  export * from './initializable';
8
8
  export * from './utils';
9
- export * from './AbstractErgoExtractorEntity';
9
+ export * from './abstractErgoExtractorEntity';
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1,10 +1,10 @@
1
- export * from './AbstractErgoExtractor';
2
- export * from './AbstractErgoExtractorAction';
1
+ export * from './abstractErgoExtractor';
2
+ export * from './abstractErgoExtractorAction';
3
3
  export * from './interfaces';
4
- export * from './network/ExplorerNetwork';
5
- export * from './network/NodeNetwork';
6
- export * from './network/AbstractNetwork';
4
+ export * from './network/explorerNetwork';
5
+ export * from './network/nodeNetwork';
6
+ export * from './network/abstractNetwork';
7
7
  export * from './initializable';
8
8
  export * from './utils';
9
- export * from './AbstractErgoExtractorEntity';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZXJnby9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9BYnN0cmFjdEVyZ29FeHRyYWN0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9BYnN0cmFjdEVyZ29FeHRyYWN0b3JBY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbmV0d29yay9FeHBsb3Jlck5ldHdvcmsnO1xuZXhwb3J0ICogZnJvbSAnLi9uZXR3b3JrL05vZGVOZXR3b3JrJztcbmV4cG9ydCAqIGZyb20gJy4vbmV0d29yay9BYnN0cmFjdE5ldHdvcmsnO1xuZXhwb3J0ICogZnJvbSAnLi9pbml0aWFsaXphYmxlJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9BYnN0cmFjdEVyZ29FeHRyYWN0b3JFbnRpdHknO1xuIl19
9
+ export * from './abstractErgoExtractorEntity';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZXJnby9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hYnN0cmFjdEVyZ29FeHRyYWN0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9hYnN0cmFjdEVyZ29FeHRyYWN0b3JBY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbmV0d29yay9leHBsb3Jlck5ldHdvcmsnO1xuZXhwb3J0ICogZnJvbSAnLi9uZXR3b3JrL25vZGVOZXR3b3JrJztcbmV4cG9ydCAqIGZyb20gJy4vbmV0d29yay9hYnN0cmFjdE5ldHdvcmsnO1xuZXhwb3J0ICogZnJvbSAnLi9pbml0aWFsaXphYmxlJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hYnN0cmFjdEVyZ29FeHRyYWN0b3JFbnRpdHknO1xuIl19
@@ -1,9 +1,9 @@
1
1
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
2
2
  import { BlockInfo, ErgoNetworkType } from '@rosen-bridge/scanner-interfaces';
3
+ import { AbstractErgoExtractor } from '../abstractErgoExtractor';
4
+ import { AbstractErgoExtractorEntity } from '../abstractErgoExtractorEntity';
3
5
  import { AbstractBoxData } from '../interfaces';
4
- import { AbstractErgoExtractor } from '../AbstractErgoExtractor';
5
- import { AbstractInitializableErgoExtractorAction } from './AbstractInitializableAction';
6
- import { AbstractErgoExtractorEntity } from '../AbstractErgoExtractorEntity';
6
+ import { AbstractInitializableErgoExtractorAction } from './abstractInitializableAction';
7
7
  export declare abstract class AbstractInitializableErgoExtractor<ExtractedData extends AbstractBoxData, ExtractorEntity extends AbstractErgoExtractorEntity> extends AbstractErgoExtractor<ExtractedData, ExtractorEntity> {
8
8
  protected initialize: boolean;
9
9
  private address;
@@ -45,4 +45,4 @@ export declare abstract class AbstractInitializableErgoExtractor<ExtractedData e
45
45
  */
46
46
  initializeBoxes: (initialBlock: BlockInfo) => Promise<void>;
47
47
  }
48
- //# sourceMappingURL=AbstractInitializable.d.ts.map
48
+ //# sourceMappingURL=abstractInitializable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractInitializable.d.ts","sourceRoot":"","sources":["../../../lib/ergo/initializable/AbstractInitializable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAE9E,OAAO,EAAE,eAAe,EAAuB,MAAM,eAAe,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,wCAAwC,EAAE,MAAM,+BAA+B,CAAC;AAGzF,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAE7E,8BAAsB,kCAAkC,CACtD,aAAa,SAAS,eAAe,EACrC,eAAe,SAAS,2BAA2B,CACnD,SAAQ,qBAAqB,CAAC,aAAa,EAAE,eAAe,CAAC;IAC7D,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,wCAAwC,CAClE,aAAa,EACb,eAAe,CAChB,CAAC;IAEF,OAAO,CAAC,OAAO,CAAgC;gBAG7C,IAAI,EAAE,eAAe,EACrB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,cAAc,EACvB,UAAU,UAAO;IAkBnB;;;OAGG;IACH,OAAO,CAAC,sBAAsB,CA6C5B;IAEF;;;OAGG;IACH,OAAO,CAAC,eAAe,CAKrB;IAEF;;;OAGG;IACH,OAAO,CAAC,kBAAkB,CAuCxB;IAEF;;;;OAIG;IACH,OAAO,CAAC,uBAAuB,CAoB7B;IAEF;;;;OAIG;IACH,OAAO,CAAC,eAAe,CA+BrB;IAEF;;;;;OAKG;IACH,eAAe,EAAE,CAAC,YAAY,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D"}
1
+ {"version":3,"file":"abstractInitializable.d.ts","sourceRoot":"","sources":["../../../lib/ergo/initializable/abstractInitializable.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAG9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAuB,MAAM,eAAe,CAAC;AAGrE,OAAO,EAAE,wCAAwC,EAAE,MAAM,+BAA+B,CAAC;AAEzF,8BAAsB,kCAAkC,CACtD,aAAa,SAAS,eAAe,EACrC,eAAe,SAAS,2BAA2B,CACnD,SAAQ,qBAAqB,CAAC,aAAa,EAAE,eAAe,CAAC;IAC7D,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,wCAAwC,CAClE,aAAa,EACb,eAAe,CAChB,CAAC;IAEF,OAAO,CAAC,OAAO,CAAgC;gBAG7C,IAAI,EAAE,eAAe,EACrB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,cAAc,EACvB,UAAU,UAAO;IAkBnB;;;OAGG;IACH,OAAO,CAAC,sBAAsB,CA6C5B;IAEF;;;OAGG;IACH,OAAO,CAAC,eAAe,CAKrB;IAEF;;;OAGG;IACH,OAAO,CAAC,kBAAkB,CAuCxB;IAEF;;;;OAIG;IACH,OAAO,CAAC,uBAAuB,CAoB7B;IAEF;;;;OAIG;IACH,OAAO,CAAC,eAAe,CA+BrB;IAEF;;;;;OAKG;IACH,eAAe,EAAE,CAAC,YAAY,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D"}