@rosen-bridge/evm-address-tx-extractor 0.1.8 → 1.0.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 (35) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/actions/db.d.ts.map +1 -1
  3. package/dist/actions/db.js +47 -52
  4. package/dist/entities/AddressTxsEntity.d.ts +9 -8
  5. package/dist/entities/AddressTxsEntity.d.ts.map +1 -1
  6. package/dist/entities/AddressTxsEntity.js +51 -77
  7. package/dist/extractors/EvmTxExtractor.d.ts +27 -35
  8. package/dist/extractors/EvmTxExtractor.d.ts.map +1 -1
  9. package/dist/extractors/EvmTxExtractor.js +73 -54
  10. package/dist/index.js +1 -1
  11. package/dist/interfaces/types.d.ts +10 -5
  12. package/dist/interfaces/types.d.ts.map +1 -1
  13. package/dist/interfaces/types.js +6 -2
  14. package/dist/migrations/index.d.ts.map +1 -1
  15. package/dist/migrations/index.js +5 -3
  16. package/dist/migrations/postgres/1713694851290-migration.js +8 -8
  17. package/dist/migrations/postgres/1722346608595-migration.d.ts +7 -0
  18. package/dist/migrations/postgres/1722346608595-migration.d.ts.map +1 -0
  19. package/dist/migrations/postgres/1722346608595-migration.js +15 -0
  20. package/dist/migrations/sqlite/1713694799333-migration.js +8 -8
  21. package/dist/migrations/sqlite/1722346500068-migration.d.ts +7 -0
  22. package/dist/migrations/sqlite/1722346500068-migration.d.ts.map +1 -0
  23. package/dist/migrations/sqlite/1722346500068-migration.js +85 -0
  24. package/lib/actions/db.ts +2 -1
  25. package/lib/entities/AddressTxsEntity.ts +3 -0
  26. package/lib/extractors/EvmTxExtractor.ts +34 -26
  27. package/lib/interfaces/types.ts +6 -0
  28. package/lib/migrations/index.ts +4 -2
  29. package/lib/migrations/postgres/1722346608595-migration.ts +18 -0
  30. package/lib/migrations/sqlite/1722346500068-migration.ts +88 -0
  31. package/package.json +1 -1
  32. package/tests/actions/db.spec.ts +5 -1
  33. package/tests/extractor/EvmTxExtractor.spec.ts +26 -3
  34. package/tests/extractor/testData.ts +28 -21
  35. package/tsconfig.build.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @rosen-bridge/evm-address-tx-extractor
2
2
 
3
+ ## 1.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - change transaction type to TransactionResponse
8
+ - add status to AddressTxsEntity which represents if the transaction succeeded or failed
9
+
3
10
  ## 0.1.8
4
11
 
5
12
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../lib/actions/db.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAc,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAEzD,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAC1D,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;gBAEpB,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,cAAc;IAK3D;;;;OAIG;IACH,cAAc,YAAmB,MAAM,aAAa,MAAM,mBAYxD;IAEF;;;;;;OAMG;IACH,QAAQ,QACD,MAAM,WAAW,CAAC,SAChB,KAAK,aACD,MAAM,mBAsBjB;CACH"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../lib/actions/db.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAc,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAEzD,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAC1D,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;gBAEpB,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,cAAc;IAK3D;;;;OAIG;IACH,cAAc,YAAmB,MAAM,aAAa,MAAM,mBAYxD;IAEF;;;;;;OAMG;IACH,QAAQ,QACD,MAAM,WAAW,CAAC,SAChB,KAAK,aACD,MAAM,mBAuBjB;CACH"}
@@ -1,56 +1,51 @@
1
1
  import { AddressTxsEntity } from '../entities/AddressTxsEntity';
2
2
  import { DummyLogger } from '@rosen-bridge/abstract-logger';
