@rosen-bridge/tx-pot 1.0.3 → 2.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 (54) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +8 -8
  3. package/dist/db/entities/transactionEntity.d.ts +15 -0
  4. package/dist/db/entities/{TransactionEntity.d.ts.map → transactionEntity.d.ts.map} +1 -1
  5. package/dist/db/entities/transactionEntity.js +81 -0
  6. package/dist/db/migrations/index.d.ts +3 -3
  7. package/dist/db/migrations/index.js +3 -3
  8. package/dist/db/migrations/postgres/1706350644686-migration.d.ts +4 -4
  9. package/dist/db/migrations/postgres/1706350644686-migration.d.ts.map +1 -1
  10. package/dist/db/migrations/postgres/1706350644686-migration.js +8 -8
  11. package/dist/db/migrations/sqlite/1706007154531-migration.d.ts +4 -4
  12. package/dist/db/migrations/sqlite/1706007154531-migration.d.ts.map +1 -1
  13. package/dist/db/migrations/sqlite/1706007154531-migration.js +8 -8
  14. package/dist/index.d.ts +4 -4
  15. package/dist/index.js +4 -4
  16. package/dist/network/abstractPotChainManager.d.ts +36 -0
  17. package/dist/network/{AbstractPotChainManager.d.ts.map → abstractPotChainManager.d.ts.map} +1 -1
  18. package/dist/network/{AbstractPotChainManager.js → abstractPotChainManager.js} +3 -2
  19. package/dist/transaction/txPot.d.ts +212 -0
  20. package/dist/transaction/txPot.d.ts.map +1 -0
  21. package/dist/transaction/{TxPot.js → txPot.js} +2 -2
  22. package/dist/transaction/types.d.ts +21 -24
  23. package/dist/transaction/types.d.ts.map +1 -1
  24. package/dist/transaction/types.js +13 -13
  25. package/dist/transaction/utils.d.ts +2 -4
  26. package/dist/transaction/utils.d.ts.map +1 -1
  27. package/dist/transaction/utils.js +48 -43
  28. package/package.json +25 -21
  29. package/.eslintignore +0 -1
  30. package/dist/db/entities/TransactionEntity.d.ts +0 -15
  31. package/dist/db/entities/TransactionEntity.js +0 -125
  32. package/dist/network/AbstractPotChainManager.d.ts +0 -39
  33. package/dist/transaction/TxPot.d.ts +0 -284
  34. package/dist/transaction/TxPot.d.ts.map +0 -1
  35. package/dist/tsconfig.tsbuildinfo +0 -1
  36. package/lib/db/entities/TransactionEntity.ts +0 -44
  37. package/lib/db/migrations/index.ts +0 -7
  38. package/lib/db/migrations/postgres/1706350644686-migration.ts +0 -31
  39. package/lib/db/migrations/sqlite/1706007154531-migration.ts +0 -31
  40. package/lib/index.ts +0 -5
  41. package/lib/network/AbstractPotChainManager.ts +0 -44
  42. package/lib/transaction/TxPot.ts +0 -728
  43. package/lib/transaction/types.ts +0 -46
  44. package/lib/transaction/utils.ts +0 -59
  45. package/tests/.gitkeep +0 -0
  46. package/tests/db/dataSource.mock.ts +0 -18
  47. package/tests/network/TestPotChainManager.ts +0 -23
  48. package/tests/transaction/TestTxPot.ts +0 -32
  49. package/tests/transaction/TxPot.spec.ts +0 -1881
  50. package/tests/transaction/testData.ts +0 -84
  51. package/tsconfig.build.json +0 -8
  52. package/tsconfig.build.tsbuildinfo +0 -1
  53. package/tsconfig.json +0 -9
  54. package/vitest.config.ts +0 -13
