@rosen-bridge/ergo-observation-extractor 0.1.1 → 0.2.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,41 @@
1
1
  # @rosen-bridge/ergo-observation-extractor
2
2
 
3
+ ## 0.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - The observation extractor have been updated to follow the format defined in `abstract-observation-extractor`
8
+ - Update rosen-extractor version to the 10.1.0
9
+
10
+ ### Patch Changes
11
+
12
+ - Fix package-lock and move typescript and types/node into root
13
+ - Update eslint and plugins:
14
+ - Apply new rules such as sort imports and file name
15
+ - Update dependencies
16
+ - @rosen-bridge/extended-typeorm@1.0.1
17
+ - @rosen-clients/rate-limited-axios@1.1.0
18
+ - @rosen-bridge/rosen-extractor@10.1.1
19
+ - @rosen-bridge/tokens@4.0.1
20
+ - @rosen-bridge/abstract-logger@3.0.1
21
+ - @rosen-bridge/json-bigint@1.1.0
22
+ - @rosen-clients/ergo-explorer@2.1.0
23
+ - @rosen-clients/ergo-node@3.1.0
24
+ - @rosen-bridge/abstract-observation-extractor@0.2.0
25
+ - @rosen-bridge/scanner-interfaces@0.2.1
26
+
27
+ ## 0.1.2
28
+
29
+ ### Patch Changes
30
+
31
+ - Update dependencies
32
+ - @rosen-bridge/abstract-observation-extractor@0.1.2
33
+ - @rosen-bridge/abstract-extractor@2.1.1
34
+ - @rosen-bridge/extended-typeorm@1.0.0
35
+ - @rosen-bridge/tokens@4.0.0
36
+ - @rosen-bridge/rosen-extractor@10.0.0
37
+ - @rosen-bridge/abstract-logger@3.0.0
38
+
3
39
  ## 0.1.1
4
40
 
5
41
  ### Patch Changes
@@ -1,34 +1,22 @@
1
- import { DataSource } from '@rosen-bridge/extended-typeorm';
2
1
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
3
- import { TokenMap } from '@rosen-bridge/tokens';
2
+ import { AbstractObservationExtractor } from '@rosen-bridge/abstract-observation-extractor';
3
+ import { DataSource } from '@rosen-bridge/extended-typeorm';
4
4
  import { Block, Transaction } from '@rosen-bridge/scanner-interfaces';