3
3
  export class TxAction {
4
- repository;
5
- logger;
6
- constructor(dataSource, logger) {
7
- this.repository = dataSource.getRepository(AddressTxsEntity);
8
- this.logger = logger ? logger : new DummyLogger();
9
- }
10
- /**
11
- * remove all inserted transaction for specific block in specific extractor from database
12
- * @param blockId selected block id
13
- * @param extractor selected extractor
14
- */
15
- deleteBlockTxs = async (blockId, extractor) => {
16
- this.logger.info(
17
- `Deleting transactions of block ${blockId} and extractor ${extractor}`,
18
- );
19
- await this.repository
20
- .createQueryBuilder()
21
- .delete()
22
- .where('extractor = :extractor AND blockId = :blockId', {
23
- blockId: blockId,
24
- extractor: extractor,
25
- })
26
- .execute();
27
- };
28
- /**
29
- * remove old list of transactions and
30
- * store a new list of transactions database for specific block and extractor
31
- * @param txs
32
- * @param block
33
- * @param extractor
34
- */
35
- storeTxs = async (txs, block, extractor) => {
36
- await this.deleteBlockTxs(block.hash, extractor);
37
- this.logger.info(
38
- `Inserting new transactions [${txs.map((tx) => tx.signedHash)}] in block ${block} and extractor ${extractor}`,
39
- );
40
- await this.repository
41
- .createQueryBuilder()
42
- .insert()
43
- .values(
44
- txs.map((tx) => ({
45
- unsignedHash: tx.unsignedHash,
46
- signedHash: tx.signedHash,
47
- nonce: tx.nonce,
48
- address: tx.address,
49
- blockId: block.hash,
50
- extractor: extractor,
51
- })),
52
- )
53
- .execute();
54
- };
4
+ repository;
5
+ logger;
6
+ constructor(dataSource, logger) {
7
+ this.repository = dataSource.getRepository(AddressTxsEntity);
8
+ this.logger = logger ? logger : new DummyLogger();
9
+ }
10
+ /**
11
+ * remove all inserted transaction for specific block in specific extractor from database
12
+ * @param blockId selected block id
13
+ * @param extractor selected extractor
14
+ */
15
+ deleteBlockTxs = async (blockId, extractor) => {
16
+ this.logger.info(`Deleting transactions of block ${blockId} and extractor ${extractor}`);
17
+ await this.repository
18
+ .createQueryBuilder()
19
+ .delete()
20
+ .where('extractor = :extractor AND blockId = :blockId', {
21
+ blockId: blockId,
22
+ extractor: extractor,
23
+ })
24
+ .execute();
25
+ };
26
+ /**
27
+ * remove old list of transactions and
28
+ * store a new list of transactions database for specific block and extractor
29
+ * @param txs
30
+ * @param block
31
+ * @param extractor
32
+ */
33
+ storeTxs = async (txs, block, extractor) => {
34
+ await this.deleteBlockTxs(block.hash, extractor);
35
+ this.logger.info(`Inserting new transactions [${txs.map((tx) => tx.signedHash)}] in block ${block.hash} and extractor ${extractor}`);
36
+ await this.repository
37
+ .createQueryBuilder()
38
+ .insert()
39
+ .values(txs.map((tx) => ({
40
+ unsignedHash: tx.unsignedHash,
41
+ signedHash: tx.signedHash,
42
+ nonce: tx.nonce,
43
+ address: tx.address,
44
+ blockId: block.hash,
45
+ extractor: extractor,
46
+ status: tx.status,
47
+ })))
48
+ .execute();
49
+ };
55
50
  }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYWN0aW9ucy9kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUdoRSxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRzVFLE1BQU0sT0FBTyxRQUFRO0lBQ0YsVUFBVSxDQUErQjtJQUNqRCxNQUFNLENBQWlCO0lBRWhDLFlBQVksVUFBc0IsRUFBRSxNQUF1QjtRQUN6RCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxHQUFHLEtBQUssRUFBRSxPQUFlLEVBQUUsU0FBaUIsRUFBRSxFQUFFO1FBQzVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLGtDQUFrQyxPQUFPLGtCQUFrQixTQUFTLEVBQUUsQ0FDdkUsQ0FBQztRQUNGLE1BQU0sSUFBSSxDQUFDLFVBQVU7YUFDbEIsa0JBQWtCLEVBQUU7YUFDcEIsTUFBTSxFQUFFO2FBQ1IsS0FBSyxDQUFDLCtDQUErQyxFQUFFO1lBQ3RELE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUM7YUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNmLENBQUMsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNILFFBQVEsR0FBRyxLQUFLLEVBQ2QsR0FBdUIsRUFDdkIsS0FBWSxFQUNaLFNBQWlCLEVBQ2pCLEVBQUU7UUFDRixNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZCwrQkFBK0IsR0FBRyxDQUFDLEdBQUcsQ0FDcEMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQ3RCLGNBQWMsS0FBSyxrQkFBa0IsU0FBUyxFQUFFLENBQ2xELENBQUM7UUFDRixNQUFNLElBQUksQ0FBQyxVQUFVO2FBQ2xCLGtCQUFrQixFQUFFO2FBQ3BCLE1BQU0sRUFBRTthQUNSLE1BQU0sQ0FDTCxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2YsWUFBWSxFQUFFLEVBQUUsQ0FBQyxZQUFZO1lBQzdCLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVTtZQUN6QixLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUs7WUFDZixPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU87WUFDbkIsT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ25CLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUMsQ0FBQyxDQUNKO2FBQ0EsT0FBTyxFQUFFLENBQUM7SUFDZixDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFkZHJlc3NUeHNFbnRpdHkgfSBmcm9tICcuLi9lbnRpdGllcy9BZGRyZXNzVHhzRW50aXR5JztcbmltcG9ydCB7IEV4dHJhY3RlZFR4IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90eXBlcyc7XG5pbXBvcnQgeyBEYXRhU291cmNlLCBSZXBvc2l0b3J5IH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciwgRHVtbXlMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBCbG9jayB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtZXh0cmFjdG9yJztcblxuZXhwb3J0IGNsYXNzIFR4QWN0aW9uIHtcbiAgcHJpdmF0ZSByZWFkb25seSByZXBvc2l0b3J5OiBSZXBvc2l0b3J5PEFkZHJlc3NUeHNFbnRpdHk+O1xuICByZWFkb25seSBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyKSB7XG4gICAgdGhpcy5yZXBvc2l0b3J5ID0gZGF0YVNvdXJjZS5nZXRSZXBvc2l0b3J5KEFkZHJlc3NUeHNFbnRpdHkpO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyID8gbG9nZ2VyIDogbmV3IER1bW15TG9nZ2VyKCk7XG4gIH1cblxuICAvKipcbiAgICogcmVtb3ZlIGFsbCBpbnNlcnRlZCB0cmFuc2FjdGlvbiBmb3Igc3BlY2lmaWMgYmxvY2sgaW4gc3BlY2lmaWMgZXh0cmFjdG9yIGZyb20gZGF0YWJhc2VcbiAgICogQHBhcmFtIGJsb2NrSWQgc2VsZWN0ZWQgYmxvY2sgaWRcbiAgICogQHBhcmFtIGV4dHJhY3RvciBzZWxlY3RlZCBleHRyYWN0b3JcbiAgICovXG4gIGRlbGV0ZUJsb2NrVHhzID0gYXN5bmMgKGJsb2NrSWQ6IHN0cmluZywgZXh0cmFjdG9yOiBzdHJpbmcpID0+IHtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgYERlbGV0aW5nIHRyYW5zYWN0aW9ucyBvZiBibG9jayAke2Jsb2NrSWR9IGFuZCBleHRyYWN0b3IgJHtleHRyYWN0b3J9YFxuICAgICk7XG4gICAgYXdhaXQgdGhpcy5yZXBvc2l0b3J5XG4gICAgICAuY3JlYXRlUXVlcnlCdWlsZGVyKClcbiAgICAgIC5kZWxldGUoKVxuICAgICAgLndoZXJlKCdleHRyYWN0b3IgPSA6ZXh0cmFjdG9yIEFORCBibG9ja0lkID0gOmJsb2NrSWQnLCB7XG4gICAgICAgIGJsb2NrSWQ6IGJsb2NrSWQsXG4gICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgfSlcbiAgICAgIC5leGVjdXRlKCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIHJlbW92ZSBvbGQgbGlzdCBvZiB0cmFuc2FjdGlvbnMgYW5kXG4gICAqIHN0b3JlIGEgbmV3IGxpc3Qgb2YgdHJhbnNhY3Rpb25zIGRhdGFiYXNlIGZvciBzcGVjaWZpYyBibG9jayBhbmQgZXh0cmFjdG9yXG4gICAqIEBwYXJhbSB0eHNcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHN0b3JlVHhzID0gYXN5bmMgKFxuICAgIHR4czogQXJyYXk8RXh0cmFjdGVkVHg+LFxuICAgIGJsb2NrOiBCbG9jayxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApID0+IHtcbiAgICBhd2FpdCB0aGlzLmRlbGV0ZUJsb2NrVHhzKGJsb2NrLmhhc2gsIGV4dHJhY3Rvcik7XG4gICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgIGBJbnNlcnRpbmcgbmV3IHRyYW5zYWN0aW9ucyBbJHt0eHMubWFwKFxuICAgICAgICAodHgpID0+IHR4LnNpZ25lZEhhc2hcbiAgICAgICl9XSBpbiBibG9jayAke2Jsb2NrfSBhbmQgZXh0cmFjdG9yICR7ZXh0cmFjdG9yfWBcbiAgICApO1xuICAgIGF3YWl0IHRoaXMucmVwb3NpdG9yeVxuICAgICAgLmNyZWF0ZVF1ZXJ5QnVpbGRlcigpXG4gICAgICAuaW5zZXJ0KClcbiAgICAgIC52YWx1ZXMoXG4gICAgICAgIHR4cy5tYXAoKHR4KSA9PiAoe1xuICAgICAgICAgIHVuc2lnbmVkSGFzaDogdHgudW5zaWduZWRIYXNoLFxuICAgICAgICAgIHNpZ25lZEhhc2g6IHR4LnNpZ25lZEhhc2gsXG4gICAgICAgICAgbm9uY2U6IHR4Lm5vbmNlLFxuICAgICAgICAgIGFkZHJlc3M6IHR4LmFkZHJlc3MsXG4gICAgICAgICAgYmxvY2tJZDogYmxvY2suaGFzaCxcbiAgICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgICAuZXhlY3V0ZSgpO1xuICB9O1xufVxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYWN0aW9ucy9kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUdoRSxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRzVFLE1BQU0sT0FBTyxRQUFRO0lBQ0YsVUFBVSxDQUErQjtJQUNqRCxNQUFNLENBQWlCO0lBRWhDLFlBQVksVUFBc0IsRUFBRSxNQUF1QjtRQUN6RCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxHQUFHLEtBQUssRUFBRSxPQUFlLEVBQUUsU0FBaUIsRUFBRSxFQUFFO1FBQzVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLGtDQUFrQyxPQUFPLGtCQUFrQixTQUFTLEVBQUUsQ0FDdkUsQ0FBQztRQUNGLE1BQU0sSUFBSSxDQUFDLFVBQVU7YUFDbEIsa0JBQWtCLEVBQUU7YUFDcEIsTUFBTSxFQUFFO2FBQ1IsS0FBSyxDQUFDLCtDQUErQyxFQUFFO1lBQ3RELE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUM7YUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNmLENBQUMsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNILFFBQVEsR0FBRyxLQUFLLEVBQ2QsR0FBdUIsRUFDdkIsS0FBWSxFQUNaLFNBQWlCLEVBQ2pCLEVBQUU7UUFDRixNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZCwrQkFBK0IsR0FBRyxDQUFDLEdBQUcsQ0FDcEMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQ3RCLGNBQWMsS0FBSyxDQUFDLElBQUksa0JBQWtCLFNBQVMsRUFBRSxDQUN2RCxDQUFDO1FBQ0YsTUFBTSxJQUFJLENBQUMsVUFBVTthQUNsQixrQkFBa0IsRUFBRTthQUNwQixNQUFNLEVBQUU7YUFDUixNQUFNLENBQ0wsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNmLFlBQVksRUFBRSxFQUFFLENBQUMsWUFBWTtZQUM3QixVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVU7WUFDekIsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLO1lBQ2YsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPO1lBQ25CLE9BQU8sRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNuQixTQUFTLEVBQUUsU0FBUztZQUNwQixNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU07U0FDbEIsQ0FBQyxDQUFDLENBQ0o7YUFDQSxPQUFPLEVBQUUsQ0FBQztJQUNmLENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWRkcmVzc1R4c0VudGl0eSB9IGZyb20gJy4uL2VudGl0aWVzL0FkZHJlc3NUeHNFbnRpdHknO1xuaW1wb3J0IHsgRXh0cmFjdGVkVHggfSBmcm9tICcuLi9pbnRlcmZhY2VzL3R5cGVzJztcbmltcG9ydCB7IERhdGFTb3VyY2UsIFJlcG9zaXRvcnkgfSBmcm9tICd0eXBlb3JtJztcbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyLCBEdW1teUxvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7IEJsb2NrIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1leHRyYWN0b3InO1xuXG5leHBvcnQgY2xhc3MgVHhBY3Rpb24ge1xuICBwcml2YXRlIHJlYWRvbmx5IHJlcG9zaXRvcnk6IFJlcG9zaXRvcnk8QWRkcmVzc1R4c0VudGl0eT47XG4gIHJlYWRvbmx5IGxvZ2dlcjogQWJzdHJhY3RMb2dnZXI7XG5cbiAgY29uc3RydWN0b3IoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSwgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIpIHtcbiAgICB0aGlzLnJlcG9zaXRvcnkgPSBkYXRhU291cmNlLmdldFJlcG9zaXRvcnkoQWRkcmVzc1R4c0VudGl0eSk7XG4gICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIgPyBsb2dnZXIgOiBuZXcgRHVtbXlMb2dnZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiByZW1vdmUgYWxsIGluc2VydGVkIHRyYW5zYWN0aW9uIGZvciBzcGVjaWZpYyBibG9jayBpbiBzcGVjaWZpYyBleHRyYWN0b3IgZnJvbSBkYXRhYmFzZVxuICAgKiBAcGFyYW0gYmxvY2tJZCBzZWxlY3RlZCBibG9jayBpZFxuICAgKiBAcGFyYW0gZXh0cmFjdG9yIHNlbGVjdGVkIGV4dHJhY3RvclxuICAgKi9cbiAgZGVsZXRlQmxvY2tUeHMgPSBhc3luYyAoYmxvY2tJZDogc3RyaW5nLCBleHRyYWN0b3I6IHN0cmluZykgPT4ge1xuICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICBgRGVsZXRpbmcgdHJhbnNhY3Rpb25zIG9mIGJsb2NrICR7YmxvY2tJZH0gYW5kIGV4dHJhY3RvciAke2V4dHJhY3Rvcn1gXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLnJlcG9zaXRvcnlcbiAgICAgIC5jcmVhdGVRdWVyeUJ1aWxkZXIoKVxuICAgICAgLmRlbGV0ZSgpXG4gICAgICAud2hlcmUoJ2V4dHJhY3RvciA9IDpleHRyYWN0b3IgQU5EIGJsb2NrSWQgPSA6YmxvY2tJZCcsIHtcbiAgICAgICAgYmxvY2tJZDogYmxvY2tJZCxcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICB9KVxuICAgICAgLmV4ZWN1dGUoKTtcbiAgfTtcblxuICAvKipcbiAgICogcmVtb3ZlIG9sZCBsaXN0IG9mIHRyYW5zYWN0aW9ucyBhbmRcbiAgICogc3RvcmUgYSBuZXcgbGlzdCBvZiB0cmFuc2FjdGlvbnMgZGF0YWJhc2UgZm9yIHNwZWNpZmljIGJsb2NrIGFuZCBleHRyYWN0b3JcbiAgICogQHBhcmFtIHR4c1xuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgc3RvcmVUeHMgPSBhc3luYyAoXG4gICAgdHhzOiBBcnJheTxFeHRyYWN0ZWRUeD4sXG4gICAgYmxvY2s6IEJsb2NrLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nXG4gICkgPT4ge1xuICAgIGF3YWl0IHRoaXMuZGVsZXRlQmxvY2tUeHMoYmxvY2suaGFzaCwgZXh0cmFjdG9yKTtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgYEluc2VydGluZyBuZXcgdHJhbnNhY3Rpb25zIFske3R4cy5tYXAoXG4gICAgICAgICh0eCkgPT4gdHguc2lnbmVkSGFzaFxuICAgICAgKX1dIGluIGJsb2NrICR7YmxvY2suaGFzaH0gYW5kIGV4dHJhY3RvciAke2V4dHJhY3Rvcn1gXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLnJlcG9zaXRvcnlcbiAgICAgIC5jcmVhdGVRdWVyeUJ1aWxkZXIoKVxuICAgICAgLmluc2VydCgpXG4gICAgICAudmFsdWVzKFxuICAgICAgICB0eHMubWFwKCh0eCkgPT4gKHtcbiAgICAgICAgICB1bnNpZ25lZEhhc2g6IHR4LnVuc2lnbmVkSGFzaCxcbiAgICAgICAgICBzaWduZWRIYXNoOiB0eC5zaWduZWRIYXNoLFxuICAgICAgICAgIG5vbmNlOiB0eC5ub25jZSxcbiAgICAgICAgICBhZGRyZXNzOiB0eC5hZGRyZXNzLFxuICAgICAgICAgIGJsb2NrSWQ6IGJsb2NrLmhhc2gsXG4gICAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgICAgc3RhdHVzOiB0eC5zdGF0dXMsXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgICAgLmV4ZWN1dGUoKTtcbiAgfTtcbn1cbiJdfQ==