@@ -1,46 +0,0 @@
1
- import { TransactionEntity } from '../db/entities/TransactionEntity';
2
-
3
- export type ChainRequiredConfirmations = Record<string, number>; // tx type => required number
4
- export type RequiredConfirmations = Record<string, ChainRequiredConfirmations>;
5
-
6
- export type ValidatorFunction = (tx: TransactionEntity) => Promise<boolean>;
7
- export type CallbackFunction = (
8
- tx: TransactionEntity,
9
- newStatus: TransactionStatus
10
- ) => Promise<void>;
11
-
12
- export enum TransactionStatus {
13
- APPROVED = 'approved',
14
- IN_SIGN = 'in-sign',
15
- SIGN_FAILED = 'sign-failed',
16
- SIGNED = 'signed',
17
- SENT = 'sent',
18
- INVALID = 'invalid',
19
- COMPLETED = 'completed',
20
- }
21
-
22
- export enum SigningStatus {
23
- Signed,
24
- UnSigned,
25
- }
26
-
27
- export type FieldValue<T> = T | Array<T>;
28
- export interface FieldOption<T> {
29
- not: boolean;
30
- value: FieldValue<T>;
31
- }
32
-
33
- export interface TxOptions {
34
- txId?: FieldValue<string>;
35
- chain?: string;
36
- txType?: string;
37
- status?: FieldOption<TransactionStatus>;
38
- failedInSign?: boolean;
39
- extra?: FieldValue<string | null>;
40
- }
41
-
42
- export class UnregisteredChain extends Error {
43
- constructor(msg: string) {
44
- super('UnregisteredChain: ' + msg);
45
- }
46
- }
@@ -1,59 +0,0 @@
1
- import { In, Not } from 'typeorm';
2
- import { TxOptions } from './types';
3
-
4
- /**
5
- * converts options for fetching txs to typeorm clause
6
- * @param options
7
- * @returns
8
- */
9
- export const txOptionToClause = (options: TxOptions) => {
10
- const clause: Record<string, any> = {};
11
-
12
- // add txId clause
13
- if (typeof options.txId === 'string') {
14
- clause.txId = options.txId;
15
- } else if (Array.isArray(options.txId)) {
16
- clause.txId = In(options.txId);
17
- }
18
-
19
- // add chain clause
20
- if (typeof options.chain === 'string') {
21
- clause.chain = options.chain;
22
- }
23
-
24
- // add txType clause
25
- if (typeof options.txType === 'string') {
26
- clause.txType = options.txType;
27
- }
28
-
29
- // add status clause
30
- if (options.status) {
31
- if (typeof options.status.value === 'string') {
32
- if (options.status.not) {
33
- clause.status = Not(options.status.value);
34
- } else {
35
- clause.status = options.status.value;
36
- }
37
- } else if (Array.isArray(options.status.value)) {
38
- if (options.status.not) {
39
- clause.status = Not(In(options.status.value));
40
- } else {
41
- clause.status = In(options.status.value);
42
- }
43
- }
44
- }
45
-
46
- // add failedInSign clause
47
- if (typeof options.failedInSign === 'boolean') {
48
- clause.failedInSign = options.failedInSign;
49
- }
50
-
51
- // add extra clause
52
- if (typeof options.extra === 'string') {
53
- clause.extra = options.extra;
54
- } else if (Array.isArray(options.extra)) {
55
- clause.extra = In(options.extra);
56
- }
57
-
58
- return clause;
59
- };
package/tests/.gitkeep DELETED
File without changes
@@ -1,18 +0,0 @@
1
- import { DataSource } from 'typeorm';
2
- import { TransactionEntity, migrations } from '../../lib';
3
-
4
- export const mockDataSource = async () => {
5
- const testDataSource = new DataSource({
6
- type: 'sqlite',
7
- database: ':memory:',
8
- entities: [TransactionEntity],
9
- migrations: [...migrations.sqlite],
10
- synchronize: false,
11
- logging: false,
12
- });
13
-
14
- await testDataSource.initialize();
15
- await testDataSource.runMigrations();
16
-
17
- return testDataSource;
18
- };
@@ -1,23 +0,0 @@
1
- import { AbstractPotChainManager, SigningStatus } from '../../lib';
2
-
3
- export class TestPotChainManager implements AbstractPotChainManager {
4
- notImplemented = () => {
5
- throw Error('Not implemented');
6
- };
7
-
8
- getHeight: () => Promise<number> = this.notImplemented;
9
-
10
- getTxRequiredConfirmation: (txType: string) => number = this.notImplemented;
11
-
12
- getTxConfirmation: (txId: string) => Promise<number> = this.notImplemented;
13
-
14
- isTxValid: (
15
- serializedTx: string,
16
- signingStatus: SigningStatus
17
- ) => Promise<boolean> = this.notImplemented;
18
-
19
- submitTransaction: (serializedTx: string) => Promise<void> =
20
- this.notImplemented;
21
-
22
- isTxInMempool: (txId: string) => Promise<boolean> = this.notImplemented;
23
- }
@@ -1,32 +0,0 @@
1
- import { DataSource } from 'typeorm';
2
- import { AbstractLogger } from '@rosen-bridge/abstract-logger';
3
- import { TransactionEntity, TransactionStatus, TxPot } from '../../lib';
4
-
5
- export class TestTxPot extends TxPot {
6
- protected static instance: TestTxPot;
7
-
8
- public static setup = (
9
- dataSource: DataSource,
10
- logger?: AbstractLogger
11
- ): TestTxPot => {
12
- TestTxPot.instance = new TestTxPot(dataSource, logger);
13
- return TestTxPot.instance;
14
- };
15
-
16
- callSetTransactionAsInvalid = async (tx: TransactionEntity): Promise<void> =>
17
- this.setTransactionAsInvalid(tx);
18
-
19
- callValidateTx = async (tx: TransactionEntity): Promise<boolean> =>
20
- this.validateTx(tx);
21
-
22
- callSetTxStatus = async (
23
- tx: TransactionEntity,
24
- status: TransactionStatus
25
- ): Promise<void> => this.setTxStatus(tx, status);
26
-
27
- callProcessSignedTx = async (tx: TransactionEntity): Promise<void> =>
28
- this.processSignedTx(tx);
29
-
30
- callProcessesSentTx = async (tx: TransactionEntity): Promise<void> =>
31
- this.processesSentTx(tx);
32
- }