@xyo-network/xl1-protocol-sdk 1.30.0 → 1.30.2
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/dist/neutral/getFileConfig.mjs +1 -1
- package/dist/neutral/getFileConfig.mjs.map +7 -1
- package/dist/neutral/index.mjs +144 -18
- package/dist/neutral/index.mjs.map +7 -1
- package/dist/neutral/simple/datalake/SimpleDataLakeRunner.d.ts +1 -1
- package/dist/neutral/simple/mempool/SimpleMempoolRunner.d.ts +14 -0
- package/dist/neutral/simple/mempool/SimpleMempoolRunner.d.ts.map +1 -1
- package/dist/neutral/simple/mempool/SimpleMempoolViewer.d.ts +28 -0
- package/dist/neutral/simple/mempool/SimpleMempoolViewer.d.ts.map +1 -1
- package/dist/neutral/test/index.mjs +1 -1
- package/dist/neutral/test/index.mjs.map +7 -1
- package/package.json +9 -9
|
@@ -12,7 +12,7 @@ export declare class SimpleDataLakeRunner<TParams extends SimpleDataLakeRunnerPa
|
|
|
12
12
|
static readonly monikers: "DataLakeRunner"[];
|
|
13
13
|
moniker: "DataLakeRunner";
|
|
14
14
|
clear(): Promise<void>;
|
|
15
|
-
delete(hashes: Hash[]): Promise<NonNullable<import("@xyo-network/sdk-js").Payload
|
|
15
|
+
delete(hashes: Hash[]): Promise<NonNullable<ArrayBuffer | import("@xyo-network/sdk-js").Payload>[]>;
|
|
16
16
|
insert(items: DataLakeData[]): Promise<(DataLakeData & {
|
|
17
17
|
[x: string]: unknown;
|
|
18
18
|
schema: import("@xyo-network/sdk-js").BrandedSchema<string>;
|
|
@@ -7,6 +7,13 @@ import { AbstractCreatableProvider, CreatableProviderParams } from '../../Creata
|
|
|
7
7
|
export interface SimpleMempoolRunnerParams extends CreatableProviderParams {
|
|
8
8
|
externalMempools?: MempoolViewer[];
|
|
9
9
|
maxExpAhead?: number;
|
|
10
|
+
/**
|
|
11
|
+
* Maximum number of pending transactions allowed in the pool. When exceeded after
|
|
12
|
+
* `submitTransactions` or `prunePendingTransactions`, the runner evicts the excess —
|
|
13
|
+
* demoted transactions first (when the resolved viewer supports it), then oldest
|
|
14
|
+
* by sequence. `0` (default) disables the cap.
|
|
15
|
+
*/
|
|
16
|
+
maxPendingTransactions?: number;
|
|
10
17
|
pendingBlocksArchivist: ArchivistInstance;
|
|
11
18
|
pendingTransactionsArchivist: ArchivistInstance;
|
|
12
19
|
syncInterval?: number;
|
|
@@ -33,6 +40,7 @@ export declare class SimpleMempoolRunner extends AbstractCreatableProvider<Simpl
|
|
|
33
40
|
protected _chainContractViewer: ChainContractViewer;
|
|
34
41
|
protected _deadLetterQueueRunner?: DeadLetterQueueRunner;
|
|
35
42
|
protected _finalizationViewer: FinalizationViewer;
|
|
43
|
+
protected _mempoolViewer?: MempoolViewer;
|
|
36
44
|
protected _transactionValidationViewer: TransactionValidationViewer;
|
|
37
45
|
private _syncMutex;
|
|
38
46
|
private _syncTimerId;
|
|
@@ -41,6 +49,7 @@ export declare class SimpleMempoolRunner extends AbstractCreatableProvider<Simpl
|
|
|
41
49
|
protected get externalMempools(): MempoolViewer[];
|
|
42
50
|
protected get finalizationViewer(): FinalizationViewer;
|
|
43
51
|
protected get maxExpAhead(): number;
|
|
52
|
+
protected get maxPendingTransactions(): number;
|
|
44
53
|
protected get pendingBlocksArchivist(): ArchivistInstance<import("@xyo-network/sdk-js").ArchivistParams<import("@xyo-network/sdk-js").AnyConfigSchema<import("@xyo-network/sdk-js").ArchivistConfig>>, import("@xyo-network/sdk-js").ArchivistModuleEventData, Payload>;
|
|
45
54
|
protected get pendingTransactionsArchivist(): ArchivistInstance<import("@xyo-network/sdk-js").ArchivistParams<import("@xyo-network/sdk-js").AnyConfigSchema<import("@xyo-network/sdk-js").ArchivistConfig>>, import("@xyo-network/sdk-js").ArchivistModuleEventData, Payload>;
|
|
46
55
|
protected get syncInterval(): number;
|
|
@@ -55,6 +64,11 @@ export declare class SimpleMempoolRunner extends AbstractCreatableProvider<Simpl
|
|
|
55
64
|
submitTransactions(transactions: SignedHydratedTransaction[]): Promise<Hash[]>;
|
|
56
65
|
protected startHandler(): Promise<void>;
|
|
57
66
|
protected stopHandler(): Promise<void>;
|
|
67
|
+
private collectAllPendingTransactionBundles;
|
|
68
|
+
private enforceCap;
|
|
69
|
+
private finalizePruneTransactionsResult;
|
|
70
|
+
private forgetBundleHashes;
|
|
71
|
+
private orderForEviction;
|
|
58
72
|
private routeRejectedTransaction;
|
|
59
73
|
private simpleBlockValidationCheck;
|
|
60
74
|
private simpleTransactionValidationCheck;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleMempoolRunner.d.ts","sourceRoot":"","sources":["../../../../src/simple/mempool/SimpleMempoolRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EACa,KAAK,IAAI,EAC5B,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EACY,OAAO,EAGzB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,qBAAqB,EAErB,mBAAmB,EAEnB,qBAAqB,EAGrB,kBAAkB,EAG0D,mBAAmB,EAAE,aAAa,EACxF,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"SimpleMempoolRunner.d.ts","sourceRoot":"","sources":["../../../../src/simple/mempool/SimpleMempoolRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,20 @@
|
|
|
1
|
+
import { type Hash } from '@xylabs/sdk-js';
|
|
1
2
|
import type { ArchivistInstance } from '@xyo-network/sdk-js';
|
|
2
3
|
import { type MempoolViewer, PendingTransactionsOptions, type SignedHydratedBlockWithHashMeta, type SignedHydratedTransactionWithHashMeta, WindowedBlockViewer } from '@xyo-network/xl1-protocol-lib';
|
|
3
4
|
import { AbstractCreatableProvider, CreatableProviderParams } from '../../CreatableProvider/index.ts';
|
|
5
|
+
/** Per-bundle handout statistics used to demote transactions that producers keep rejecting. */
|
|
6
|
+
export interface HandoutStats {
|
|
7
|
+
firstHandoutAt: number;
|
|
8
|
+
handouts: number;
|
|
9
|
+
}
|
|
4
10
|
/** Parameters for SimpleMempoolViewer. */
|
|
5
11
|
export interface SimpleMempoolViewerParams extends CreatableProviderParams {
|
|
12
|
+
/** Number of handouts before a transaction is considered demoted. Defaults to 3. */
|
|
13
|
+
demotionThreshold?: number;
|
|
6
14
|
/** External mempool viewers (reserved for future use). */
|
|
7
15
|
externalMempools?: MempoolViewer[];
|
|
16
|
+
/** Maximum age (in blocks) of a handout-stats entry before it is garbage collected. Defaults to 1000. */
|
|
17
|
+
handoutStatsTtlBlocks?: number;
|
|
8
18
|
/** Maximum fraction (0–1) of mempool inclusion candidates to return. Defaults to 0.66. */
|
|
9
19
|
mempoolSelectionRatio?: number;
|
|
10
20
|
pendingBlocksArchivist: ArchivistInstance;
|
|
@@ -16,14 +26,30 @@ export declare class SimpleMempoolViewer extends AbstractCreatableProvider<Simpl
|
|
|
16
26
|
static readonly dependencies: "WindowedBlockViewer"[];
|
|
17
27
|
static readonly monikers: "MempoolViewer"[];
|
|
18
28
|
moniker: "MempoolViewer";
|
|
29
|
+
private _handoutStats;
|
|
19
30
|
private _windowedBlockViewer?;
|
|
31
|
+
protected get demotionThreshold(): number;
|
|
32
|
+
protected get handoutStatsTtlBlocks(): number;
|
|
20
33
|
protected get pendingBlocksArchivist(): ArchivistInstance<import("@xyo-network/sdk-js").ArchivistParams<import("@xyo-network/sdk-js").AnyConfigSchema<import("@xyo-network/sdk-js").ArchivistConfig>>, import("@xyo-network/sdk-js").ArchivistModuleEventData, import("@xyo-network/sdk-js").Payload>;
|
|
21
34
|
protected get pendingTransactionsArchivist(): ArchivistInstance<import("@xyo-network/sdk-js").ArchivistParams<import("@xyo-network/sdk-js").AnyConfigSchema<import("@xyo-network/sdk-js").ArchivistConfig>>, import("@xyo-network/sdk-js").ArchivistModuleEventData, import("@xyo-network/sdk-js").Payload>;
|
|
22
35
|
protected get windowedBlockViewer(): WindowedBlockViewer<"WindowedBlockViewer">;
|
|
23
36
|
createHandler(): Promise<void>;
|
|
37
|
+
/** Drop handout stats for the given bundle hashes. Called when a bundle has been evicted or otherwise removed from the pool. */
|
|
38
|
+
forget(bundleHashes: Hash[]): void;
|
|
39
|
+
/** Return the subset of the given bundle hashes that are currently considered demoted. */
|
|
40
|
+
getDemotedBundleHashes(bundleHashes: Hash[]): Hash[];
|
|
41
|
+
/**
|
|
42
|
+
* Return the bundle hashes in the order they should be evicted under size pressure.
|
|
43
|
+
* Demoted entries come first, sorted by handouts descending; the remainder is left as-is
|
|
44
|
+
* so the caller can append by FIFO sequence order.
|
|
45
|
+
*/
|
|
46
|
+
getEvictionPriorityOrder(bundleHashes: Hash[]): Hash[];
|
|
47
|
+
getHandoutStats(bundleHash: Hash): HandoutStats | undefined;
|
|
24
48
|
pendingBlocks({ cursor: providedCursor }?: PendingTransactionsOptions): Promise<SignedHydratedBlockWithHashMeta[]>;
|
|
25
49
|
pendingTransactions({ cursor: providedCursor, limit, }?: PendingTransactionsOptions): Promise<SignedHydratedTransactionWithHashMeta[]>;
|
|
50
|
+
protected isDemoted(bundleHash: Hash): boolean;
|
|
26
51
|
private deleteBundledTransaction;
|
|
52
|
+
private gcHandoutStats;
|
|
27
53
|
/**
|
|
28
54
|
* Evaluates a transaction to determine if it should be purged from the mempool.
|
|
29
55
|
* @param tx The transaction to evaluate
|
|
@@ -41,5 +67,7 @@ export declare class SimpleMempoolViewer extends AbstractCreatableProvider<Simpl
|
|
|
41
67
|
* @returns True if the transaction is valid for inclusion in the next block, false otherwise
|
|
42
68
|
*/
|
|
43
69
|
private isInclusionCandidate;
|
|
70
|
+
private recordHandout;
|
|
71
|
+
private selectWithRatio;
|
|
44
72
|
}
|
|
45
73
|
//# sourceMappingURL=SimpleMempoolViewer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleMempoolViewer.d.ts","sourceRoot":"","sources":["../../../../src/simple/mempool/SimpleMempoolViewer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SimpleMempoolViewer.d.ts","sourceRoot":"","sources":["../../../../src/simple/mempool/SimpleMempoolViewer.ts"],"names":[],"mappings":"AAAA,OAAO,EACG,KAAK,IAAI,EAClB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EACV,iBAAiB,EAGlB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACiC,KAAK,aAAa,EACxD,0BAA0B,EAC1B,KAAK,+BAA+B,EAAE,KAAK,qCAAqC,EAChF,mBAAmB,EAEpB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,yBAAyB,EAAqB,uBAAuB,EACtE,MAAM,kCAAkC,CAAA;AAUzC,+FAA+F;AAC/F,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;CACjB;AASD,0CAA0C;AAC1C,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACxE,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAA;IAClC,yGAAyG;IACzG,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,0FAA0F;IAC1F,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,sBAAsB,EAAE,iBAAiB,CAAA;IACzC,4BAA4B,EAAE,iBAAiB,CAAA;CAChD;AAED,0CAA0C;AAC1C,qBACa,mBAAoB,SAAQ,yBAAyB,CAAC,yBAAyB,CAAE,YAAW,aAAa;IACpH,MAAM,CAAC,QAAQ,CAAC,cAAc,kBAAuB;IACrD,MAAM,CAAC,QAAQ,CAAC,YAAY,0BAA+B;IAC3D,MAAM,CAAC,QAAQ,CAAC,QAAQ,oBAAyB;IACjD,OAAO,kBAAqC;IAE5C,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,oBAAoB,CAAC,CAAqB;IAElD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAED,SAAS,KAAK,qBAAqB,IAAI,MAAM,CAE5C;IAED,SAAS,KAAK,sBAAsB,kQAEnC;IAED,SAAS,KAAK,4BAA4B,kQAEzC;IAED,SAAS,KAAK,mBAAmB,+CAEhC;IAEc,aAAa;IAK5B,gIAAgI;IAChI,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,GAAG,IAAI;IAIlC,0FAA0F;IAC1F,sBAAsB,CAAC,YAAY,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE;IAIpD;;;;OAIG;IACH,wBAAwB,CAAC,YAAY,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE;IAWtD,eAAe,CAAC,UAAU,EAAE,IAAI,GAAG,YAAY,GAAG,SAAS;IAIrD,aAAa,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,GAAE,0BAA+B,GAAG,OAAO,CAAC,+BAA+B,EAAE,CAAC;IAetH,mBAAmB,CAAC,EACxB,MAAM,EAAE,cAAc,EACtB,KAAW,GACZ,GAAE,0BAA+B,GAAG,OAAO,CAAC,qCAAqC,EAAE,CAAC;IAuErF,SAAS,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,GAAG,OAAO;YAKhC,wBAAwB;IAItC,OAAO,CAAC,cAAc;IAOtB;;;;;OAKG;YACW,WAAW;IAazB;;;;;;;;OAQG;YACW,oBAAoB;IAgBlC,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,eAAe;CAWxB"}
|