@@ -1,10 +1,11 @@
1
1
  export declare class AddressTxsEntity {
2
- id: number;
3
- unsignedHash: string;
4
- signedHash: string;
5
- nonce: number;
6
- address: string;
7
- blockId: string;
8
- extractor: string;
2
+ id: number;
3
+ unsignedHash: string;
4
+ signedHash: string;
5
+ nonce: number;
6
+ address: string;
7
+ blockId: string;
8
+ extractor: string;
9
+ status: string;
9
10
  }
10
- //# sourceMappingURL=AddressTxsEntity.d.ts.map
11
+ //# sourceMappingURL=AddressTxsEntity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddressTxsEntity.d.ts","sourceRoot":"","sources":["../../lib/entities/AddressTxsEntity.ts"],"names":[],"mappings":"AAEA,qBACa,gBAAgB;IAE3B,EAAE,EAAE,MAAM,CAAC;IAGX,YAAY,EAAE,MAAM,CAAC;IAGrB,UAAU,EAAE,MAAM,CAAC;IAGnB,KAAK,EAAE,MAAM,CAAC;IAGd,OAAO,EAAE,MAAM,CAAC;IAGhB,OAAO,EAAE,MAAM,CAAC;IAGhB,SAAS,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"AddressTxsEntity.d.ts","sourceRoot":"","sources":["../../lib/entities/AddressTxsEntity.ts"],"names":[],"mappings":"AAEA,qBACa,gBAAgB;IAE3B,EAAE,EAAE,MAAM,CAAC;IAGX,YAAY,EAAE,MAAM,CAAC;IAGrB,UAAU,EAAE,MAAM,CAAC;IAGnB,KAAK,EAAE,MAAM,CAAC;IAGd,OAAO,EAAE,MAAM,CAAC;IAGhB,OAAO,EAAE,MAAM,CAAC;IAGhB,SAAS,EAAE,MAAM,CAAC;IAGlB,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -1,83 +1,57 @@
1
- var __decorate =
2
- (this && this.__decorate) ||
3
- function (decorators, target, key, desc) {
4
- var c = arguments.length,
5
- r =
6
- c < 3
7
- ? target
8
- : desc === null
9
- ? (desc = Object.getOwnPropertyDescriptor(target, key))
10
- : desc,
11
- d;
12
- if (typeof Reflect === 'object' && typeof Reflect.decorate === 'function')
13
- r = Reflect.decorate(decorators, target, key, desc);
14
- else
15
- for (var i = decorators.length - 1; i >= 0; i--)
16
- if ((d = decorators[i]))
17
- r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
19
- };
20
- var __metadata =
21
- (this && this.__metadata) ||
22
- function (k, v) {
23
- if (typeof Reflect === 'object' && typeof Reflect.metadata === 'function')
24
- return Reflect.metadata(k, v);
25
- };
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
26
10
  import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
