@rosen-bridge/raw-data-provider 0.1.0-0022763f → 0.1.0

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 (51) hide show
  1. package/CHANGELOG.md +2 -2
  2. package/dist/abstractRawDataProvider.d.ts +12 -4
  3. package/dist/abstractRawDataProvider.d.ts.map +1 -1
  4. package/dist/abstractRawDataProvider.js +26 -4
  5. package/dist/actions/rawDataProviderStateEntityAction.d.ts +18 -1
  6. package/dist/actions/rawDataProviderStateEntityAction.d.ts.map +1 -1
  7. package/dist/actions/rawDataProviderStateEntityAction.js +36 -3
  8. package/dist/providers/bitcoin/bitcoinEsploraRawDataProvider.d.ts +11 -6
  9. package/dist/providers/bitcoin/bitcoinEsploraRawDataProvider.d.ts.map +1 -1
  10. package/dist/providers/bitcoin/bitcoinEsploraRawDataProvider.js +31 -17
  11. package/dist/providers/bitcoin/bitcoinRpcRawDataProvider.d.ts +8 -6
  12. package/dist/providers/bitcoin/bitcoinRpcRawDataProvider.d.ts.map +1 -1
  13. package/dist/providers/bitcoin/bitcoinRpcRawDataProvider.js +12 -12
  14. package/dist/providers/bitcoin/index.d.ts +1 -0
  15. package/dist/providers/bitcoin/index.d.ts.map +1 -1
  16. package/dist/providers/bitcoin/index.js +2 -1
  17. package/dist/providers/cardano/cardanoKoiosRawDataProvider.d.ts +5 -5
  18. package/dist/providers/cardano/cardanoKoiosRawDataProvider.d.ts.map +1 -1
  19. package/dist/providers/cardano/cardanoKoiosRawDataProvider.js +10 -18
  20. package/dist/providers/cardano/cardanoOgmiosRawDataProvider.d.ts +43 -0
  21. package/dist/providers/cardano/cardanoOgmiosRawDataProvider.d.ts.map +1 -0
  22. package/dist/providers/cardano/cardanoOgmiosRawDataProvider.js +112 -0
  23. package/dist/providers/cardano/index.d.ts +1 -0
  24. package/dist/providers/cardano/index.d.ts.map +1 -1
  25. package/dist/providers/cardano/index.js +2 -1
  26. package/dist/providers/doge/dogeRpcRawDataProvider.d.ts +5 -4
  27. package/dist/providers/doge/dogeRpcRawDataProvider.d.ts.map +1 -1
  28. package/dist/providers/doge/dogeRpcRawDataProvider.js +8 -12
  29. package/dist/providers/ergo/ergoExplorerRawDataProvider.d.ts +5 -4
  30. package/dist/providers/ergo/ergoExplorerRawDataProvider.d.ts.map +1 -1
  31. package/dist/providers/ergo/ergoExplorerRawDataProvider.js +12 -12
  32. package/dist/providers/ergo/ergoNodeRawDataProvider.d.ts +5 -4
  33. package/dist/providers/ergo/ergoNodeRawDataProvider.d.ts.map +1 -1
  34. package/dist/providers/ergo/ergoNodeRawDataProvider.js +14 -14
  35. package/dist/providers/evm/evmRawDataProvider.d.ts +6 -6
  36. package/dist/providers/evm/evmRawDataProvider.d.ts.map +1 -1
  37. package/dist/providers/evm/evmRawDataProvider.js +12 -20
  38. package/dist/providers/index.d.ts +0 -1
  39. package/dist/providers/index.d.ts.map +1 -1
  40. package/dist/providers/index.js +1 -2
  41. package/dist/tsconfig.tsbuildinfo +1 -0
  42. package/dist/types.d.ts +31 -0
  43. package/dist/types.d.ts.map +1 -1
  44. package/dist/types.js +1 -1
  45. package/package.json +18 -19
  46. package/dist/providers/bitcoinRunes/bitcoinRunesRpcRawDataProvider.d.ts +0 -21
  47. package/dist/providers/bitcoinRunes/bitcoinRunesRpcRawDataProvider.d.ts.map +0 -1
  48. package/dist/providers/bitcoinRunes/bitcoinRunesRpcRawDataProvider.js +0 -49
  49. package/dist/providers/bitcoinRunes/index.d.ts +0 -2
  50. package/dist/providers/bitcoinRunes/index.d.ts.map +0 -1
  51. package/dist/providers/bitcoinRunes/index.js +0 -2
package/CHANGELOG.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # @rosen-bridge/raw-data-provider
2
2
 
3
- ## 0.1.0-0022763f
3
+ ## 0.1.0
4
4
 
5
5
  ### Minor Changes
6
6
 
7
- - Initialized raw-data-provider package
7
+ - Initialize raw-data-provider package
@@ -1,14 +1,15 @@
1
1
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
2
- import { ObservationEntity } from '@rosen-bridge/abstract-observation-extractor';
2
+ import { AbstractObservationExtractor, ObservationEntity } from '@rosen-bridge/abstract-observation-extractor';
3
3
  import { DataSource } from '@rosen-bridge/extended-typeorm';
4
4
  import { RawDataProviderStateEntityAction } from './actions/rawDataProviderStateEntityAction';
5
5
  import { RawDataProviderStateEntity } from './entities';
