@rosen-bridge/tx-pot 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/.eslintignore +1 -0
  2. package/README.md +36 -0
  3. package/dist/db/entities/TransactionEntity.d.ts +15 -0
  4. package/dist/db/entities/TransactionEntity.d.ts.map +1 -0
  5. package/dist/db/entities/TransactionEntity.js +81 -0
  6. package/dist/db/migrations/index.d.ts +7 -0
  7. package/dist/db/migrations/index.d.ts.map +1 -0
  8. package/dist/db/migrations/index.js +7 -0
  9. package/dist/db/migrations/postgres/1706350644686-migration.d.ts +7 -0
  10. package/dist/db/migrations/postgres/1706350644686-migration.d.ts.map +1 -0
  11. package/dist/db/migrations/postgres/1706350644686-migration.js +28 -0
  12. package/dist/db/migrations/sqlite/1706007154531-migration.d.ts +7 -0
  13. package/dist/db/migrations/sqlite/1706007154531-migration.d.ts.map +1 -0
  14. package/dist/db/migrations/sqlite/1706007154531-migration.js +28 -0
  15. package/dist/index.d.ts +6 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +6 -0
  18. package/dist/network/AbstractPotChainManager.d.ts +36 -0
  19. package/dist/network/AbstractPotChainManager.d.ts.map +1 -0
  20. package/dist/network/AbstractPotChainManager.js +3 -0
  21. package/dist/transaction/TxPot.d.ts +164 -0
  22. package/dist/transaction/TxPot.d.ts.map +1 -0
  23. package/dist/transaction/TxPot.js +386 -0
  24. package/dist/transaction/types.d.ts +35 -0
  25. package/dist/transaction/types.d.ts.map +1 -0
  26. package/dist/transaction/types.js +21 -0
  27. package/dist/transaction/utils.d.ts +8 -0
  28. package/dist/transaction/utils.d.ts.map +1 -0
  29. package/dist/transaction/utils.js +56 -0
  30. package/lib/db/entities/TransactionEntity.ts +44 -0
  31. package/lib/db/migrations/index.ts +7 -0
  32. package/lib/db/migrations/postgres/1706350644686-migration.ts +31 -0
  33. package/lib/db/migrations/sqlite/1706007154531-migration.ts +31 -0
  34. package/lib/index.ts +5 -0
  35. package/lib/network/AbstractPotChainManager.ts +44 -0
  36. package/lib/transaction/TxPot.ts +519 -0
  37. package/lib/transaction/types.ts +46 -0
  38. package/lib/transaction/utils.ts +59 -0
  39. package/package.json +39 -0
  40. package/tests/.gitkeep +0 -0
  41. package/tests/db/dataSource.mock.ts +18 -0
  42. package/tests/network/TestPotChainManager.ts +23 -0
  43. package/tests/transaction/TestTxPot.ts +32 -0
  44. package/tests/transaction/TxPot.spec.ts +1517 -0
  45. package/tests/transaction/testData.ts +84 -0
  46. package/tsconfig.build.json +8 -0
  47. package/tsconfig.build.tsbuildinfo +1 -0
  48. package/tsconfig.json +9 -0
  49. package/vitest.config.ts +13 -0