27
11
  let AddressTxsEntity = class AddressTxsEntity {
28
- id;
29
- unsignedHash;
30
- signedHash;
31
- nonce;
32
- address;
33
- blockId;
34
- extractor;
12
+ id;
13
+ unsignedHash;
14
+ signedHash;
15
+ nonce;
16
+ address;
17
+ blockId;
18
+ extractor;
19
+ status;
35
20
  };
36
- __decorate(
37
- [
21
+ __decorate([
38
22
  PrimaryGeneratedColumn({ type: 'integer' }),
39
- __metadata('design:type', Number),
40
- ],
41
- AddressTxsEntity.prototype,
42
- 'id',
43
- void 0,
44
- );
45
- __decorate(
46
- [Column({ type: 'varchar' }), __metadata('design:type', String)],
47
- AddressTxsEntity.prototype,
48
- 'unsignedHash',
49
- void 0,
50
- );
51
- __decorate(
52
- [Column({ type: 'varchar' }), __metadata('design:type', String)],
53
- AddressTxsEntity.prototype,
54
- 'signedHash',
55
- void 0,
56
- );
57
- __decorate(
58
- [Column({ type: 'integer' }), __metadata('design:type', Number)],
59
- AddressTxsEntity.prototype,
60
- 'nonce',
61
- void 0,
62
- );
63
- __decorate(
64
- [Column({ type: 'varchar' }), __metadata('design:type', String)],
65
- AddressTxsEntity.prototype,
66
- 'address',
67
- void 0,
68
- );
69
- __decorate(
70
- [Column({ type: 'varchar' }), __metadata('design:type', String)],
71
- AddressTxsEntity.prototype,
72
- 'blockId',
73
- void 0,
74
- );
75
- __decorate(
76
- [Column({ type: 'varchar' }), __metadata('design:type', String)],
77
- AddressTxsEntity.prototype,
78
- 'extractor',
79
- void 0,
80
- );
81
- AddressTxsEntity = __decorate([Entity('address_txs_entity')], AddressTxsEntity);
23
+ __metadata("design:type", Number)
24
+ ], AddressTxsEntity.prototype, "id", void 0);
25
+ __decorate([
26
+ Column({ type: 'varchar' }),
27
+ __metadata("design:type", String)
28
+ ], AddressTxsEntity.prototype, "unsignedHash", void 0);
29
+ __decorate([
30
+ Column({ type: 'varchar' }),
31
+ __metadata("design:type", String)
32
+ ], AddressTxsEntity.prototype, "signedHash", void 0);
33
+ __decorate([
34
+ Column({ type: 'integer' }),
35
+ __metadata("design:type", Number)
36
+ ], AddressTxsEntity.prototype, "nonce", void 0);
37
+ __decorate([
38
+ Column({ type: 'varchar' }),
39
+ __metadata("design:type", String)
40
+ ], AddressTxsEntity.prototype, "address", void 0);
41
+ __decorate([
42
+ Column({ type: 'varchar' }),
43
+ __metadata("design:type", String)
44
+ ], AddressTxsEntity.prototype, "blockId", void 0);
45
+ __decorate([
46
+ Column({ type: 'varchar' }),
47
+ __metadata("design:type", String)
48
+ ], AddressTxsEntity.prototype, "extractor", void 0);
49
+ __decorate([
50
+ Column({ type: 'varchar' }),
51
+ __metadata("design:type", String)
52
+ ], AddressTxsEntity.prototype, "status", void 0);
53
+ AddressTxsEntity = __decorate([
54
+ Entity('address_txs_entity')
55
+ ], AddressTxsEntity);
82
56
  export { AddressTxsEntity };
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWRkcmVzc1R4c0VudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9lbnRpdGllcy9BZGRyZXNzVHhzRW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRzFELElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWdCO0lBRTNCLEVBQUUsQ0FBUztJQUdYLFlBQVksQ0FBUztJQUdyQixVQUFVLENBQVM7SUFHbkIsS0FBSyxDQUFTO0lBR2QsT0FBTyxDQUFTO0lBR2hCLE9BQU8sQ0FBUztJQUdoQixTQUFTLENBQVM7Q0FDbkIsQ0FBQTtBQW5CQztJQURDLHNCQUFzQixDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDOzs0Q0FDakM7QUFHWDtJQURDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzs7c0RBQ1A7QUFHckI7SUFEQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7O29EQUNUO0FBR25CO0lBREMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDOzsrQ0FDZDtBQUdkO0lBREMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDOztpREFDWjtBQUdoQjtJQURDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzs7aURBQ1o7QUFHaEI7SUFEQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7O21EQUNWO0FBcEJQLGdCQUFnQjtJQUQ1QixNQUFNLENBQUMsb0JBQW9CLENBQUM7R0FDaEIsZ0JBQWdCLENBcUI1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbHVtbiwgRW50aXR5LCBQcmltYXJ5R2VuZXJhdGVkQ29sdW1uIH0gZnJvbSAndHlwZW9ybSc7XG5cbkBFbnRpdHkoJ2FkZHJlc3NfdHhzX2VudGl0eScpXG5leHBvcnQgY2xhc3MgQWRkcmVzc1R4c0VudGl0eSB7XG4gIEBQcmltYXJ5R2VuZXJhdGVkQ29sdW1uKHsgdHlwZTogJ2ludGVnZXInIH0pXG4gIGlkOiBudW1iZXI7XG5cbiAgQENvbHVtbih7IHR5cGU6ICd2YXJjaGFyJyB9KVxuICB1bnNpZ25lZEhhc2g6IHN0cmluZztcblxuICBAQ29sdW1uKHsgdHlwZTogJ3ZhcmNoYXInIH0pXG4gIHNpZ25lZEhhc2g6IHN0cmluZztcblxuICBAQ29sdW1uKHsgdHlwZTogJ2ludGVnZXInIH0pXG4gIG5vbmNlOiBudW1iZXI7XG5cbiAgQENvbHVtbih7IHR5cGU6ICd2YXJjaGFyJyB9KVxuICBhZGRyZXNzOiBzdHJpbmc7XG5cbiAgQENvbHVtbih7IHR5cGU6ICd2YXJjaGFyJyB9KVxuICBibG9ja0lkOiBzdHJpbmc7XG5cbiAgQENvbHVtbih7IHR5cGU6ICd2YXJjaGFyJyB9KVxuICBleHRyYWN0b3I6IHN0cmluZztcbn1cbiJdfQ==
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWRkcmVzc1R4c0VudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9lbnRpdGllcy9BZGRyZXNzVHhzRW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRzFELElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWdCO0lBRTNCLEVBQUUsQ0FBUztJQUdYLFlBQVksQ0FBUztJQUdyQixVQUFVLENBQVM7SUFHbkIsS0FBSyxDQUFTO0lBR2QsT0FBTyxDQUFTO0lBR2hCLE9BQU8sQ0FBUztJQUdoQixTQUFTLENBQVM7SUFHbEIsTUFBTSxDQUFTO0NBQ2hCLENBQUE7QUF0QkM7SUFEQyxzQkFBc0IsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzs7NENBQ2pDO0FBR1g7SUFEQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7O3NEQUNQO0FBR3JCO0lBREMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDOztvREFDVDtBQUduQjtJQURDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzs7K0NBQ2Q7QUFHZDtJQURDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzs7aURBQ1o7QUFHaEI7SUFEQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7O2lEQUNaO0FBR2hCO0lBREMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDOzttREFDVjtBQUdsQjtJQURDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzs7Z0RBQ2I7QUF2QkosZ0JBQWdCO0lBRDVCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztHQUNoQixnQkFBZ0IsQ0F3QjVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sdW1uLCBFbnRpdHksIFByaW1hcnlHZW5lcmF0ZWRDb2x1bW4gfSBmcm9tICd0eXBlb3JtJztcblxuQEVudGl0eSgnYWRkcmVzc190eHNfZW50aXR5JylcbmV4cG9ydCBjbGFzcyBBZGRyZXNzVHhzRW50aXR5IHtcbiAgQFByaW1hcnlHZW5lcmF0ZWRDb2x1bW4oeyB0eXBlOiAnaW50ZWdlcicgfSlcbiAgaWQ6IG51bWJlcjtcblxuICBAQ29sdW1uKHsgdHlwZTogJ3ZhcmNoYXInIH0pXG4gIHVuc2lnbmVkSGFzaDogc3RyaW5nO1xuXG4gIEBDb2x1bW4oeyB0eXBlOiAndmFyY2hhcicgfSlcbiAgc2lnbmVkSGFzaDogc3RyaW5nO1xuXG4gIEBDb2x1bW4oeyB0eXBlOiAnaW50ZWdlcicgfSlcbiAgbm9uY2U6IG51bWJlcjtcblxuICBAQ29sdW1uKHsgdHlwZTogJ3ZhcmNoYXInIH0pXG4gIGFkZHJlc3M6IHN0cmluZztcblxuICBAQ29sdW1uKHsgdHlwZTogJ3ZhcmNoYXInIH0pXG4gIGJsb2NrSWQ6IHN0cmluZztcblxuICBAQ29sdW1uKHsgdHlwZTogJ3ZhcmNoYXInIH0pXG4gIGV4dHJhY3Rvcjogc3RyaW5nO1xuXG4gIEBDb2x1bW4oeyB0eXBlOiAndmFyY2hhcicgfSlcbiAgc3RhdHVzOiBzdHJpbmc7XG59XG4iXX0=
@@ -1,40 +1,32 @@
1
1
  import { DataSource } from 'typeorm';