5
- import { AbstractExtractor } from '@rosen-bridge/abstract-extractor';
6
- export declare class ErgoObservationExtractor extends AbstractExtractor<Transaction> {
7
- readonly logger: AbstractLogger;
8
- private readonly actions;
9
- private readonly extractor;
10
- static readonly FROM_CHAIN: string;
11
- constructor(dataSource: DataSource, tokens: TokenMap, address: string, logger?: AbstractLogger);
5
+ import { TokenMap } from '@rosen-bridge/tokens';
6
+ export declare class ErgoObservationExtractor extends AbstractObservationExtractor<Transaction> {
7
+ readonly FROM_CHAIN: string;
8
+ constructor(lockAddress: string, dataSource: DataSource, tokens: TokenMap, logger?: AbstractLogger);
12
9
  /**
13
10
  * get Id for current extractor
14
11
  */
15
12
  getId: () => string;
16
13
  /**
17
- * gets block id and transactions corresponding to the block and saves if they are valid rosen
18
- * transactions and in case of success return true and in case of failure returns false
19
- * @param txs
20
- * @param block
21
- */
22
- processTransactions: (txs: Array<Transaction>, block: Block) => Promise<boolean>;
23
- /**
24
- * fork one block and remove all stored information for this block
25
- * @param hash: block hash
14
+ * gets transaction id from TransactionType
26
15
  */
27
- forkBlock: (hash: string) => Promise<void>;
16
+ getTxId: (tx: Transaction) => string;
28
17
  /**
29
- * Extractor box initialization
30
- * No action needed in cardano extractors
18
+ * Filter transactions before processing
31
19
  */
32
- initializeBoxes: () => Promise<void>;
20
+ protected preprocessTransactions: (txs: Array<Transaction>, block: Block) => Transaction[];
33
21
  }
34
22
  //# sourceMappingURL=ergoExtractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ergoExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/ergoExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAKrE,qBAAa,wBAAyB,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IAC1E,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IACnD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAU;gBAG1C,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,cAAc;IAQzB;;OAEG;IACH,KAAK,eAAsC;IAE3C;;;;;OAKG;IACH,mBAAmB,GACjB,KAAK,KAAK,CAAC,WAAW,CAAC,EACvB,OAAO,KAAK,KACX,OAAO,CAAC,OAAO,CAAC,CAwDjB;IAEF;;;OAGG;IACH,SAAS,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAE7C;IAEF;;;OAGG;IACH,eAAe,sBAEb;CACH"}
1
+ {"version":3,"file":"ergoExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/ergoExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,8CAA8C,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIhD,qBAAa,wBAAyB,SAAQ,4BAA4B,CAAC,WAAW,CAAC;IACrF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAU;gBAGnC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,QAAQ,EAChB,MAAM,CAAC,EAAE,cAAc;IAUzB;;OAEG;IACH,KAAK,eAAsC;IAE3C;;OAEG;IACH,OAAO,GAAI,IAAI,WAAW,YAAW;IAErC;;OAEG;IACH,SAAS,CAAC,sBAAsB,GAC9B,KAAK,KAAK,CAAC,WAAW,CAAC,EACvB,OAAO,KAAK,mBAiBZ;CACH"}
@@ -1,92 +1,34 @@
1
- import { Buffer } from 'buffer';
2
- import { blake2b } from 'blakejs';
3
- import { DummyLogger } from '@rosen-bridge/abstract-logger';
1
+ import { AbstractObservationExtractor } from '@rosen-bridge/abstract-observation-extractor';
4
2
  import { ErgoNodeRosenExtractor } from '@rosen-bridge/rosen-extractor';
5
- import { AbstractExtractor } from '@rosen-bridge/abstract-extractor';
6
- import { ObservationEntityAction } from '@rosen-bridge/abstract-observation-extractor';
7
3
  import { NUMBER_OF_BLOCKS_PER_YEAR } from '../const';
8
- export class ErgoObservationExtractor extends AbstractExtractor {
9
- logger;
10
- actions;
11
- extractor;
12
- static FROM_CHAIN = 'ergo';
13
- constructor(dataSource, tokens, address, logger) {
14
- super();
15
- this.logger = logger ? logger : new DummyLogger();
16
- this.actions = new ObservationEntityAction(dataSource, this.logger);
17
- this.extractor = new ErgoNodeRosenExtractor(address, tokens, this.logger);
4
+ export class ErgoObservationExtractor extends AbstractObservationExtractor {
5
+ FROM_CHAIN = 'ergo';
6
+ constructor(lockAddress, dataSource, tokens, logger) {
7
+ super(dataSource, tokens, new ErgoNodeRosenExtractor(lockAddress, tokens, logger), logger);
18
8
  }
19
9
  /**
20
10
  * get Id for current extractor
21
11
  */
22
12
  getId = () => 'ergo-observation-extractor';
23
13
  /**
24
- * gets block id and transactions corresponding to the block and saves if they are valid rosen
25
- * transactions and in case of success return true and in case of failure returns false
26
- * @param txs
27
- * @param block
14
+ * gets transaction id from TransactionType
28
15
  */
29
- processTransactions = (txs, block) => {
30
- return new Promise((resolve, reject) => {
31
- try {
32
- const observations = [];
33
- txs.forEach((transaction) => {
34
- for (let i = 0; i < transaction.outputs.length; i++) {
35
- const box = transaction.outputs[i];
36
- if (block.height - Number(box.creationHeight) >
37
- NUMBER_OF_BLOCKS_PER_YEAR) {
38
- this.logger.debug(`Skipping tx [${transaction.id}], box [${box.boxId}] creation_height [${box.creationHeight}] is more than a year ago [currentHeight: ${block.height}]`);
39
- return;
40
- }
41
- }
42
- const data = this.extractor.get(transaction);
43
- if (data) {
44
- const requestId = Buffer.from(blake2b(transaction.id, undefined, 32)).toString('hex');
45
- observations.push({
46
- fromChain: ErgoObservationExtractor.FROM_CHAIN,
47
- toChain: data.toChain,
48
- networkFee: data.networkFee,
49
- bridgeFee: data.bridgeFee,
50
- amount: data.amount,
51
- sourceChainTokenId: data.sourceChainTokenId,
52
- targetChainTokenId: data.targetChainTokenId,
53
- sourceTxId: data.sourceTxId,
54
- sourceBlockId: block.hash,
55
- requestId: requestId,
56
- toAddress: data.toAddress,
57
- fromAddress: data.fromAddress,
58
- });
59
- }
60
- });
61
- this.actions
62
- .storeObservations(observations, block, this.getId())
63
- .then((status) => {
64
- resolve(status);
65
- })
66
- .catch((e) => {
67
- this.logger.error(`An error uncached exception occurred during store ergo observation: ${e}`);
68
- reject(e);
69
- });
70
- }
71
- catch (e) {
72
- this.logger.error(`An error occurred while saving block ${block}: [${e}]`);
73
- reject(e);
74
- }
75
- });
76
- };
16
+ getTxId = (tx) => tx.id;
77
17
  /**
78
- * fork one block and remove all stored information for this block
79
- * @param hash: block hash
18
+ * Filter transactions before processing
80
19
  */
81
- forkBlock = async (hash) => {
82
- await this.actions.deleteBlockObservation(hash, this.getId());
83
- };
84
- /**
85
- * Extractor box initialization
86
- * No action needed in cardano extractors
87
- */
88
- initializeBoxes = async () => {
89
- return;
20
+ preprocessTransactions = (txs, block) => {
21
+ return txs.filter((transaction) => {
22
+ for (let i = 0; i < transaction.outputs.length; i++) {
23
+ const box = transaction.outputs[i];
24
+ if (block.height - Number(box.creationHeight) >
25
+ NUMBER_OF_BLOCKS_PER_YEAR) {
26
+ this.logger.debug(`Skipping tx [${transaction.id}], box [${box.boxId}] creation_height [${box.creationHeight}] is more than a year ago [currentHeight: ${block.height}]`);
27
+ return false;
28
+ }
29
+ }
30
+ return true;
31
+ });
90
32
  };
91
33
  }
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJnb0V4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9leHRyYWN0b3IvZXJnb0V4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFckQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGlCQUE4QjtJQUNqRSxNQUFNLENBQWlCO0lBQ2YsT0FBTyxDQUEwQjtJQUNqQyxTQUFTLENBQXlCO0lBQ25ELE1BQU0sQ0FBVSxVQUFVLEdBQVcsTUFBTSxDQUFDO0lBRTVDLFlBQ0UsVUFBc0IsRUFDdEIsTUFBZ0IsRUFDaEIsT0FBZSxFQUNmLE1BQXVCO1FBRXZCLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksdUJBQXVCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksc0JBQXNCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVEOztPQUVHO0lB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Q0FBQyxDQUFDO1lBQ1osQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUY7OztPQUdHO0lBQ0gsU0FBUyxHQUFHLEtBQUssRUFBRSxJQUFZLEVBQWlCLEVBQUU7UUFDaEQsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDLENBQUM7SUFFRjs7O09BR0c7SUFDSCxlQUFlLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDM0IsT0FBTztJQUNULENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJztcbmltcG9ydCB7IGJsYWtlMmIgfSBmcm9tICdibGFrZWpzJztcbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyLCBEdW1teUxvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7IFRva2VuTWFwIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS90b2tlbnMnO1xuaW1wb3J0IHsgRXJnb05vZGVSb3NlbkV4dHJhY3RvciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvcm9zZW4tZXh0cmFjdG9yJztcbmltcG9ydCB7IEJsb2NrLCBUcmFuc2FjdGlvbiB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFic3RyYWN0RXh0cmFjdG9yIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1leHRyYWN0b3InO1xuaW1wb3J0IHsgRXh0cmFjdGVkT2JzZXJ2YXRpb24gfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LW9ic2VydmF0aW9uLWV4dHJhY3Rvcic7XG5pbXBvcnQgeyBPYnNlcnZhdGlvbkVudGl0eUFjdGlvbiB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3Qtb2JzZXJ2YXRpb24tZXh0cmFjdG9yJztcbmltcG9ydCB7IE5VTUJFUl9PRl9CTE9DS1NfUEVSX1lFQVIgfSBmcm9tICcuLi9jb25zdCc7XG5cbmV4cG9ydCBjbGFzcyBFcmdvT2JzZXJ2YXRpb25FeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdEV4dHJhY3RvcjxUcmFuc2FjdGlvbj4ge1xuICByZWFkb25seSBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyO1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvbnM6IE9ic2VydmF0aW9uRW50aXR5QWN0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IGV4dHJhY3RvcjogRXJnb05vZGVSb3NlbkV4dHJhY3RvcjtcbiAgc3RhdGljIHJlYWRvbmx5IEZST01fQ0hBSU46IHN0cmluZyA9ICdlcmdvJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIHRva2VuczogVG9rZW5NYXAsXG4gICAgYWRkcmVzczogc3RyaW5nLFxuICAgIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyLFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyID8gbG9nZ2VyIDogbmV3IER1bW15TG9nZ2VyKCk7XG4gICAgdGhpcy5hY3Rpb25zID0gbmV3IE9ic2VydmF0aW9uRW50aXR5QWN0aW9uKGRhdGFTb3VyY2UsIHRoaXMubG9nZ2VyKTtcbiAgICB0aGlzLmV4dHJhY3RvciA9IG5ldyBFcmdvTm9kZVJvc2VuRXh0cmFjdG9yKGFkZHJlc3MsIHRva2VucywgdGhpcy5sb2dnZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBJZCBmb3IgY3VycmVudCBleHRyYWN0b3JcbiAgICovXG4gIGdldElkID0gKCkgPT4gJ2VyZ28tb2JzZXJ2YXRpb24tZXh0cmFjdG9yJztcblxuICAvKipcbiAgICogZ2V0cyBibG9jayBpZCBhbmQgdHJhbnNhY3Rpb25zIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGJsb2NrIGFuZCBzYXZlcyBpZiB0aGV5IGFyZSB2YWxpZCByb3NlblxuICAgKiAgdHJhbnNhY3Rpb25zIGFuZCBpbiBjYXNlIG9mIHN1Y2Nlc3MgcmV0dXJuIHRydWUgYW5kIGluIGNhc2Ugb2YgZmFpbHVyZSByZXR1cm5zIGZhbHNlXG4gICAqIEBwYXJhbSB0eHNcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqL1xuICBwcm9jZXNzVHJhbnNhY3Rpb25zID0gKFxuICAgIHR4czogQXJyYXk8VHJhbnNhY3Rpb24+LFxuICAgIGJsb2NrOiBCbG9jayxcbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG9ic2VydmF0aW9uczogQXJyYXk8RXh0cmFjdGVkT2JzZXJ2YXRpb24+ID0gW107XG4gICAgICAgIHR4cy5mb3JFYWNoKCh0cmFuc2FjdGlvbikgPT4ge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHJhbnNhY3Rpb24ub3V0cHV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgYm94ID0gdHJhbnNhY3Rpb24ub3V0cHV0c1tpXTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgYmxvY2suaGVpZ2h0IC0gTnVtYmVyKGJveC5jcmVhdGlvbkhlaWdodCkgPlxuICAgICAgICAgICAgICBOVU1CRVJfT0ZfQkxPQ0tTX1BFUl9ZRUFSXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgICAgYFNraXBwaW5nIHR4IFske3RyYW5zYWN0aW9uLmlkfV0sIGJveCBbJHtib3guYm94SWR9XSBjcmVhdGlvbl9oZWlnaHQgWyR7Ym94LmNyZWF0aW9uSGVpZ2h0fV0gaXMgbW9yZSB0aGFuIGEgeWVhciBhZ28gW2N1cnJlbnRIZWlnaHQ6ICR7YmxvY2suaGVpZ2h0fV1gLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmV4dHJhY3Rvci5nZXQodHJhbnNhY3Rpb24pO1xuICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0SWQgPSBCdWZmZXIuZnJvbShcbiAgICAgICAgICAgICAgYmxha2UyYih0cmFuc2FjdGlvbi5pZCwgdW5kZWZpbmVkLCAzMiksXG4gICAgICAgICAgICApLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgICAgICAgIG9ic2VydmF0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgZnJvbUNoYWluOiBFcmdvT2JzZXJ2YXRpb25FeHRyYWN0b3IuRlJPTV9DSEFJTixcbiAgICAgICAgICAgICAgdG9DaGFpbjogZGF0YS50b0NoYWluLFxuICAgICAgICAgICAgICBuZXR3b3JrRmVlOiBkYXRhLm5ldHdvcmtGZWUsXG4gICAgICAgICAgICAgIGJyaWRnZUZlZTogZGF0YS5icmlkZ2VGZWUsXG4gICAgICAgICAgICAgIGFtb3VudDogZGF0YS5hbW91bnQsXG4gICAgICAgICAgICAgIHNvdXJjZUNoYWluVG9rZW5JZDogZGF0YS5zb3VyY2VDaGFpblRva2VuSWQsXG4gICAgICAgICAgICAgIHRhcmdldENoYWluVG9rZW5JZDogZGF0YS50YXJnZXRDaGFpblRva2VuSWQsXG4gICAgICAgICAgICAgIHNvdXJjZVR4SWQ6IGRhdGEuc291cmNlVHhJZCxcbiAgICAgICAgICAgICAgc291cmNlQmxvY2tJZDogYmxvY2suaGFzaCxcbiAgICAgICAgICAgICAgcmVxdWVzdElkOiByZXF1ZXN0SWQsXG4gICAgICAgICAgICAgIHRvQWRkcmVzczogZGF0YS50b0FkZHJlc3MsXG4gICAgICAgICAgICAgIGZyb21BZGRyZXNzOiBkYXRhLmZyb21BZGRyZXNzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hY3Rpb25zXG4gICAgICAgICAgLnN0b3JlT2JzZXJ2YXRpb25zKG9ic2VydmF0aW9ucywgYmxvY2ssIHRoaXMuZ2V0SWQoKSlcbiAgICAgICAgICAudGhlbigoc3RhdHVzKSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKHN0YXR1cyk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFxuICAgICAgICAgICAgICBgQW4gZXJyb3IgdW5jYWNoZWQgZXhjZXB0aW9uIG9jY3VycmVkIGR1cmluZyBzdG9yZSBlcmdvIG9ic2VydmF0aW9uOiAke2V9YCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFxuICAgICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBzYXZpbmcgYmxvY2sgJHtibG9ja306IFske2V9XWAsXG4gICAgICAgICk7XG4gICAgICAgIHJlamVjdChlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogZm9yayBvbmUgYmxvY2sgYW5kIHJlbW92ZSBhbGwgc3RvcmVkIGluZm9ybWF0aW9uIGZvciB0aGlzIGJsb2NrXG4gICAqIEBwYXJhbSBoYXNoOiBibG9jayBoYXNoXG4gICAqL1xuICBmb3JrQmxvY2sgPSBhc3luYyAoaGFzaDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgYXdhaXQgdGhpcy5hY3Rpb25zLmRlbGV0ZUJsb2NrT2JzZXJ2YXRpb24oaGFzaCwgdGhpcy5nZXRJZCgpKTtcbiAgfTtcblxuICAvKipcbiAgICogRXh0cmFjdG9yIGJveCBpbml0aWFsaXphdGlvblxuICAgKiBObyBhY3Rpb24gbmVlZGVkIGluIGNhcmRhbm8gZXh0cmFjdG9yc1xuICAgKi9cbiAgaW5pdGlhbGl6ZUJveGVzID0gYXN5bmMgKCkgPT4ge1xuICAgIHJldHVybjtcbiAgfTtcbn1cbiJdfQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJnb0V4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9leHRyYWN0b3IvZXJnb0V4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUU1RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUl2RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFckQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLDRCQUF5QztJQUM1RSxVQUFVLEdBQVcsTUFBTSxDQUFDO0lBRXJDLFlBQ0UsV0FBbUIsRUFDbkIsVUFBc0IsRUFDdEIsTUFBZ0IsRUFDaEIsTUFBdUI7UUFFdkIsS0FBSyxDQUNILFVBQVUsRUFDVixNQUFNLEVBQ04sSUFBSSxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUN2RCxNQUFNLENBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztJQUUzQzs7T0FFRztJQUNILE9BQU8sR0FBRyxDQUFDLEVBQWUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUVyQzs7T0FFRztJQUNPLHNCQUFzQixHQUFHLENBQ2pDLEdBQXVCLEVBQ3ZCLEtBQVksRUFDWixFQUFFO1FBQ0YsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3BELE1BQU0sR0FBRyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLElBQ0UsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQztvQkFDekMseUJBQXlCLEVBQ3pCLENBQUM7b0JBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsZ0JBQWdCLFdBQVcsQ0FBQyxFQUFFLFdBQVcsR0FBRyxDQUFDLEtBQUssc0JBQXNCLEdBQUcsQ0FBQyxjQUFjLDZDQUE2QyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQ3ZKLENBQUM7b0JBQ0YsT0FBTyxLQUFLLENBQUM7Z0JBQ2YsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7IEFic3RyYWN0T2JzZXJ2YXRpb25FeHRyYWN0b3IgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LW9ic2VydmF0aW9uLWV4dHJhY3Rvcic7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9leHRlbmRlZC10eXBlb3JtJztcbmltcG9ydCB7IEVyZ29Ob2RlUm9zZW5FeHRyYWN0b3IgfSBmcm9tICdAcm9zZW4tYnJpZGdlL3Jvc2VuLWV4dHJhY3Rvcic7XG5pbXBvcnQgeyBCbG9jaywgVHJhbnNhY3Rpb24gfSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXItaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBUb2tlbk1hcCB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvdG9rZW5zJztcblxuaW1wb3J0IHsgTlVNQkVSX09GX0JMT0NLU19QRVJfWUVBUiB9IGZyb20gJy4uL2NvbnN0JztcblxuZXhwb3J0IGNsYXNzIEVyZ29PYnNlcnZhdGlvbkV4dHJhY3RvciBleHRlbmRzIEFic3RyYWN0T2JzZXJ2YXRpb25FeHRyYWN0b3I8VHJhbnNhY3Rpb24+IHtcbiAgcmVhZG9ubHkgRlJPTV9DSEFJTjogc3RyaW5nID0gJ2VyZ28nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGxvY2tBZGRyZXNzOiBzdHJpbmcsXG4gICAgZGF0YVNvdXJjZTogRGF0YVNvdXJjZSxcbiAgICB0b2tlbnM6IFRva2VuTWFwLFxuICAgIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyLFxuICApIHtcbiAgICBzdXBlcihcbiAgICAgIGRhdGFTb3VyY2UsXG4gICAgICB0b2tlbnMsXG4gICAgICBuZXcgRXJnb05vZGVSb3NlbkV4dHJhY3Rvcihsb2NrQWRkcmVzcywgdG9rZW5zLCBsb2dnZXIpLFxuICAgICAgbG9nZ2VyLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IElkIGZvciBjdXJyZW50IGV4dHJhY3RvclxuICAgKi9cbiAgZ2V0SWQgPSAoKSA9PiAnZXJnby1vYnNlcnZhdGlvbi1leHRyYWN0b3InO1xuXG4gIC8qKlxuICAgKiBnZXRzIHRyYW5zYWN0aW9uIGlkIGZyb20gVHJhbnNhY3Rpb25UeXBlXG4gICAqL1xuICBnZXRUeElkID0gKHR4OiBUcmFuc2FjdGlvbikgPT4gdHguaWQ7XG5cbiAgLyoqXG4gICAqIEZpbHRlciB0cmFuc2FjdGlvbnMgYmVmb3JlIHByb2Nlc3NpbmdcbiAgICovXG4gIHByb3RlY3RlZCBwcmVwcm9jZXNzVHJhbnNhY3Rpb25zID0gKFxuICAgIHR4czogQXJyYXk8VHJhbnNhY3Rpb24+LFxuICAgIGJsb2NrOiBCbG9jayxcbiAgKSA9PiB7XG4gICAgcmV0dXJuIHR4cy5maWx0ZXIoKHRyYW5zYWN0aW9uKSA9PiB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRyYW5zYWN0aW9uLm91dHB1dHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgYm94ID0gdHJhbnNhY3Rpb24ub3V0cHV0c1tpXTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGJsb2NrLmhlaWdodCAtIE51bWJlcihib3guY3JlYXRpb25IZWlnaHQpID5cbiAgICAgICAgICBOVU1CRVJfT0ZfQkxPQ0tTX1BFUl9ZRUFSXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgYFNraXBwaW5nIHR4IFske3RyYW5zYWN0aW9uLmlkfV0sIGJveCBbJHtib3guYm94SWR9XSBjcmVhdGlvbl9oZWlnaHQgWyR7Ym94LmNyZWF0aW9uSGVpZ2h0fV0gaXMgbW9yZSB0aGFuIGEgeWVhciBhZ28gW2N1cnJlbnRIZWlnaHQ6ICR7YmxvY2suaGVpZ2h0fV1gLFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgfTtcbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rosen-bridge/ergo-observation-extractor",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "Event observation data extractor for Ergo chain",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,33 +17,32 @@
17
17
  ],
18
18
  "scripts": {
19
19
  "build": "tsc --build tsconfig.build.json",
20
+ "clean": "rimraf dist && rimraf tsconfig.build.tsbuildinfo",
20
21
  "coverage": "npm run test -- --coverage",
21
22
  "lint": "eslint --fix . && npm run prettify",
22
- "prettify": "prettier --write . --ignore-path ./.gitignore",
23
- "release": "npm run test -- --run && npm run build && npm publish --access public",
23
+ "lint:check": "eslint . && npm run prettify:check",
24
+ "prettify": "prettier --write . --ignore-path ../../../.gitignore",
25
+ "prettify:check": "prettier --check . --ignore-path ../../../.gitignore",
26
+ "release": "npm run test -- --run && npm run clean && npm run build && npm publish --access public",
24
27
  "test": "NODE_OPTIONS='--import tsx' vitest",
25
28
  "type-check": "tsc --noEmit"
26
29
  },
30
+ "dependencies": {
31
+ "@rosen-bridge/abstract-logger": "^3.0.1",
32
+ "@rosen-bridge/abstract-observation-extractor": "^0.2.0",
33
+ "@rosen-bridge/extended-typeorm": "^1.0.1",
34
+ "@rosen-bridge/rosen-extractor": "^10.1.1",
35
+ "@rosen-bridge/scanner-interfaces": "^0.2.1",
36
+ "@rosen-bridge/tokens": "^4.0.1"
37
+ },
27
38
  "devDependencies": {
28
- "@rosen-bridge/abstract-scanner": "^0.1.0",
29
- "@rosen-bridge/json-bigint": "^0.1.0",
30
- "@types/node": "^22.18.0",
39
+ "@rosen-bridge/abstract-scanner": "^0.2.1",
40
+ "@rosen-bridge/json-bigint": "^1.1.0",
31
41
  "@vitest/coverage-istanbul": "^3.1.4",
32
42
  "ergo-lib-wasm-nodejs": "^0.24.1",
33
43
  "tsx": "^4.19.4",
34
- "typescript": "^5.3.3",
35
44
  "vitest": "^3.1.4"
36
45
  },
37
- "dependencies": {
38
- "@rosen-bridge/abstract-extractor": "^2.1.0",
39
- "@rosen-bridge/abstract-logger": "^2.0.1",
40
- "@rosen-bridge/abstract-observation-extractor": "^0.1.1",
41
- "@rosen-bridge/extended-typeorm": "^0.2.1",
42
- "@rosen-bridge/rosen-extractor": "^9.0.0",
43
- "@rosen-bridge/scanner-interfaces": "^0.2.0",
44
- "@rosen-bridge/tokens": "^3.1.1",
45
- "blakejs": "^1.2.1"
46
- },
47
46
  "engines": {
48
47
  "node": ">=22.18.0"
49
48
  }