@rosen-bridge/tx-id-extractor 0.1.1

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/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # Address Extractor
2
+
3
+ TBD
@@ -0,0 +1,23 @@
1
+ import { DataSource } from 'typeorm';
2
+ import { BlockEntity } from '@rosen-bridge/scanner';
3
+ import { AbstractLogger } from '@rosen-bridge/logger-interface';
4
+ export declare class TxAction {
5
+ private readonly repository;
6
+ readonly logger: AbstractLogger;
7
+ constructor(dataSource: DataSource, logger: AbstractLogger);
8
+ /**
9
+ * remove all inserted transaction for specific block in specific extractor from database
10
+ * @param blockId selected block id
11
+ * @param extractor selected extractor
12
+ */
13
+ deleteBlockTxs: (blockId: string, extractor: string) => Promise<void>;
14
+ /**
15
+ * remove old list of transactions and
16
+ * store a new list of transactions database for specific block and extractor
17
+ * @param txIds
18
+ * @param block
19
+ * @param extractor
20
+ */
21
+ storeTxs: (txIds: Array<string>, block: BlockEntity, extractor: string) => Promise<void>;
22
+ }
23
+ //# sourceMappingURL=db.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../lib/actions/db.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAc,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;gBAEpB,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc;IAK1D;;;;OAIG;IACH,cAAc,YAAmB,MAAM,aAAa,MAAM,mBAYxD;IAEF;;;;;;OAMG;IACH,QAAQ,UACC,MAAM,MAAM,CAAC,SACb,WAAW,aACP,MAAM,mBAajB;CACH"}
@@ -0,0 +1,42 @@
1
+ import { TxIdEntity } from '../entities/TxIdEntity';
2
+ export class TxAction {
3
+ repository;
4
+ logger;
5
+ constructor(dataSource, logger) {
6
+ this.repository = dataSource.getRepository(TxIdEntity);
7
+ this.logger = logger;
8
+ }
9
+ /**
10
+ * remove all inserted transaction for specific block in specific extractor from database
11
+ * @param blockId selected block id
12
+ * @param extractor selected extractor
13
+ */
14
+ deleteBlockTxs = async (blockId, extractor) => {
15
+ this.logger.info(`Deleting transaction in block ${blockId} and extractor ${extractor}`);
16
+ await this.repository
17
+ .createQueryBuilder()
18
+ .delete()
19
+ .where('extractor = :extractor AND blockId = :blockId', {
20
+ blockId: blockId,
21
+ extractor: extractor,
22
+ })
23
+ .execute();
24
+ };
25
+ /**
26
+ * remove old list of transactions and
27
+ * store a new list of transactions database for specific block and extractor
28
+ * @param txIds
29
+ * @param block
30
+ * @param extractor
31
+ */
32
+ storeTxs = async (txIds, block, extractor) => {
33
+ await this.deleteBlockTxs(block.hash, extractor);
34
+ this.logger.info(`Inserting new transactions in block ${block} and extractor ${extractor}`);
35
+ await this.repository
36
+ .createQueryBuilder()
37
+ .insert()
38
+ .values(txIds.map((item) => ({ txId: item, extractor, blockId: block.hash })))
39
+ .execute();
40
+ };
41
+ }
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYWN0aW9ucy9kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFLcEQsTUFBTSxPQUFPLFFBQVE7SUFDRixVQUFVLENBQXlCO0lBQzNDLE1BQU0sQ0FBaUI7SUFFaEMsWUFBWSxVQUFzQixFQUFFLE1BQXNCO1FBQ3hELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGNBQWMsR0FBRyxLQUFLLEVBQUUsT0FBZSxFQUFFLFNBQWlCLEVBQUUsRUFBRTtRQUM1RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZCxpQ0FBaUMsT0FBTyxrQkFBa0IsU0FBUyxFQUFFLENBQ3RFLENBQUM7UUFDRixNQUFNLElBQUksQ0FBQyxVQUFVO2FBQ2xCLGtCQUFrQixFQUFFO2FBQ3BCLE1BQU0sRUFBRTthQUNSLEtBQUssQ0FBQywrQ0FBK0MsRUFBRTtZQUN0RCxPQUFPLEVBQUUsT0FBTztZQUNoQixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDO2FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZixDQUFDLENBQUM7SUFFRjs7Ozs7O09BTUc7SUFDSCxRQUFRLEdBQUcsS0FBSyxFQUNkLEtBQW9CLEVBQ3BCLEtBQWtCLEVBQ2xCLFNBQWlCLEVBQ2pCLEVBQUU7UUFDRixNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZCx1Q0FBdUMsS0FBSyxrQkFBa0IsU0FBUyxFQUFFLENBQzFFLENBQUM7UUFDRixNQUFNLElBQUksQ0FBQyxVQUFVO2FBQ2xCLGtCQUFrQixFQUFFO2FBQ3BCLE1BQU0sRUFBRTthQUNSLE1BQU0sQ0FDTCxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQ3RFO2FBQ0EsT0FBTyxFQUFFLENBQUM7SUFDZixDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR4SWRFbnRpdHkgfSBmcm9tICcuLi9lbnRpdGllcy9UeElkRW50aXR5JztcbmltcG9ydCB7IERhdGFTb3VyY2UsIFJlcG9zaXRvcnkgfSBmcm9tICd0eXBlb3JtJztcbmltcG9ydCB7IEJsb2NrRW50aXR5IH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyJztcbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9sb2dnZXItaW50ZXJmYWNlJztcblxuZXhwb3J0IGNsYXNzIFR4QWN0aW9uIHtcbiAgcHJpdmF0ZSByZWFkb25seSByZXBvc2l0b3J5OiBSZXBvc2l0b3J5PFR4SWRFbnRpdHk+O1xuICByZWFkb25seSBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsIGxvZ2dlcjogQWJzdHJhY3RMb2dnZXIpIHtcbiAgICB0aGlzLnJlcG9zaXRvcnkgPSBkYXRhU291cmNlLmdldFJlcG9zaXRvcnkoVHhJZEVudGl0eSk7XG4gICAgdGhpcy5sb2dnZXIgPSBsb2dnZXI7XG4gIH1cblxuICAvKipcbiAgICogcmVtb3ZlIGFsbCBpbnNlcnRlZCB0cmFuc2FjdGlvbiBmb3Igc3BlY2lmaWMgYmxvY2sgaW4gc3BlY2lmaWMgZXh0cmFjdG9yIGZyb20gZGF0YWJhc2VcbiAgICogQHBhcmFtIGJsb2NrSWQgc2VsZWN0ZWQgYmxvY2sgaWRcbiAgICogQHBhcmFtIGV4dHJhY3RvciBzZWxlY3RlZCBleHRyYWN0b3JcbiAgICovXG4gIGRlbGV0ZUJsb2NrVHhzID0gYXN5bmMgKGJsb2NrSWQ6IHN0cmluZywgZXh0cmFjdG9yOiBzdHJpbmcpID0+IHtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgYERlbGV0aW5nIHRyYW5zYWN0aW9uIGluIGJsb2NrICR7YmxvY2tJZH0gYW5kIGV4dHJhY3RvciAke2V4dHJhY3Rvcn1gXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLnJlcG9zaXRvcnlcbiAgICAgIC5jcmVhdGVRdWVyeUJ1aWxkZXIoKVxuICAgICAgLmRlbGV0ZSgpXG4gICAgICAud2hlcmUoJ2V4dHJhY3RvciA9IDpleHRyYWN0b3IgQU5EIGJsb2NrSWQgPSA6YmxvY2tJZCcsIHtcbiAgICAgICAgYmxvY2tJZDogYmxvY2tJZCxcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICB9KVxuICAgICAgLmV4ZWN1dGUoKTtcbiAgfTtcblxuICAvKipcbiAgICogcmVtb3ZlIG9sZCBsaXN0IG9mIHRyYW5zYWN0aW9ucyBhbmRcbiAgICogc3RvcmUgYSBuZXcgbGlzdCBvZiB0cmFuc2FjdGlvbnMgZGF0YWJhc2UgZm9yIHNwZWNpZmljIGJsb2NrIGFuZCBleHRyYWN0b3JcbiAgICogQHBhcmFtIHR4SWRzXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICBzdG9yZVR4cyA9IGFzeW5jIChcbiAgICB0eElkczogQXJyYXk8c3RyaW5nPixcbiAgICBibG9jazogQmxvY2tFbnRpdHksXG4gICAgZXh0cmFjdG9yOiBzdHJpbmdcbiAgKSA9PiB7XG4gICAgYXdhaXQgdGhpcy5kZWxldGVCbG9ja1R4cyhibG9jay5oYXNoLCBleHRyYWN0b3IpO1xuICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICBgSW5zZXJ0aW5nIG5ldyB0cmFuc2FjdGlvbnMgaW4gYmxvY2sgJHtibG9ja30gYW5kIGV4dHJhY3RvciAke2V4dHJhY3Rvcn1gXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLnJlcG9zaXRvcnlcbiAgICAgIC5jcmVhdGVRdWVyeUJ1aWxkZXIoKVxuICAgICAgLmluc2VydCgpXG4gICAgICAudmFsdWVzKFxuICAgICAgICB0eElkcy5tYXAoKGl0ZW0pID0+ICh7IHR4SWQ6IGl0ZW0sIGV4dHJhY3RvciwgYmxvY2tJZDogYmxvY2suaGFzaCB9KSlcbiAgICAgIClcbiAgICAgIC5leGVjdXRlKCk7XG4gIH07XG59XG4iXX0=
@@ -0,0 +1,7 @@
1
+ export declare class TxIdEntity {
2
+ id: number;
3
+ txId: string;
4
+ blockId: string;
5
+ extractor: string;
6
+ }
7
+ //# sourceMappingURL=TxIdEntity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TxIdEntity.d.ts","sourceRoot":"","sources":["../../lib/entities/TxIdEntity.ts"],"names":[],"mappings":"AAEA,qBACa,UAAU;IAErB,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,EAAE,MAAM,CAAC;IAGb,OAAO,EAAE,MAAM,CAAC;IAGhB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,37 @@
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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
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
+ };
10
+ import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
11
+ let TxIdEntity = class TxIdEntity {
12
+ id;
13
+ txId;
14
+ blockId;
15
+ extractor;
16
+ };
17
+ __decorate([
18
+ PrimaryGeneratedColumn(),
19
+ __metadata("design:type", Number)
20
+ ], TxIdEntity.prototype, "id", void 0);
21
+ __decorate([
22
+ Column(),
23
+ __metadata("design:type", String)
24
+ ], TxIdEntity.prototype, "txId", void 0);
25
+ __decorate([
26
+ Column(),
27
+ __metadata("design:type", String)
28
+ ], TxIdEntity.prototype, "blockId", void 0);
29
+ __decorate([
30
+ Column(),
31
+ __metadata("design:type", String)
32
+ ], TxIdEntity.prototype, "extractor", void 0);
33
+ TxIdEntity = __decorate([
34
+ Entity()
35
+ ], TxIdEntity);
36
+ export { TxIdEntity };
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHhJZEVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9lbnRpdGllcy9UeElkRW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBR2pFLElBQWEsVUFBVSxHQUF2QixNQUFhLFVBQVU7SUFFckIsRUFBRSxDQUFTO0lBR1gsSUFBSSxDQUFTO0lBR2IsT0FBTyxDQUFTO0lBR2hCLFNBQVMsQ0FBUztDQUNuQixDQUFBO0FBVkM7SUFEQyxzQkFBc0IsRUFBRTs7c0NBQ2Q7QUFHWDtJQURDLE1BQU0sRUFBRTs7d0NBQ0k7QUFHYjtJQURDLE1BQU0sRUFBRTs7MkNBQ087QUFHaEI7SUFEQyxNQUFNLEVBQUU7OzZDQUNTO0FBWFAsVUFBVTtJQUR0QixNQUFNLEVBQUU7R0FDSSxVQUFVLENBWXRCO1NBWlksVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbHVtbiwgRW50aXR5LCBQcmltYXJ5R2VuZXJhdGVkQ29sdW1uIH0gZnJvbSAndHlwZW9ybSc7XG5cbkBFbnRpdHkoKVxuZXhwb3J0IGNsYXNzIFR4SWRFbnRpdHkge1xuICBAUHJpbWFyeUdlbmVyYXRlZENvbHVtbigpXG4gIGlkOiBudW1iZXI7XG5cbiAgQENvbHVtbigpXG4gIHR4SWQ6IHN0cmluZztcblxuICBAQ29sdW1uKClcbiAgYmxvY2tJZDogc3RyaW5nO1xuXG4gIEBDb2x1bW4oKVxuICBleHRyYWN0b3I6IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,31 @@
1
+ import { DataSource } from 'typeorm';
2
+ import { TxAction } from '../actions/db';
3
+ import { AbstractExtractor, BlockEntity } from '@rosen-bridge/scanner';
4
+ import { TxBabbage } from '@cardano-ogmios/schema';
5
+ import { AbstractLogger } from '@rosen-bridge/logger-interface';
6
+ export declare class CardanoOgmiosTxIdExtractor extends AbstractExtractor<TxBabbage> {
7
+ readonly logger: AbstractLogger;
8
+ readonly action: TxAction;
9
+ private readonly id;
10
+ constructor(dataSource: DataSource, id: string, logger?: AbstractLogger);
11
+ /**
12
+ * get Id for current extractor
13
+ */
14
+ getId: () => string;
15
+ /**
16
+ * gets block id and transactions corresponding to the block and saves all transaction ids in database
17
+ * @param txs
18
+ * @param block
19
+ */
20
+ processTransactions: (txs: Array<TxBabbage>, block: BlockEntity) => Promise<boolean>;
21
+ /**
22
+ * fork one block and remove all stored txId for this block
23
+ * @param hash: block hash
24
+ */
25
+ forkBlock: (hash: string) => Promise<void>;
26
+ /**
27
+ * Initializes the database with older boxes related to the address
28
+ */
29
+ initializeBoxes: () => Promise<void>;
30
+ }
31
+ //# sourceMappingURL=cardanoOgmiosTxIdExtractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cardanoOgmiosTxIdExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/cardanoOgmiosTxIdExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAe,MAAM,gCAAgC,CAAC;AAE7E,qBAAa,0BAA2B,SAAQ,iBAAiB,CAAC,SAAS,CAAC;IAC1E,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;gBAG1B,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,MAAM,EACV,MAAM,GAAE,cAAkC;IAQ5C;;OAEG;IACH,KAAK,eAAiB;IAEtB;;;;OAIG;IACH,mBAAmB,QACZ,MAAM,SAAS,CAAC,SACd,WAAW,KACjB,QAAQ,OAAO,CAAC,CAIjB;IAEF;;;OAGG;IACH,SAAS,SAAgB,MAAM,KAAG,QAAQ,IAAI,CAAC,CAE7C;IAEF;;OAEG;IACH,eAAe,sBAEb;CACH"}
@@ -0,0 +1,42 @@
1
+ import { TxAction } from '../actions/db';
2
+ import { AbstractExtractor } from '@rosen-bridge/scanner';
3
+ import { DummyLogger } from '@rosen-bridge/logger-interface';
4
+ export class CardanoOgmiosTxIdExtractor extends AbstractExtractor {
5
+ logger;
6
+ action;
7
+ id;
8
+ constructor(dataSource, id, logger = new DummyLogger()) {
9
+ super();
10
+ this.id = id;
11
+ this.logger = logger;
12
+ this.action = new TxAction(dataSource, this.logger);
13
+ }
14
+ /**
15
+ * get Id for current extractor
16
+ */
17
+ getId = () => this.id;
18
+ /**
19
+ * gets block id and transactions corresponding to the block and saves all transaction ids in database
20
+ * @param txs
21
+ * @param block
22
+ */
23
+ processTransactions = async (txs, block) => {
24
+ const txIds = txs.map((item) => item.id);
25
+ await this.action.storeTxs(txIds, block, this.getId());
26
+ return true;
27
+ };
28
+ /**
29
+ * fork one block and remove all stored txId for this block
30
+ * @param hash: block hash
31
+ */
32
+ forkBlock = async (hash) => {
33
+ await this.action.deleteBlockTxs(hash, this.getId());
34
+ };
35
+ /**
36
+ * Initializes the database with older boxes related to the address
37
+ */
38
+ initializeBoxes = async () => {
39
+ return;
40
+ };
41
+ }
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZGFub09nbWlvc1R4SWRFeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZXh0cmFjdG9yL2NhcmRhbm9PZ21pb3NUeElkRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFlLE1BQU0sdUJBQXVCLENBQUM7QUFFdkUsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU3RSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsaUJBQTRCO0lBQ2pFLE1BQU0sQ0FBaUI7SUFDdkIsTUFBTSxDQUFXO0lBQ1QsRUFBRSxDQUFTO0lBRTVCLFlBQ0UsVUFBc0IsRUFDdEIsRUFBVSxFQUNWLFNBQXlCLElBQUksV0FBVyxFQUFFO1FBRTFDLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFFdEI7Ozs7T0FJRztJQUNILG1CQUFtQixHQUFHLEtBQUssRUFDekIsR0FBcUIsRUFDckIsS0FBa0IsRUFDQSxFQUFFO1FBQ3BCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6QyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdkQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRjs7O09BR0c7SUFDSCxTQUFTLEdBQUcsS0FBSyxFQUFFLElBQVksRUFBaUIsRUFBRTtRQUNoRCxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILGVBQWUsR0FBRyxLQUFLLElBQUksRUFBRTtRQUMzQixPQUFPO0lBQ1QsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgeyBUeEFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbnMvZGInO1xuaW1wb3J0IHsgQWJzdHJhY3RFeHRyYWN0b3IsIEJsb2NrRW50aXR5IH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyJztcbmltcG9ydCB7IFR4QmFiYmFnZSB9IGZyb20gJ0BjYXJkYW5vLW9nbWlvcy9zY2hlbWEnO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9sb2dnZXItaW50ZXJmYWNlJztcblxuZXhwb3J0IGNsYXNzIENhcmRhbm9PZ21pb3NUeElkRXh0cmFjdG9yIGV4dGVuZHMgQWJzdHJhY3RFeHRyYWN0b3I8VHhCYWJiYWdlPiB7XG4gIHJlYWRvbmx5IGxvZ2dlcjogQWJzdHJhY3RMb2dnZXI7XG4gIHJlYWRvbmx5IGFjdGlvbjogVHhBY3Rpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlciA9IG5ldyBEdW1teUxvZ2dlcigpXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pZCA9IGlkO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyO1xuICAgIHRoaXMuYWN0aW9uID0gbmV3IFR4QWN0aW9uKGRhdGFTb3VyY2UsIHRoaXMubG9nZ2VyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgSWQgZm9yIGN1cnJlbnQgZXh0cmFjdG9yXG4gICAqL1xuICBnZXRJZCA9ICgpID0+IHRoaXMuaWQ7XG5cbiAgLyoqXG4gICAqIGdldHMgYmxvY2sgaWQgYW5kIHRyYW5zYWN0aW9ucyBjb3JyZXNwb25kaW5nIHRvIHRoZSBibG9jayBhbmQgc2F2ZXMgYWxsIHRyYW5zYWN0aW9uIGlkcyBpbiBkYXRhYmFzZVxuICAgKiBAcGFyYW0gdHhzXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKi9cbiAgcHJvY2Vzc1RyYW5zYWN0aW9ucyA9IGFzeW5jIChcbiAgICB0eHM6IEFycmF5PFR4QmFiYmFnZT4sXG4gICAgYmxvY2s6IEJsb2NrRW50aXR5XG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIGNvbnN0IHR4SWRzID0gdHhzLm1hcCgoaXRlbSkgPT4gaXRlbS5pZCk7XG4gICAgYXdhaXQgdGhpcy5hY3Rpb24uc3RvcmVUeHModHhJZHMsIGJsb2NrLCB0aGlzLmdldElkKCkpO1xuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBmb3JrIG9uZSBibG9jayBhbmQgcmVtb3ZlIGFsbCBzdG9yZWQgdHhJZCBmb3IgdGhpcyBibG9ja1xuICAgKiBAcGFyYW0gaGFzaDogYmxvY2sgaGFzaFxuICAgKi9cbiAgZm9ya0Jsb2NrID0gYXN5bmMgKGhhc2g6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGF3YWl0IHRoaXMuYWN0aW9uLmRlbGV0ZUJsb2NrVHhzKGhhc2gsIHRoaXMuZ2V0SWQoKSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBkYXRhYmFzZSB3aXRoIG9sZGVyIGJveGVzIHJlbGF0ZWQgdG8gdGhlIGFkZHJlc3NcbiAgICovXG4gIGluaXRpYWxpemVCb3hlcyA9IGFzeW5jICgpID0+IHtcbiAgICByZXR1cm47XG4gIH07XG59XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export { CardanoOgmiosTxIdExtractor } from './extractor/cardanoOgmiosTxIdExtractor';
2
+ export { TxIdEntity } from './entities/TxIdEntity';
3
+ export { migrations } from './migrations/index';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export { CardanoOgmiosTxIdExtractor } from './extractor/cardanoOgmiosTxIdExtractor';
2
+ export { TxIdEntity } from './entities/TxIdEntity';
3
+ export { migrations } from './migrations/index';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IENhcmRhbm9PZ21pb3NUeElkRXh0cmFjdG9yIH0gZnJvbSAnLi9leHRyYWN0b3IvY2FyZGFub09nbWlvc1R4SWRFeHRyYWN0b3InO1xuZXhwb3J0IHsgVHhJZEVudGl0eSB9IGZyb20gJy4vZW50aXRpZXMvVHhJZEVudGl0eSc7XG5leHBvcnQgeyBtaWdyYXRpb25zIH0gZnJvbSAnLi9taWdyYXRpb25zL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,7 @@
1
+ import { TxIdEntity1683960673259 } from './sqlite/1683960673259-tx-id-entity';
2
+ import { TxIdEntity1683960694422 } from './postgres/1683960694422-tx-id-entity';
3
+ export declare const migrations: {
4
+ sqlite: (typeof TxIdEntity1683960673259)[];
5
+ postgres: (typeof TxIdEntity1683960694422)[];
6
+ };
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAEhF,eAAO,MAAM,UAAU;;;CAGtB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { TxIdEntity1683960673259 } from './sqlite/1683960673259-tx-id-entity';
2
+ import { TxIdEntity1683960694422 } from './postgres/1683960694422-tx-id-entity';
3
+ export const migrations = {
4
+ sqlite: [TxIdEntity1683960673259],
5
+ postgres: [TxIdEntity1683960694422],
6
+ };
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWlncmF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUVoRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsTUFBTSxFQUFFLENBQUMsdUJBQXVCLENBQUM7SUFDakMsUUFBUSxFQUFFLENBQUMsdUJBQXVCLENBQUM7Q0FDcEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR4SWRFbnRpdHkxNjgzOTYwNjczMjU5IH0gZnJvbSAnLi9zcWxpdGUvMTY4Mzk2MDY3MzI1OS10eC1pZC1lbnRpdHknO1xuaW1wb3J0IHsgVHhJZEVudGl0eTE2ODM5NjA2OTQ0MjIgfSBmcm9tICcuL3Bvc3RncmVzLzE2ODM5NjA2OTQ0MjItdHgtaWQtZW50aXR5JztcblxuZXhwb3J0IGNvbnN0IG1pZ3JhdGlvbnMgPSB7XG4gIHNxbGl0ZTogW1R4SWRFbnRpdHkxNjgzOTYwNjczMjU5XSxcbiAgcG9zdGdyZXM6IFtUeElkRW50aXR5MTY4Mzk2MDY5NDQyMl0sXG59O1xuIl19
@@ -0,0 +1,7 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class TxIdEntity1683960694422 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=1683960694422-tx-id-entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1683960694422-tx-id-entity.d.ts","sourceRoot":"","sources":["../../../lib/migrations/postgres/1683960694422-tx-id-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1D,qBAAa,uBAAwB,YAAW,kBAAkB;IAChE,IAAI,SAA6B;IAEpB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAG3D"}
@@ -0,0 +1,14 @@
1
+ export class TxIdEntity1683960694422 {
2
+ name = 'TxIdEntity1683960694422';
3
+ async up(queryRunner) {
4
+ await queryRunner.query(`CREATE TABLE "tx_id_entity" (
5
+ "id" serial PRIMARY KEY NOT NULL,
6
+ "txId" varchar NOT NULL,
7
+ "blockId" varchar NOT NULL,
8
+ "extractor" varchar NOT NULL)`);
9
+ }
10
+ async down(queryRunner) {
11
+ await queryRunner.query(`DROP TABLE "tx_id_entity"`);
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTY4Mzk2MDY5NDQyMi10eC1pZC1lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvbWlncmF0aW9ucy9wb3N0Z3Jlcy8xNjgzOTYwNjk0NDIyLXR4LWlkLWVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLElBQUksR0FBRyx5QkFBeUIsQ0FBQztJQUUxQixLQUFLLENBQUMsRUFBRSxDQUFDLFdBQXdCO1FBQ3RDLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FDckI7Ozs7c0NBSWdDLENBQ2pDLENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUksQ0FBQyxXQUF3QjtRQUN4QyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUN2RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNaWdyYXRpb25JbnRlcmZhY2UsIFF1ZXJ5UnVubmVyIH0gZnJvbSAndHlwZW9ybSc7XG5cbmV4cG9ydCBjbGFzcyBUeElkRW50aXR5MTY4Mzk2MDY5NDQyMiBpbXBsZW1lbnRzIE1pZ3JhdGlvbkludGVyZmFjZSB7XG4gIG5hbWUgPSAnVHhJZEVudGl0eTE2ODM5NjA2OTQ0MjInO1xuXG4gIHB1YmxpYyBhc3luYyB1cChxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShcbiAgICAgIGBDUkVBVEUgVEFCTEUgXCJ0eF9pZF9lbnRpdHlcIiAoXG4gICAgICAgIFwiaWRcIiBzZXJpYWwgUFJJTUFSWSBLRVkgTk9UIE5VTEwsXG4gICAgICAgIFwidHhJZFwiIHZhcmNoYXIgTk9UIE5VTEwsIFxuICAgICAgICBcImJsb2NrSWRcIiB2YXJjaGFyIE5PVCBOVUxMLCBcbiAgICAgICAgXCJleHRyYWN0b3JcIiB2YXJjaGFyIE5PVCBOVUxMKWBcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRvd24ocXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYERST1AgVEFCTEUgXCJ0eF9pZF9lbnRpdHlcImApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,7 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class TxIdEntity1683960673259 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=1683960673259-tx-id-entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1683960673259-tx-id-entity.d.ts","sourceRoot":"","sources":["../../../lib/migrations/sqlite/1683960673259-tx-id-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1D,qBAAa,uBAAwB,YAAW,kBAAkB;IAChE,IAAI,SAA6B;IAEpB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAG3D"}
@@ -0,0 +1,14 @@
1
+ export class TxIdEntity1683960673259 {
2
+ name = 'TxIdEntity1683960673259';
3
+ async up(queryRunner) {
4
+ await queryRunner.query(`CREATE TABLE "tx_id_entity" (
5
+ "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
6
+ "txId" varchar NOT NULL,
7
+ "blockId" varchar NOT NULL,
8
+ "extractor" varchar NOT NULL)`);
9
+ }
10
+ async down(queryRunner) {
11
+ await queryRunner.query(`DROP TABLE "tx_id_entity"`);
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTY4Mzk2MDY3MzI1OS10eC1pZC1lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvbWlncmF0aW9ucy9zcWxpdGUvMTY4Mzk2MDY3MzI1OS10eC1pZC1lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxJQUFJLEdBQUcseUJBQXlCLENBQUM7SUFFMUIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUF3QjtRQUN0QyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQ3JCOzs7O3NEQUlnRCxDQUNqRCxDQUFDO0lBQ0osQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBd0I7UUFDeEMsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWlncmF0aW9uSW50ZXJmYWNlLCBRdWVyeVJ1bm5lciB9IGZyb20gJ3R5cGVvcm0nO1xuXG5leHBvcnQgY2xhc3MgVHhJZEVudGl0eTE2ODM5NjA2NzMyNTkgaW1wbGVtZW50cyBNaWdyYXRpb25JbnRlcmZhY2Uge1xuICBuYW1lID0gJ1R4SWRFbnRpdHkxNjgzOTYwNjczMjU5JztcblxuICBwdWJsaWMgYXN5bmMgdXAocXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoXG4gICAgICBgQ1JFQVRFIFRBQkxFIFwidHhfaWRfZW50aXR5XCIgKFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJpZFwiIGludGVnZXIgUFJJTUFSWSBLRVkgQVVUT0lOQ1JFTUVOVCBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHhJZFwiIHZhcmNoYXIgTk9UIE5VTEwsIFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJibG9ja0lkXCIgdmFyY2hhciBOT1QgTlVMTCwgXG4gICAgICAgICAgICAgICAgICAgICAgICBcImV4dHJhY3RvclwiIHZhcmNoYXIgTk9UIE5VTEwpYFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZG93bihxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgRFJPUCBUQUJMRSBcInR4X2lkX2VudGl0eVwiYCk7XG4gIH1cbn1cbiJdfQ==
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@rosen-bridge/tx-id-extractor",
3
+ "version": "0.1.1",
4
+ "description": "Extract and store all transaction ids in ogmios blocks.",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist"
9
+ ],
10
+ "scripts": {
11
+ "prettify": "prettier --write . --ignore-path ../../.gitignore",
12
+ "lint": "eslint --fix . && npm run prettify",
13
+ "test": "jest --detectOpenHandles",
14
+ "coverage": "jest --detectOpenHandles --coverage",
15
+ "build": "tsc --build",
16
+ "type-check": "tsc --noEmit",
17
+ "release": "npm run test && npm run build && npm publish --access public"
18
+ },
19
+ "author": "Vorujack",
20
+ "license": "GPL-3.0",
21
+ "dependencies": {
22
+ "@rosen-bridge/logger-interface": "^0.1.0",
23
+ "@rosen-bridge/scanner": "^1.0.2",
24
+ "sqlite3": "^5.0.9",
25
+ "typeorm": "^0.3.7"
26
+ },
27
+ "type": "module",
28
+ "devDependencies": {
29
+ "@babel/preset-env": "^7.19.0",
30
+ "@types/jest": "^28.1.6",
31
+ "@types/json-bigint": "^1.0.1",
32
+ "@types/node": "^18.0.6",
33
+ "@typescript-eslint/eslint-plugin": "^5.30.7",
34
+ "@typescript-eslint/parser": "^5.26.0",
35
+ "eslint": "^8.16.0",
36
+ "eslint-config-prettier": "^8.5.0",
37
+ "jest": "^28.1.3",
38
+ "json-bigint": "^1.0.0",
39
+ "prettier": "2.7.1",
40
+ "ts-jest": "^28.0.7",
41
+ "typescript": "^5.0.4"
42
+ }
43
+ }