6
- export declare abstract class AbstractRawDataProvider {
6
+ export declare abstract class AbstractRawDataProvider<TxType> {
7
7
  protected chain: string;
8
8
  protected dataSource: DataSource;
9
+ protected extractor: AbstractObservationExtractor<TxType>;
9
10
  protected logger: AbstractLogger;
10
11
  protected action: RawDataProviderStateEntityAction;
11
- constructor(chain: string, dataSource: DataSource, logger?: AbstractLogger);
12
+ constructor(chain: string, dataSource: DataSource, extractor: AbstractObservationExtractor<TxType>, logger?: AbstractLogger);
12
13
  /**
13
14
  * Retrieves the current RawDataProviderStateEntity for the configured chain.
14
15
  *
@@ -22,13 +23,20 @@ export declare abstract class AbstractRawDataProvider {
22
23
  * @returns void
23
24
  */
24
25
  fillRawData: () => Promise<void>;
26
+ /**
27
+ * fetch transactions related to the input observation parameter
28
+ *
29
+ * @param observation
30
+ * @returns { Promise<TxType[]> }
31
+ */
32
+ protected abstract fetchObservationTxs: (observation: ObservationEntity) => Promise<TxType[] | undefined>;
25
33
  /**
26
34
  * Process observation and write rawData
27
35
  *
28
36
  * @param observation
29
37
  * @return {boolean} determining result of process done successfully or no
30
38
  */
31
- protected abstract processObservation: (observation: ObservationEntity) => Promise<boolean>;
39
+ protected processObservation: (observation: ObservationEntity) => Promise<boolean>;
32
40
  /**
33
41
  * Fills the raw data field for all ObservationEntity records of the current chain of input RawDataProviderStateEntity
34
42
  *
@@ -1 +1 @@
1
- {"version":3,"file":"abstractRawDataProvider.d.ts","sourceRoot":"","sources":["../lib/abstractRawDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,gCAAgC,EAAE,MAAM,4CAA4C,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAExD,8BAAsB,uBAAuB;IAIzC,SAAS,CAAC,KAAK,EAAE,MAAM;IACvB,SAAS,CAAC,UAAU,EAAE,UAAU;IAChC,SAAS,CAAC,MAAM,EAAE,cAAc;IALlC,SAAS,CAAC,MAAM,EAAE,gCAAgC,CAAC;gBAGvC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,UAAU,EACtB,MAAM,GAAE,cAAkC;IAKtD;;;;OAIG;IACH,SAAS,CAAC,0BAA0B,QACxB,OAAO,CAAC,0BAA0B,CAAC,CAuB3C;IAEJ;;;;;OAKG;IACH,WAAW,QAAa,OAAO,CAAC,IAAI,CAAC,CAwBnC;IAEF;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CACrC,WAAW,EAAE,iBAAiB,KAC3B,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtB;;;;;OAKG;IACH,SAAS,CAAC,uBAAuB,GAC/B,OAAO,0BAA0B,KAChC,OAAO,CAAC,0BAA0B,CAAC,CAgCpC;CACH"}
1
+ {"version":3,"file":"abstractRawDataProvider.d.ts","sourceRoot":"","sources":["../lib/abstractRawDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EACL,4BAA4B,EAC5B,iBAAiB,EAClB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,gCAAgC,EAAE,MAAM,4CAA4C,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAExD,8BAAsB,uBAAuB,CAAC,MAAM;IAIhD,SAAS,CAAC,KAAK,EAAE,MAAM;IACvB,SAAS,CAAC,UAAU,EAAE,UAAU;IAChC,SAAS,CAAC,SAAS,EAAE,4BAA4B,CAAC,MAAM,CAAC;IACzD,SAAS,CAAC,MAAM,EAAE,cAAc;IANlC,SAAS,CAAC,MAAM,EAAE,gCAAgC,CAAC;gBAGvC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,4BAA4B,CAAC,MAAM,CAAC,EAC/C,MAAM,GAAE,cAAkC;IAQtD;;;;OAIG;IACH,SAAS,CAAC,0BAA0B,QACxB,OAAO,CAAC,0BAA0B,CAAC,CAuB3C;IAEJ;;;;;OAKG;IACH,WAAW,QAAa,OAAO,CAAC,IAAI,CAAC,CAwBnC;IAEF;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CACtC,WAAW,EAAE,iBAAiB,KAC3B,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACnC;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,GAAU,aAAa,iBAAiB,sBAgBlE;IAEF;;;;;OAKG;IACH,SAAS,CAAC,uBAAuB,GAC/B,OAAO,0BAA0B,KAChC,OAAO,CAAC,0BAA0B,CAAC,CAiCpC;CACH"}
@@ -3,13 +3,15 @@ import { RawDataProviderStateEntityAction } from './actions/rawDataProviderState
3
3
  export class AbstractRawDataProvider {
4
4
  chain;
5
5
  dataSource;
6
+ extractor;
6
7
  logger;
7
8
  action;
8
- constructor(chain, dataSource, logger = new DummyLogger()) {
9
+ constructor(chain, dataSource, extractor, logger = new DummyLogger()) {
9
10
  this.chain = chain;
10
11
  this.dataSource = dataSource;
12
+ this.extractor = extractor;
11
13
  this.logger = logger;
12
- this.action = new RawDataProviderStateEntityAction(dataSource, logger);
14
+ this.action = new RawDataProviderStateEntityAction(dataSource, logger.child('RawDataProviderStateEntityAction'));
13
15
  }
14
16
  /**
15
17
  * Retrieves the current RawDataProviderStateEntity for the configured chain.
@@ -60,6 +62,26 @@ export class AbstractRawDataProvider {
60
62
  }
61
63
  this.logger.info(`RawDataProvider Finished filling raw-data for [${this.chain}] chain`);
62
64
  };
65
+ /**
66
+ * Process observation and write rawData
67
+ *
68
+ * @param observation
69
+ * @return {boolean} determining result of process done successfully or no
70
+ */
71
+ processObservation = async (observation) => {
72
+ try {
73
+ const block = { height: observation.height, hash: observation.block };
74
+ const txs = await this.fetchObservationTxs(observation);
75
+ if (!txs)
76
+ throw new Error(`Transaction [${observation.sourceTxId}] not found or invalid response from ${this.chain} chain.`);
77
+ this.extractor.processTransactions(txs, block);
78
+ }
79
+ catch (err) {
80
+ this.logger.error(`Processing of observation for ${this.chain} failed: ${err}`);
81
+ return false;
82
+ }
83
+ return true;
84
+ };
63
85
  /**
64
86
  * Fills the raw data field for all ObservationEntity records of the current chain of input RawDataProviderStateEntity
65
87
  *
@@ -67,7 +89,7 @@ export class AbstractRawDataProvider {
67
89
  * @returns
68
90
  */
69
91
  fillObservationsRawData = async (state) => {
70
- const observations = await this.action.fetchChainObservations(this.chain, state.syncedHeight);
92
+ const observations = await this.action.fetchChainObservations(this.chain, state.syncedHeight, this.extractor.getId());
71
93
  if (observations.length === 0)
72
94
  throw new Error(`ImpossibleBehavior: No more observations found for [${this.chain}] chain`);
73
95
  for (const observation of observations) {
@@ -86,4 +108,4 @@ export class AbstractRawDataProvider {
86
108
  return state;
87
109
  };
88
110
  }
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RSYXdEYXRhUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvYWJzdHJhY3RSYXdEYXRhUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUk1RSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUc5RixNQUFNLE9BQWdCLHVCQUF1QjtJQUkvQjtJQUNBO0lBQ0E7SUFMRixNQUFNLENBQW1DO0lBRW5ELFlBQ1ksS0FBYSxFQUNiLFVBQXNCLEVBQ3RCLFNBQXlCLElBQUksV0FBVyxFQUFFO1FBRjFDLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQW9DO1FBRXBELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxnQ0FBZ0MsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEOzs7O09BSUc7SUFDTywwQkFBMEIsR0FDbEMsS0FBSyxJQUF5QyxFQUFFO1FBQzlDLElBQUksS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE1BQU0sc0JBQXNCLEdBQzFCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUQsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZCwwQ0FBMEMsSUFBSSxDQUFDLEtBQUssUUFBUSxDQUM3RCxDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNO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QUFNLENBQUM7WUFDeEMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZiwyQ0FBMkMsV0FBVyxDQUFDLE1BQU0sU0FBUyxJQUFJLENBQUMsS0FBSyxTQUFTLENBQzFGLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0TG9nZ2VyLCBEdW1teUxvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7IE9ic2VydmF0aW9uRW50aXR5IH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1vYnNlcnZhdGlvbi1leHRyYWN0b3InO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvZXh0ZW5kZWQtdHlwZW9ybSc7XG5cbmltcG9ydCB7IFJhd0RhdGFQcm92aWRlclN0YXRlRW50aXR5QWN0aW9uIH0gZnJvbSAnLi9hY3Rpb25zL3Jhd0RhdGFQcm92aWRlclN0YXRlRW50aXR5QWN0aW9uJztcbmltcG9ydCB7IFJhd0RhdGFQcm92aWRlclN0YXRlRW50aXR5IH0gZnJvbSAnLi9lbnRpdGllcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFJhd0RhdGFQcm92aWRlciB7XG4gIHByb3RlY3RlZCBhY3Rpb246IFJhd0RhdGFQcm92aWRlclN0YXRlRW50aXR5QWN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBjaGFpbjogc3RyaW5nLFxuICAgIHByb3RlY3RlZCBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIHByb3RlY3RlZCBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyID0gbmV3IER1bW15TG9nZ2VyKCksXG4gICkge1xuICAgIHRoaXMuYWN0aW9uID0gbmV3IFJhd0RhdGFQcm92aWRlclN0YXRlRW50aXR5QWN0aW9uKGRhdGFTb3VyY2UsIGxvZ2dlcik7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBjdXJyZW50IFJhd0RhdGFQcm92aWRlclN0YXRlRW50aXR5IGZvciB0aGUgY29uZmlndXJlZCBjaGFpbi5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGV4aXN0aW5nIG9yIG5ld2x5IGNyZWF0ZWQgUmF3RGF0YVByb3ZpZGVyU3RhdGVFbnRpdHlcbiAgICovXG4gIHByb3RlY3RlZCBmZXRjaE9yQ3JlYXRlU3RhdGVGb3JDaGFpbiA9XG4gICAgYXN5bmMgKCk6IFByb21pc2U8UmF3RGF0YVByb3ZpZGVyU3RhdGVFbnRpdHk+ID0+IHtcbiAgICAgIGxldCBzdGF0ZSA9IGF3YWl0IHRoaXMuYWN0aW9uLmZldGNoQnlDaGFpbih0aGlzLmNoYWluKTtcbiAgICAgIGlmICghc3RhdGUpIHtcbiAgICAgICAgY29uc3QgbGF0ZXN0Q2hhaW5PYnNlcnZhdGlvbiA9XG4gICAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb24uZmV0Y2hMYXRlc3RPYnNlcnZhdGlvbkJ5Q2hhaW4odGhpcy5jaGFpbik7XG4gICAgICAgIGxldCBsYXN0SGVpZ2h0ID0gMDtcbiAgICAgICAgaWYgKCFsYXRlc3RDaGFpbk9ic2VydmF0aW9uKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgICAgIGBOb3QgZmluZCBhbnkgT2JzZXJ2YXRpb25FbnRpdHkgZm9yIHRoZSAke3RoaXMuY2hhaW59IGNoYWluYCxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxhc3RIZWlnaHQgPSBsYXRlc3RDaGFpbk9ic2VydmF0aW9uLmhlaWdodDtcbiAgICAgICAgfVxuICAgICAgICBzdGF0ZSA9IGF3YWl0IHRoaXMuYWN0aW9uLnN0b3JlKHtcbiAgICAgICAgICBjaGFpbjogdGhpcy5jaGFpbixcbiAgICAgICAgICBsYXN0SGVpZ2h0OiBsYXN0SGVpZ2h0LFxuICAgICAgICAgIHN5bmNlZEhlaWdodDogMCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGBDcmVhdGVkIFJhd0RhdGFQcm92aWRlclN0YXRlRW50aXR5IG9uIFske3RoaXMuY2hhaW59XSBjaGFpbiBhdCBoZWlnaHQgJHtsYXN0SGVpZ2h0fWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfTtcblxuICAvKipcbiAgICogSXRlcmF0ZXMgdGhyb3VnaCBvYnNlcnZhdGlvbnMgb2YgdGhlIGN1cnJlbnQgY2hhaW4gYW5kIGZpbGxzIHRoZWlyIHJhd0RhdGEgZmllbGQuXG4gICAqIFVwZGF0ZXMgdGhlIHN5bmNlZEhlaWdodCBhZnRlciBlYWNoIHByb2Nlc3NlZCBvYnNlcnZhdGlvbiB1bnRpbCB0aGUgY2hhaW4gaXMgZnVsbHkgc3luY2VkLlxuICAgKlxuICAgKiBAcmV0dXJucyB2b2lkXG4gICAqL1xuICBmaWxsUmF3RGF0YSA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgYFJhd0RhdGFQcm92aWRlciBTdGFydGluZyByYXctZGF0YSBmaWxsaW5nIGZvciBbJHt0aGlzLmNoYWlufV0gY2hhaW5gLFxuICAgICk7XG5cbiAgICBsZXQgc3RhdGU6IFJhd0RhdGFQcm92aWRlclN0YXRlRW50aXR5ID1cbiAgICAgIGF3YWl0IHRoaXMuZmV0Y2hPckNyZWF0ZVN0YXRlRm9yQ2hhaW4oKTtcbiAgICB3aGlsZSAoc3RhdGUuc3luY2VkSGVpZ2h0IDwgc3RhdGUubGFzdEhlaWdodCkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBSYXdEYXRhUHJvdmlkZXIgRmV0Y2hpbmcgb2JzZXJ2YXRpb25zIGZvciBbJHt0aGlzLmNoYWlufV0gY2hhaW4gZnJvbSBoZWlnaHQgPiAke3N0YXRlLnN5bmNlZEhlaWdodH1gLFxuICAgICAgKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZmlsbE9ic2VydmF0aW9uc1Jhd0RhdGEoc3RhdGUpO1xuICAgICAgICBzdGF0ZSA9IHJlc3VsdDtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihgUmF3RGF0YVByb3ZpZGVyIEVycm9yOiAke2Vycn1gKTtcbiAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEVycm9yICYmIGVyci5zdGFjaykgdGhpcy5sb2dnZXIuZXJyb3IoZXJyLnN0YWNrKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgIGBSYXdEYXRhUHJvdmlkZXIgRmluaXNoZWQgZmlsbGluZyByYXctZGF0YSBmb3IgWyR7dGhpcy5jaGFpbn1dIGNoYWluYCxcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBQcm9jZXNzIG9ic2VydmF0aW9uIGFuZCB3cml0ZSByYXdEYXRhXG4gICAqXG4gICAqIEBwYXJhbSBvYnNlcnZhdGlvblxuICAgKiBAcmV0dXJuIHtib29sZWFufSBkZXRlcm1pbmluZyByZXN1bHQgb2YgcHJvY2VzcyBkb25lIHN1Y2Nlc3NmdWxseSBvciBub1xuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHByb2Nlc3NPYnNlcnZhdGlvbjogKFxuICAgIG9ic2VydmF0aW9uOiBPYnNlcnZhdGlvbkVudGl0eSxcbiAgKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBGaWxscyB0aGUgcmF3IGRhdGEgZmllbGQgZm9yIGFsbCBPYnNlcnZhdGlvbkVudGl0eSByZWNvcmRzIG9mIHRoZSBjdXJyZW50IGNoYWluIG9mIGlucHV0IFJhd0RhdGFQcm92aWRlclN0YXRlRW50aXR5XG4gICAqXG4gICAqIEBwYXJhbSBzdGF0ZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJvdGVjdGVkIGZpbGxPYnNlcnZhdGlvbnNSYXdEYXRhID0gYXN5bmMgKFxuICAgIHN0YXRlOiBSYXdEYXRhUHJvdmlkZXJTdGF0ZUVudGl0eSxcbiAgKTogUHJvbWlzZTxSYXdEYXRhUHJvdmlkZXJTdGF0ZUVudGl0eT4gPT4ge1xuICAgIGNvbnN0IG9ic2VydmF0aW9ucyA9IGF3YWl0IHRoaXMuYWN0aW9uLmZldGNoQ2hhaW5PYnNlcnZhdGlvbnMoXG4gICAgICB0aGlzLmNoYWluLFxuICAgICAgc3RhdGUuc3luY2VkSGVpZ2h0LFxuICAgICk7XG5cbiAgICBpZiAob2JzZXJ2YXRpb25zLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEltcG9zc2libGVCZWhhdmlvcjogTm8gbW9yZSBvYnNlcnZhdGlvbnMgZm91bmQgZm9yIFske3RoaXMuY2hhaW59XSBjaGFpbmAsXG4gICAgICApO1xuXG4gICAgZm9yIChjb25zdCBvYnNlcnZhdGlvbiBvZiBvYnNlcnZhdGlvbnMpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgUmF3RGF0YVByb3ZpZGVyIFVwZGF0aW5nIHJhd0RhdGEgZm9yIG9ic2VydmF0aW9uIGF0IGhlaWdodCAke29ic2VydmF0aW9uLmhlaWdodH0gZm9yIFske3RoaXMuY2hhaW59XSBjaGFpbmAsXG4gICAgICApO1xuICAgICAgY29uc3QgaXNTdWNjZXNzID0gYXdhaXQgdGhpcy5wcm9jZXNzT2JzZXJ2YXRpb24ob2JzZXJ2YXRpb24pO1xuICAgICAgaWYgKGlzU3VjY2Vzcykge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBgUmF3RGF0YVByb3ZpZGVyIHN1Y2Nlc3NmdWxseSBwcm9jZXNzZWQgb2JzZXJ2YXRpb24gYXQgaGVpZ2h0ICR7b2JzZXJ2YXRpb24uaGVpZ2h0fSBmb3IgWyR7dGhpcy5jaGFpbn1dIGNoYWluYCxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgUmF3RGF0YVByb3ZpZGVyIGZhaWxlZCB0byBwcm9jZXNzIG9ic2VydmF0aW9uIGF0IGhlaWdodCAke29ic2VydmF0aW9uLmhlaWdodH0gZm9yIFske3RoaXMuY2hhaW59XSBjaGFpbmAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBzdGF0ZS5zeW5jZWRIZWlnaHQgPSBvYnNlcnZhdGlvbi5oZWlnaHQ7XG4gICAgICBhd2FpdCB0aGlzLmFjdGlvbi5zdG9yZShzdGF0ZSk7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYFJhd0RhdGFQcm92aWRlciBzeW5jZWRIZWlnaHQgdXBkYXRlZCB0byAke29ic2VydmF0aW9uLmhlaWdodH0gZm9yIFske3RoaXMuY2hhaW59XSBjaGFpbmAsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gc3RhdGU7XG4gIH07XG59XG4iXX0=
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RSYXdEYXRhUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvYWJzdHJhY3RSYXdEYXRhUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQU81RSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUc5RixNQUFNLE9BQWdCLHVCQUF1QjtJQUkvQjtJQUNBO0lBQ0E7SUFDQTtJQU5GLE1BQU0sQ0FBbUM7SUFFbkQsWUFDWSxLQUFhLEVBQ2IsVUFBc0IsRUFDdEIsU0FBK0MsRUFDL0MsU0FBeUIsSUFBSSxXQUFXLEVBQUU7UUFIMUMsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBc0M7UUFDL0MsV0FBTSxHQUFOLE1BQU0sQ0FBb0M7UUFFcEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGdDQUFnQyxDQUNoRCxVQUFVLEVBQ1YsTUFBTSxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUNqRCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDTywwQkFBMEIsR0FDbEMsS0FBSyxJQUF5QyxFQUFFO1FBQzlDLElBQUksS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE1BQU0sc0JBQXNCLEdBQzFCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUQsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLElB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dXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0TG9nZ2VyLCBEdW1teUxvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7XG4gIEFic3RyYWN0T2JzZXJ2YXRpb25FeHRyYWN0b3IsXG4gIE9ic2VydmF0aW9uRW50aXR5LFxufSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LW9ic2VydmF0aW9uLWV4dHJhY3Rvcic7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9leHRlbmRlZC10eXBlb3JtJztcblxuaW1wb3J0IHsgUmF3RGF0YVByb3ZpZGVyU3RhdGVFbnRpdHlBY3Rpb24gfSBmcm9tICcuL2FjdGlvbnMvcmF3RGF0YVByb3ZpZGVyU3RhdGVFbnRpdHlBY3Rpb24nO1xuaW1wb3J0IHsgUmF3RGF0YVByb3ZpZGVyU3RhdGVFbnRpdHkgfSBmcm9tICcuL2VudGl0aWVzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0UmF3RGF0YVByb3ZpZGVyPFR4VHlwZT4ge1xuICBwcm90ZWN0ZWQgYWN0aW9uOiBSYXdEYXRhUHJvdmlkZXJTdGF0ZUVudGl0eUFjdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgY2hhaW46IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgZGF0YVNvdXJjZTogRGF0YVNvdXJjZSxcbiAgICBwcm90ZWN0ZWQgZXh0cmFjdG9yOiBBYnN0cmFjdE9ic2VydmF0aW9uRXh0cmFjdG9yPFR4VHlwZT4sXG4gICAgcHJvdGVjdGVkIGxvZ2dlcjogQWJzdHJhY3RMb2dnZXIgPSBuZXcgRHVtbXlMb2dnZXIoKSxcbiAgKSB7XG4gICAgdGhpcy5hY3Rpb24gPSBuZXcgUmF3RGF0YVByb3ZpZGVyU3RhdGVFbnRpdHlBY3Rpb24oXG4gICAgICBkYXRhU291cmNlLFxuICAgICAgbG9nZ2VyLmNoaWxkKCdSYXdEYXRhUHJvdmlkZXJTdGF0ZUVudGl0eUFjdGlvbicpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBjdXJyZW50IFJhd0RhdGFQcm92aWRlclN0YXRlRW50aXR5IGZvciB0aGUgY29uZmlndXJlZCBjaGFpbi5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGV4aXN0aW5nIG9yIG5ld2x5IGNyZWF0ZWQgUmF3RGF0YVByb3ZpZGVyU3RhdGVFbnRpdHlcbiAgICovXG4gIHByb3RlY3RlZCBmZXRjaE9yQ3JlYXRlU3RhdGVGb3JDaGFpbiA9XG4gICAgYXN5bmMgKCk6IFByb21pc2U8UmF3RGF0YVByb3ZpZGVyU3RhdGVFbnRpdHk+ID0+IHtcbiAgICAgIGxldCBzdGF0ZSA9IGF3YWl0IHRoaXMuYWN0aW9uLmZldGNoQnlDaGFpbih0aGlzLmNoYWluKTtcbiAgICAgIGlmICghc3RhdGUpIHtcbiAgICAgICAgY29uc3QgbGF0ZXN0Q2hhaW5PYnNlcnZhdGlvbiA9XG4gICAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb24uZmV0Y2hMYXRlc3RPYnNlcnZhdGlvbkJ5Q2hhaW4odGhpcy5jaGFpbik7XG4gICAgICAgIGxldCBsYXN0SGVpZ2h0ID0gMDtcbiAgICAgICAgaWYgKCFsYXRlc3RDaGFpbk9ic2VydmF0aW9uKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgICAgIGBOb3QgZmluZCBhbnkgT2JzZXJ2YXRpb25FbnRpdHkgZm9yIHRoZSAke3RoaXMuY2hhaW59IGNoYWluYCxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxhc3RIZWlnaHQgPSBsYXRlc3RDaGFpbk9ic2VydmF0aW9uLmhlaWdodDtcbiAgICAgICAgfVxuICAgICAgICBzdGF0ZSA9IGF3YWl0IHRoaXMuYWN0aW9uLnN0b3JlKHtcbiAgICAgICAgICBjaGFpbjogdGhpcy5jaGFpbixcbiAgICAgICAgICBsYXN0SGVpZ2h0OiBsYXN0SGVpZ2h0LFxuICAgICAgICAgIHN5bmNlZEhlaWdodDogMCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGBDcmVhdGVkIFJhd0RhdGFQcm92aWRlclN0YXRlRW50aXR5IG9uIFske3RoaXMuY2hhaW59XSBjaGFpbiBhdCBoZWlnaHQgJHtsYXN0SGVpZ2h0fWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfTtcblxuICAvKipcbiAgICogSXRlcmF0ZXMgdGhyb3VnaCBvYnNlcnZhdGlvbnMgb2YgdGhlIGN1cnJlbnQgY2hhaW4gYW5kIGZpbGxzIHRoZWlyIHJhd0RhdGEgZmllbGQuXG4gICAqIFVwZGF0ZXMgdGhlIHN5bmNlZEhlaWdodCBhZnRlciBlYWNoIHByb2Nlc3NlZCBvYnNlcnZhdGlvbiB1bnRpbCB0aGUgY2hhaW4gaXMgZnVsbHkgc3luY2VkLlxuICAgKlxuICAgKiBAcmV0dXJucyB2b2lkXG4gICAqL1xuICBmaWxsUmF3RGF0YSA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgYFJhd0RhdGFQcm92aWRlciBTdGFydGluZyByYXctZGF0YSBmaWxsaW5nIGZvciBbJHt0aGlzLmNoYWlufV0gY2hhaW5gLFxuICAgICk7XG5cbiAgICBsZXQgc3RhdGU6IFJhd0RhdGFQcm92aWRlclN0YXRlRW50aXR5ID1cbiAgICAgIGF3YWl0IHRoaXMuZmV0Y2hPckNyZWF0ZVN0YXRlRm9yQ2hhaW4oKTtcbiAgICB3aGlsZSAoc3RhdGUuc3luY2VkSGVpZ2h0IDwgc3RhdGUubGFzdEhlaWdodCkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBSYXdEYXRhUHJvdmlkZXIgRmV0Y2hpbmcgb2JzZXJ2YXRpb25zIGZvciBbJHt0aGlzLmNoYWlufV0gY2hhaW4gZnJvbSBoZWlnaHQgPiAke3N0YXRlLnN5bmNlZEhlaWdodH1gLFxuICAgICAgKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZmlsbE9ic2VydmF0aW9uc1Jhd0RhdGEoc3RhdGUpO1xuICAgICAgICBzdGF0ZSA9IHJlc3VsdDtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihgUmF3RGF0YVByb3ZpZGVyIEVycm9yOiAke2Vycn1gKTtcbiAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEVycm9yICYmIGVyci5zdGFjaykgdGhpcy5sb2dnZXIuZXJyb3IoZXJyLnN0YWNrKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgIGBSYXdEYXRhUHJvdmlkZXIgRmluaXNoZWQgZmlsbGluZyByYXctZGF0YSBmb3IgWyR7dGhpcy5jaGFpbn1dIGNoYWluYCxcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBmZXRjaCB0cmFuc2FjdGlvbnMgcmVsYXRlZCB0byB0aGUgaW5wdXQgb2JzZXJ2YXRpb24gcGFyYW1ldGVyXG4gICAqXG4gICAqIEBwYXJhbSBvYnNlcnZhdGlvblxuICAgKiBAcmV0dXJucyB7IFByb21pc2U8VHhUeXBlW10+IH1cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBmZXRjaE9ic2VydmF0aW9uVHhzOiAoXG4gICAgb2JzZXJ2YXRpb246IE9ic2VydmF0aW9uRW50aXR5LFxuICApID0+IFByb21pc2U8VHhUeXBlW10gfCB1bmRlZmluZWQ+O1xuICAvKipcbiAgICogUHJvY2VzcyBvYnNlcnZhdGlvbiBhbmQgd3JpdGUgcmF3RGF0YVxuICAgKlxuICAgKiBAcGFyYW0gb2JzZXJ2YXRpb25cbiAgICogQHJldHVybiB7Ym9vbGVhbn0gZGV0ZXJtaW5pbmcgcmVzdWx0IG9mIHByb2Nlc3MgZG9uZSBzdWNjZXNzZnVsbHkgb3Igbm9cbiAgICovXG4gIHByb3RlY3RlZCBwcm9jZXNzT2JzZXJ2YXRpb24gPSBhc3luYyAob2JzZXJ2YXRpb246IE9ic2VydmF0aW9uRW50aXR5KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJsb2NrID0geyBoZWlnaHQ6IG9ic2VydmF0aW9uLmhlaWdodCwgaGFzaDogb2JzZXJ2YXRpb24uYmxvY2sgfTtcbiAgICAgIGNvbnN0IHR4cyA9IGF3YWl0IHRoaXMuZmV0Y2hPYnNlcnZhdGlvblR4cyhvYnNlcnZhdGlvbik7XG4gICAgICBpZiAoIXR4cylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBUcmFuc2FjdGlvbiBbJHtvYnNlcnZhdGlvbi5zb3VyY2VUeElkfV0gbm90IGZvdW5kIG9yIGludmFsaWQgcmVzcG9uc2UgZnJvbSAke3RoaXMuY2hhaW59IGNoYWluLmAsXG4gICAgICAgICk7XG4gICAgICB0aGlzLmV4dHJhY3Rvci5wcm9jZXNzVHJhbnNhY3Rpb25zKHR4cywgYmxvY2spO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgIGBQcm9jZXNzaW5nIG9mIG9ic2VydmF0aW9uIGZvciAke3RoaXMuY2hhaW59IGZhaWxlZDogJHtlcnJ9YCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBGaWxscyB0aGUgcmF3IGRhdGEgZmllbGQgZm9yIGFsbCBPYnNlcnZhdGlvbkVudGl0eSByZWNvcmRzIG9mIHRoZSBjdXJyZW50IGNoYWluIG9mIGlucHV0IFJhd0RhdGFQcm92aWRlclN0YXRlRW50aXR5XG4gICAqXG4gICAqIEBwYXJhbSBzdGF0ZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJvdGVjdGVkIGZpbGxPYnNlcnZhdGlvbnNSYXdEYXRhID0gYXN5bmMgKFxuICAgIHN0YXRlOiBSYXdEYXRhUHJvdmlkZXJTdGF0ZUVudGl0eSxcbiAgKTogUHJvbWlzZTxSYXdEYXRhUHJvdmlkZXJTdGF0ZUVudGl0eT4gPT4ge1xuICAgIGNvbnN0IG9ic2VydmF0aW9ucyA9IGF3YWl0IHRoaXMuYWN0aW9uLmZldGNoQ2hhaW5PYnNlcnZhdGlvbnMoXG4gICAgICB0aGlzLmNoYWluLFxuICAgICAgc3RhdGUuc3luY2VkSGVpZ2h0LFxuICAgICAgdGhpcy5leHRyYWN0b3IuZ2V0SWQoKSxcbiAgICApO1xuXG4gICAgaWYgKG9ic2VydmF0aW9ucy5sZW5ndGggPT09IDApXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBJbXBvc3NpYmxlQmVoYXZpb3I6IE5vIG1vcmUgb2JzZXJ2YXRpb25zIGZvdW5kIGZvciBbJHt0aGlzLmNoYWlufV0gY2hhaW5gLFxuICAgICAgKTtcblxuICAgIGZvciAoY29uc3Qgb2JzZXJ2YXRpb24gb2Ygb2JzZXJ2YXRpb25zKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYFJhd0RhdGFQcm92aWRlciBVcGRhdGluZyByYXdEYXRhIGZvciBvYnNlcnZhdGlvbiBhdCBoZWlnaHQgJHtvYnNlcnZhdGlvbi5oZWlnaHR9IGZvciBbJHt0aGlzLmNoYWlufV0gY2hhaW5gLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGlzU3VjY2VzcyA9IGF3YWl0IHRoaXMucHJvY2Vzc09ic2VydmF0aW9uKG9ic2VydmF0aW9uKTtcbiAgICAgIGlmIChpc1N1Y2Nlc3MpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYFJhd0RhdGFQcm92aWRlciBzdWNjZXNzZnVsbHkgcHJvY2Vzc2VkIG9ic2VydmF0aW9uIGF0IGhlaWdodCAke29ic2VydmF0aW9uLmhlaWdodH0gZm9yIFske3RoaXMuY2hhaW59XSBjaGFpbmAsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFJhd0RhdGFQcm92aWRlciBmYWlsZWQgdG8gcHJvY2VzcyBvYnNlcnZhdGlvbiBhdCBoZWlnaHQgJHtvYnNlcnZhdGlvbi5oZWlnaHR9IGZvciBbJHt0aGlzLmNoYWlufV0gY2hhaW5gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgc3RhdGUuc3luY2VkSGVpZ2h0ID0gb2JzZXJ2YXRpb24uaGVpZ2h0O1xuICAgICAgYXdhaXQgdGhpcy5hY3Rpb24uc3RvcmUoc3RhdGUpO1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBSYXdEYXRhUHJvdmlkZXIgc3luY2VkSGVpZ2h0IHVwZGF0ZWQgdG8gJHtvYnNlcnZhdGlvbi5oZWlnaHR9IGZvciBbJHt0aGlzLmNoYWlufV0gY2hhaW5gLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9O1xufVxuIl19
@@ -1,11 +1,13 @@
1
1
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
2
2
  import { ObservationEntity } from '@rosen-bridge/abstract-observation-extractor';
3
+ import { BlockEntity } from '@rosen-bridge/abstract-scanner';
3
4
  import { DataSource, Repository } from '@rosen-bridge/extended-typeorm';
4
5
  import { RawDataProviderStateEntity } from '../entities';
5
6
  export declare class RawDataProviderStateEntityAction {
6
7
  protected dataSource: DataSource;
7
8
  protected logger: AbstractLogger;
8
9
  protected readonly repository: Repository<RawDataProviderStateEntity>;
10
+ protected readonly blockRepository: Repository<BlockEntity>;
9
11
  protected readonly observationRepository: Repository<ObservationEntity>;
10
12
  constructor(dataSource: DataSource, logger?: AbstractLogger);
11
13
  /**
@@ -37,6 +39,21 @@ export declare class RawDataProviderStateEntityAction {
37
39
  * @param length
38
40
  * @returns {ObservationEntity[]} Chain-related observations
39
41
  */
40
- fetchChainObservations: (chain: string, offsetHeight: number, length?: number) => Promise<ObservationEntity[]>;
42
+ fetchChainObservations: (chain: string, offsetHeight: number, extractorId: string, length?: number) => Promise<ObservationEntity[]>;
43
+ /**
44
+ * return saved block by scannerName & height if exists
45
+ *
46
+ * @param scannerName
47
+ * @param height
48
+ * @return Promise<BlockEntity or undefined>
49
+ */
50
+ getBlockOfHeight: (scannerName: string, height: number) => Promise<BlockEntity | undefined>;
51
+ /**
52
+ * return lowest height of saved block by chain if exists
53
+ *
54
+ * @param chain
55
+ * @return Promise<BlockEntity or undefined>
56
+ */
57
+ getFirstBlockOfChain: (chain: string) => Promise<BlockEntity | undefined>;
41
58
  }
42
59
  //# sourceMappingURL=rawDataProviderStateEntityAction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rawDataProviderStateEntityAction.d.ts","sourceRoot":"","sources":["../../lib/actions/rawDataProviderStateEntityAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EACL,UAAU,EAEV,UAAU,EACX,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,qBAAa,gCAAgC;IAKzC,SAAS,CAAC,UAAU,EAAE,UAAU;IAChC,SAAS,CAAC,MAAM,EAAE,cAAc;IALlC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,0BAA0B,CAAC,CAAC;IACtE,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC;gBAG5D,UAAU,EAAE,UAAU,EACtB,MAAM,GAAE,cAAkC;IAMtD;;;;;OAKG;IACH,KAAK,GACH,uBAAuB,0BAA0B,KAChD,OAAO,CAAC,0BAA0B,CAAC,CAMpC;IAEF;;;;;OAKG;IACH,YAAY,GACV,OAAO,MAAM,KACZ,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAE3C;IAEF;;;;;OAKG;IACH,6BAA6B,GAC3B,OAAO,MAAM,KACZ,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAKlC;IAEF;;;;;;;OAOG;IACH,sBAAsB,GACpB,OAAO,MAAM,EACb,cAAc,MAAM,EACpB,SAAQ,MAA+B,KACtC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAM7B;CACH"}
1
+ {"version":3,"file":"rawDataProviderStateEntityAction.d.ts","sourceRoot":"","sources":["../../lib/actions/rawDataProviderStateEntityAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,WAAW,EAAW,MAAM,gCAAgC,CAAC;AACtE,OAAO,EACL,UAAU,EAEV,UAAU,EACX,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,qBAAa,gCAAgC;IAMzC,SAAS,CAAC,UAAU,EAAE,UAAU;IAChC,SAAS,CAAC,MAAM,EAAE,cAAc;IANlC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,0BAA0B,CAAC,CAAC;IACtE,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAC5D,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC;gBAG5D,UAAU,EAAE,UAAU,EACtB,MAAM,GAAE,cAAkC;IAOtD;;;;;OAKG;IACH,KAAK,GACH,uBAAuB,0BAA0B,KAChD,OAAO,CAAC,0BAA0B,CAAC,CAMpC;IAEF;;;;;OAKG;IACH,YAAY,GACV,OAAO,MAAM,KACZ,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAE3C;IAEF;;;;;OAKG;IACH,6BAA6B,GAC3B,OAAO,MAAM,KACZ,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAKlC;IAEF;;;;;;;OAOG;IACH,sBAAsB,GACpB,OAAO,MAAM,EACb,cAAc,MAAM,EACpB,aAAa,MAAM,EACnB,SAAQ,MAA+B,KACtC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAU7B;IAEF;;;;;;OAMG;IACH,gBAAgB,GACd,aAAa,MAAM,EACnB,QAAQ,MAAM,KACb,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAKjC;IAEF;;;;;OAKG;IACH,oBAAoB,GAClB,OAAO,MAAM,KACZ,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAMjC;CACH"}
@@ -1,5 +1,6 @@
1
1
  import { DummyLogger } from '@rosen-bridge/abstract-logger';
2
2
  import { ObservationEntity } from '@rosen-bridge/abstract-observation-extractor';
3
+ import { BlockEntity, PROCEED } from '@rosen-bridge/abstract-scanner';
3
4
  import { MoreThan, } from '@rosen-bridge/extended-typeorm';
4
5
  import { OBSERVATION_BATCH_SIZE } from '../constants';
5
6
  import { RawDataProviderStateEntity } from '../entities';
@@ -7,11 +8,13 @@ export class RawDataProviderStateEntityAction {
7
8
  dataSource;
8
9
  logger;
9
10
  repository;
11
+ blockRepository;
10
12
  observationRepository;
11
13
  constructor(dataSource, logger = new DummyLogger()) {
12
14
  this.dataSource = dataSource;
13
15
  this.logger = logger;
14
16
  this.repository = dataSource.getRepository(RawDataProviderStateEntity);
17
+ this.blockRepository = dataSource.getRepository(BlockEntity);
15
18
  this.observationRepository = dataSource.getRepository(ObservationEntity);
16
19
  }
17
20
  /**
@@ -54,12 +57,42 @@ export class RawDataProviderStateEntityAction {
54
57
  * @param length
55
58
  * @returns {ObservationEntity[]} Chain-related observations
56
59
  */
57
- fetchChainObservations = async (chain, offsetHeight, length = OBSERVATION_BATCH_SIZE) => {
60
+ fetchChainObservations = async (chain, offsetHeight, extractorId, length = OBSERVATION_BATCH_SIZE) => {
58
61
  return await this.observationRepository.find({
59
- where: { fromChain: chain, height: MoreThan(offsetHeight) },
62
+ where: {
63
+ fromChain: chain,
64
+ height: MoreThan(offsetHeight),
65
+ extractor: extractorId,
66
+ },
60
67
  order: { height: 'ASC' },
61
68
  take: length,
62
69
  });
63
70
  };
71
+ /**
72
+ * return saved block by scannerName & height if exists
73
+ *
74
+ * @param scannerName
75
+ * @param height
76
+ * @return Promise<BlockEntity or undefined>
77
+ */
78
+ getBlockOfHeight = async (scannerName, height) => {
79
+ const block = await this.blockRepository.findOne({
80
+ where: { status: PROCEED, scanner: scannerName, height: height },
81
+ });
82
+ return block || undefined;
83
+ };
84
+ /**
85
+ * return lowest height of saved block by chain if exists
86
+ *
87
+ * @param chain
88
+ * @return Promise<BlockEntity or undefined>
89
+ */
90
+ getFirstBlockOfChain = async (chain) => {
91
+ const block = await this.blockRepository.findOne({
92
+ where: { status: PROCEED, scanner: chain },
93
+ order: { height: 'ASC' },
94
+ });
95
+ return block || undefined;
96
+ };
64
97
  }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF3RGF0YVByb3ZpZGVyU3RhdGVFbnRpdHlBY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYWN0aW9ucy9yYXdEYXRhUHJvdmlkZXJTdGF0ZUVudGl0eUFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2pGLE9BQU8sRUFFTCxRQUFRLEdBRVQsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXpELE1BQU0sT0FBTyxnQ0FBZ0M7SUFLL0I7SUFDQTtJQUxPLFVBQVUsQ0FBeUM7SUFDbkQscUJBQXFCLENBQWdDO0lBRXhFLFlBQ1ksVUFBc0IsRUFDdEIsU0FBeUIsSUFBSSxXQUFXLEVBQUU7UUFEMUMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFvQztRQUVwRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMscUJBQXFCLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssR0FBRyxLQUFLLEVBQ1gscUJBQWlELEVBQ1osRUFBRTtRQUN2QyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsNkJBQTZCLElBQUksQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsc0JBQXNCLENBQ3pGLENBQUM7UUFDRixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQztJQUVGOzs7OztPQUtHO0lBQ0gsWUFBWSxHQUFHLEtBQUssRUFDbEIsS0FBYSxFQUMrQixFQUFFO1FBQzlDLE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQyxDQUFDO0lBRUY7Ozs7O09BS0c7SUFDSCw2QkFBNkIsR0FBRyxLQUFLLEVBQ25DLEtBQWEsRUFDc0IsRUFBRTtRQUNyQyxPQUFPLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQztZQUM5QyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7WUFDeEMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRTtTQUMxQixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRjs7Ozs7OztPQU9HO0lBQ0gsc0JBQXNCLEdBQUcsS0FBSyxFQUM1QixLQUFhLEVBQ2IsWUFBb0IsRUFDcEIsU0FBaUIsc0JBQXNCLEVBQ1QsRUFBRTtRQUNoQyxPQUFPLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQztZQUMzQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDM0QsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUN4QixJQUFJLEVBQUUsTUFBTTtTQUNiLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgT2JzZXJ2YXRpb25FbnRpdHkgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LW9ic2VydmF0aW9uLWV4dHJhY3Rvcic7XG5pbXBvcnQge1xuICBEYXRhU291cmNlLFxuICBNb3JlVGhhbixcbiAgUmVwb3NpdG9yeSxcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9leHRlbmRlZC10eXBlb3JtJztcblxuaW1wb3J0IHsgT0JTRVJWQVRJT05fQkFUQ0hfU0laRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBSYXdEYXRhUHJvdmlkZXJTdGF0ZUVudGl0eSB9IGZyb20gJy4uL2VudGl0aWVzJztcblxuZXhwb3J0IGNsYXNzIFJhd0RhdGFQcm92aWRlclN0YXRlRW50aXR5QWN0aW9uIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlcG9zaXRvcnk6IFJlcG9zaXRvcnk8UmF3RGF0YVByb3ZpZGVyU3RhdGVFbnRpdHk+O1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgb2JzZXJ2YXRpb25SZXBvc2l0b3J5OiBSZXBvc2l0b3J5PE9ic2VydmF0aW9uRW50aXR5PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgZGF0YVNvdXJjZTogRGF0YVNvdXJjZSxcbiAgICBwcm90ZWN0ZWQgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlciA9IG5ldyBEdW1teUxvZ2dlcigpLFxuICApIHtcbiAgICB0aGlzLnJlcG9zaXRvcnkgPSBkYXRhU291cmNlLmdldFJlcG9zaXRvcnkoUmF3RGF0YVByb3ZpZGVyU3RhdGVFbnRpdHkpO1xuICAgIHRoaXMub2JzZXJ2YXRpb25SZXBvc2l0b3J5ID0gZGF0YVNvdXJjZS5nZXRSZXBvc2l0b3J5KE9ic2VydmF0aW9uRW50aXR5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9yZXMgb25lIFJhd0RhdGFQcm92aWRlclN0YXRlRW50aXR5IGluIHRoZSBkYXRhYmFzZVxuICAgKlxuICAgKiBAcGFyYW0gcmF3RGF0YVByb3ZpZGVyRW50aXRpZXNcbiAgICogQHJldHVybnMge1Jhd0RhdGFQcm92aWRlclN0YXRlRW50aXR5fSBzYXZlZCBpbnN0YW5jZVxuICAgKi9cbiAgc3RvcmUgPSBhc3luYyAoXG4gICAgcmF3RGF0YVByb3ZpZGVyRW50aXR5OiBSYXdEYXRhUHJvdmlkZXJTdGF0ZUVudGl0eSxcbiAgKTogUHJvbWlzZTxSYXdEYXRhUHJvdmlkZXJTdGF0ZUVudGl0eT4gPT4ge1xuICAgIGNvbnN0IHN0YXRlID0gYXdhaXQgdGhpcy5yZXBvc2l0b3J5LnNhdmUocmF3RGF0YVByb3ZpZGVyRW50aXR5KTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgIGByYXctZGF0YSBmb3IgY2hhaW4gc3RhdGUgWyR7SlNPTi5zdHJpbmdpZnkocmF3RGF0YVByb3ZpZGVyRW50aXR5KX1dIHN0b3JlZCBpbiBkYXRhYmFzZWAsXG4gICAgKTtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgUmF3RGF0YVByb3ZpZGVyU3RhdGVFbnRpdHkgb2Ygc3BlY2lmaWMgY2hhaW5cbiAgICpcbiAgICogQHBhcmFtIGNoYWluXG4gICAqIEByZXR1cm5zIHtSYXdEYXRhUHJvdmlkZXJTdGF0ZUVudGl0eSB8IG51bGx9IENoYWluLXJlbGF0ZWQgc3RhdGUsIG9yIG51bGwgaWYgbm90IGZvdW5kXG4gICAqL1xuICBmZXRjaEJ5Q2hhaW4gPSBhc3luYyAoXG4gICAgY2hhaW46IHN0cmluZyxcbiAgKTogUHJvbWlzZTxSYXdEYXRhUHJvdmlkZXJTdGF0ZUVudGl0eSB8IG51bGw+ID0+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5yZXBvc2l0b3J5LmZpbmRPbmUoeyB3aGVyZTogeyBjaGFpbjogY2hhaW4gfSB9KTtcbiAgfTtcblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBsYXRlc3QgT2JzZXJ2YXRpb25FbnRpdHkgZm9yIHRoZSBzcGVjaWZpZWQgY2hhaW5cbiAgICpcbiAgICogQHBhcmFtIGNoYWluXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhdGlvbkVudGl0eSB8IG51bGx9IExhdGVzdCByZWxhdGVkIG9ic2VydmF0aW9uLCBvciBudWxsIGlmIG5vdCBmb3VuZFxuICAgKi9cbiAgZmV0Y2hMYXRlc3RPYnNlcnZhdGlvbkJ5Q2hhaW4gPSBhc3luYyAoXG4gICAgY2hhaW46IHN0cmluZyxcbiAgKTogUHJvbWlzZTxPYnNlcnZhdGlvbkVudGl0eSB8IG51bGw+ID0+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5vYnNlcnZhdGlvblJlcG9zaXRvcnkuZmluZE9uZSh7XG4gICAgICB3aGVyZTogeyBmcm9tQ2hhaW46IGNoYWluLCByYXdEYXRhOiAnJyB9LFxuICAgICAgb3JkZXI6IHsgaGVpZ2h0OiAnREVTQycgfSxcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogRmV0Y2hlcyBhIGJhdGNoIG9mIE9ic2VydmF0aW9uRW50aXR5IHJlY29yZHMgZm9yIHRoZSBnaXZlbiBjaGFpblxuICAgKlxuICAgKiBAcGFyYW0gY2hhaW5cbiAgICogQHBhcmFtIG9mZnNldEhlaWdodFxuICAgKiBAcGFyYW0gbGVuZ3RoXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhdGlvbkVudGl0eVtdfSBDaGFpbi1yZWxhdGVkIG9ic2VydmF0aW9uc1xuICAgKi9cbiAgZmV0Y2hDaGFpbk9ic2VydmF0aW9ucyA9IGFzeW5jIChcbiAgICBjaGFpbjogc3RyaW5nLFxuICAgIG9mZnNldEhlaWdodDogbnVtYmVyLFxuICAgIGxlbmd0aDogbnVtYmVyID0gT0JTRVJWQVRJT05fQkFUQ0hfU0laRSxcbiAgKTogUHJvbWlzZTxPYnNlcnZhdGlvbkVudGl0eVtdPiA9PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMub2JzZXJ2YXRpb25SZXBvc2l0b3J5LmZpbmQoe1xuICAgICAgd2hlcmU6IHsgZnJvbUNoYWluOiBjaGFpbiwgaGVpZ2h0OiBNb3JlVGhhbihvZmZzZXRIZWlnaHQpIH0sXG4gICAgICBvcmRlcjogeyBoZWlnaHQ6ICdBU0MnIH0sXG4gICAgICB0YWtlOiBsZW5ndGgsXG4gICAgfSk7XG4gIH07XG59XG4iXX0=
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF3RGF0YVByb3ZpZGVyU3RhdGVFbnRpdHlBY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYWN0aW9ucy9yYXdEYXRhUHJvdmlkZXJTdGF0ZUVudGl0eUFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUVMLFFBQVEsR0FFVCxNQUFNLGdDQUFnQyxDQUFDO0FBRXhDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFekQsTUFBTSxPQUFPLGdDQUFnQztJQU0vQjtJQUNBO0lBTk8sVUFBVSxDQUF5QztJQUNuRCxlQUFlLENBQTBCO0lBQ3pDLHFCQUFxQixDQUFnQztJQUV4RSxZQUNZLFVBQXNCLEVBQ3RCLFNBQXlCLElBQUksV0FBVyxFQUFFO1FBRDFDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBb0M7UUFFcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxHQUFHLEtBQUssRUFDWCxxQkFBaUQsRUFDWixFQUFFO1FBQ3ZDLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZiw2QkFBNkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxzQkFBc0IsQ0FDekYsQ0FBQztRQUNGLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0lBRUY7Ozs7O09BS0c7SUFDSCxZQUFZLEdBQUcsS0FBSyxFQUNsQixLQUFhLEVBQytCLEVBQUU7UUFDOUMsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNILDZCQUE2QixHQUFHLEtBQUssRUFDbkMsS0FBYSxFQUNzQixFQUFFO1FBQ3JDLE9BQU8sTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDO1lBQzlDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtZQUN4QyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFO1NBQzFCLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGOzs7Ozs7O09BT0c7SUFDSCxzQkFBc0IsR0FBRyxLQUFLLEVBQzVCLEtBQWEsRUFDYixZQUFvQixFQUNwQixXQUFtQixFQUNuQixTQUFpQixzQkFBc0IsRUFDVCxFQUFFO1FBQ2hDLE9BQU8sTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDO1lBQzNDLEtBQUssRUFBRTtnQkFDTCxTQUFTLEVBQUUsS0FBSztnQkFDaEIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQUM7Z0JBQzlCLFNBQVMsRUFBRSxXQUFXO2FBQ3ZCO1lBQ0QsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUN4QixJQUFJLEVBQUUsTUFBTTtTQUNiLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNILGdCQUFnQixHQUFHLEtBQUssRUFDdEIsV0FBbUIsRUFDbkIsTUFBYyxFQUNvQixFQUFFO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUM7WUFDL0MsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUU7U0FDakUsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLElBQUksU0FBUyxDQUFDO0lBQzVCLENBQUMsQ0FBQztJQUVGOzs7OztPQUtHO0lBQ0gsb0JBQW9CLEdBQUcsS0FBSyxFQUMxQixLQUFhLEVBQ3FCLEVBQUU7UUFDcEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQztZQUMvQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7WUFDMUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtTQUN6QixDQUFDLENBQUM7UUFDSCxPQUFPLEtBQUssSUFBSSxTQUFTLENBQUM7SUFDNUIsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdExvZ2dlciwgRHVtbXlMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBPYnNlcnZhdGlvbkVudGl0eSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3Qtb2JzZXJ2YXRpb24tZXh0cmFjdG9yJztcbmltcG9ydCB7IEJsb2NrRW50aXR5LCBQUk9DRUVEIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1zY2FubmVyJztcbmltcG9ydCB7XG4gIERhdGFTb3VyY2UsXG4gIE1vcmVUaGFuLFxuICBSZXBvc2l0b3J5LFxufSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuXG5pbXBvcnQgeyBPQlNFUlZBVElPTl9CQVRDSF9TSVpFIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFJhd0RhdGFQcm92aWRlclN0YXRlRW50aXR5IH0gZnJvbSAnLi4vZW50aXRpZXMnO1xuXG5leHBvcnQgY2xhc3MgUmF3RGF0YVByb3ZpZGVyU3RhdGVFbnRpdHlBY3Rpb24ge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVwb3NpdG9yeTogUmVwb3NpdG9yeTxSYXdEYXRhUHJvdmlkZXJTdGF0ZUVudGl0eT47XG4gIHByb3RlY3RlZCByZWFkb25seSBibG9ja1JlcG9zaXRvcnk6IFJlcG9zaXRvcnk8QmxvY2tFbnRpdHk+O1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgb2JzZXJ2YXRpb25SZXBvc2l0b3J5OiBSZXBvc2l0b3J5PE9ic2VydmF0aW9uRW50aXR5PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgZGF0YVNvdXJjZTogRGF0YVNvdXJjZSxcbiAgICBwcm90ZWN0ZWQgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlciA9IG5ldyBEdW1teUxvZ2dlcigpLFxuICApIHtcbiAgICB0aGlzLnJlcG9zaXRvcnkgPSBkYXRhU291cmNlLmdldFJlcG9zaXRvcnkoUmF3RGF0YVByb3ZpZGVyU3RhdGVFbnRpdHkpO1xuICAgIHRoaXMuYmxvY2tSZXBvc2l0b3J5ID0gZGF0YVNvdXJjZS5nZXRSZXBvc2l0b3J5KEJsb2NrRW50aXR5KTtcbiAgICB0aGlzLm9ic2VydmF0aW9uUmVwb3NpdG9yeSA9IGRhdGFTb3VyY2UuZ2V0UmVwb3NpdG9yeShPYnNlcnZhdGlvbkVudGl0eSk7XG4gIH1cblxuICAvKipcbiAgICogU3RvcmVzIG9uZSBSYXdEYXRhUHJvdmlkZXJTdGF0ZUVudGl0eSBpbiB0aGUgZGF0YWJhc2VcbiAgICpcbiAgICogQHBhcmFtIHJhd0RhdGFQcm92aWRlckVudGl0aWVzXG4gICAqIEByZXR1cm5zIHtSYXdEYXRhUHJvdmlkZXJTdGF0ZUVudGl0eX0gc2F2ZWQgaW5zdGFuY2VcbiAgICovXG4gIHN0b3JlID0gYXN5bmMgKFxuICAgIHJhd0RhdGFQcm92aWRlckVudGl0eTogUmF3RGF0YVByb3ZpZGVyU3RhdGVFbnRpdHksXG4gICk6IFByb21pc2U8UmF3RGF0YVByb3ZpZGVyU3RhdGVFbnRpdHk+ID0+IHtcbiAgICBjb25zdCBzdGF0ZSA9IGF3YWl0IHRoaXMucmVwb3NpdG9yeS5zYXZlKHJhd0RhdGFQcm92aWRlckVudGl0eSk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICBgcmF3LWRhdGEgZm9yIGNoYWluIHN0YXRlIFske0pTT04uc3RyaW5naWZ5KHJhd0RhdGFQcm92aWRlckVudGl0eSl9XSBzdG9yZWQgaW4gZGF0YWJhc2VgLFxuICAgICk7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIFJhd0RhdGFQcm92aWRlclN0YXRlRW50aXR5IG9mIHNwZWNpZmljIGNoYWluXG4gICAqXG4gICAqIEBwYXJhbSBjaGFpblxuICAgKiBAcmV0dXJucyB7UmF3RGF0YVByb3ZpZGVyU3RhdGVFbnRpdHkgfCBudWxsfSBDaGFpbi1yZWxhdGVkIHN0YXRlLCBvciBudWxsIGlmIG5vdCBmb3VuZFxuICAgKi9cbiAgZmV0Y2hCeUNoYWluID0gYXN5bmMgKFxuICAgIGNoYWluOiBzdHJpbmcsXG4gICk6IFByb21pc2U8UmF3RGF0YVByb3ZpZGVyU3RhdGVFbnRpdHkgfCBudWxsPiA9PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucmVwb3NpdG9yeS5maW5kT25lKHsgd2hlcmU6IHsgY2hhaW46IGNoYWluIH0gfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgbGF0ZXN0IE9ic2VydmF0aW9uRW50aXR5IGZvciB0aGUgc3BlY2lmaWVkIGNoYWluXG4gICAqXG4gICAqIEBwYXJhbSBjaGFpblxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YXRpb25FbnRpdHkgfCBudWxsfSBMYXRlc3QgcmVsYXRlZCBvYnNlcnZhdGlvbiwgb3IgbnVsbCBpZiBub3QgZm91bmRcbiAgICovXG4gIGZldGNoTGF0ZXN0T2JzZXJ2YXRpb25CeUNoYWluID0gYXN5bmMgKFxuICAgIGNoYWluOiBzdHJpbmcsXG4gICk6IFByb21pc2U8T2JzZXJ2YXRpb25FbnRpdHkgfCBudWxsPiA9PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMub2JzZXJ2YXRpb25SZXBvc2l0b3J5LmZpbmRPbmUoe1xuICAgICAgd2hlcmU6IHsgZnJvbUNoYWluOiBjaGFpbiwgcmF3RGF0YTogJycgfSxcbiAgICAgIG9yZGVyOiB7IGhlaWdodDogJ0RFU0MnIH0sXG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgYSBiYXRjaCBvZiBPYnNlcnZhdGlvbkVudGl0eSByZWNvcmRzIGZvciB0aGUgZ2l2ZW4gY2hhaW5cbiAgICpcbiAgICogQHBhcmFtIGNoYWluXG4gICAqIEBwYXJhbSBvZmZzZXRIZWlnaHRcbiAgICogQHBhcmFtIGxlbmd0aFxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YXRpb25FbnRpdHlbXX0gQ2hhaW4tcmVsYXRlZCBvYnNlcnZhdGlvbnNcbiAgICovXG4gIGZldGNoQ2hhaW5PYnNlcnZhdGlvbnMgPSBhc3luYyAoXG4gICAgY2hhaW46IHN0cmluZyxcbiAgICBvZmZzZXRIZWlnaHQ6IG51bWJlcixcbiAgICBleHRyYWN0b3JJZDogc3RyaW5nLFxuICAgIGxlbmd0aDogbnVtYmVyID0gT0JTRVJWQVRJT05fQkFUQ0hfU0laRSxcbiAgKTogUHJvbWlzZTxPYnNlcnZhdGlvbkVudGl0eVtdPiA9PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMub2JzZXJ2YXRpb25SZXBvc2l0b3J5LmZpbmQoe1xuICAgICAgd2hlcmU6IHtcbiAgICAgICAgZnJvbUNoYWluOiBjaGFpbixcbiAgICAgICAgaGVpZ2h0OiBNb3JlVGhhbihvZmZzZXRIZWlnaHQpLFxuICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcklkLFxuICAgICAgfSxcbiAgICAgIG9yZGVyOiB7IGhlaWdodDogJ0FTQycgfSxcbiAgICAgIHRha2U6IGxlbmd0aCxcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogcmV0dXJuIHNhdmVkIGJsb2NrIGJ5IHNjYW5uZXJOYW1lICYgaGVpZ2h0IGlmIGV4aXN0c1xuICAgKlxuICAgKiBAcGFyYW0gc2Nhbm5lck5hbWVcbiAgICogQHBhcmFtIGhlaWdodFxuICAgKiBAcmV0dXJuIFByb21pc2U8QmxvY2tFbnRpdHkgb3IgdW5kZWZpbmVkPlxuICAgKi9cbiAgZ2V0QmxvY2tPZkhlaWdodCA9IGFzeW5jIChcbiAgICBzY2FubmVyTmFtZTogc3RyaW5nLFxuICAgIGhlaWdodDogbnVtYmVyLFxuICApOiBQcm9taXNlPEJsb2NrRW50aXR5IHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgY29uc3QgYmxvY2sgPSBhd2FpdCB0aGlzLmJsb2NrUmVwb3NpdG9yeS5maW5kT25lKHtcbiAgICAgIHdoZXJlOiB7IHN0YXR1czogUFJPQ0VFRCwgc2Nhbm5lcjogc2Nhbm5lck5hbWUsIGhlaWdodDogaGVpZ2h0IH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIGJsb2NrIHx8IHVuZGVmaW5lZDtcbiAgfTtcblxuICAvKipcbiAgICogcmV0dXJuIGxvd2VzdCBoZWlnaHQgb2Ygc2F2ZWQgYmxvY2sgYnkgY2hhaW4gaWYgZXhpc3RzXG4gICAqXG4gICAqIEBwYXJhbSBjaGFpblxuICAgKiBAcmV0dXJuIFByb21pc2U8QmxvY2tFbnRpdHkgb3IgdW5kZWZpbmVkPlxuICAgKi9cbiAgZ2V0Rmlyc3RCbG9ja09mQ2hhaW4gPSBhc3luYyAoXG4gICAgY2hhaW46IHN0cmluZyxcbiAgKTogUHJvbWlzZTxCbG9ja0VudGl0eSB8IHVuZGVmaW5lZD4gPT4ge1xuICAgIGNvbnN0IGJsb2NrID0gYXdhaXQgdGhpcy5ibG9ja1JlcG9zaXRvcnkuZmluZE9uZSh7XG4gICAgICB3aGVyZTogeyBzdGF0dXM6IFBST0NFRUQsIHNjYW5uZXI6IGNoYWluIH0sXG4gICAgICBvcmRlcjogeyBoZWlnaHQ6ICdBU0MnIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIGJsb2NrIHx8IHVuZGVmaW5lZDtcbiAgfTtcbn1cbiJdfQ==
@@ -1,20 +1,25 @@
1
1
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
2
2
  import { ObservationEntity } from '@rosen-bridge/abstract-observation-extractor';
3
3
  import { BitcoinEsploraObservationExtractor } from '@rosen-bridge/bitcoin-observation-extractor';
4
+ import { BitcoinRunesEsploraObservationExtractor } from '@rosen-bridge/bitcoin-runes-observation-extractor';
5
+ import { BitcoinEsploraTransaction } from '@rosen-bridge/bitcoin-scanner';
4
6
  import { DataSource } from '@rosen-bridge/extended-typeorm';
5
7
  import { AbstractRawDataProvider } from '../../abstractRawDataProvider';
6
- export declare class BitcoinEsploraRawDataProvider extends AbstractRawDataProvider {
8
+ import { EsploraConnectionInfoInterface } from '../../types';
9
+ export declare class BitcoinEsploraRawDataProvider extends AbstractRawDataProvider<BitcoinEsploraTransaction> {
7
10
  protected dataSource: DataSource;
8
- protected extractor: BitcoinEsploraObservationExtractor;
11
+ protected extractor: BitcoinEsploraObservationExtractor | BitcoinRunesEsploraObservationExtractor;
12
+ protected esploraConnectionInfo: EsploraConnectionInfoInterface;
9
13
  protected logger: AbstractLogger;
14
+ ESPLORA_BLOCK_TXS_LIMIT: number;
10
15
  protected client: import("@rosen-clients/rate-limited-axios").Axios;
11
- constructor(dataSource: DataSource, extractor: BitcoinEsploraObservationExtractor, esploraBaseUrl: string, logger: AbstractLogger);
16
+ constructor(dataSource: DataSource, extractor: BitcoinEsploraObservationExtractor | BitcoinRunesEsploraObservationExtractor, esploraConnectionInfo: EsploraConnectionInfoInterface, logger: AbstractLogger);
12
17
  /**
13
- * Process observation and write rawData
18
+ * fetch bitcoin transactions related to the input observation parameter
14
19
  *
15
20
  * @param observation
16
- * @return {boolean} determining result of process done successfully or no
21
+ * @returns { Promise<BitcoinEsploraTransaction[]> }
17
22
  */
18
- protected processObservation: (observation: ObservationEntity) => Promise<boolean>;
23
+ protected fetchObservationTxs: (observation: ObservationEntity) => Promise<BitcoinEsploraTransaction[] | undefined>;
19
24
  }
20
25
  //# sourceMappingURL=bitcoinEsploraRawDataProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bitcoinEsploraRawDataProvider.d.ts","sourceRoot":"","sources":["../../../lib/providers/bitcoin/bitcoinEsploraRawDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,kCAAkC,EAAE,MAAM,6CAA6C,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAI5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAExE,qBAAa,6BAA8B,SAAQ,uBAAuB;IAItE,SAAS,CAAC,UAAU,EAAE,UAAU;IAChC,SAAS,CAAC,SAAS,EAAE,kCAAkC;IAEvD,SAAS,CAAC,MAAM,EAAE,cAAc;IANlC,SAAS,CAAC,MAAM,oDAAC;gBAGL,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,kCAAkC,EACvD,cAAc,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc;IAMlC;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,GAAU,aAAa,iBAAiB,sBAgBlE;CACH"}
1
+ {"version":3,"file":"bitcoinEsploraRawDataProvider.d.ts","sourceRoot":"","sources":["../../../lib/providers/bitcoin/bitcoinEsploraRawDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,kCAAkC,EAAE,MAAM,6CAA6C,CAAC;AACjG,OAAO,EAAE,uCAAuC,EAAE,MAAM,mDAAmD,CAAC;AAC5G,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAE7D,qBAAa,6BAA8B,SAAQ,uBAAuB,CAAC,yBAAyB,CAAC;IAMjG,SAAS,CAAC,UAAU,EAAE,UAAU;IAChC,SAAS,CAAC,SAAS,EACf,kCAAkC,GAClC,uCAAuC;IAC3C,SAAS,CAAC,qBAAqB,EAAE,8BAA8B;IAC/D,SAAS,CAAC,MAAM,EAAE,cAAc;IAVlC,uBAAuB,SAAM;IAE7B,SAAS,CAAC,MAAM,oDAAC;gBAGL,UAAU,EAAE,UAAU,EACtB,SAAS,EACf,kCAAkC,GAClC,uCAAuC,EACjC,qBAAqB,EAAE,8BAA8B,EACrD,MAAM,EAAE,cAAc;IAclC;;;;;OAKG;IACH,SAAS,CAAC,mBAAmB,GAC3B,aAAa,iBAAiB,KAC7B,OAAO,CAAC,yBAAyB,EAAE,GAAG,SAAS,CAAC,CA6BjD;CACH"}
@@ -1,38 +1,52 @@
1
+ import { BitcoinRunesEsploraObservationExtractor } from '@rosen-bridge/bitcoin-runes-observation-extractor';
1
2
  import axios from '@rosen-clients/rate-limited-axios';
2
3
  import { AbstractRawDataProvider } from '../../abstractRawDataProvider';
3
4
  export class BitcoinEsploraRawDataProvider extends AbstractRawDataProvider {
4
5
  dataSource;
5
6
  extractor;
7
+ esploraConnectionInfo;
6
8
  logger;
9
+ ESPLORA_BLOCK_TXS_LIMIT = 25;
7
10
  client;
8
- constructor(dataSource, extractor, esploraBaseUrl, logger) {
9
- super('bitcoin', dataSource, logger);
11
+ constructor(dataSource, extractor, esploraConnectionInfo, logger) {
12
+ const chain = extractor instanceof BitcoinRunesEsploraObservationExtractor
13
+ ? 'bitcoin-runes'
14
+ : 'bitcoin';
15
+ super(chain, dataSource, extractor, logger);
10
16
  this.dataSource = dataSource;
11
17
  this.extractor = extractor;
18
+ this.esploraConnectionInfo = esploraConnectionInfo;
12
19
  this.logger = logger;
13
- this.client = axios.create({ baseURL: esploraBaseUrl });
20
+ this.client = axios.create({
21
+ baseURL: esploraConnectionInfo.url,
22
+ timeout: (esploraConnectionInfo.timeout ?? 0) * 1000,
23
+ headers: { 'Content-Type': 'application/json' },
24
+ });
14
25
  }
15
26
  /**
16
- * Process observation and write rawData
27
+ * fetch bitcoin transactions related to the input observation parameter
17
28
  *
18
29
  * @param observation
19
- * @return {boolean} determining result of process done successfully or no
30
+ * @returns { Promise<BitcoinEsploraTransaction[]> }
20
31
  */
21
- processObservation = async (observation) => {
32
+ fetchObservationTxs = async (observation) => {
22
33
  try {
23
- const block = { height: observation.height, hash: observation.block };
24
- const tx = await this.client.post(`/tx/${observation.sourceTxId}`, {
25
- method: 'getrawtransaction',
26
- id: 0,
27
- params: [observation.sourceTxId, true],
28
- });
29
- this.extractor.processTransactions([tx.data], block);
34
+ const blockHash = observation.block;
35
+ const txCount = (await this.client.get(`${this.esploraConnectionInfo.prefix ?? '/api'}/block/${blockHash}`)).data.tx_count;
36
+ let offset = 0;
37
+ while (offset < txCount) {
38
+ const txs = (await this.client.get(`${this.esploraConnectionInfo.prefix ?? '/api'}/block/${blockHash}/txs/${offset}`)).data;
39
+ const tx = txs
40
+ .filter((item) => item.txid == observation.sourceTxId)
41
+ .at(0);
42
+ if (tx)
43
+ return [tx];
44
+ offset += this.ESPLORA_BLOCK_TXS_LIMIT;
45
+ }
30
46
  }
31
47
  catch (err) {
32
- this.logger.error(`Processing of observation for bitcoin-esplora failed: ${err}`);
33
- return false;
48
+ throw new Error(`Fetch transactions by [${observation.sourceTxId}] id of related observation for [${this.chain}] chain failed: ${err}`);
34
49
  }
35
- return true;
36
50
  };
37
51
  }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0Y29pbkVzcGxvcmFSYXdEYXRhUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvcHJvdmlkZXJzL2JpdGNvaW4vYml0Y29pbkVzcGxvcmFSYXdEYXRhUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxLQUFLLE1BQU0sbUNBQW1DLENBQUM7QUFFdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFeEUsTUFBTSxPQUFPLDZCQUE4QixTQUFRLHVCQUF1QjtJQUk1RDtJQUNBO0lBRUE7SUFORixNQUFNLENBQUM7SUFFakIsWUFDWSxVQUFzQixFQUN0QixTQUE2QyxFQUN2RCxjQUFzQixFQUNaLE1BQXNCO1FBRWhDLEtBQUssQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBTDNCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBb0M7UUFFN0MsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFHaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ08sa0JBQWtCLEdBQUcsS0FBSyxFQUFFLFdBQThCLEVBQUUsRUFBRTtRQUN0RSxJQUFJLENBQUM7WUFDSCxNQUFNLEtBQUssR0FBRyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdEUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLFdBQVcsQ0FBQyxVQUFVLEVBQUUsRUFBRTtnQkFDakUsTUFBTSxFQUFFLG1CQUFtQjtnQkFDM0IsRUFBRSxFQUFFLENBQUM7Z0JBQ0wsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7YUFDdkMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFjLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLHlEQUF5RCxHQUFHLEVBQUUsQ0FDL0QsQ0FBQztZQUNGLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7IE9ic2VydmF0aW9uRW50aXR5IH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1vYnNlcnZhdGlvbi1leHRyYWN0b3InO1xuaW1wb3J0IHsgQml0Y29pbkVzcGxvcmFPYnNlcnZhdGlvbkV4dHJhY3RvciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYml0Y29pbi1vYnNlcnZhdGlvbi1leHRyYWN0b3InO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvZXh0ZW5kZWQtdHlwZW9ybSc7XG5pbXBvcnQgeyBCbG9jayB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcbmltcG9ydCBheGlvcyBmcm9tICdAcm9zZW4tY2xpZW50cy9yYXRlLWxpbWl0ZWQtYXhpb3MnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFJhd0RhdGFQcm92aWRlciB9IGZyb20gJy4uLy4uL2Fic3RyYWN0UmF3RGF0YVByb3ZpZGVyJztcblxuZXhwb3J0IGNsYXNzIEJpdGNvaW5Fc3Bsb3JhUmF3RGF0YVByb3ZpZGVyIGV4dGVuZHMgQWJzdHJhY3RSYXdEYXRhUHJvdmlkZXIge1xuICBwcm90ZWN0ZWQgY2xpZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIHByb3RlY3RlZCBleHRyYWN0b3I6IEJpdGNvaW5Fc3Bsb3JhT2JzZXJ2YXRpb25FeHRyYWN0b3IsXG4gICAgZXNwbG9yYUJhc2VVcmw6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlcixcbiAgKSB7XG4gICAgc3VwZXIoJ2JpdGNvaW4nLCBkYXRhU291cmNlLCBsb2dnZXIpO1xuICAgIHRoaXMuY2xpZW50ID0gYXhpb3MuY3JlYXRlKHsgYmFzZVVSTDogZXNwbG9yYUJhc2VVcmwgfSk7XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VzcyBvYnNlcnZhdGlvbiBhbmQgd3JpdGUgcmF3RGF0YVxuICAgKlxuICAgKiBAcGFyYW0gb2JzZXJ2YXRpb25cbiAgICogQHJldHVybiB7Ym9vbGVhbn0gZGV0ZXJtaW5pbmcgcmVzdWx0IG9mIHByb2Nlc3MgZG9uZSBzdWNjZXNzZnVsbHkgb3Igbm9cbiAgICovXG4gIHByb3RlY3RlZCBwcm9jZXNzT2JzZXJ2YXRpb24gPSBhc3luYyAob2JzZXJ2YXRpb246IE9ic2VydmF0aW9uRW50aXR5KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJsb2NrID0geyBoZWlnaHQ6IG9ic2VydmF0aW9uLmhlaWdodCwgaGFzaDogb2JzZXJ2YXRpb24uYmxvY2sgfTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdGhpcy5jbGllbnQucG9zdChgL3R4LyR7b2JzZXJ2YXRpb24uc291cmNlVHhJZH1gLCB7XG4gICAgICAgIG1ldGhvZDogJ2dldHJhd3RyYW5zYWN0aW9uJyxcbiAgICAgICAgaWQ6IDAsXG4gICAgICAgIHBhcmFtczogW29ic2VydmF0aW9uLnNvdXJjZVR4SWQsIHRydWVdLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmV4dHJhY3Rvci5wcm9jZXNzVHJhbnNhY3Rpb25zKFt0eC5kYXRhXSwgYmxvY2sgYXMgQmxvY2spO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgIGBQcm9jZXNzaW5nIG9mIG9ic2VydmF0aW9uIGZvciBiaXRjb2luLWVzcGxvcmEgZmFpbGVkOiAke2Vycn1gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG59XG4iXX0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0Y29pbkVzcGxvcmFSYXdEYXRhUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvcHJvdmlkZXJzL2JpdGNvaW4vYml0Y29pbkVzcGxvcmFSYXdEYXRhUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFHNUcsT0FBTyxLQUFLLE1BQU0sbUNBQW1DLENBQUM7QUFFdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHeEUsTUFBTSxPQUFPLDZCQUE4QixTQUFRLHVCQUFrRDtJQU12RjtJQUNBO0lBR0E7SUFDQTtJQVZaLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztJQUVuQixNQUFNLENBQUM7SUFFakIsWUFDWSxVQUFzQixFQUN0QixTQUVpQyxFQUNqQyxxQkFBcUQsRUFDckQsTUFBc0I7UUFFaEMsTUFBTSxLQUFLLEdBQ1QsU0FBUyxZQUFZLHVDQUF1QztZQUMxRCxDQUFDLENBQUMsZUFBZTtZQUNqQixDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hCLEtBQUssQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQVhsQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGNBQVMsR0FBVCxTQUFTLENBRXdCO1FBQ2pDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBZ0M7UUFDckQsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFPaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ3pCLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxHQUFHO1lBQ2xDLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJO1lBQ3BELE9BQU8sRUFBRSxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRTtTQUNoRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDTyxtQkFBbUIsR0FBRyxLQUFLLEVBQ25DLFdBQThCLEVBQ29CLEVBQUU7UUFDcEQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUNwQyxNQUFNLE9BQU8sR0FBRyxDQUNkLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQ25CLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sSUFBSSxNQUFNLFVBQVUsU0FBUyxFQUFFLENBQ3BFLENBQ0YsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ2hCLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNmLE9BQU8sTUFBTSxHQUFHLE9BQU8sRUFBRSxDQUFDO2dCQUN4QixNQUFNLEdBQUcsR0FBRyxDQUNWLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQ25CLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sSUFBSSxNQUFNLFVBQVUsU0FBUyxRQUFRLE1BQU0sRUFBRSxDQUNsRixDQUNGLENBQUMsSUFBSSxDQUFDO2dCQUNQLE1BQU0sRUFBRSxHQUFHLEdBQUc7cUJBQ1gsTUFBTSxDQUNMLENBQUMsSUFBK0IsRUFBRSxFQUFFLENBQ2xDLElBQUksQ0FBQyxJQUFJLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FDdEM7cUJBQ0EsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNULElBQUksRUFBRTtvQkFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3BCLE1BQU0sSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUM7WUFDekMsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FDYiwwQkFBMEIsV0FBVyxDQUFDLFVBQVUsb0NBQW9DLElBQUksQ0FBQyxLQUFLLG1CQUFtQixHQUFHLEVBQUUsQ0FDdkgsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgT2JzZXJ2YXRpb25FbnRpdHkgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LW9ic2VydmF0aW9uLWV4dHJhY3Rvcic7XG5pbXBvcnQgeyBCaXRjb2luRXNwbG9yYU9ic2VydmF0aW9uRXh0cmFjdG9yIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9iaXRjb2luLW9ic2VydmF0aW9uLWV4dHJhY3Rvcic7XG5pbXBvcnQgeyBCaXRjb2luUnVuZXNFc3Bsb3JhT2JzZXJ2YXRpb25FeHRyYWN0b3IgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2JpdGNvaW4tcnVuZXMtb2JzZXJ2YXRpb24tZXh0cmFjdG9yJztcbmltcG9ydCB7IEJpdGNvaW5Fc3Bsb3JhVHJhbnNhY3Rpb24gfSBmcm9tICdAcm9zZW4tYnJpZGdlL2JpdGNvaW4tc2Nhbm5lcic7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9leHRlbmRlZC10eXBlb3JtJztcbmltcG9ydCBheGlvcyBmcm9tICdAcm9zZW4tY2xpZW50cy9yYXRlLWxpbWl0ZWQtYXhpb3MnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFJhd0RhdGFQcm92aWRlciB9IGZyb20gJy4uLy4uL2Fic3RyYWN0UmF3RGF0YVByb3ZpZGVyJztcbmltcG9ydCB7IEVzcGxvcmFDb25uZWN0aW9uSW5mb0ludGVyZmFjZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIEJpdGNvaW5Fc3Bsb3JhUmF3RGF0YVByb3ZpZGVyIGV4dGVuZHMgQWJzdHJhY3RSYXdEYXRhUHJvdmlkZXI8Qml0Y29pbkVzcGxvcmFUcmFuc2FjdGlvbj4ge1xuICBFU1BMT1JBX0JMT0NLX1RYU19MSU1JVCA9IDI1O1xuXG4gIHByb3RlY3RlZCBjbGllbnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsXG4gICAgcHJvdGVjdGVkIGV4dHJhY3RvcjpcbiAgICAgIHwgQml0Y29pbkVzcGxvcmFPYnNlcnZhdGlvbkV4dHJhY3RvclxuICAgICAgfCBCaXRjb2luUnVuZXNFc3Bsb3JhT2JzZXJ2YXRpb25FeHRyYWN0b3IsXG4gICAgcHJvdGVjdGVkIGVzcGxvcmFDb25uZWN0aW9uSW5mbzogRXNwbG9yYUNvbm5lY3Rpb25JbmZvSW50ZXJmYWNlLFxuICAgIHByb3RlY3RlZCBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyLFxuICApIHtcbiAgICBjb25zdCBjaGFpbiA9XG4gICAgICBleHRyYWN0b3IgaW5zdGFuY2VvZiBCaXRjb2luUnVuZXNFc3Bsb3JhT2JzZXJ2YXRpb25FeHRyYWN0b3JcbiAgICAgICAgPyAnYml0Y29pbi1ydW5lcydcbiAgICAgICAgOiAnYml0Y29pbic7XG4gICAgc3VwZXIoY2hhaW4sIGRhdGFTb3VyY2UsIGV4dHJhY3RvciwgbG9nZ2VyKTtcbiAgICB0aGlzLmNsaWVudCA9IGF4aW9zLmNyZWF0ZSh7XG4gICAgICBiYXNlVVJMOiBlc3Bsb3JhQ29ubmVjdGlvbkluZm8udXJsLFxuICAgICAgdGltZW91dDogKGVzcGxvcmFDb25uZWN0aW9uSW5mby50aW1lb3V0ID8/IDApICogMTAwMCxcbiAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIGZldGNoIGJpdGNvaW4gdHJhbnNhY3Rpb25zIHJlbGF0ZWQgdG8gdGhlIGlucHV0IG9ic2VydmF0aW9uIHBhcmFtZXRlclxuICAgKlxuICAgKiBAcGFyYW0gb2JzZXJ2YXRpb25cbiAgICogQHJldHVybnMgeyBQcm9taXNlPEJpdGNvaW5Fc3Bsb3JhVHJhbnNhY3Rpb25bXT4gfVxuICAgKi9cbiAgcHJvdGVjdGVkIGZldGNoT2JzZXJ2YXRpb25UeHMgPSBhc3luYyAoXG4gICAgb2JzZXJ2YXRpb246IE9ic2VydmF0aW9uRW50aXR5LFxuICApOiBQcm9taXNlPEJpdGNvaW5Fc3Bsb3JhVHJhbnNhY3Rpb25bXSB8IHVuZGVmaW5lZD4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBibG9ja0hhc2ggPSBvYnNlcnZhdGlvbi5ibG9jaztcbiAgICAgIGNvbnN0IHR4Q291bnQgPSAoXG4gICAgICAgIGF3YWl0IHRoaXMuY2xpZW50LmdldChcbiAgICAgICAgICBgJHt0aGlzLmVzcGxvcmFDb25uZWN0aW9uSW5mby5wcmVmaXggPz8gJy9hcGknfS9ibG9jay8ke2Jsb2NrSGFzaH1gLFxuICAgICAgICApXG4gICAgICApLmRhdGEudHhfY291bnQ7XG4gICAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICAgIHdoaWxlIChvZmZzZXQgPCB0eENvdW50KSB7XG4gICAgICAgIGNvbnN0IHR4cyA9IChcbiAgICAgICAgICBhd2FpdCB0aGlzLmNsaWVudC5nZXQoXG4gICAgICAgICAgICBgJHt0aGlzLmVzcGxvcmFDb25uZWN0aW9uSW5mby5wcmVmaXggPz8gJy9hcGknfS9ibG9jay8ke2Jsb2NrSGFzaH0vdHhzLyR7b2Zmc2V0fWAsXG4gICAgICAgICAgKVxuICAgICAgICApLmRhdGE7XG4gICAgICAgIGNvbnN0IHR4ID0gdHhzXG4gICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgIChpdGVtOiBCaXRjb2luRXNwbG9yYVRyYW5zYWN0aW9uKSA9PlxuICAgICAgICAgICAgICBpdGVtLnR4aWQgPT0gb2JzZXJ2YXRpb24uc291cmNlVHhJZCxcbiAgICAgICAgICApXG4gICAgICAgICAgLmF0KDApO1xuICAgICAgICBpZiAodHgpIHJldHVybiBbdHhdO1xuICAgICAgICBvZmZzZXQgKz0gdGhpcy5FU1BMT1JBX0JMT0NLX1RYU19MSU1JVDtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEZldGNoIHRyYW5zYWN0aW9ucyBieSBbJHtvYnNlcnZhdGlvbi5zb3VyY2VUeElkfV0gaWQgb2YgcmVsYXRlZCBvYnNlcnZhdGlvbiBmb3IgWyR7dGhpcy5jaGFpbn1dIGNoYWluIGZhaWxlZDogJHtlcnJ9YCxcbiAgICAgICk7XG4gICAgfVxuICB9O1xufVxuIl19
@@ -1,21 +1,23 @@
1
1
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
2
2
  import { ObservationEntity } from '@rosen-bridge/abstract-observation-extractor';
3
3
  import { BitcoinRpcObservationExtractor } from '@rosen-bridge/bitcoin-observation-extractor';
4
+ import { BitcoinRunesRpcObservationExtractor } from '@rosen-bridge/bitcoin-runes-observation-extractor';
5
+ import { BitcoinRpcTransaction } from '@rosen-bridge/bitcoin-scanner';
4
6
  import { DataSource } from '@rosen-bridge/extended-typeorm';
5
7
  import { AbstractRawDataProvider } from '../../abstractRawDataProvider';
6
8
  import { RpcConnectionInfoInterface } from '../../types';
7
- export declare class BitcoinRpcRawDataProvider extends AbstractRawDataProvider {
9
+ export declare class BitcoinRpcRawDataProvider extends AbstractRawDataProvider<BitcoinRpcTransaction> {
8
10
  protected dataSource: DataSource;
9
- protected extractor: BitcoinRpcObservationExtractor;
11
+ protected extractor: BitcoinRpcObservationExtractor | BitcoinRunesRpcObservationExtractor;
10
12
  protected logger: AbstractLogger;
11
13
  protected client: import("@rosen-clients/rate-limited-axios").Axios;
12
- constructor(dataSource: DataSource, extractor: BitcoinRpcObservationExtractor, rpcConnectionInfo: RpcConnectionInfoInterface, logger: AbstractLogger);
14
+ constructor(dataSource: DataSource, extractor: BitcoinRpcObservationExtractor | BitcoinRunesRpcObservationExtractor, rpcConnectionInfo: RpcConnectionInfoInterface, logger: AbstractLogger);
13
15
  /**
14
- * Process observation and write rawData
16
+ * fetch bitcoin transactions related to the input observation parameter
15
17
  *
16
18
  * @param observation
17
- * @return {boolean} determining result of process done successfully or no
19
+ * @returns { Promise<BitcoinRpcTransaction[]> }
18
20
  */
19
- protected processObservation: (observation: ObservationEntity) => Promise<boolean>;
21
+ protected fetchObservationTxs: (observation: ObservationEntity) => Promise<BitcoinRpcTransaction[]>;
20
22
  }
21
23
  //# sourceMappingURL=bitcoinRpcRawDataProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bitcoinRpcRawDataProvider.d.ts","sourceRoot":"","sources":["../../../lib/providers/bitcoin/bitcoinRpcRawDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAI5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,qBAAa,yBAA0B,SAAQ,uBAAuB;IAIlE,SAAS,CAAC,UAAU,EAAE,UAAU;IAChC,SAAS,CAAC,SAAS,EAAE,8BAA8B;IAEnD,SAAS,CAAC,MAAM,EAAE,cAAc;IANlC,SAAS,CAAC,MAAM,oDAAC;gBAGL,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,8BAA8B,EACnD,iBAAiB,EAAE,0BAA0B,EACnC,MAAM,EAAE,cAAc;IAkBlC;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,GAAU,aAAa,iBAAiB,sBAgBlE;CACH"}
1
+ {"version":3,"file":"bitcoinRpcRawDataProvider.d.ts","sourceRoot":"","sources":["../../../lib/providers/bitcoin/bitcoinRpcRawDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,EAAE,mCAAmC,EAAE,MAAM,mDAAmD,CAAC;AACxG,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,qBAAa,yBAA0B,SAAQ,uBAAuB,CAAC,qBAAqB,CAAC;IAIzF,SAAS,CAAC,UAAU,EAAE,UAAU;IAChC,SAAS,CAAC,SAAS,EACf,8BAA8B,GAC9B,mCAAmC;IAEvC,SAAS,CAAC,MAAM,EAAE,cAAc;IARlC,SAAS,CAAC,MAAM,oDAAC;gBAGL,UAAU,EAAE,UAAU,EACtB,SAAS,EACf,8BAA8B,GAC9B,mCAAmC,EACvC,iBAAiB,EAAE,0BAA0B,EACnC,MAAM,EAAE,cAAc;IAsBlC;;;;;OAKG;IACH,SAAS,CAAC,mBAAmB,GAC3B,aAAa,iBAAiB,KAC7B,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAcjC;CACH"}
@@ -1,3 +1,4 @@
1
+ import { BitcoinRunesRpcObservationExtractor } from '@rosen-bridge/bitcoin-runes-observation-extractor';
1
2
  import axios from '@rosen-clients/rate-limited-axios';
2
3
  import { AbstractRawDataProvider } from '../../abstractRawDataProvider';
3
4
  export class BitcoinRpcRawDataProvider extends AbstractRawDataProvider {
@@ -6,7 +7,10 @@ export class BitcoinRpcRawDataProvider extends AbstractRawDataProvider {
6
7
  logger;
7
8
  client;
8
9
  constructor(dataSource, extractor, rpcConnectionInfo, logger) {
9
- super('bitcoin', dataSource, logger);
10
+ const chain = extractor instanceof BitcoinRunesRpcObservationExtractor
11
+ ? 'bitcoin-runes'
12
+ : 'bitcoin';
13
+ super(chain, dataSource, extractor, logger);
10
14
  this.dataSource = dataSource;
11
15
  this.extractor = extractor;
12
16
  this.logger = logger;
@@ -24,26 +28,22 @@ export class BitcoinRpcRawDataProvider extends AbstractRawDataProvider {
24
28
  });
25
29
  }
26
30
  /**
27
- * Process observation and write rawData
31
+ * fetch bitcoin transactions related to the input observation parameter
28
32
  *
29
33
  * @param observation
30
- * @return {boolean} determining result of process done successfully or no
34
+ * @returns { Promise<BitcoinRpcTransaction[]> }
31
35
  */
32
- processObservation = async (observation) => {
36
+ fetchObservationTxs = async (observation) => {
33
37
  try {
34
- const block = { height: observation.height, hash: observation.block };
35
- const tx = await this.client.post('', {
38
+ return (await this.client.post('', {
36
39
  method: 'getrawtransaction',
37
40
  id: 0,
38
41
  params: [observation.sourceTxId, true],
39
- });
40
- this.extractor.processTransactions([tx.data], block);
42
+ })).data?.result;
41
43
  }
42
44
  catch (err) {
43
- this.logger.error(`Processing of observation for bitcoin-rpc failed: ${err}`);
44
- return false;
45
+ throw new Error(`Fetch transactions by [${observation.sourceTxId}] id of related observation for [${this.chain}] chain failed: ${err}`);
45
46
  }
46
- return true;
47
47
  };
48
48
  }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0Y29pblJwY1Jhd0RhdGFQcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9wcm92aWRlcnMvYml0Y29pbi9iaXRjb2luUnBjUmF3RGF0YVByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sS0FBSyxNQUFNLG1DQUFtQyxDQUFDO0FBRXRELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR3hFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx1QkFBdUI7SUFJeEQ7SUFDQTtJQUVBO0lBTkYsTUFBTSxDQUFDO0lBRWpCLFlBQ1ksVUFBc0IsRUFDdEIsU0FBeUMsRUFDbkQsaUJBQTZDLEVBQ25DLE1BQXNCO1FBRWhDLEtBQUssQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBTDNCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBZ0M7UUFFekMsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFHaEMsTUFBTSxJQUFJLEdBQ1IsaUJBQWlCLENBQUMsUUFBUSxJQUFJLGlCQUFpQixDQUFDLFFBQVE7WUFDdEQsQ0FBQyxDQUFDO2dCQUNFLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxRQUFRO2dCQUNwQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsUUFBUTthQUNyQztZQUNILENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ3pCLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxHQUFHO1lBQzlCLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxPQUFPO1lBQ2xDLE9BQU8sRUFBRSxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRTtZQUMvQyxJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLGtCQUFrQixHQUFHLEtBQUssRUFBRSxXQUE4QixFQUFFLEVBQUU7UUFDdEUsSUFBSSxDQUFDO1lBQ0gsTUFBTSxLQUFLLEdBQUcsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3RFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFO2dCQUNwQyxNQUFNLEVBQUUsbUJBQW1CO2dCQUMzQixFQUFFLEVBQUUsQ0FBQztnQkFDTCxNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQzthQUN2QyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQWMsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YscURBQXFELEdBQUcsRUFBRSxDQUMzRCxDQUFDO1lBQ0YsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgT2JzZXJ2YXRpb25FbnRpdHkgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LW9ic2VydmF0aW9uLWV4dHJhY3Rvcic7XG5pbXBvcnQgeyBCaXRjb2luUnBjT2JzZXJ2YXRpb25FeHRyYWN0b3IgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2JpdGNvaW4tb2JzZXJ2YXRpb24tZXh0cmFjdG9yJztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuaW1wb3J0IHsgQmxvY2sgfSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXItaW50ZXJmYWNlcyc7XG5pbXBvcnQgYXhpb3MgZnJvbSAnQHJvc2VuLWNsaWVudHMvcmF0ZS1saW1pdGVkLWF4aW9zJztcblxuaW1wb3J0IHsgQWJzdHJhY3RSYXdEYXRhUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9hYnN0cmFjdFJhd0RhdGFQcm92aWRlcic7XG5pbXBvcnQgeyBScGNDb25uZWN0aW9uSW5mb0ludGVyZmFjZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIEJpdGNvaW5ScGNSYXdEYXRhUHJvdmlkZXIgZXh0ZW5kcyBBYnN0cmFjdFJhd0RhdGFQcm92aWRlciB7XG4gIHByb3RlY3RlZCBjbGllbnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsXG4gICAgcHJvdGVjdGVkIGV4dHJhY3RvcjogQml0Y29pblJwY09ic2VydmF0aW9uRXh0cmFjdG9yLFxuICAgIHJwY0Nvbm5lY3Rpb25JbmZvOiBScGNDb25uZWN0aW9uSW5mb0ludGVyZmFjZSxcbiAgICBwcm90ZWN0ZWQgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlcixcbiAgKSB7XG4gICAgc3VwZXIoJ2JpdGNvaW4nLCBkYXRhU291cmNlLCBsb2dnZXIpO1xuICAgIGNvbnN0IGF1dGggPVxuICAgICAgcnBjQ29ubmVjdGlvbkluZm8udXNlcm5hbWUgJiYgcnBjQ29ubmVjdGlvbkluZm8ucGFzc3dvcmRcbiAgICAgICAgPyB7XG4gICAgICAgICAgICB1c2VybmFtZTogcnBjQ29ubmVjdGlvbkluZm8udXNlcm5hbWUsXG4gICAgICAgICAgICBwYXNzd29yZDogcnBjQ29ubmVjdGlvbkluZm8ucGFzc3dvcmQsXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLmNsaWVudCA9IGF4aW9zLmNyZWF0ZSh7XG4gICAgICBiYXNlVVJMOiBycGNDb25uZWN0aW9uSW5mby51cmwsXG4gICAgICB0aW1lb3V0OiBycGNDb25uZWN0aW9uSW5mby50aW1lb3V0LFxuICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICBhdXRoOiBhdXRoLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb2Nlc3Mgb2JzZXJ2YXRpb24gYW5kIHdyaXRlIHJhd0RhdGFcbiAgICpcbiAgICogQHBhcmFtIG9ic2VydmF0aW9uXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IGRldGVybWluaW5nIHJlc3VsdCBvZiBwcm9jZXNzIGRvbmUgc3VjY2Vzc2Z1bGx5IG9yIG5vXG4gICAqL1xuICBwcm90ZWN0ZWQgcHJvY2Vzc09ic2VydmF0aW9uID0gYXN5bmMgKG9ic2VydmF0aW9uOiBPYnNlcnZhdGlvbkVudGl0eSkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBibG9jayA9IHsgaGVpZ2h0OiBvYnNlcnZhdGlvbi5oZWlnaHQsIGhhc2g6IG9ic2VydmF0aW9uLmJsb2NrIH07XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHRoaXMuY2xpZW50LnBvc3QoJycsIHtcbiAgICAgICAgbWV0aG9kOiAnZ2V0cmF3dHJhbnNhY3Rpb24nLFxuICAgICAgICBpZDogMCxcbiAgICAgICAgcGFyYW1zOiBbb2JzZXJ2YXRpb24uc291cmNlVHhJZCwgdHJ1ZV0sXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZXh0cmFjdG9yLnByb2Nlc3NUcmFuc2FjdGlvbnMoW3R4LmRhdGFdLCBibG9jayBhcyBCbG9jayk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihcbiAgICAgICAgYFByb2Nlc3Npbmcgb2Ygb2JzZXJ2YXRpb24gZm9yIGJpdGNvaW4tcnBjIGZhaWxlZDogJHtlcnJ9YCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9O1xufVxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0Y29pblJwY1Jhd0RhdGFQcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9wcm92aWRlcnMvYml0Y29pbi9iaXRjb2luUnBjUmF3RGF0YVByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBR3hHLE9BQU8sS0FBSyxNQUFNLG1DQUFtQyxDQUFDO0FBRXRELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR3hFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx1QkFBOEM7SUFJL0U7SUFDQTtJQUlBO0lBUkYsTUFBTSxDQUFDO0lBRWpCLFlBQ1ksVUFBc0IsRUFDdEIsU0FFNkIsRUFDdkMsaUJBQTZDLEVBQ25DLE1BQXNCO1FBRWhDLE1BQU0sS0FBSyxHQUNULFNBQVMsWUFBWSxtQ0FBbUM7WUFDdEQsQ0FBQyxDQUFDLGVBQWU7WUFDakIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoQixLQUFLLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFYbEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUVvQjtRQUU3QixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQU9oQyxNQUFNLElBQUksR0FDUixpQkFBaUIsQ0FBQyxRQUFRLElBQUksaUJBQWlCLENBQUMsUUFBUTtZQUN0RCxDQUFDLENBQUM7Z0JBQ0UsUUFBUSxFQUFFLGlCQUFpQixDQUFDLFFBQVE7Z0JBQ3BDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxRQUFRO2FBQ3JDO1lBQ0gsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDekIsT0FBTyxFQUFFLGlCQUFpQixDQUFDLEdBQUc7WUFDOUIsT0FBTyxFQUFFLGlCQUFpQixDQUFDLE9BQU87WUFDbEMsT0FBTyxFQUFFLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFO1lBQy9DLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ08sbUJBQW1CLEdBQUcsS0FBSyxFQUNuQyxXQUE4QixFQUNJLEVBQUU7UUFDcEMsSUFBSSxDQUFDO1lBQ0gsT0FBTyxDQUNMLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFO2dCQUN6QixNQUFNLEVBQUUsbUJBQW1CO2dCQUMzQixFQUFFLEVBQUUsQ0FBQztnQkFDTCxNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQzthQUN2QyxDQUFDLENBQ0gsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO1FBQ2pCLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FDYiwwQkFBMEIsV0FBVyxDQUFDLFVBQVUsb0NBQW9DLElBQUksQ0FBQyxLQUFLLG1CQUFtQixHQUFHLEVBQUUsQ0FDdkgsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgT2JzZXJ2YXRpb25FbnRpdHkgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LW9ic2VydmF0aW9uLWV4dHJhY3Rvcic7XG5pbXBvcnQgeyBCaXRjb2luUnBjT2JzZXJ2YXRpb25FeHRyYWN0b3IgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2JpdGNvaW4tb2JzZXJ2YXRpb24tZXh0cmFjdG9yJztcbmltcG9ydCB7IEJpdGNvaW5SdW5lc1JwY09ic2VydmF0aW9uRXh0cmFjdG9yIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9iaXRjb2luLXJ1bmVzLW9ic2VydmF0aW9uLWV4dHJhY3Rvcic7XG5pbXBvcnQgeyBCaXRjb2luUnBjVHJhbnNhY3Rpb24gfSBmcm9tICdAcm9zZW4tYnJpZGdlL2JpdGNvaW4tc2Nhbm5lcic7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9leHRlbmRlZC10eXBlb3JtJztcbmltcG9ydCBheGlvcyBmcm9tICdAcm9zZW4tY2xpZW50cy9yYXRlLWxpbWl0ZWQtYXhpb3MnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFJhd0RhdGFQcm92aWRlciB9IGZyb20gJy4uLy4uL2Fic3RyYWN0UmF3RGF0YVByb3ZpZGVyJztcbmltcG9ydCB7IFJwY0Nvbm5lY3Rpb25JbmZvSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgQml0Y29pblJwY1Jhd0RhdGFQcm92aWRlciBleHRlbmRzIEFic3RyYWN0UmF3RGF0YVByb3ZpZGVyPEJpdGNvaW5ScGNUcmFuc2FjdGlvbj4ge1xuICBwcm90ZWN0ZWQgY2xpZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIHByb3RlY3RlZCBleHRyYWN0b3I6XG4gICAgICB8IEJpdGNvaW5ScGNPYnNlcnZhdGlvbkV4dHJhY3RvclxuICAgICAgfCBCaXRjb2luUnVuZXNScGNPYnNlcnZhdGlvbkV4dHJhY3RvcixcbiAgICBycGNDb25uZWN0aW9uSW5mbzogUnBjQ29ubmVjdGlvbkluZm9JbnRlcmZhY2UsXG4gICAgcHJvdGVjdGVkIGxvZ2dlcjogQWJzdHJhY3RMb2dnZXIsXG4gICkge1xuICAgIGNvbnN0IGNoYWluID1cbiAgICAgIGV4dHJhY3RvciBpbnN0YW5jZW9mIEJpdGNvaW5SdW5lc1JwY09ic2VydmF0aW9uRXh0cmFjdG9yXG4gICAgICAgID8gJ2JpdGNvaW4tcnVuZXMnXG4gICAgICAgIDogJ2JpdGNvaW4nO1xuICAgIHN1cGVyKGNoYWluLCBkYXRhU291cmNlLCBleHRyYWN0b3IsIGxvZ2dlcik7XG4gICAgY29uc3QgYXV0aCA9XG4gICAgICBycGNDb25uZWN0aW9uSW5mby51c2VybmFtZSAmJiBycGNDb25uZWN0aW9uSW5mby5wYXNzd29yZFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIHVzZXJuYW1lOiBycGNDb25uZWN0aW9uSW5mby51c2VybmFtZSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBycGNDb25uZWN0aW9uSW5mby5wYXNzd29yZCxcbiAgICAgICAgICB9XG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIHRoaXMuY2xpZW50ID0gYXhpb3MuY3JlYXRlKHtcbiAgICAgIGJhc2VVUkw6IHJwY0Nvbm5lY3Rpb25JbmZvLnVybCxcbiAgICAgIHRpbWVvdXQ6IHJwY0Nvbm5lY3Rpb25JbmZvLnRpbWVvdXQsXG4gICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSxcbiAgICAgIGF1dGg6IGF1dGgsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogZmV0Y2ggYml0Y29pbiB0cmFuc2FjdGlvbnMgcmVsYXRlZCB0byB0aGUgaW5wdXQgb2JzZXJ2YXRpb24gcGFyYW1ldGVyXG4gICAqXG4gICAqIEBwYXJhbSBvYnNlcnZhdGlvblxuICAgKiBAcmV0dXJucyB7IFByb21pc2U8Qml0Y29pblJwY1RyYW5zYWN0aW9uW10+IH1cbiAgICovXG4gIHByb3RlY3RlZCBmZXRjaE9ic2VydmF0aW9uVHhzID0gYXN5bmMgKFxuICAgIG9ic2VydmF0aW9uOiBPYnNlcnZhdGlvbkVudGl0eSxcbiAgKTogUHJvbWlzZTxCaXRjb2luUnBjVHJhbnNhY3Rpb25bXT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBhd2FpdCB0aGlzLmNsaWVudC5wb3N0KCcnLCB7XG4gICAgICAgICAgbWV0aG9kOiAnZ2V0cmF3dHJhbnNhY3Rpb24nLFxuICAgICAgICAgIGlkOiAwLFxuICAgICAgICAgIHBhcmFtczogW29ic2VydmF0aW9uLnNvdXJjZVR4SWQsIHRydWVdLFxuICAgICAgICB9KVxuICAgICAgKS5kYXRhPy5yZXN1bHQ7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBGZXRjaCB0cmFuc2FjdGlvbnMgYnkgWyR7b2JzZXJ2YXRpb24uc291cmNlVHhJZH1dIGlkIG9mIHJlbGF0ZWQgb2JzZXJ2YXRpb24gZm9yIFske3RoaXMuY2hhaW59XSBjaGFpbiBmYWlsZWQ6ICR7ZXJyfWAsXG4gICAgICApO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
@@ -1,2 +1,3 @@
1
1
  export { BitcoinRpcRawDataProvider } from './bitcoinRpcRawDataProvider';
2
+ export { BitcoinEsploraRawDataProvider } from './bitcoinEsploraRawDataProvider';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/providers/bitcoin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/providers/bitcoin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { BitcoinRpcRawDataProvider } from './bitcoinRpcRawDataProvider';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvcHJvdmlkZXJzL2JpdGNvaW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBCaXRjb2luUnBjUmF3RGF0YVByb3ZpZGVyIH0gZnJvbSAnLi9iaXRjb2luUnBjUmF3RGF0YVByb3ZpZGVyJztcbiJdfQ==
2
+ export { BitcoinEsploraRawDataProvider } from './bitcoinEsploraRawDataProvider';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvcHJvdmlkZXJzL2JpdGNvaW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0saUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBCaXRjb2luUnBjUmF3RGF0YVByb3ZpZGVyIH0gZnJvbSAnLi9iaXRjb2luUnBjUmF3RGF0YVByb3ZpZGVyJztcbmV4cG9ydCB7IEJpdGNvaW5Fc3Bsb3JhUmF3RGF0YVByb3ZpZGVyIH0gZnJvbSAnLi9iaXRjb2luRXNwbG9yYVJhd0RhdGFQcm92aWRlcic7XG4iXX0=
@@ -3,8 +3,8 @@ import { ObservationEntity } from '@rosen-bridge/abstract-observation-extractor'
3
3
  import { CardanoKoiosObservationExtractor } from '@rosen-bridge/cardano-observation-extractor';
4
4
  import { DataSource } from '@rosen-bridge/extended-typeorm';
5
5
  import { AbstractRawDataProvider } from '../../abstractRawDataProvider';
6
- import { ConnectionByAuthInfoInterface } from '../../types';
7
- export declare class CardanoKoiosRawDataProvider extends AbstractRawDataProvider {
6
+ import { ConnectionByAuthInfoInterface, KoiosTransaction } from '../../types';
7
+ export declare class CardanoKoiosRawDataProvider extends AbstractRawDataProvider<KoiosTransaction> {
8
8
  protected dataSource: DataSource;
9
9
  protected extractor: CardanoKoiosObservationExtractor;
10
10
  protected logger: AbstractLogger;
@@ -98,11 +98,11 @@ export declare class CardanoKoiosRawDataProvider extends AbstractRawDataProvider
98
98
  };
99
99
  constructor(dataSource: DataSource, extractor: CardanoKoiosObservationExtractor, koiosConnectionInfo: ConnectionByAuthInfoInterface, logger: AbstractLogger);
100
100
  /**
101
- * Process observation and write rawData
101
+ * fetch cardano-koios transactions related to the input observation parameter
102
102
  *
103
103
  * @param observation
104
- * @return {boolean} determining result of process done successfully or no
104
+ * @returns { Promise<KoiosTransaction[]> }
105
105
  */
106
- protected processObservation: (observation: ObservationEntity) => Promise<boolean>;
106
+ protected fetchObservationTxs: (observation: ObservationEntity) => Promise<KoiosTransaction[] | undefined>;
107
107
  }
108
108
  //# sourceMappingURL=cardanoKoiosRawDataProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cardanoKoiosRawDataProvider.d.ts","sourceRoot":"","sources":["../../../lib/providers/cardano/cardanoKoiosRawDataProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,gCAAgC,EAAE,MAAM,6CAA6C,CAAC;AAC/F,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAK5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAE5D,qBAAa,2BAA4B,SAAQ,uBAAuB;IAIpE,SAAS,CAAC,UAAU,EAAE,UAAU;IAChC,SAAS,CAAC,SAAS,EAAE,gCAAgC;IAErD,SAAS,CAAC,MAAM,EAAE,cAAc;IANlC,SAAS,CAAC,MAAM;;;uBAXkD,CAAC;;;;;0BAO/B,CAAC;4BAGhC,CAAA;oCAIG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCA8CuwG,CAAC;;;;4BAAuY,CAAC;4BAA0G,CAAC;;;;+BAAuY,CAAC;;;;;;;;;;;;4BAAmwC,CAAC;kCAAgH,CAAC;gCAA0H,CAAC;;;;;;;;;;;MAjD3mL;gBAGL,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,gCAAgC,EACrD,mBAAmB,EAAE,6BAA6B,EACxC,MAAM,EAAE,cAAc;IASlC;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,GAAU,aAAa,iBAAiB,sBA0BlE;CACH"}
1
+ {"version":3,"file":"cardanoKoiosRawDataProvider.d.ts","sourceRoot":"","sources":["../../../lib/providers/cardano/cardanoKoiosRawDataProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,gCAAgC,EAAE,MAAM,6CAA6C,CAAC;AAC/F,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAI5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE9E,qBAAa,2BAA4B,SAAQ,uBAAuB,CAAC,gBAAgB,CAAC;IAItF,SAAS,CAAC,UAAU,EAAE,UAAU;IAChC,SAAS,CAAC,SAAS,EAAE,gCAAgC;IAErD,SAAS,CAAC,MAAM,EAAE,cAAc;IANlC,SAAS,CAAC,MAAM;;;uBAVkD,CAAC;;;;;0BAO9C,CAAC;4BAEsB,CAAC;oCAIf,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAwCw8G,CAAC;;;;4BAAuY,CAAC;4BAA0G,CAAC;;;;+BAAuY,CAAC;;;;;;;;;;;;4BAAmwC,CAAC;kCAAgH,CAAC;gCAA0H,CAAC;;;;;;;;;;;MA3Cl0L;gBAGL,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,gCAAgC,EACrD,mBAAmB,EAAE,6BAA6B,EACxC,MAAM,EAAE,cAAc;IASlC;;;;;OAKG;IACH,SAAS,CAAC,mBAAmB,GAC3B,aAAa,iBAAiB,KAC7B,OAAO,CAAC,gBAAgB,EAAE,GAAG,SAAS,CAAC,CAkBxC;CACH"}