2
2
  import { TxAction } from '../actions/db';
3
- import { Transaction } from 'ethers';
3
+ import { TransactionResponse } from 'ethers';
4
4
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
5
5
  import { AbstractExtractor, Block } from '@rosen-bridge/abstract-extractor';
6
- export declare class EvmTxExtractor extends AbstractExtractor<Transaction> {
7
- readonly logger: AbstractLogger;
8
- readonly action: TxAction;
9
- private readonly id;
10
- private readonly address;
11
- constructor(
12
- dataSource: DataSource,
13
- id: string,
14
- address: string,
15
- logger?: AbstractLogger,
16
- );
17
- /**
18
- * get Id for current extractor
19
- */
20
- getId: () => string;
21
- /**
22
- * gets block id and transactions corresponding to the block and saves all transaction ids in database
23
- * @param txs
24
- * @param block
25
- */
26
- processTransactions: (
27
- txs: Array<Transaction>,
28
- block: Block,
29
- ) => Promise<boolean>;
30
- /**
31
- * fork one block and remove all stored txId for this block
32
- * @param hash: block hash
33
- */
34
- forkBlock: (hash: string) => Promise<void>;
35
- /**
36
- * Initializes the database with older boxes related to the address
37
- */
38
- initializeBoxes: () => Promise<void>;
6
+ export declare class EvmTxExtractor extends AbstractExtractor<TransactionResponse> {
7
+ readonly logger: AbstractLogger;
8
+ readonly action: TxAction;
9
+ private readonly id;
10
+ private readonly address;
11
+ constructor(dataSource: DataSource, id: string, address: string, logger?: AbstractLogger);
12
+ /**
13
+ * get Id for current extractor
14
+ */
15
+ getId: () => string;
16
+ /**
17
+ * gets block id and transactions corresponding to the block and saves all transaction ids in database
18
+ * @param txs
19
+ * @param block
20
+ */
21
+ processTransactions: (txs: Array<TransactionResponse>, block: Block) => Promise<boolean>;
22
+ /**
23
+ * fork one block and remove all stored txId for this block
24
+ * @param hash: block hash
25
+ */
26
+ forkBlock: (hash: string) => Promise<void>;
27
+ /**
28
+ * Initializes the database with older boxes related to the address
29
+ */
30
+ initializeBoxes: () => Promise<void>;
39
31
  }
40
- //# sourceMappingURL=EvmTxExtractor.d.ts.map
32
+ //# sourceMappingURL=EvmTxExtractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EvmTxExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractors/EvmTxExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE5E,qBAAa,cAAe,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IAChE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAG/B,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,cAAkC;IAS5C;;OAEG;IACH,KAAK,eAAiB;IAEtB;;;;OAIG;IACH,mBAAmB,QACZ,MAAM,WAAW,CAAC,SAChB,KAAK,KACX,QAAQ,OAAO,CAAC,CA0BjB;IAEF;;;OAGG;IACH,SAAS,SAAgB,MAAM,KAAG,QAAQ,IAAI,CAAC,CAE7C;IAEF;;OAEG;IACH,eAAe,sBAEb;CACH"}
1
+ {"version":3,"file":"EvmTxExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractors/EvmTxExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAgC,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE5E,qBAAa,cAAe,SAAQ,iBAAiB,CAAC,mBAAmB,CAAC;IACxE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAG/B,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,cAAkC;IAS5C;;OAEG;IACH,KAAK,eAAiB;IAEtB;;;;OAIG;IACH,mBAAmB,QACZ,MAAM,mBAAmB,CAAC,SACxB,KAAK,KACX,QAAQ,OAAO,CAAC,CAkCjB;IAEF;;;OAGG;IACH,SAAS,SAAgB,MAAM,KAAG,QAAQ,IAAI,CAAC,CAE7C;IAEF;;OAEG;IACH,eAAe,sBAEb;CACH"}
@@ -1,59 +1,78 @@
1
1
  import { TxAction } from '../actions/db';
2
+ import { isCallException, Transaction } from 'ethers';
2
3
  import { DummyLogger } from '@rosen-bridge/abstract-logger';
4
+ import { EvmTxStatus } from '../interfaces/types';
3
5
  import { AbstractExtractor } from '@rosen-bridge/abstract-extractor';
4
6
  export class EvmTxExtractor extends AbstractExtractor {
5
- logger;
6
- action;
7
- id;
8
- address;
9
- constructor(dataSource, id, address, logger = new DummyLogger()) {
10
- super();
11
- this.id = id;
12
- this.address = address;
13
- this.logger = logger;
14
- this.action = new TxAction(dataSource, this.logger);
15
- }
16
- /**
17
- * get Id for current extractor
18
- */
19
- getId = () => this.id;
20
- /**
21
- * gets block id and transactions corresponding to the block and saves all transaction ids in database
22
- * @param txs
23
- * @param block
24
- */
25
- processTransactions = async (txs, block) => {
26
- const extractedTxs = txs.reduce((addressTxs, tx) => {
27
- if (tx.from === null) {
28
- throw Error('ImpossibleBehaviour: RPC transactions must have `from`.');
29
- }
30
- if (tx.hash === null) {
31
- throw Error('ImpossibleBehaviour: RPC transactions must have `hash`.');
32
- }
33
- if (tx.from === this.address)
34
- addressTxs.push({
35
- unsignedHash: tx.unsignedHash,
36
- signedHash: tx.hash,
37
- nonce: tx.nonce,
38
- address: tx.from,
39
- });
40
- return addressTxs;
41
- }, []);
42
- await this.action.storeTxs(extractedTxs, block, this.getId());
43
- return true;
44
- };
45
- /**
46
- * fork one block and remove all stored txId for this block
47
- * @param hash: block hash
48
- */
49
- forkBlock = async (hash) => {
50
- await this.action.deleteBlockTxs(hash, this.getId());
51
- };
52
- /**
53
- * Initializes the database with older boxes related to the address
54
- */
55
- initializeBoxes = async () => {
56
- return;
57
- };
7
+ logger;
8
+ action;
9
+ id;
10
+ address;
11
+ constructor(dataSource, id, address, logger = new DummyLogger()) {
12
+ super();
13
+ this.id = id;
14
+ this.address = address;
15
+ this.logger = logger;
16
+ this.action = new TxAction(dataSource, this.logger);
17
+ }
18
+ /**
19
+ * get Id for current extractor
20
+ */
21
+ getId = () => this.id;
22
+ /**
23
+ * gets block id and transactions corresponding to the block and saves all transaction ids in database
24
+ * @param txs
25
+ * @param block
26
+ */
27
+ processTransactions = async (txs, block) => {
28
+ const extractedTxs = [];
29
+ for (const txRes of txs) {
30
+ const tx = Transaction.from(txRes);
31
+ if (tx.from === null) {
32
+ throw Error('ImpossibleBehavior: RPC transactions must have `from`.');
33
+ }
34
+ if (tx.hash === null) {
35
+ throw Error('ImpossibleBehavior: RPC transactions must have `hash`.');
36
+ }
37
+ if (tx.from === this.address) {
38
+ let status;
39
+ try {
40
+ const result = await txRes.wait(0);
41
+ if (result)
42
+ status = EvmTxStatus.succeed;
43
+ else
44
+ throw Error(`Impossible behavior: Evm Tx [${txRes.hash}] is included in block [${block.hash}] but waiting resulted in null or undefined`);
45
+ }
46
+ catch (e) {
47
+ if (isCallException(e))
48
+ status = EvmTxStatus.failed;
49
+ else
50
+ throw e;
51
+ }
52
+ extractedTxs.push({
53
+ unsignedHash: tx.unsignedHash,
54
+ signedHash: tx.hash,
55
+ nonce: tx.nonce,
56
+ address: tx.from,
57
+ status: status,
58
+ });
59
+ }
60
+ }
61
+ await this.action.storeTxs(extractedTxs, block, this.getId());
62
+ return true;
63
+ };
64
+ /**
65
+ * fork one block and remove all stored txId for this block
66
+ * @param hash: block hash
67
+ */
68
+ forkBlock = async (hash) => {
69
+ await this.action.deleteBlockTxs(hash, this.getId());
70
+ };
71
+ /**
72
+ * Initializes the database with older boxes related to the address
73
+ */
74
+ initializeBoxes = async () => {
75
+ return;
76
+ };
58
77
  }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZtVHhFeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZXh0cmFjdG9ycy9Fdm1UeEV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFNUUsT0FBTyxFQUFFLGlCQUFpQixFQUFTLE1BQU0sa0NBQWtDLENBQUM7QUFFNUUsTUFBTSxPQUFPLGNBQWUsU0FBUSxpQkFBOEI7SUFDdkQsTUFBTSxDQUFpQjtJQUN2QixNQUFNLENBQVc7SUFDVCxFQUFFLENBQVM7SUFDWCxPQUFPLENBQVM7SUFFakMsWUFDRSxVQUFzQixFQUN0QixFQUFVLEVBQ1YsT0FBZSxFQUNmLFNBQXlCLElBQUksV0FBVyxFQUFFO1FBRTFDLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFFdEI7Ozs7T0FJRztJQUNILG1CQUFtQixHQUFHLEtBQUssRUFDekIsR0FBdUIsRUFDdkIsS0FBWSxFQUNNLEVBQUU7UUFDcEIsTUFBTSxZQUFZLEdBQXVCLEdBQUcsQ0FBQyxNQUFNLENBQ2pELENBQUMsVUFBOEIsRUFBRSxFQUFlLEVBQUUsRUFBRTtZQUNsRCxJQUFJLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3JCLE1BQU0sS0FBSyxDQUNULHlEQUF5RCxDQUMxRCxDQUFDO1lBQ0osQ0FBQztZQUNELElBQUksRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDckIsTUFBTSxLQUFLLENBQ1QseURBQXlELENBQzFELENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxPQUFPO2dCQUMxQixVQUFVLENBQUMsSUFBSSxDQUFDO29CQUNkLFlBQVksRUFBRSxFQUFFLENBQUMsWUFBWTtvQkFDN0IsVUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJO29CQUNuQixLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUs7b0JBQ2YsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJO2lCQUNqQixDQUFDLENBQUM7WUFDTCxPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDLEVBQ0QsRUFBRSxDQUNILENBQUM7UUFDRixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDOUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRjs7O09BR0c7SUFDSCxTQUFTLEdBQUcsS0FBSyxFQUFFLElBQVksRUFBaUIsRUFBRTtRQUNoRCxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILGVBQWUsR0FBRyxLQUFLLElBQUksRUFBRTtRQUMzQixPQUFPO0lBQ1QsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgeyBUeEFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbnMvZGInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICdldGhlcnMnO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgRXh0cmFjdGVkVHggfSBmcm9tICcuLi9pbnRlcmZhY2VzL3R5cGVzJztcbmltcG9ydCB7IEFic3RyYWN0RXh0cmFjdG9yLCBCbG9jayB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtZXh0cmFjdG9yJztcblxuZXhwb3J0IGNsYXNzIEV2bVR4RXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RFeHRyYWN0b3I8VHJhbnNhY3Rpb24+IHtcbiAgcmVhZG9ubHkgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlcjtcbiAgcmVhZG9ubHkgYWN0aW9uOiBUeEFjdGlvbjtcbiAgcHJpdmF0ZSByZWFkb25seSBpZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGFkZHJlc3M6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYWRkcmVzczogc3RyaW5nLFxuICAgIGxvZ2dlcjogQWJzdHJhY3RMb2dnZXIgPSBuZXcgRHVtbXlMb2dnZXIoKVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaWQgPSBpZDtcbiAgICB0aGlzLmFkZHJlc3MgPSBhZGRyZXNzO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyO1xuICAgIHRoaXMuYWN0aW9uID0gbmV3IFR4QWN0aW9uKGRhdGFTb3VyY2UsIHRoaXMubG9nZ2VyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgSWQgZm9yIGN1cnJlbnQgZXh0cmFjdG9yXG4gICAqL1xuICBnZXRJZCA9ICgpID0+IHRoaXMuaWQ7XG5cbiAgLyoqXG4gICAqIGdldHMgYmxvY2sgaWQgYW5kIHRyYW5zYWN0aW9ucyBjb3JyZXNwb25kaW5nIHRvIHRoZSBibG9jayBhbmQgc2F2ZXMgYWxsIHRyYW5zYWN0aW9uIGlkcyBpbiBkYXRhYmFzZVxuICAgKiBAcGFyYW0gdHhzXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKi9cbiAgcHJvY2Vzc1RyYW5zYWN0aW9ucyA9IGFzeW5jIChcbiAgICB0eHM6IEFycmF5PFRyYW5zYWN0aW9uPixcbiAgICBibG9jazogQmxvY2tcbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgY29uc3QgZXh0cmFjdGVkVHhzOiBBcnJheTxFeHRyYWN0ZWRUeD4gPSB0eHMucmVkdWNlKFxuICAgICAgKGFkZHJlc3NUeHM6IEFycmF5PEV4dHJhY3RlZFR4PiwgdHg6IFRyYW5zYWN0aW9uKSA9PiB7XG4gICAgICAgIGlmICh0eC5mcm9tID09PSBudWxsKSB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAnSW1wb3NzaWJsZUJlaGF2aW91cjogUlBDIHRyYW5zYWN0aW9ucyBtdXN0IGhhdmUgYGZyb21gLidcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eC5oYXNoID09PSBudWxsKSB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAnSW1wb3NzaWJsZUJlaGF2aW91cjogUlBDIHRyYW5zYWN0aW9ucyBtdXN0IGhhdmUgYGhhc2hgLidcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eC5mcm9tID09PSB0aGlzLmFkZHJlc3MpXG4gICAgICAgICAgYWRkcmVzc1R4cy5wdXNoKHtcbiAgICAgICAgICAgIHVuc2lnbmVkSGFzaDogdHgudW5zaWduZWRIYXNoLFxuICAgICAgICAgICAgc2lnbmVkSGFzaDogdHguaGFzaCxcbiAgICAgICAgICAgIG5vbmNlOiB0eC5ub25jZSxcbiAgICAgICAgICAgIGFkZHJlc3M6IHR4LmZyb20sXG4gICAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhZGRyZXNzVHhzO1xuICAgICAgfSxcbiAgICAgIFtdXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLmFjdGlvbi5zdG9yZVR4cyhleHRyYWN0ZWRUeHMsIGJsb2NrLCB0aGlzLmdldElkKCkpO1xuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBmb3JrIG9uZSBibG9jayBhbmQgcmVtb3ZlIGFsbCBzdG9yZWQgdHhJZCBmb3IgdGhpcyBibG9ja1xuICAgKiBAcGFyYW0gaGFzaDogYmxvY2sgaGFzaFxuICAgKi9cbiAgZm9ya0Jsb2NrID0gYXN5bmMgKGhhc2g6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGF3YWl0IHRoaXMuYWN0aW9uLmRlbGV0ZUJsb2NrVHhzKGhhc2gsIHRoaXMuZ2V0SWQoKSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBkYXRhYmFzZSB3aXRoIG9sZGVyIGJveGVzIHJlbGF0ZWQgdG8gdGhlIGFkZHJlc3NcbiAgICovXG4gIGluaXRpYWxpemVCb3hlcyA9IGFzeW5jICgpID0+IHtcbiAgICByZXR1cm47XG4gIH07XG59XG4iXX0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZtVHhFeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZXh0cmFjdG9ycy9Fdm1UeEV4dHJhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUF1QixNQUFNLFFBQVEsQ0FBQztBQUMzRSxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQVMsTUFBTSxrQ0FBa0MsQ0FBQztBQUU1RSxNQUFNLE9BQU8sY0FBZSxTQUFRLGlCQUFzQztJQUMvRCxNQUFNLENBQWlCO0lBQ3ZCLE1BQU0sQ0FBVztJQUNULEVBQUUsQ0FBUztJQUNYLE9BQU8sQ0FBUztJQUVqQyxZQUNFLFVBQXNCLEVBQ3RCLEVBQVUsRUFDVixPQUFlLEVBQ2YsU0FBeUIsSUFBSSxXQUFXLEVBQUU7UUFFMUMsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUV0Qjs7OztPQUlHO0lBQ0gsbUJBQW1CLEdBQUcsS0FBSyxFQUN6QixHQUErQixFQUMvQixLQUFZLEVBQ00sRUFBRTtRQUNwQixNQUFNLFlBQVksR0FBdUIsRUFBRSxDQUFDO1FBQzVDLEtBQUssTUFBTSxLQUFLLElBQUksR0FBRyxFQUFFLENBQUM7WUFDeEIsTUFBTSxFQUFFLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3JCLE1BQU0sS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7WUFDeEUsQ0FBQztZQUNELElBQUksRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDckIsTUFBTSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQztZQUN4RSxDQUFDO1lBQ0QsSUFBSSxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxNQUFtQixDQUFDO2dCQUN4QixJQUFJLENBQUM7b0JBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNuQyxJQUFJLE1BQU07d0JBQUUsTUFBTSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUM7O3dCQUV2QyxNQUFNLEtBQUssQ0FDVCxnQ0FBZ0MsS0FBSyxDQUFDLElBQUksMkJBQTJCLEtBQUssQ0FBQyxJQUFJLDZDQUE2QyxDQUM3SCxDQUFDO2dCQUNOLENBQUM7Z0JBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDWCxJQUFJLGVBQWUsQ0FBQyxDQUFDLENBQUM7d0JBQUUsTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7O3dCQUMvQyxNQUFNLENBQUMsQ0FBQztnQkFDZixDQUFDO2dCQUNELFlBQVksQ0FBQyxJQUFJLENBQUM7b0JBQ2hCLFlBQVksRUFBRSxFQUFFLENBQUMsWUFBWTtvQkFDN0IsVUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJO29CQUNuQixLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUs7b0JBQ2YsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJO29CQUNoQixNQUFNLEVBQUUsTUFBTTtpQkFDZixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUNELE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM5RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILFNBQVMsR0FBRyxLQUFLLEVBQUUsSUFBWSxFQUFpQixFQUFFO1FBQ2hELE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsZUFBZSxHQUFHLEtBQUssSUFBSSxFQUFFO1FBQzNCLE9BQU87SUFDVCxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICd0eXBlb3JtJztcbmltcG9ydCB7IFR4QWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucy9kYic7XG5pbXBvcnQgeyBpc0NhbGxFeGNlcHRpb24sIFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblJlc3BvbnNlIH0gZnJvbSAnZXRoZXJzJztcbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyLCBEdW1teUxvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7IEV2bVR4U3RhdHVzLCBFeHRyYWN0ZWRUeCB9IGZyb20gJy4uL2ludGVyZmFjZXMvdHlwZXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RFeHRyYWN0b3IsIEJsb2NrIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1leHRyYWN0b3InO1xuXG5leHBvcnQgY2xhc3MgRXZtVHhFeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdEV4dHJhY3RvcjxUcmFuc2FjdGlvblJlc3BvbnNlPiB7XG4gIHJlYWRvbmx5IGxvZ2dlcjogQWJzdHJhY3RMb2dnZXI7XG4gIHJlYWRvbmx5IGFjdGlvbjogVHhBY3Rpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBhZGRyZXNzOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZGF0YVNvdXJjZTogRGF0YVNvdXJjZSxcbiAgICBpZDogc3RyaW5nLFxuICAgIGFkZHJlc3M6IHN0cmluZyxcbiAgICBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyID0gbmV3IER1bW15TG9nZ2VyKClcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgdGhpcy5hZGRyZXNzID0gYWRkcmVzcztcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlcjtcbiAgICB0aGlzLmFjdGlvbiA9IG5ldyBUeEFjdGlvbihkYXRhU291cmNlLCB0aGlzLmxvZ2dlcik7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IElkIGZvciBjdXJyZW50IGV4dHJhY3RvclxuICAgKi9cbiAgZ2V0SWQgPSAoKSA9PiB0aGlzLmlkO1xuXG4gIC8qKlxuICAgKiBnZXRzIGJsb2NrIGlkIGFuZCB0cmFuc2FjdGlvbnMgY29ycmVzcG9uZGluZyB0byB0aGUgYmxvY2sgYW5kIHNhdmVzIGFsbCB0cmFuc2FjdGlvbiBpZHMgaW4gZGF0YWJhc2VcbiAgICogQHBhcmFtIHR4c1xuICAgKiBAcGFyYW0gYmxvY2tcbiAgICovXG4gIHByb2Nlc3NUcmFuc2FjdGlvbnMgPSBhc3luYyAoXG4gICAgdHhzOiBBcnJheTxUcmFuc2FjdGlvblJlc3BvbnNlPixcbiAgICBibG9jazogQmxvY2tcbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgY29uc3QgZXh0cmFjdGVkVHhzOiBBcnJheTxFeHRyYWN0ZWRUeD4gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHR4UmVzIG9mIHR4cykge1xuICAgICAgY29uc3QgdHggPSBUcmFuc2FjdGlvbi5mcm9tKHR4UmVzKTtcbiAgICAgIGlmICh0eC5mcm9tID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IEVycm9yKCdJbXBvc3NpYmxlQmVoYXZpb3I6IFJQQyB0cmFuc2FjdGlvbnMgbXVzdCBoYXZlIGBmcm9tYC4nKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eC5oYXNoID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IEVycm9yKCdJbXBvc3NpYmxlQmVoYXZpb3I6IFJQQyB0cmFuc2FjdGlvbnMgbXVzdCBoYXZlIGBoYXNoYC4nKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eC5mcm9tID09PSB0aGlzLmFkZHJlc3MpIHtcbiAgICAgICAgbGV0IHN0YXR1czogRXZtVHhTdGF0dXM7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdHhSZXMud2FpdCgwKTtcbiAgICAgICAgICBpZiAocmVzdWx0KSBzdGF0dXMgPSBFdm1UeFN0YXR1cy5zdWNjZWVkO1xuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICBgSW1wb3NzaWJsZSBiZWhhdmlvcjogRXZtIFR4IFske3R4UmVzLmhhc2h9XSBpcyBpbmNsdWRlZCBpbiBibG9jayBbJHtibG9jay5oYXNofV0gYnV0IHdhaXRpbmcgcmVzdWx0ZWQgaW4gbnVsbCBvciB1bmRlZmluZWRgXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGlzQ2FsbEV4Y2VwdGlvbihlKSkgc3RhdHVzID0gRXZtVHhTdGF0dXMuZmFpbGVkO1xuICAgICAgICAgIGVsc2UgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgICBleHRyYWN0ZWRUeHMucHVzaCh7XG4gICAgICAgICAgdW5zaWduZWRIYXNoOiB0eC51bnNpZ25lZEhhc2gsXG4gICAgICAgICAgc2lnbmVkSGFzaDogdHguaGFzaCxcbiAgICAgICAgICBub25jZTogdHgubm9uY2UsXG4gICAgICAgICAgYWRkcmVzczogdHguZnJvbSxcbiAgICAgICAgICBzdGF0dXM6IHN0YXR1cyxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGF3YWl0IHRoaXMuYWN0aW9uLnN0b3JlVHhzKGV4dHJhY3RlZFR4cywgYmxvY2ssIHRoaXMuZ2V0SWQoKSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgLyoqXG4gICAqIGZvcmsgb25lIGJsb2NrIGFuZCByZW1vdmUgYWxsIHN0b3JlZCB0eElkIGZvciB0aGlzIGJsb2NrXG4gICAqIEBwYXJhbSBoYXNoOiBibG9jayBoYXNoXG4gICAqL1xuICBmb3JrQmxvY2sgPSBhc3luYyAoaGFzaDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgYXdhaXQgdGhpcy5hY3Rpb24uZGVsZXRlQmxvY2tUeHMoaGFzaCwgdGhpcy5nZXRJZCgpKTtcbiAgfTtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGRhdGFiYXNlIHdpdGggb2xkZXIgYm94ZXMgcmVsYXRlZCB0byB0aGUgYWRkcmVzc1xuICAgKi9cbiAgaW5pdGlhbGl6ZUJveGVzID0gYXN5bmMgKCkgPT4ge1xuICAgIHJldHVybjtcbiAgfTtcbn1cbiJdfQ==
package/dist/index.js CHANGED
@@ -3,4 +3,4 @@ export * from './extractors/EvmTxExtractor';
3
3
  export * from './entities/AddressTxsEntity';
4
4
  export * from './actions/db';
5
5
  export { default as migrations } from './migrations';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxjQUFjLENBQUM7QUFDN0IsT0FBTyxFQUFFLE9BQU8sSUFBSSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9leHRyYWN0b3JzL0V2bVR4RXh0cmFjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZW50aXRpZXMvQWRkcmVzc1R4c0VudGl0eSc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbnMvZGInO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBtaWdyYXRpb25zIH0gZnJvbSAnLi9taWdyYXRpb25zJztcbiJdfQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxjQUFjLENBQUM7QUFDN0IsT0FBTyxFQUFFLE9BQU8sSUFBSSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9leHRyYWN0b3JzL0V2bVR4RXh0cmFjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZW50aXRpZXMvQWRkcmVzc1R4c0VudGl0eSc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbnMvZGInO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBtaWdyYXRpb25zIH0gZnJvbSAnLi9taWdyYXRpb25zJztcbiJdfQ==
@@ -1,7 +1,12 @@
1
1
  export interface ExtractedTx {
2
- unsignedHash: string;
3
- signedHash: string;
4
- nonce: number;
5
- address: string;
2
+ unsignedHash: string;
3
+ signedHash: string;
4
+ nonce: number;
5
+ address: string;
6
+ status: EvmTxStatus;
6
7
  }
7
- //# sourceMappingURL=types.d.ts.map
8
+ export declare enum EvmTxStatus {
9
+ failed = "failed",
10
+ succeed = "succeed"
11
+ }
12
+ //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/interfaces/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/interfaces/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB"}
@@ -1,2 +1,6 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaW50ZXJmYWNlcy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBFeHRyYWN0ZWRUeCB7XG4gIHVuc2lnbmVkSGFzaDogc3RyaW5nO1xuICBzaWduZWRIYXNoOiBzdHJpbmc7XG4gIG5vbmNlOiBudW1iZXI7XG4gIGFkZHJlc3M6IHN0cmluZztcbn1cbiJdfQ==
1
+ export var EvmTxStatus;
2
+ (function (EvmTxStatus) {
3
+ EvmTxStatus["failed"] = "failed";
4
+ EvmTxStatus["succeed"] = "succeed";
5
+ })(EvmTxStatus || (EvmTxStatus = {}));
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaW50ZXJmYWNlcy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLGdDQUFpQixDQUFBO0lBQ2pCLGtDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFIVyxXQUFXLEtBQVgsV0FBVyxRQUd0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRXh0cmFjdGVkVHgge1xuICB1bnNpZ25lZEhhc2g6IHN0cmluZztcbiAgc2lnbmVkSGFzaDogc3RyaW5nO1xuICBub25jZTogbnVtYmVyO1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIHN0YXR1czogRXZtVHhTdGF0dXM7XG59XG5cbmV4cG9ydCBlbnVtIEV2bVR4U3RhdHVzIHtcbiAgZmFpbGVkID0gJ2ZhaWxlZCcsXG4gIHN1Y2NlZWQgPSAnc3VjY2VlZCcsXG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;;;;;AAE1E,wBAGE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;;;;;AAG1E,wBAGE"}
@@ -1,7 +1,9 @@
1
1
  import { Migration1713694851290 } from './postgres/1713694851290-migration';
2
+ import { Migration1722346608595 } from './postgres/1722346608595-migration';
2
3
  import { Migration1713694799333 } from './sqlite/1713694799333-migration';
4
+ import { Migration1722346500068 } from './sqlite/1722346500068-migration';
3
5
  export default {
4
- sqlite: [Migration1713694799333],
5
- postgres: [Migration1713694851290],
6
+ sqlite: [Migration1713694799333, Migration1722346500068],
7
+ postgres: [Migration1713694851290, Migration1722346608595],
6
8
  };
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWlncmF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxRSxlQUFlO0lBQ2IsTUFBTSxFQUFFLENBQUMsc0JBQXNCLENBQUM7SUFDaEMsUUFBUSxFQUFFLENBQUMsc0JBQXNCLENBQUM7Q0FDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pZ3JhdGlvbjE3MTM2OTQ4NTEyOTAgfSBmcm9tICcuL3Bvc3RncmVzLzE3MTM2OTQ4NTEyOTAtbWlncmF0aW9uJztcbmltcG9ydCB7IE1pZ3JhdGlvbjE3MTM2OTQ3OTkzMzMgfSBmcm9tICcuL3NxbGl0ZS8xNzEzNjk0Nzk5MzMzLW1pZ3JhdGlvbic7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgc3FsaXRlOiBbTWlncmF0aW9uMTcxMzY5NDc5OTMzM10sXG4gIHBvc3RncmVzOiBbTWlncmF0aW9uMTcxMzY5NDg1MTI5MF0sXG59O1xuIl19
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWlncmF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxRSxlQUFlO0lBQ2IsTUFBTSxFQUFFLENBQUMsc0JBQXNCLEVBQUUsc0JBQXNCLENBQUM7SUFDeEQsUUFBUSxFQUFFLENBQUMsc0JBQXNCLEVBQUUsc0JBQXNCLENBQUM7Q0FDM0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pZ3JhdGlvbjE3MTM2OTQ4NTEyOTAgfSBmcm9tICcuL3Bvc3RncmVzLzE3MTM2OTQ4NTEyOTAtbWlncmF0aW9uJztcbmltcG9ydCB7IE1pZ3JhdGlvbjE3MjIzNDY2MDg1OTUgfSBmcm9tICcuL3Bvc3RncmVzLzE3MjIzNDY2MDg1OTUtbWlncmF0aW9uJztcbmltcG9ydCB7IE1pZ3JhdGlvbjE3MTM2OTQ3OTkzMzMgfSBmcm9tICcuL3NxbGl0ZS8xNzEzNjk0Nzk5MzMzLW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBNaWdyYXRpb24xNzIyMzQ2NTAwMDY4IH0gZnJvbSAnLi9zcWxpdGUvMTcyMjM0NjUwMDA2OC1taWdyYXRpb24nO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHNxbGl0ZTogW01pZ3JhdGlvbjE3MTM2OTQ3OTkzMzMsIE1pZ3JhdGlvbjE3MjIzNDY1MDAwNjhdLFxuICBwb3N0Z3JlczogW01pZ3JhdGlvbjE3MTM2OTQ4NTEyOTAsIE1pZ3JhdGlvbjE3MjIzNDY2MDg1OTVdLFxufTtcbiJdfQ==