@xyo-network/xl1-providers 1.26.25 → 1.26.27

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.
@@ -0,0 +1,23 @@
1
+ import type { ArchivistInstance } from '@xyo-network/sdk-js';
2
+ import { type BlockRejection, type DeadLetterQueuePruneOptions, type DeadLetterQueueRunner, type TransactionRejection } from '@xyo-network/xl1-protocol-lib';
3
+ import { AbstractCreatableProvider, CreatableProviderParams } from '@xyo-network/xl1-protocol-sdk';
4
+ /** Parameters for SimpleDeadLetterQueueRunner. */
5
+ export interface SimpleDeadLetterQueueRunnerParams extends CreatableProviderParams {
6
+ rejectedBlocksArchivist: ArchivistInstance;
7
+ rejectedTransactionsArchivist: ArchivistInstance;
8
+ }
9
+ /** SimpleDeadLetterQueueRunner implementation. */
10
+ export declare class SimpleDeadLetterQueueRunner extends AbstractCreatableProvider<SimpleDeadLetterQueueRunnerParams> implements DeadLetterQueueRunner {
11
+ static readonly defaultMoniker: "DeadLetterQueueRunner";
12
+ static readonly dependencies: string[];
13
+ static readonly monikers: "DeadLetterQueueRunner"[];
14
+ moniker: "DeadLetterQueueRunner";
15
+ protected get rejectedBlocksArchivist(): 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>;
16
+ protected get rejectedTransactionsArchivist(): 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>;
17
+ static paramsHandler(params?: Partial<SimpleDeadLetterQueueRunnerParams>): Promise<SimpleDeadLetterQueueRunnerParams>;
18
+ pruneRejectedBlocks({ batchSize, maxPrune, maxCheck, }?: DeadLetterQueuePruneOptions): Promise<[number, number]>;
19
+ pruneRejectedTransactions({ batchSize, maxPrune, maxCheck, }?: DeadLetterQueuePruneOptions): Promise<[number, number]>;
20
+ rejectBlock(rejection: BlockRejection): Promise<boolean>;
21
+ rejectTransaction(rejection: TransactionRejection): Promise<boolean>;
22
+ }
23
+ //# sourceMappingURL=SimpleDeadLetterQueueRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleDeadLetterQueueRunner.d.ts","sourceRoot":"","sources":["../../src/SimpleDeadLetterQueueRunner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAY,MAAM,qBAAqB,CAAA;AAEtE,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAI1B,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,yBAAyB,EAAqB,uBAAuB,EACtE,MAAM,+BAA+B,CAAA;AAEtC,kDAAkD;AAClD,MAAM,WAAW,iCAAkC,SAAQ,uBAAuB;IAChF,uBAAuB,EAAE,iBAAiB,CAAA;IAC1C,6BAA6B,EAAE,iBAAiB,CAAA;CACjD;AAED,kDAAkD;AAClD,qBACa,2BAA4B,SAAQ,yBAAyB,CAAC,iCAAiC,CAAE,YAAW,qBAAqB;IAC5I,MAAM,CAAC,QAAQ,CAAC,cAAc,0BAA+B;IAC7D,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAK;IAC3C,MAAM,CAAC,QAAQ,CAAC,QAAQ,4BAAiC;IACzD,OAAO,0BAA6C;IAEpD,SAAS,KAAK,uBAAuB,kQAEpC;IAED,SAAS,KAAK,6BAA6B,kQAE1C;WAEqB,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,iCAAiC,CAAC,GAAG,OAAO,CAAC,iCAAiC,CAAC;IAQ9H,mBAAmB,CAAC,EACxB,SAAc,EAAE,QAAe,EAAE,QAAe,GACjD,GAAE,2BAAgC,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IA6BzD,yBAAyB,CAAC,EAC9B,SAAc,EAAE,QAAe,EAAE,QAAe,GACjD,GAAE,2BAAgC,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IA6BzD,WAAW,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAMxD,iBAAiB,CAAC,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;CAK3E"}
@@ -0,0 +1,20 @@
1
+ import type { ArchivistInstance } from '@xyo-network/sdk-js';
2
+ import { type BlockRejection, type DeadLetterQueueViewer, type RejectedBlocksOptions, type RejectedTransactionsOptions, type TransactionRejection } from '@xyo-network/xl1-protocol-lib';
3
+ import { AbstractCreatableProvider, CreatableProviderParams } from '@xyo-network/xl1-protocol-sdk';
4
+ /** Parameters for SimpleDeadLetterQueueViewer. */
5
+ export interface SimpleDeadLetterQueueViewerParams extends CreatableProviderParams {
6
+ rejectedBlocksArchivist: ArchivistInstance;
7
+ rejectedTransactionsArchivist: ArchivistInstance;
8
+ }
9
+ /** SimpleDeadLetterQueueViewer implementation. */
10
+ export declare class SimpleDeadLetterQueueViewer extends AbstractCreatableProvider<SimpleDeadLetterQueueViewerParams> implements DeadLetterQueueViewer {
11
+ static readonly defaultMoniker: "DeadLetterQueueViewer";
12
+ static readonly dependencies: string[];
13
+ static readonly monikers: "DeadLetterQueueViewer"[];
14
+ moniker: "DeadLetterQueueViewer";
15
+ protected get rejectedBlocksArchivist(): 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>;
16
+ protected get rejectedTransactionsArchivist(): 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>;
17
+ rejectedBlocks({ cursor: providedCursor, limit, rejector, }?: RejectedBlocksOptions): Promise<BlockRejection[]>;
18
+ rejectedTransactions({ cursor: providedCursor, limit, rejector, }?: RejectedTransactionsOptions): Promise<TransactionRejection[]>;
19
+ }
20
+ //# sourceMappingURL=SimpleDeadLetterQueueViewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleDeadLetterQueueViewer.d.ts","sourceRoot":"","sources":["../../src/SimpleDeadLetterQueueViewer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAY,MAAM,qBAAqB,CAAA;AAEtE,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAI1B,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,yBAAyB,EAAqB,uBAAuB,EACtE,MAAM,+BAA+B,CAAA;AAEtC,kDAAkD;AAClD,MAAM,WAAW,iCAAkC,SAAQ,uBAAuB;IAChF,uBAAuB,EAAE,iBAAiB,CAAA;IAC1C,6BAA6B,EAAE,iBAAiB,CAAA;CACjD;AAED,kDAAkD;AAClD,qBACa,2BAA4B,SAAQ,yBAAyB,CAAC,iCAAiC,CAAE,YAAW,qBAAqB;IAC5I,MAAM,CAAC,QAAQ,CAAC,cAAc,0BAA+B;IAC7D,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAK;IAC3C,MAAM,CAAC,QAAQ,CAAC,QAAQ,4BAAiC;IACzD,OAAO,0BAA6C;IAEpD,SAAS,KAAK,uBAAuB,kQAEpC;IAED,SAAS,KAAK,6BAA6B,kQAE1C;IAEK,cAAc,CAAC,EACnB,MAAM,EAAE,cAAc,EACtB,KAAW,EACX,QAAQ,GACT,GAAE,qBAA0B,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAkBnD,oBAAoB,CAAC,EACzB,MAAM,EAAE,cAAc,EACtB,KAAW,EACX,QAAQ,GACT,GAAE,2BAAgC,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;CAiBtE"}
@@ -4,6 +4,8 @@ export * from './buildSimpleXyoSignerV2.ts';
4
4
  export * from './locators/index.ts';