package/.eslintignore ADDED
@@ -0,0 +1 @@
1
+ dist
package/README.md ADDED
@@ -0,0 +1,36 @@
1
+ # @rosen-bridge/tx-pot
2
+
3
+ ## Table of contents
4
+
5
+ - [Introduction](#introduction)
6
+ - [Installation](#installation)
7
+ - [Implementation Details](#implementation-details)
8
+ - [Usage](#usage)
9
+
10
+ ## Introduction
11
+
12
+ `@rosen-bridge/tx-pot` is a Typescript package to manage transactions storage, sign, submit and related processes.
13
+
14
+ TODO
15
+
16
+ ## Installation
17
+
18
+ npm:
19
+
20
+ ```sh
21
+ npm i @rosen-bridge/tx-pot
22
+ ```
23
+
24
+ yarn:
25
+
26
+ ```sh
27
+ yarn add @rosen-bridge/tx-pot
28
+ ```
29
+
30
+ ## Implementation Details
31
+
32
+ TODO
33
+
34
+ ## Usage
35
+
36
+ TODO
@@ -0,0 +1,15 @@
1
+ export declare class TransactionEntity {
2
+ txId: string;
3
+ chain: string;
4
+ txType: string;
5
+ status: string;
6
+ requiredSign: number;
7
+ lastCheck: number;
8
+ lastStatusUpdate: string;
9
+ failedInSign: boolean;
10
+ signFailedCount: number;
11
+ serializedTx: string;
12
+ extra?: string;
13
+ extra2?: string;
14
+ }
15
+ //# sourceMappingURL=TransactionEntity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionEntity.d.ts","sourceRoot":"","sources":["../../../lib/db/entities/TransactionEntity.ts"],"names":[],"mappings":"AAEA,qBACa,iBAAiB;IAE5B,IAAI,EAAE,MAAM,CAAC;IAGb,KAAK,EAAE,MAAM,CAAC;IAGd,MAAM,EAAE,MAAM,CAAC;IAGf,MAAM,EAAE,MAAM,CAAC;IAGf,YAAY,EAAE,MAAM,CAAC;IAGrB,SAAS,EAAE,MAAM,CAAC;IAGlB,gBAAgB,EAAE,MAAM,CAAC;IAGzB,YAAY,EAAE,OAAO,CAAC;IAGtB,eAAe,EAAE,MAAM,CAAC;IAGxB,YAAY,EAAE,MAAM,CAAC;IAKrB,KAAK,CAAC,EAAE,MAAM,CAAC;IAKf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,81 @@
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, PrimaryColumn } from 'typeorm';
11
+ let TransactionEntity = class TransactionEntity {
12
+ txId;
13
+ chain;
14
+ txType;
15
+ status;
16
+ requiredSign;
17
+ lastCheck;
18
+ lastStatusUpdate;
19
+ failedInSign;
20
+ signFailedCount;
21
+ serializedTx;
22
+ extra;
23
+ extra2;
24
+ };
25
+ __decorate([
26
+ PrimaryColumn('varchar'),
27
+ __metadata("design:type", String)
28
+ ], TransactionEntity.prototype, "txId", void 0);
29
+ __decorate([
30
+ PrimaryColumn('varchar'),
31
+ __metadata("design:type", String)
32
+ ], TransactionEntity.prototype, "chain", void 0);
33
+ __decorate([
34
+ Column('varchar'),
35
+ __metadata("design:type", String)
36
+ ], TransactionEntity.prototype, "txType", void 0);
37
+ __decorate([
38
+ Column('varchar'),
39
+ __metadata("design:type", String)
40
+ ], TransactionEntity.prototype, "status", void 0);
41
+ __decorate([
42
+ Column('integer'),
43
+ __metadata("design:type", Number)
44
+ ], TransactionEntity.prototype, "requiredSign", void 0);
45
+ __decorate([
46
+ Column('integer'),
47
+ __metadata("design:type", Number)
48
+ ], TransactionEntity.prototype, "lastCheck", void 0);
49
+ __decorate([
50
+ Column('varchar'),
51
+ __metadata("design:type", String)
52
+ ], TransactionEntity.prototype, "lastStatusUpdate", void 0);
53
+ __decorate([
54
+ Column('boolean'),
55
+ __metadata("design:type", Boolean)
56
+ ], TransactionEntity.prototype, "failedInSign", void 0);
57
+ __decorate([
58
+ Column('integer'),
59
+ __metadata("design:type", Number)
60
+ ], TransactionEntity.prototype, "signFailedCount", void 0);
61
+ __decorate([
62
+ Column('varchar'),
63
+ __metadata("design:type", String)
64
+ ], TransactionEntity.prototype, "serializedTx", void 0);
65
+ __decorate([
66
+ Column('varchar', {
67
+ nullable: true,
68
+ }),
69
+ __metadata("design:type", String)
70
+ ], TransactionEntity.prototype, "extra", void 0);
71
+ __decorate([
72
+ Column('varchar', {
73
+ nullable: true,
74
+ }),
75
+ __metadata("design:type", String)
76
+ ], TransactionEntity.prototype, "extra2", void 0);
77
+ TransactionEntity = __decorate([
78
+ Entity()
79
+ ], TransactionEntity);
80
+ export { TransactionEntity };
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNhY3Rpb25FbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZGIvZW50aXRpZXMvVHJhbnNhY3Rpb25FbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBR2pELElBQU0saUJBQWlCLEdBQXZCLE1BQU0saUJBQWlCO0lBRTVCLElBQUksQ0FBUztJQUdiLEtBQUssQ0FBUztJQUdkLE1BQU0sQ0FBUztJQUdmLE1BQU0sQ0FBUztJQUdmLFlBQVksQ0FBUztJQUdyQixTQUFTLENBQVM7SUFHbEIsZ0JBQWdCLENBQVM7SUFHekIsWUFBWSxDQUFVO0lBR3RCLGVBQWUsQ0FBUztJQUd4QixZQUFZLENBQVM7SUFLckIsS0FBSyxDQUFVO0lBS2YsTUFBTSxDQUFVO0NBQ2pCLENBQUE7QUF0Q0M7SUFEQyxhQUFhLENBQUMsU0FBUyxDQUFDOzsrQ0FDWjtBQUdiO0lBREMsYUFBYSxDQUFDLFNBQVMsQ0FBQzs7Z0RBQ1g7QUFHZDtJQURDLE1BQU0sQ0FBQyxTQUFTLENBQUM7O2lEQUNIO0FBR2Y7SUFEQyxNQUFNLENBQUMsU0FBUyxDQUFDOztpREFDSDtBQUdmO0lBREMsTUFBTSxDQUFDLFNBQVMsQ0FBQzs7dURBQ0c7QUFHckI7SUFEQyxNQUFNLENBQUMsU0FBUyxDQUFDOztvREFDQTtBQUdsQjtJQURDLE1BQU0sQ0FBQyxTQUFTLENBQUM7OzJEQUNPO0FBR3pCO0lBREMsTUFBTSxDQUFDLFNBQVMsQ0FBQzs7dURBQ0k7QUFHdEI7SUFEQyxNQUFNLENBQUMsU0FBUyxDQUFDOzswREFDTTtBQUd4QjtJQURDLE1BQU0sQ0FBQyxTQUFTLENBQUM7O3VEQUNHO0FBS3JCO0lBSEMsTUFBTSxDQUFDLFNBQVMsRUFBRTtRQUNqQixRQUFRLEVBQUUsSUFBSTtLQUNmLENBQUM7O2dEQUNhO0FBS2Y7SUFIQyxNQUFNLENBQUMsU0FBUyxFQUFFO1FBQ2pCLFFBQVEsRUFBRSxJQUFJO0tBQ2YsQ0FBQzs7aURBQ2M7QUF2Q0wsaUJBQWlCO0lBRDdCLE1BQU0sRUFBRTtHQUNJLGlCQUFpQixDQXdDN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2x1bW4sIEVudGl0eSwgUHJpbWFyeUNvbHVtbiB9IGZyb20gJ3R5cGVvcm0nO1xuXG5ARW50aXR5KClcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkVudGl0eSB7XG4gIEBQcmltYXJ5Q29sdW1uKCd2YXJjaGFyJylcbiAgdHhJZDogc3RyaW5nO1xuXG4gIEBQcmltYXJ5Q29sdW1uKCd2YXJjaGFyJylcbiAgY2hhaW46IHN0cmluZztcblxuICBAQ29sdW1uKCd2YXJjaGFyJylcbiAgdHhUeXBlOiBzdHJpbmc7XG5cbiAgQENvbHVtbigndmFyY2hhcicpXG4gIHN0YXR1czogc3RyaW5nO1xuXG4gIEBDb2x1bW4oJ2ludGVnZXInKVxuICByZXF1aXJlZFNpZ246IG51bWJlcjtcblxuICBAQ29sdW1uKCdpbnRlZ2VyJylcbiAgbGFzdENoZWNrOiBudW1iZXI7XG5cbiAgQENvbHVtbigndmFyY2hhcicpXG4gIGxhc3RTdGF0dXNVcGRhdGU6IHN0cmluZztcblxuICBAQ29sdW1uKCdib29sZWFuJylcbiAgZmFpbGVkSW5TaWduOiBib29sZWFuO1xuXG4gIEBDb2x1bW4oJ2ludGVnZXInKVxuICBzaWduRmFpbGVkQ291bnQ6IG51bWJlcjtcblxuICBAQ29sdW1uKCd2YXJjaGFyJylcbiAgc2VyaWFsaXplZFR4OiBzdHJpbmc7XG5cbiAgQENvbHVtbigndmFyY2hhcicsIHtcbiAgICBudWxsYWJsZTogdHJ1ZSxcbiAgfSlcbiAgZXh0cmE/OiBzdHJpbmc7XG5cbiAgQENvbHVtbigndmFyY2hhcicsIHtcbiAgICBudWxsYWJsZTogdHJ1ZSxcbiAgfSlcbiAgZXh0cmEyPzogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,7 @@
1
+ import { Migration1706350644686 } from './postgres/1706350644686-migration';
2
+ import { Migration1706007154531 } from './sqlite/1706007154531-migration';
3
+ export declare const migrations: {
4
+ sqlite: (typeof Migration1706007154531)[];
5
+ postgres: (typeof Migration1706350644686)[];
6
+ };
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/db/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,eAAO,MAAM,UAAU;;;CAGtB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Migration1706350644686 } from './postgres/1706350644686-migration';
2
+ import { Migration1706007154531 } from './sqlite/1706007154531-migration';
3
+ export const migrations = {
4
+ sqlite: [Migration1706007154531],
5
+ postgres: [Migration1706350644686],
6
+ };
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZGIvbWlncmF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxRSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsTUFBTSxFQUFFLENBQUMsc0JBQXNCLENBQUM7SUFDaEMsUUFBUSxFQUFFLENBQUMsc0JBQXNCLENBQUM7Q0FDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pZ3JhdGlvbjE3MDYzNTA2NDQ2ODYgfSBmcm9tICcuL3Bvc3RncmVzLzE3MDYzNTA2NDQ2ODYtbWlncmF0aW9uJztcbmltcG9ydCB7IE1pZ3JhdGlvbjE3MDYwMDcxNTQ1MzEgfSBmcm9tICcuL3NxbGl0ZS8xNzA2MDA3MTU0NTMxLW1pZ3JhdGlvbic7XG5cbmV4cG9ydCBjb25zdCBtaWdyYXRpb25zID0ge1xuICBzcWxpdGU6IFtNaWdyYXRpb24xNzA2MDA3MTU0NTMxXSxcbiAgcG9zdGdyZXM6IFtNaWdyYXRpb24xNzA2MzUwNjQ0Njg2XSxcbn07XG4iXX0=
@@ -0,0 +1,7 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class Migration1706350644686 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=1706350644686-migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1706350644686-migration.d.ts","sourceRoot":"","sources":["../../../../lib/db/migrations/postgres/1706350644686-migration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1D,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,IAAI,SAA4B;IAEnB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAK3D"}
@@ -0,0 +1,28 @@
1
+ export class Migration1706350644686 {
2
+ name = 'Migration1706350644686';
3
+ async up(queryRunner) {
4
+ await queryRunner.query(`
5
+ CREATE TABLE "transaction_entity" (
6
+ "txId" character varying NOT NULL,
7
+ "chain" character varying NOT NULL,
8
+ "txType" character varying NOT NULL,
9
+ "status" character varying NOT NULL,
10
+ "requiredSign" integer NOT NULL,
11
+ "lastCheck" integer NOT NULL,
12
+ "lastStatusUpdate" character varying NOT NULL,
13
+ "failedInSign" boolean NOT NULL,
14
+ "signFailedCount" integer NOT NULL,
15
+ "serializedTx" character varying NOT NULL,
16
+ "extra" character varying,
17
+ "extra2" character varying,
18
+ CONSTRAINT "PK_cafcc9d8e76fef57bc0cf385caa" PRIMARY KEY ("txId", "chain")
19
+ )
20
+ `);
21
+ }
22
+ async down(queryRunner) {
23
+ await queryRunner.query(`
24
+ DROP TABLE "transaction_entity"
25
+ `);
26
+ }
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTcwNjM1MDY0NDY4Ni1taWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZGIvbWlncmF0aW9ucy9wb3N0Z3Jlcy8xNzA2MzUwNjQ0Njg2LW1pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLElBQUksR0FBRyx3QkFBd0IsQ0FBQztJQUV6QixLQUFLLENBQUMsRUFBRSxDQUFDLFdBQXdCO1FBQ3RDLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztTQWdCbkIsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBd0I7UUFDeEMsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOztTQUVuQixDQUFDLENBQUM7SUFDVCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNaWdyYXRpb25JbnRlcmZhY2UsIFF1ZXJ5UnVubmVyIH0gZnJvbSAndHlwZW9ybSc7XG5cbmV4cG9ydCBjbGFzcyBNaWdyYXRpb24xNzA2MzUwNjQ0Njg2IGltcGxlbWVudHMgTWlncmF0aW9uSW50ZXJmYWNlIHtcbiAgbmFtZSA9ICdNaWdyYXRpb24xNzA2MzUwNjQ0Njg2JztcblxuICBwdWJsaWMgYXN5bmMgdXAocXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQ1JFQVRFIFRBQkxFIFwidHJhbnNhY3Rpb25fZW50aXR5XCIgKFxuICAgICAgICAgICAgICAgIFwidHhJZFwiIGNoYXJhY3RlciB2YXJ5aW5nIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiY2hhaW5cIiBjaGFyYWN0ZXIgdmFyeWluZyBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInR4VHlwZVwiIGNoYXJhY3RlciB2YXJ5aW5nIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic3RhdHVzXCIgY2hhcmFjdGVyIHZhcnlpbmcgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFNpZ25cIiBpbnRlZ2VyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwibGFzdENoZWNrXCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImxhc3RTdGF0dXNVcGRhdGVcIiBjaGFyYWN0ZXIgdmFyeWluZyBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImZhaWxlZEluU2lnblwiIGJvb2xlYW4gTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJzaWduRmFpbGVkQ291bnRcIiBpbnRlZ2VyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic2VyaWFsaXplZFR4XCIgY2hhcmFjdGVyIHZhcnlpbmcgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJleHRyYVwiIGNoYXJhY3RlciB2YXJ5aW5nLFxuICAgICAgICAgICAgICAgIFwiZXh0cmEyXCIgY2hhcmFjdGVyIHZhcnlpbmcsXG4gICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBcIlBLX2NhZmNjOWQ4ZTc2ZmVmNTdiYzBjZjM4NWNhYVwiIFBSSU1BUlkgS0VZIChcInR4SWRcIiwgXCJjaGFpblwiKVxuICAgICAgICAgICAgKVxuICAgICAgICBgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkb3duKHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIERST1AgVEFCTEUgXCJ0cmFuc2FjdGlvbl9lbnRpdHlcIlxuICAgICAgICBgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,7 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class Migration1706007154531 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=1706007154531-migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1706007154531-migration.d.ts","sourceRoot":"","sources":["../../../../lib/db/migrations/sqlite/1706007154531-migration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1D,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,IAAI,SAA4B;IAEnB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAK3D"}
@@ -0,0 +1,28 @@
1
+ export class Migration1706007154531 {
2
+ name = 'Migration1706007154531';
3
+ async up(queryRunner) {
4
+ await queryRunner.query(`
5
+ CREATE TABLE "transaction_entity" (
6
+ "txId" varchar NOT NULL,
7
+ "chain" varchar NOT NULL,
8
+ "txType" varchar NOT NULL,
9
+ "status" varchar NOT NULL,
10
+ "requiredSign" integer NOT NULL,
11
+ "lastCheck" integer NOT NULL,
12
+ "lastStatusUpdate" varchar NOT NULL,
13
+ "failedInSign" boolean NOT NULL,
14
+ "signFailedCount" integer NOT NULL,
15
+ "serializedTx" varchar NOT NULL,
16
+ "extra" varchar,
17
+ "extra2" varchar,
18
+ PRIMARY KEY ("txId", "chain")
19
+ )
20
+ `);
21
+ }
22
+ async down(queryRunner) {
23
+ await queryRunner.query(`
24
+ DROP TABLE "transaction_entity"
25
+ `);
26
+ }
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTcwNjAwNzE1NDUzMS1taWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZGIvbWlncmF0aW9ucy9zcWxpdGUvMTcwNjAwNzE1NDUzMS1taWdyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxJQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFFekIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUF3QjtRQUN0QyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7U0FnQm5CLENBQUMsQ0FBQztJQUNULENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQXdCO1FBQ3hDLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7U0FFbkIsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWlncmF0aW9uSW50ZXJmYWNlLCBRdWVyeVJ1bm5lciB9IGZyb20gJ3R5cGVvcm0nO1xuXG5leHBvcnQgY2xhc3MgTWlncmF0aW9uMTcwNjAwNzE1NDUzMSBpbXBsZW1lbnRzIE1pZ3JhdGlvbkludGVyZmFjZSB7XG4gIG5hbWUgPSAnTWlncmF0aW9uMTcwNjAwNzE1NDUzMSc7XG5cbiAgcHVibGljIGFzeW5jIHVwKHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIENSRUFURSBUQUJMRSBcInRyYW5zYWN0aW9uX2VudGl0eVwiIChcbiAgICAgICAgICAgICAgICBcInR4SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiY2hhaW5cIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwidHhUeXBlXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInN0YXR1c1wiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFNpZ25cIiBpbnRlZ2VyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwibGFzdENoZWNrXCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImxhc3RTdGF0dXNVcGRhdGVcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZmFpbGVkSW5TaWduXCIgYm9vbGVhbiBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNpZ25GYWlsZWRDb3VudFwiIGludGVnZXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJzZXJpYWxpemVkVHhcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFcIiB2YXJjaGFyLFxuICAgICAgICAgICAgICAgIFwiZXh0cmEyXCIgdmFyY2hhcixcbiAgICAgICAgICAgICAgICBQUklNQVJZIEtFWSAoXCJ0eElkXCIsIFwiY2hhaW5cIilcbiAgICAgICAgICAgIClcbiAgICAgICAgYCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZG93bihxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBEUk9QIFRBQkxFIFwidHJhbnNhY3Rpb25fZW50aXR5XCJcbiAgICAgICAgYCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ export { AbstractPotChainManager } from './network/AbstractPotChainManager';
2
+ export { TxPot } from './transaction/TxPot';
3
+ export * from './transaction/types';
4
+ export { TransactionEntity } from './db/entities/TransactionEntity';
5
+ export { migrations } from './db/migrations/index';
6
+ //# 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,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ export { AbstractPotChainManager } from './network/AbstractPotChainManager';
2
+ export { TxPot } from './transaction/TxPot';
3
+ export * from './transaction/types';
4
+ export { TransactionEntity } from './db/entities/TransactionEntity';
5
+ export { migrations } from './db/migrations/index';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDNUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQWJzdHJhY3RQb3RDaGFpbk1hbmFnZXIgfSBmcm9tICcuL25ldHdvcmsvQWJzdHJhY3RQb3RDaGFpbk1hbmFnZXInO1xuZXhwb3J0IHsgVHhQb3QgfSBmcm9tICcuL3RyYW5zYWN0aW9uL1R4UG90JztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNhY3Rpb24vdHlwZXMnO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25FbnRpdHkgfSBmcm9tICcuL2RiL2VudGl0aWVzL1RyYW5zYWN0aW9uRW50aXR5JztcbmV4cG9ydCB7IG1pZ3JhdGlvbnMgfSBmcm9tICcuL2RiL21pZ3JhdGlvbnMvaW5kZXgnO1xuIl19
@@ -0,0 +1,36 @@
1
+ import { SigningStatus } from '../transaction/types';
2
+ export declare abstract class AbstractPotChainManager {
3
+ /**
4
+ * gets the blockchain current height
5
+ */
6
+ abstract getHeight: () => Promise<number>;
7
+ /**
8
+ * returns required number of confirmation
9
+ * @param txType
10
+ */
11
+ abstract getTxRequiredConfirmation: (txType: string) => number;
12
+ /**
13
+ * gets number of confirmation for a tx
14
+ * returns -1 if tx is not in the blockchain
15
+ * @param txId
16
+ */
17
+ abstract getTxConfirmation: (txId: string) => Promise<number>;
18
+ /**
19
+ * checks if a tx is still valid and can be sent to the network
20
+ * @param serializedTx
21
+ * @param signingStatus
22
+ */
23
+ abstract isTxValid: (serializedTx: string, signingStatus: SigningStatus) => Promise<boolean>;
24
+ /**
25
+ * submits a tx to the blockchain
26
+ * @param serializedTx
27
+ */
28
+ abstract submitTransaction: (serializedTx: string) => Promise<void>;
29
+ /**
30
+ * checks if a tx is in mempool
31
+ * returns false if the chain has no mempool
32
+ * @param txId
33
+ */
34
+ abstract isTxInMempool: (txId: string) => Promise<boolean>;
35
+ }
36
+ //# sourceMappingURL=AbstractPotChainManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractPotChainManager.d.ts","sourceRoot":"","sources":["../../lib/network/AbstractPotChainManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,8BAAsB,uBAAuB;IAC3C;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1C;;;OAGG;IACH,QAAQ,CAAC,yBAAyB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAE/D;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9D;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,CAClB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,aAAa,KACzB,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;;OAIG;IACH,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5D"}
@@ -0,0 +1,3 @@
1
+ export class AbstractPotChainManager {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RQb3RDaGFpbk1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbmV0d29yay9BYnN0cmFjdFBvdENoYWluTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQWdCLHVCQUF1QjtDQXlDNUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaWduaW5nU3RhdHVzIH0gZnJvbSAnLi4vdHJhbnNhY3Rpb24vdHlwZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RQb3RDaGFpbk1hbmFnZXIge1xuICAvKipcbiAgICogZ2V0cyB0aGUgYmxvY2tjaGFpbiBjdXJyZW50IGhlaWdodFxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0SGVpZ2h0OiAoKSA9PiBQcm9taXNlPG51bWJlcj47XG5cbiAgLyoqXG4gICAqIHJldHVybnMgcmVxdWlyZWQgbnVtYmVyIG9mIGNvbmZpcm1hdGlvblxuICAgKiBAcGFyYW0gdHhUeXBlXG4gICAqL1xuICBhYnN0cmFjdCBnZXRUeFJlcXVpcmVkQ29uZmlybWF0aW9uOiAodHhUeXBlOiBzdHJpbmcpID0+IG51bWJlcjtcblxuICAvKipcbiAgICogZ2V0cyBudW1iZXIgb2YgY29uZmlybWF0aW9uIGZvciBhIHR4XG4gICAqICByZXR1cm5zIC0xIGlmIHR4IGlzIG5vdCBpbiB0aGUgYmxvY2tjaGFpblxuICAgKiBAcGFyYW0gdHhJZFxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0VHhDb25maXJtYXRpb246ICh0eElkOiBzdHJpbmcpID0+IFByb21pc2U8bnVtYmVyPjtcblxuICAvKipcbiAgICogY2hlY2tzIGlmIGEgdHggaXMgc3RpbGwgdmFsaWQgYW5kIGNhbiBiZSBzZW50IHRvIHRoZSBuZXR3b3JrXG4gICAqIEBwYXJhbSBzZXJpYWxpemVkVHhcbiAgICogQHBhcmFtIHNpZ25pbmdTdGF0dXNcbiAgICovXG4gIGFic3RyYWN0IGlzVHhWYWxpZDogKFxuICAgIHNlcmlhbGl6ZWRUeDogc3RyaW5nLFxuICAgIHNpZ25pbmdTdGF0dXM6IFNpZ25pbmdTdGF0dXNcbiAgKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBzdWJtaXRzIGEgdHggdG8gdGhlIGJsb2NrY2hhaW5cbiAgICogQHBhcmFtIHNlcmlhbGl6ZWRUeFxuICAgKi9cbiAgYWJzdHJhY3Qgc3VibWl0VHJhbnNhY3Rpb246IChzZXJpYWxpemVkVHg6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogY2hlY2tzIGlmIGEgdHggaXMgaW4gbWVtcG9vbFxuICAgKiAgcmV0dXJucyBmYWxzZSBpZiB0aGUgY2hhaW4gaGFzIG5vIG1lbXBvb2xcbiAgICogQHBhcmFtIHR4SWRcbiAgICovXG4gIGFic3RyYWN0IGlzVHhJbk1lbXBvb2w6ICh0eElkOiBzdHJpbmcpID0+IFByb21pc2U8Ym9vbGVhbj47XG59XG4iXX0=
@@ -0,0 +1,164 @@
1
+ import { DataSource, Repository } from 'typeorm';
2
+ import { TransactionEntity } from '../db/entities/TransactionEntity';
3
+ import { AbstractLogger } from '@rosen-bridge/logger-interface';
4
+ import { CallbackFunction, TransactionStatus, TxOptions, ValidatorFunction } from './types';
5
+ import { AbstractPotChainManager } from '../network/AbstractPotChainManager';
6
+ export declare class TxPot {
7
+ protected static instance: TxPot;
8
+ protected readonly txRepository: Repository<TransactionEntity>;
9
+ protected chains: Map<string, AbstractPotChainManager>;
10
+ protected validators: Map<string, Map<string, ValidatorFunction>>;
11
+ protected txTypeCallbacks: Map<string, Map<TransactionStatus, CallbackFunction>>;
12
+ protected logger: AbstractLogger;
13
+ protected constructor(dataSource: DataSource, logger?: AbstractLogger);
14
+ /**
15
+ * initiates TxPot
16
+ * @param dataSource typeorm data source
17
+ * @param logger
18
+ * @returns
19
+ */
20
+ static setup: (dataSource: DataSource, logger?: AbstractLogger) => TxPot;
21
+ /**
22
+ * returns TxPot instance (throws error if none exists)
23
+ * @returns TxPot instance
24
+ */
25
+ static getInstance: () => TxPot;
26
+ /**
27
+ * registers a chain to TxPot
28
+ * @param chain
29
+ * @param chainManager
30
+ */
31
+ registerChain: (chain: string, chainManager: AbstractPotChainManager) => void;
32
+ /**
33
+ * registers a validator function
34
+ * @param chain
35
+ * @param txType
36
+ * @param validator
37
+ */
38
+ registerValidator: (chain: string, txType: string, validator: ValidatorFunction) => void;
39
+ /**
40
+ * registers a callback function
41
+ * the callback will be called when status of any transactions
42
+ * of given type changes to given status
43
+ * @param txType
44
+ * @param status
45
+ * @param callback
46
+ */
47
+ registerCallback: (txType: string, status: TransactionStatus, callback: CallbackFunction) => void;
48
+ /**
49
+ * returns chain manager for given chain
50
+ * throws error if no manager is registered for it
51
+ * @param chain
52
+ */
53
+ protected getChainManager: (chain: string) => AbstractPotChainManager;
54
+ /**
55
+ * sets the tx as invalid if enough blocks is passed from last check
56
+ * @param tx
57
+ */
58
+ protected setTransactionAsInvalid: (tx: TransactionEntity) => Promise<void>;
59
+ /**
60
+ * validates a transaction
61
+ * returns true if no validator functions is set or tx is valid
62
+ * otherwise handle the tx as invalid and returns false
63
+ * @param tx
64
+ */
65
+ protected validateTx: (tx: TransactionEntity) => Promise<boolean>;
66
+ /**
67
+ * updates the status of a tx
68
+ * @param txKey tx id and chain
69
+ * @param status new status
70
+ */
71
+ protected setTxStatus: (tx: TransactionEntity, status: TransactionStatus) => Promise<void>;
72
+ /**
73
+ * @returns current timestamp in seconds and string format
74
+ */
75
+ protected currentTime: () => string;
76
+ /**
77
+ * submits the signed transaction to the blockchain
78
+ * @param tx
79
+ */
80
+ protected processSignedTx: (tx: TransactionEntity) => Promise<void>;
81
+ /**
82
+ * processes the sent transaction
83
+ * @param tx
84
+ */
85
+ protected processesSentTx: (tx: TransactionEntity) => Promise<void>;
86
+ /**
87
+ * runs all jobs of TxPot
88
+ * - process signed txs
89
+ * - process sent txs
90
+ */
91
+ update: () => Promise<void>;
92
+ /**
93
+ * gets transactions by status
94
+ * @param status
95
+ * @param validate
96
+ * @returns
97
+ */
98
+ getTxsByStatus: (status: TransactionStatus, validate?: boolean) => Promise<Array<TransactionEntity>>;
99
+ /**
100
+ * inserts a new transaction into db
101
+ * @param txId
102
+ * @param chain
103
+ * @param txType
104
+ * @param requiredSign
105
+ * @param serializedTx
106
+ * @param initialStatus
107
+ * @param lastCheck
108
+ */
109
+ addTx: (txId: string, chain: string, txType: string, requiredSign: number, serializedTx: string, initialStatus?: TransactionStatus, lastCheck?: number) => Promise<void>;
110
+ /**
111
+ * updates the status of a tx
112
+ * @param txId
113
+ * @param chain
114
+ * @param status new status
115
+ */
116
+ setTxStatusById: (txId: string, chain: string, status: TransactionStatus) => Promise<void>;
117
+ /**
118
+ * updates tx info when failed in sign process
119
+ * @param txId
120
+ * @param chain
121
+ */
122
+ setTxAsSignFailed: (txId: string, chain: string) => Promise<void>;
123
+ /**
124
+ * updates the tx and set status as signed
125
+ * @param txId
126
+ * @param chain
127
+ * @param serializedTx
128
+ * @param currentHeight current height of the blockchain
129
+ * @param extra
130
+ * @param extra2
131
+ */
132
+ setTxAsSigned: (txId: string, chain: string, serializedTx: string, currentHeight: number, extra?: string, extra2?: string) => Promise<void>;
133
+ /**
134
+ * updates last check value of a tx
135
+ * @param txId
136
+ * @param chain
137
+ * @param currentHeight current height of the blockchain
138
+ */
139
+ updateTxLastCheck: (txId: string, chain: string, currentHeight: number) => Promise<void>;
140
+ /**
141
+ * updates failedInSign field of a transaction to false
142
+ * @param txId
143
+ * @param chain
144
+ */
145
+ resetFailedInSign: (txId: string, chain: string) => Promise<void>;
146
+ /**
147
+ * updates requiredSign field of a transaction
148
+ * @param txId
149
+ * @param chain
150
+ * @param requiredSign
151
+ */
152
+ updateRequiredSign: (txId: string, chain: string, requiredSign: number) => Promise<void>;
153
+ /**
154
+ * gets the transaction by its id and chain
155
+ * @param txId
156
+ * @param chain
157
+ */
158
+ getTxByKey: (txId: string, chain: string) => Promise<TransactionEntity | null>;
159
+ /**
160
+ * @returns the transactions with valid status
161
+ */
162
+ getTxsQuery: (options?: Array<TxOptions>) => Promise<TransactionEntity[]>;
163
+ }
164
+ //# sourceMappingURL=TxPot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TxPot.d.ts","sourceRoot":"","sources":["../../lib/transaction/TxPot.ts"],"names":[],"mappings":"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"}