5
5
  export * from './NodeXyoViewer.ts';
6
6
  export * from './registerHelpers.ts';
7
+ export * from './SimpleDeadLetterQueueRunner.ts';
8
+ export * from './SimpleDeadLetterQueueViewer.ts';
7
9
  export * from './SimpleNetworkStakeViewer.ts';
8
10
  export * from './SimpleStepRewards/index.ts';
9
11
  export * from './SimpleStepViewer.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,uBAAuB,CAAA;AACrC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kCAAkC,CAAA;AAChD,cAAc,kCAAkC,CAAA;AAChD,cAAc,+BAA+B,CAAA;AAC7C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,uBAAuB,CAAA;AACrC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,sBAAsB,CAAA"}
@@ -1516,8 +1516,191 @@ async function rootLocatorFromConfig(context, validateDepsOnRegister = false, va
1516
1516
  locator.freeze();
1517
1517
  return locator;
1518
1518
  }
1519
+
1520
+ // src/SimpleDeadLetterQueueRunner.ts
1521
+ import { assertEx as assertEx6 } from "@xylabs/sdk-js";
1522
+ import { isHashMeta, PayloadBuilder } from "@xyo-network/sdk-js";
1523
+ import {
1524
+ DeadLetterQueueRunnerMoniker,
1525
+ isBlockRejection,
1526
+ isTransactionRejection
1527
+ } from "@xyo-network/xl1-protocol-lib";
1528
+ import {
1529
+ AbstractCreatableProvider as AbstractCreatableProvider11,
1530
+ creatableProvider as creatableProvider12
1531
+ } from "@xyo-network/xl1-protocol-sdk";
1532
+ var SimpleDeadLetterQueueRunner = class extends AbstractCreatableProvider11 {
1533
+ moniker = SimpleDeadLetterQueueRunner.defaultMoniker;
1534
+ get rejectedBlocksArchivist() {
1535
+ return this.params.rejectedBlocksArchivist;
1536
+ }
1537
+ get rejectedTransactionsArchivist() {
1538
+ return this.params.rejectedTransactionsArchivist;
1539
+ }
1540
+ static async paramsHandler(params) {
1541
+ return {
1542
+ ...await super.paramsHandler(params),
1543
+ rejectedBlocksArchivist: assertEx6(params?.rejectedBlocksArchivist, () => "rejectedBlocksArchivist is required"),
1544
+ rejectedTransactionsArchivist: assertEx6(params?.rejectedTransactionsArchivist, () => "rejectedTransactionsArchivist is required")
1545
+ };
1546
+ }
1547
+ async pruneRejectedBlocks({
1548
+ batchSize = 10,
1549
+ maxPrune = 1e3,
1550
+ maxCheck = 1e3
1551
+ } = {}) {
1552
+ let total = 0;
1553
+ let pruned = 0;
1554
+ let cursor;
1555
+ let batch = await this.rejectedBlocksArchivist.next({
1556
+ limit: batchSize,
1557
+ cursor,
1558
+ order: "desc"
1559
+ });
1560
+ while (batch.length > 0 && pruned < maxPrune && total < maxCheck) {
1561
+ const pruneHashes = batch.filter(isHashMeta).filter((p) => !isBlockRejection(p)).map((p) => p._hash);
1562
+ pruned += pruneHashes.length;
1563
+ total += batch.length;
1564
+ if (pruneHashes.length > 0) {
1565
+ await this.rejectedBlocksArchivist.delete(pruneHashes);
1566
+ }
1567
+ cursor = batch.at(-1)?._sequence;
1568
+ batch = cursor ? await this.rejectedBlocksArchivist.next({
1569
+ limit: batchSize,
1570
+ cursor,
1571
+ order: "desc"
1572
+ }) : [];
1573
+ }
1574
+ return [pruned, total];
1575
+ }
1576
+ async pruneRejectedTransactions({
1577
+ batchSize = 10,
1578
+ maxPrune = 1e3,
1579
+ maxCheck = 1e3
1580
+ } = {}) {
1581
+ let total = 0;
1582
+ let pruned = 0;
1583
+ let cursor;
1584
+ let batch = await this.rejectedTransactionsArchivist.next({
1585
+ limit: batchSize,
1586
+ cursor,
1587
+ order: "desc"
1588
+ });
1589
+ while (batch.length > 0 && pruned < maxPrune && total < maxCheck) {
1590
+ const pruneHashes = batch.filter(isHashMeta).filter((p) => !isTransactionRejection(p)).map((p) => p._hash);
1591
+ pruned += pruneHashes.length;
1592
+ total += batch.length;
1593
+ if (pruneHashes.length > 0) {
1594
+ await this.rejectedTransactionsArchivist.delete(pruneHashes);
1595
+ }
1596
+ cursor = batch.at(-1)?._sequence;
1597
+ batch = cursor ? await this.rejectedTransactionsArchivist.next({
1598
+ limit: batchSize,
1599
+ cursor,
1600
+ order: "desc"
1601
+ }) : [];
1602
+ }
1603
+ return [pruned, total];
1604
+ }
1605
+ async rejectBlock(rejection) {
1606
+ const withMeta = await PayloadBuilder.addHashMeta(rejection);
1607
+ const inserted = await this.rejectedBlocksArchivist.insert([withMeta]);
1608
+ return inserted.length > 0;
1609
+ }
1610
+ async rejectTransaction(rejection) {
1611
+ const withMeta = await PayloadBuilder.addHashMeta(rejection);
1612
+ const inserted = await this.rejectedTransactionsArchivist.insert([withMeta]);
1613
+ return inserted.length > 0;
1614
+ }
1615
+ };
1616
+ __publicField(SimpleDeadLetterQueueRunner, "defaultMoniker", DeadLetterQueueRunnerMoniker);
1617
+ __publicField(SimpleDeadLetterQueueRunner, "dependencies", []);
1618
+ __publicField(SimpleDeadLetterQueueRunner, "monikers", [DeadLetterQueueRunnerMoniker]);
1619
+ SimpleDeadLetterQueueRunner = __decorateClass([
1620
+ creatableProvider12()
1621
+ ], SimpleDeadLetterQueueRunner);
1622
+
1623
+ // src/SimpleDeadLetterQueueViewer.ts
1624
+ import {
1625
+ exists,
1626
+ isDefined as isDefined3,
1627
+ isHash
1628
+ } from "@xylabs/sdk-js";
1629
+ import { isHashMeta as isHashMeta2 } from "@xyo-network/sdk-js";
1630
+ import {
1631
+ DeadLetterQueueViewerMoniker,
1632
+ isBlockRejection as isBlockRejection2,
1633
+ isTransactionRejection as isTransactionRejection2
1634
+ } from "@xyo-network/xl1-protocol-lib";
1635
+ import {
1636
+ AbstractCreatableProvider as AbstractCreatableProvider12,
1637
+ creatableProvider as creatableProvider13
1638
+ } from "@xyo-network/xl1-protocol-sdk";
1639
+ var SimpleDeadLetterQueueViewer = class extends AbstractCreatableProvider12 {
1640
+ moniker = SimpleDeadLetterQueueViewer.defaultMoniker;
1641
+ get rejectedBlocksArchivist() {
1642
+ return this.params.rejectedBlocksArchivist;
1643
+ }
1644
+ get rejectedTransactionsArchivist() {
1645
+ return this.params.rejectedTransactionsArchivist;
1646
+ }
1647
+ async rejectedBlocks({
1648
+ cursor: providedCursor,
1649
+ limit = 100,
1650
+ rejector
1651
+ } = {}) {
1652
+ let cursor;
1653
+ if (isHash(providedCursor)) {
1654
+ const [p] = await this.rejectedBlocksArchivist.get([providedCursor]);
1655
+ if (isDefined3(p)) {
1656
+ cursor = p._sequence;
1657
+ }
1658
+ }
1659
+ const payloads = await this.rejectedBlocksArchivist.next({
1660
+ order: "desc",
1661
+ limit,
1662
+ cursor
1663
+ });
1664
+ const rejections = payloads.filter(isHashMeta2).map((p) => isBlockRejection2(p) ? p : void 0).filter(exists);
1665
+ if (rejector) {
1666
+ return rejections.filter((r) => r.rejector === rejector);
1667
+ }
1668
+ return rejections;
1669
+ }
1670
+ async rejectedTransactions({
1671
+ cursor: providedCursor,
1672
+ limit = 100,
1673
+ rejector
1674
+ } = {}) {
1675
+ let cursor;
1676
+ if (isHash(providedCursor)) {
1677
+ const [p] = await this.rejectedTransactionsArchivist.get([providedCursor]);
1678
+ if (isDefined3(p)) {
1679
+ cursor = p._sequence;
1680
+ }
1681
+ }
1682
+ const payloads = await this.rejectedTransactionsArchivist.next({
1683
+ order: "desc",
1684
+ limit,
1685
+ cursor
1686
+ });
1687
+ const rejections = payloads.filter(isHashMeta2).map((p) => isTransactionRejection2(p) ? p : void 0).filter(exists);
1688
+ if (rejector) {
1689
+ return rejections.filter((r) => r.rejector === rejector);
1690
+ }
1691
+ return rejections;
1692
+ }
1693
+ };
1694
+ __publicField(SimpleDeadLetterQueueViewer, "defaultMoniker", DeadLetterQueueViewerMoniker);
1695
+ __publicField(SimpleDeadLetterQueueViewer, "dependencies", []);
1696
+ __publicField(SimpleDeadLetterQueueViewer, "monikers", [DeadLetterQueueViewerMoniker]);
1697
+ SimpleDeadLetterQueueViewer = __decorateClass([
1698
+ creatableProvider13()
1699
+ ], SimpleDeadLetterQueueViewer);
1519
1700
  export {
1520
1701
  NodeXyoViewer,
1702
+ SimpleDeadLetterQueueRunner,
1703
+ SimpleDeadLetterQueueViewer,
1521
1704
  SimpleNetworkStakeViewer,
1522
1705
  SimpleStepRewardsByPositionViewer,
1523
1706
  SimpleStepRewardsByStakerViewer,