@xyo-network/chain-services 1.5.29 → 1.5.31

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 (53) hide show
  1. package/dist/neutral/index.mjs +254 -393
  2. package/dist/neutral/index.mjs.map +1 -1
  3. package/dist/types/AccountBalance/XyoChainAccountBalanceService.d.ts +8 -1
  4. package/dist/types/AccountBalance/XyoChainAccountBalanceService.d.ts.map +1 -1
  5. package/dist/types/AccountBalance/accountBalanceServiceFromArchivist.d.ts.map +1 -1
  6. package/dist/types/BaseService.d.ts +2 -1
  7. package/dist/types/BaseService.d.ts.map +1 -1
  8. package/dist/types/BlockProducer/XyoBlockProducer.d.ts +4 -4
  9. package/dist/types/BlockProducer/XyoBlockProducer.d.ts.map +1 -1
  10. package/dist/types/{XyoChainBlockNumberIterator.d.ts → ChainBlockNumberIteration/ChainBlockNumberIterationService.d.ts} +4 -10
  11. package/dist/types/ChainBlockNumberIteration/ChainBlockNumberIterationService.d.ts.map +1 -0
  12. package/dist/types/ChainBlockNumberIteration/index.d.ts +3 -0
  13. package/dist/types/ChainBlockNumberIteration/index.d.ts.map +1 -0
  14. package/dist/types/ChainBlockNumberIteration/model/BlockNumberIteration.d.ts +7 -0
  15. package/dist/types/ChainBlockNumberIteration/model/BlockNumberIteration.d.ts.map +1 -0
  16. package/dist/types/ChainBlockNumberIteration/model/index.d.ts +2 -0
  17. package/dist/types/ChainBlockNumberIteration/model/index.d.ts.map +1 -0
  18. package/dist/types/ChainIndexService.d.ts +2 -2
  19. package/dist/types/ChainIndexService.d.ts.map +1 -1
  20. package/dist/types/ChainValidator/XyoValidator.d.ts.map +1 -1
  21. package/dist/types/PendingTransactions/PendingTransactions.d.ts +16 -6
  22. package/dist/types/PendingTransactions/PendingTransactions.d.ts.map +1 -1
  23. package/dist/types/PendingTransactions/bundledPayloadToHydratedTransaction.d.ts +4 -0
  24. package/dist/types/PendingTransactions/bundledPayloadToHydratedTransaction.d.ts.map +1 -0
  25. package/dist/types/PendingTransactions/hydratedTransactionToPayloadBundle.d.ts +4 -0
  26. package/dist/types/PendingTransactions/hydratedTransactionToPayloadBundle.d.ts.map +1 -0
  27. package/dist/types/StakeIntent/XyoStakeIntentService.d.ts.map +1 -1
  28. package/dist/types/Staker/Evm/Evm.d.ts +5 -8
  29. package/dist/types/Staker/Evm/Evm.d.ts.map +1 -1
  30. package/dist/types/index.d.ts +1 -2
  31. package/dist/types/index.d.ts.map +1 -1
  32. package/package.json +39 -39
  33. package/src/AccountBalance/XyoChainAccountBalanceService.ts +36 -7
  34. package/src/AccountBalance/accountBalanceServiceFromArchivist.ts +1 -0
  35. package/src/BaseService.ts +2 -1
  36. package/src/BlockProducer/XyoBlockProducer.ts +6 -6
  37. package/src/{XyoChainBlockNumberIterator.ts → ChainBlockNumberIteration/ChainBlockNumberIterationService.ts} +16 -31
  38. package/src/ChainBlockNumberIteration/index.ts +2 -0
  39. package/src/ChainBlockNumberIteration/model/BlockNumberIteration.ts +7 -0
  40. package/src/ChainBlockNumberIteration/model/index.ts +1 -0
  41. package/src/ChainIndexService.ts +2 -2
  42. package/src/ChainValidator/XyoValidator.ts +1 -7
  43. package/src/PendingTransactions/PendingTransactions.ts +73 -57
  44. package/src/PendingTransactions/bundledPayloadToHydratedTransaction.ts +14 -0
  45. package/src/PendingTransactions/hydratedTransactionToPayloadBundle.ts +18 -0
  46. package/src/StakeIntent/XyoStakeIntentService.ts +7 -6
  47. package/src/StakeIntent/lib/getBlockSignedStakeDeclarations.ts +2 -2
  48. package/src/Staker/Evm/Evm.ts +34 -39
  49. package/src/index.ts +1 -2
  50. package/dist/types/BaseEthProvider.d.ts +0 -56
  51. package/dist/types/BaseEthProvider.d.ts.map +0 -1
  52. package/dist/types/XyoChainBlockNumberIterator.d.ts.map +0 -1
  53. package/src/BaseEthProvider.ts +0 -219
@@ -1 +1 @@
1
- {"version":3,"file":"BaseService.d.ts","sourceRoot":"","sources":["../../src/BaseService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EACV,4BAA4B,EAAE,iBAAiB,EAAE,OAAO,EACzD,MAAM,2BAA2B,CAAA;AAGlC,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClD;AAED,qBAAa,WAAW,CAAC,OAAO,SAAS,iBAAiB,GAAG,iBAAiB,CAAE,SAAQ,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnH,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAc;IAE/C,MAAM,KAAK,UAAU,4BAEpB;IAED,IAAI,IAAI,WAEP;WAEY,MAAM,CAAC,QAAQ,SAAS,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,SAAS,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAC/G,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAChC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GACvB,OAAO,CAAC,QAAQ,CAAC;IAOpB,MAAM,CAAC,aAAa,CAAC,QAAQ,SAAS,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,SAAS,iBAAiB,EAAE,MAAM,EAAE,OAAO;IAO9G,aAAa,IAAI,UAAU,CAAC,IAAI,CAAC;IAIjC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAI/B,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAGnE;AAED,8BAAsB,sBAAsB,CAC1C,OAAO,SAAS,4BAA4B,GAAG,4BAA4B,CAC3E,SAAQ,WAAW,CAAC,OAAO,CAAC;CAE7B;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,CAAE,SAAQ,OAAO;IACpF,KAAI,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC3B,MAAM,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;CAC7F;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,MAC1D,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,UAItD"}
1
+ {"version":3,"file":"BaseService.d.ts","sourceRoot":"","sources":["../../src/BaseService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EACV,4BAA4B,EAAE,iBAAiB,EAAE,OAAO,EACzD,MAAM,2BAA2B,CAAA;AAGlC,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClD;AAED,qBAAa,WAAW,CAAC,OAAO,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,UAAU,SAAS,SAAS,GAAG,SAAS,CAAE,SAAQ,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;IACzK,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAc;IAE/C,MAAM,KAAK,UAAU,4BAEpB;IAED,IAAI,IAAI,WAEP;WAEY,MAAM,CAAC,QAAQ,SAAS,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,SAAS,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAC/G,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAChC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GACvB,OAAO,CAAC,QAAQ,CAAC;IAOpB,MAAM,CAAC,aAAa,CAAC,QAAQ,SAAS,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,SAAS,iBAAiB,EAAE,MAAM,EAAE,OAAO;IAO9G,aAAa,IAAI,UAAU,CAAC,IAAI,CAAC;IAIjC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAI/B,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAGnE;AAED,8BAAsB,sBAAsB,CAC1C,OAAO,SAAS,4BAA4B,GAAG,4BAA4B,CAC3E,SAAQ,WAAW,CAAC,OAAO,CAAC;CAE7B;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,CAAE,SAAQ,OAAO;IACpF,KAAI,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC3B,MAAM,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;CAC7F;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,MAC1D,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,UAItD"}
@@ -2,7 +2,7 @@ import { Address } from '@xylabs/hex';
2
2
  import { ArchivistInstance } from '@xyo-network/archivist-model';
3
3
  import { BlockRewardDiviner } from '@xyo-network/chain-modules';
4
4
  import { WithStorageMeta } from '@xyo-network/payload-model';
5
- import { AccountBalanceService, BlockBoundWitness, BlockProducer, ChainStakeIntent, HydratedBlock, PendingTransactionsService, StakeIntentService, Transfer } from '@xyo-network/xl1-protocol';
5
+ import { AccountBalanceService, BlockBoundWitness, BlockProducerService, ChainStakeIntent, HydratedBlock, PendingTransactionsService, StakeIntentService, Transfer } from '@xyo-network/xl1-protocol';
6
6
  import { BaseService } from '../BaseService.ts';
7
7
  import { XyoValidatorParams } from '../ChainValidator/index.ts';
8
8
  /**
@@ -18,10 +18,10 @@ export declare const XYO_PRODUCER_RESTAKE_WINDOW = 500n;
18
18
  export interface XyoBlockProducerParams extends XyoValidatorParams {
19
19
  balanceService: AccountBalanceService;
20
20
  pendingTransactionsService: PendingTransactionsService;
21
- rejectedBundledTransactionsArchivist: ArchivistInstance;
21
+ rejectedTransactionsArchivist: ArchivistInstance;
22
22
  rewardAddress: Address;
23
23
  }
24
- export declare class XyoBlockProducer extends BaseService<XyoBlockProducerParams> implements BlockProducer {
24
+ export declare class XyoBlockProducer extends BaseService<XyoBlockProducerParams> implements BlockProducerService {
25
25
  protected _blockRewardDiviner: BlockRewardDiviner | undefined;
26
26
  static get DefaultBlockSize(): number;
27
27
  get address(): Lowercase<string>;
@@ -31,7 +31,7 @@ export declare class XyoBlockProducer extends BaseService<XyoBlockProducerParams
31
31
  protected get chainInfo(): import("@xyo-network/xl1-protocol").ChainInformation;
32
32
  protected get electionService(): import("@xyo-network/xl1-protocol").ElectionService;
33
33
  protected get pendingTransactionsService(): PendingTransactionsService;
34
- protected get rejectedBundledTransactionsArchivist(): ArchivistInstance<import("@xylabs/base").BaseParamsFields & {
34
+ protected get rejectedTransactionsArchivist(): ArchivistInstance<import("@xylabs/base").BaseParamsFields & {
35
35
  account?: import("@xyo-network/account-model").AccountInstance | "random";
36
36
  addToResolvers?: boolean;
37
37
  additionalSigners?: import("@xyo-network/account-model").AccountInstance[];
@@ -1 +1 @@
1
- {"version":3,"file":"XyoBlockProducer.d.ts","sourceRoot":"","sources":["../../../src/BlockProducer/XyoBlockProducer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,OAAO,EACR,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EACL,kBAAkB,EACnB,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EACL,qBAAqB,EACqB,iBAAiB,EAAkC,aAAa,EAAE,gBAAgB,EAC5H,aAAa,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,QAAQ,EACxE,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAG/D;;GAEG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAA;AAKpC,eAAO,MAAM,6BAA6B,QAAS,CAAA;AAEnD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,OAAO,CAAA;AAE/C,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,cAAc,EAAE,qBAAqB,CAAA;IACrC,0BAA0B,EAAE,0BAA0B,CAAA;IACtD,oCAAoC,EAAE,iBAAiB,CAAA;IACvD,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,qBACa,gBAAiB,SAAQ,WAAW,CAAC,sBAAsB,CAAE,YAAW,aAAa;IAChG,SAAS,CAAC,mBAAmB,EAAE,kBAAkB,GAAG,SAAS,CAAA;IAE7D,MAAM,KAAK,gBAAgB,IAAI,MAAM,CAEpC;IAED,IAAI,OAAO,sBAEV;IAED,SAAS,KAAK,OAAO,yDAEpB;IAED,SAAS,KAAK,cAAc,0BAE3B;IAED,SAAS,KAAK,cAAc,0HAE3B;IAED,SAAS,KAAK,SAAS,yDAEtB;IAED,SAAS,KAAK,eAAe,wDAE5B;IAED,SAAS,KAAK,0BAA0B,+BAEvC;IAED,SAAS,KAAK,oCAAoC;;;;;;;;wPAEjD;IAED,SAAS,KAAK,aAAa,IAAI,OAAO,CAErC;IAED,SAAS,KAAK,aAAa,2DAE1B;IAED,SAAS,KAAK,kBAAkB,IAAI,kBAAkB,CAErD;IAED,SAAS,KAAK,0BAA0B,6EAEvC;IAEK,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;cAWxE,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAoBpF;;;;OAIG;cACa,wBAAwB,CAAC,IAAI,EAAE,eAAe,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;cAwBzG,qBAAqB,CAAC,IAAI,EAAE,eAAe,CAAC,iBAAiB,CAAC,EAAE,gBAAgB,UAAQ,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;CAoD9I"}
1
+ {"version":3,"file":"XyoBlockProducer.d.ts","sourceRoot":"","sources":["../../../src/BlockProducer/XyoBlockProducer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,OAAO,EACR,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EACL,kBAAkB,EACnB,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EACL,qBAAqB,EACqB,iBAAiB,EAAkC,oBAAoB,EAAE,gBAAgB,EACnI,aAAa,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,QAAQ,EACxE,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAG/D;;GAEG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAA;AAKpC,eAAO,MAAM,6BAA6B,QAAS,CAAA;AAEnD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,OAAO,CAAA;AAE/C,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,cAAc,EAAE,qBAAqB,CAAA;IACrC,0BAA0B,EAAE,0BAA0B,CAAA;IACtD,6BAA6B,EAAE,iBAAiB,CAAA;IAChD,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,qBACa,gBAAiB,SAAQ,WAAW,CAAC,sBAAsB,CAAE,YAAW,oBAAoB;IACvG,SAAS,CAAC,mBAAmB,EAAE,kBAAkB,GAAG,SAAS,CAAA;IAE7D,MAAM,KAAK,gBAAgB,IAAI,MAAM,CAEpC;IAED,IAAI,OAAO,sBAEV;IAED,SAAS,KAAK,OAAO,yDAEpB;IAED,SAAS,KAAK,cAAc,0BAE3B;IAED,SAAS,KAAK,cAAc,0HAE3B;IAED,SAAS,KAAK,SAAS,yDAEtB;IAED,SAAS,KAAK,eAAe,wDAE5B;IAED,SAAS,KAAK,0BAA0B,+BAEvC;IAED,SAAS,KAAK,6BAA6B;;;;;;;;wPAE1C;IAED,SAAS,KAAK,aAAa,IAAI,OAAO,CAErC;IAED,SAAS,KAAK,aAAa,2DAE1B;IAED,SAAS,KAAK,kBAAkB,IAAI,kBAAkB,CAErD;IAED,SAAS,KAAK,0BAA0B,6EAEvC;IAEK,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;cAWxE,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAoBpF;;;;OAIG;cACa,wBAAwB,CAAC,IAAI,EAAE,eAAe,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;cAwBzG,qBAAqB,CAAC,IAAI,EAAE,eAAe,CAAC,iBAAiB,CAAC,EAAE,gBAAgB,UAAQ,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;CAoD9I"}
@@ -1,21 +1,15 @@
1
- import type { BaseParams } from '@xylabs/base';
2
- import { BaseEmitter } from '@xylabs/events';
3
1
  import type { ArchivistInstance } from '@xyo-network/archivist-model';
4
2
  import type { BlockBoundWitness, ChainIdentification, ChainIteratorEventData, EventingChainBlockNumberIterator, XyoChainIteratorParams } from '@xyo-network/xl1-protocol';
5
3
  import { LRUCache } from 'lru-cache';
6
- export declare class XyoChainBlockNumberIterator extends BaseEmitter<BaseParams, ChainIteratorEventData> implements EventingChainBlockNumberIterator {
4
+ import { BaseService } from '../BaseService.ts';
5
+ export declare class ChainBlockNumberIterationService extends BaseService<XyoChainIteratorParams, ChainIteratorEventData> implements EventingChainBlockNumberIterator {
7
6
  protected _blocksByBlockNumber: LRUCache<number, BlockBoundWitness, unknown>;
8
- protected _chainArchivist: ArchivistInstance;
9
- protected _chainInformation: ChainIdentification;
10
- protected _head: BlockBoundWitness;
11
- protected constructor(params: XyoChainIteratorParams);
12
- get archivist(): ArchivistInstance;
7
+ get chainArchivist(): ArchivistInstance;
13
8
  get chainIdentification(): ChainIdentification;
14
- static create(params: XyoChainIteratorParams): Promise<XyoChainBlockNumberIterator>;
15
9
  get(block: number): Promise<BlockBoundWitness>;
16
10
  head(): Promise<BlockBoundWitness>;
17
11
  next(block: number): Promise<BlockBoundWitness | undefined>;
18
12
  previous(block?: number | undefined, count?: number): Promise<BlockBoundWitness[]>;
19
13
  updateHead(head: BlockBoundWitness): Promise<void>;
20
14
  }
21
- //# sourceMappingURL=XyoChainBlockNumberIterator.d.ts.map
15
+ //# sourceMappingURL=ChainBlockNumberIterationService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChainBlockNumberIterationService.d.ts","sourceRoot":"","sources":["../../../src/ChainBlockNumberIteration/ChainBlockNumberIterationService.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAErE,OAAO,KAAK,EACV,iBAAiB,EAAE,mBAAmB,EACtC,sBAAsB,EACtB,gCAAgC,EAChC,sBAAsB,EACvB,MAAM,2BAA2B,CAAA;AAKlC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,qBAAa,gCAAiC,SAAQ,WAAW,CAAC,sBAAsB,EAAE,sBAAsB,CAAE,YAAW,gCAAgC;IAC3J,SAAS,CAAC,oBAAoB,+CAA2D;IAEzF,IAAI,cAAc,IAAI,iBAAiB,CAAgD;IAEvF,IAAI,mBAAmB,IAAI,mBAAmB,CAAqD;IAE7F,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAyB9C,IAAI,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAIlC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAQ3D,QAAQ,CAAC,KAAK,GAAE,MAAM,GAAG,SAAqB,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAkBhG,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CAMzD"}
@@ -0,0 +1,3 @@
1
+ export * from './ChainBlockNumberIterationService.ts';
2
+ export * from './model/index.ts';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ChainBlockNumberIteration/index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAA;AACrD,cAAc,kBAAkB,CAAA"}
@@ -0,0 +1,7 @@
1
+ import type { Promisable } from '@xylabs/promise';
2
+ import type { BlockBoundWitness, HydratedTransaction } from '@xyo-network/xl1-protocol';
3
+ export interface BlockNumberIteration {
4
+ validatePendingBlock(block: BlockBoundWitness): Promisable<Error[]>;
5
+ validatePendingTransaction(tx: HydratedTransaction): Promise<boolean>;
6
+ }
7
+ //# sourceMappingURL=BlockNumberIteration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockNumberIteration.d.ts","sourceRoot":"","sources":["../../../../src/ChainBlockNumberIteration/model/BlockNumberIteration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAEvF,MAAM,WAAW,oBAAoB;IACnC,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,CAAA;IACnE,0BAA0B,CAAC,EAAE,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACtE"}
@@ -0,0 +1,2 @@
1
+ export * from './BlockNumberIteration.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ChainBlockNumberIteration/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA"}
@@ -3,14 +3,14 @@ import { Promisable } from '@xylabs/promise';
3
3
  import { ArchivistInstance } from '@xyo-network/archivist-model';
4
4
  import { BaseServiceParams, HydratedBlock, Service } from '@xyo-network/xl1-protocol';
5
5
  import { BaseService } from './BaseService.ts';
6
- export interface XyoChainIndexServiceParams extends BaseServiceParams {
6
+ export interface ChainIndexServiceParams extends BaseServiceParams {
7
7
  archivist?: ArchivistInstance;
8
8
  }
9
9
  export interface ChainIndexService extends Service {
10
10
  get(index: bigint): Promisable<HydratedBlock | undefined>;
11
11
  updateHead(head: Hash | null): Promisable<void>;
12
12
  }
13
- export declare class XyoChainIndexService extends BaseService<XyoChainIndexServiceParams> implements ChainIndexService {
13
+ export declare class XyoChainIndexService extends BaseService<ChainIndexServiceParams> implements ChainIndexService {
14
14
  private _head;
15
15
  private _internalArchivist;
16
16
  protected get externalArchivist(): ArchivistInstance<import("@xylabs/base").BaseParamsFields & {
@@ -1 +1 @@
1
- {"version":3,"file":"ChainIndexService.d.ts","sourceRoot":"","sources":["../../src/ChainIndexService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EACL,iBAAiB,EAAE,aAAa,EAAE,OAAO,EAC1C,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,WAAW,EAAoB,MAAM,kBAAkB,CAAA;AAEhE,MAAM,WAAW,0BAA2B,SAAQ,iBAAiB;IACnE,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAkB,SAAQ,OAAO;IAChD,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC,CAAA;IACzD,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;CAChD;AAED,qBACa,oBAAqB,SAAQ,WAAW,CAAC,0BAA0B,CAAE,YAAW,iBAAiB;IAC5G,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,kBAAkB,CAA+B;IAEzD,SAAS,KAAK,iBAAiB;;;;;;;;oQAE9B;IAED,SAAS,KAAK,iBAAiB;;;;;;;;wPAE9B;IAEc,aAAa;IAI5B,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC;IAK/D,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;CAGjD"}
1
+ {"version":3,"file":"ChainIndexService.d.ts","sourceRoot":"","sources":["../../src/ChainIndexService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EACL,iBAAiB,EAAE,aAAa,EAAE,OAAO,EAC1C,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,WAAW,EAAoB,MAAM,kBAAkB,CAAA;AAEhE,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAkB,SAAQ,OAAO;IAChD,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC,CAAA;IACzD,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;CAChD;AAED,qBACa,oBAAqB,SAAQ,WAAW,CAAC,uBAAuB,CAAE,YAAW,iBAAiB;IACzG,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,kBAAkB,CAA+B;IAEzD,SAAS,KAAK,iBAAiB;;;;;;;;oQAE9B;IAED,SAAS,KAAK,iBAAiB;;;;;;;;wPAE9B;IAEc,aAAa;IAI5B,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC;IAK/D,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;CAGjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"XyoValidator.d.ts","sourceRoot":"","sources":["../../../src/ChainValidator/XyoValidator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAE/E,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,oCAAoC,EACpC,mBAAmB,EAEnB,kBAAkB,EACnB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAM5C,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,OAAO,EAAE,eAAe,CAAA;IACxB,cAAc,EAAE,aAAa,CAAA;IAC7B,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,eAAe,EAAE,eAAe,CAAA;IAChC,mCAAmC,EAAE,iBAAiB,CAAA;IACtD,aAAa,EAAE,kBAAkB,CAAA;IACjC,kBAAkB,EAAE,kBAAkB,CAAA;IACtC,0BAA0B,EAAE,oCAAoC,CAAA;CACjE;AAED,qBACa,YAAY,CAAC,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,CAAE,SAAQ,WAAW,CAAC,OAAO,CAAE,YAAW,SAAS;IAClI,IAAI,OAAO,sBAEV;IAED,SAAS,KAAK,OAAO,uBAEpB;IAED,SAAS,KAAK,cAAc,8BAE3B;IAED,SAAS,KAAK,SAAS,gCAEtB;IAED,SAAS,KAAK,eAAe,+BAE5B;IAED,SAAS,KAAK,mCAAmC,mDAEhD;IAED,SAAS,KAAK,aAAa,6BAE1B;IAED,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;IAK9D,0BAA0B,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;CAQ7F"}
1
+ {"version":3,"file":"XyoValidator.d.ts","sourceRoot":"","sources":["../../../src/ChainValidator/XyoValidator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC/E,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,oCAAoC,EACpC,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5C,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,OAAO,EAAE,eAAe,CAAA;IACxB,cAAc,EAAE,aAAa,CAAA;IAC7B,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,eAAe,EAAE,eAAe,CAAA;IAChC,mCAAmC,EAAE,iBAAiB,CAAA;IACtD,aAAa,EAAE,kBAAkB,CAAA;IACjC,kBAAkB,EAAE,kBAAkB,CAAA;IACtC,0BAA0B,EAAE,oCAAoC,CAAA;CACjE;AAED,qBACa,YAAY,CAAC,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,CAAE,SAAQ,WAAW,CAAC,OAAO,CAAE,YAAW,SAAS;IAClI,IAAI,OAAO,sBAEV;IAED,SAAS,KAAK,OAAO,uBAEpB;IAED,SAAS,KAAK,cAAc,8BAE3B;IAED,SAAS,KAAK,SAAS,gCAEtB;IAED,SAAS,KAAK,eAAe,+BAE5B;IAED,SAAS,KAAK,mCAAmC,mDAEhD;IAED,SAAS,KAAK,aAAa,6BAE1B;IAED,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;IAK9D,0BAA0B,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;CAQ7F"}
@@ -1,12 +1,12 @@
1
1
  import { Hash } from '@xylabs/hex';
2
2
  import { ArchivistInstance } from '@xyo-network/archivist-model';
3
- import { BaseServiceParams, ChainIdentification, HydratedTransactionWithStorageMeta, PendingTransactionsService } from '@xyo-network/xl1-protocol';
3
+ import { BaseServiceParams, ChainIdentification, HydratedTransaction, PendingTransactionsService } from '@xyo-network/xl1-protocol';
4
4
  import { BaseService } from '../BaseService.ts';
5
5
  export interface XyoPendingTransactionsServiceParams extends BaseServiceParams {
6
6
  chainArchivist?: ArchivistInstance;
7
7
  chainIdentification?: ChainIdentification;
8
8
  pendingBundledTransactionsArchivist?: ArchivistInstance;
9
- rejectedBundledTransactionsArchivist?: ArchivistInstance;
9
+ rejectedTransactionsArchivist?: ArchivistInstance;
10
10
  }
11
11
  export declare class XyoPendingTransactionsService extends BaseService<XyoPendingTransactionsServiceParams> implements PendingTransactionsService {
12
12
  private static readonly MutexPriority;
@@ -24,6 +24,11 @@ export declare class XyoPendingTransactionsService extends BaseService<XyoPendin
24
24
  * The last count of total pending transactions
25
25
  */
26
26
  private _pendingTransactionsCount;
27
+ /**
28
+ * A set of transaction hashes that are pending removal from the
29
+ * curated pending transactions archivist. This is used to track
30
+ * which transactions need to be removed from the archivist.
31
+ */
27
32
  private _removablePendingTransactionHashes;
28
33
  /**
29
34
  * A mutex to ensure that the curated pending transactions archivist is
@@ -35,14 +40,19 @@ export declare class XyoPendingTransactionsService extends BaseService<XyoPendin
35
40
  private get pendingBundledTransactionsArchivist();
36
41
  private get pendingBundledTransactionsLocalArchivist();
37
42
  private get pendingTransactionsCount();
38
- private get rejectedBundledTransactionsArchivist();
43
+ private get rejectedTransactionsArchivist();
39
44
  createHandler(): Promise<void>;
40
- getPendingTransactions(head: Hash, limit: number): Promise<HydratedTransactionWithStorageMeta[]>;
45
+ getPendingTransactions(head: Hash, limit: number): Promise<HydratedTransaction[]>;
41
46
  private countPendingTransactions;
42
47
  private filterAlreadyFinalizedTransactions;
43
48
  private insertNewTransactions;
49
+ /**
50
+ * Marks any included transactions in the provided payloads for removal preventing them
51
+ * from being included in the curated pending transactions archivist and from being offered
52
+ * during the next retrieval of pending transactions.
53
+ * @param payloads An array of payloads that may contain transactions.
54
+ */
55
+ private markAnyIncludedTransactionsForRemoval;
44
56
  private removeBundledTransactions;
45
- private removeFinalizedTransactions;
46
- private removeRejectedBundledTransactions;
47
57
  }
48
58
  //# sourceMappingURL=PendingTransactions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PendingTransactions.d.ts","sourceRoot":"","sources":["../../../src/PendingTransactions/PendingTransactions.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAQhE,OAAO,EAC6C,iBAAiB,EACnE,mBAAmB,EAAE,kCAAkC,EAEvD,0BAA0B,EAC3B,MAAM,2BAA2B,CAAA;AAIlC,OAAO,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAA;AAEjE,MAAM,WAAW,mCAAoC,SAAQ,iBAAiB;IAC5E,cAAc,CAAC,EAAE,iBAAiB,CAAA;IAClC,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC,mCAAmC,CAAC,EAAE,iBAAiB,CAAA;IACvD,oCAAoC,CAAC,EAAE,iBAAiB,CAAA;CACzD;AAcD,qBACa,6BAA8B,SAAQ,WAAW,CAAC,mCAAmC,CAAE,YAAW,0BAA0B;IACvI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAiB3B;IAEV;;;OAGG;IACH,OAAO,CAAC,8BAA8B,CAAc;IAEpD;;;OAGG;IACH,OAAO,CAAC,2CAA2C,CAA6B;IAEhF;;OAEG;IACH,OAAO,CAAC,yBAAyB,CAAY;IAE7C,OAAO,CAAC,kCAAkC,CAAuB;IAEjE;;;OAGG;IACH,OAAO,CAAC,+CAA+C,CAAc;IAErE,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,KAAK,mBAAmB,GAE9B;IAED,OAAO,KAAK,mCAAmC,GAE9C;IAED,OAAO,KAAK,wCAAwC,GAEnD;IAED,OAAO,KAAK,wBAAwB,GAGnC;IAED,OAAO,KAAK,oCAAoC,GAE/C;IAEc,aAAa;IA+BtB,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,kCAAkC,EAAE,CAAC;YAgCxF,wBAAwB;YAQxB,kCAAkC;YAUlC,qBAAqB;YA8BrB,yBAAyB;IAgBvC,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,iCAAiC;CAM1C"}
1
+ {"version":3,"file":"PendingTransactions.d.ts","sourceRoot":"","sources":["../../../src/PendingTransactions/PendingTransactions.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAOhE,OAAO,EACqC,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAC3D,0BAA0B,EACrE,MAAM,2BAA2B,CAAA;AAGlC,OAAO,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAA;AAIjE,MAAM,WAAW,mCAAoC,SAAQ,iBAAiB;IAC5E,cAAc,CAAC,EAAE,iBAAiB,CAAA;IAClC,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC,mCAAmC,CAAC,EAAE,iBAAiB,CAAA;IACvD,6BAA6B,CAAC,EAAE,iBAAiB,CAAA;CAClD;AAID,qBACa,6BAA8B,SAAQ,WAAW,CAAC,mCAAmC,CAAE,YAAW,0BAA0B;IACvI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAiB3B;IAEV;;;OAGG;IACH,OAAO,CAAC,8BAA8B,CAAc;IAEpD;;;OAGG;IACH,OAAO,CAAC,2CAA2C,CAA6B;IAEhF;;OAEG;IACH,OAAO,CAAC,yBAAyB,CAAY;IAE7C;;;;OAIG;IACH,OAAO,CAAC,kCAAkC,CAAuB;IAEjE;;;OAGG;IACH,OAAO,CAAC,+CAA+C,CAAc;IAErE,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,KAAK,mBAAmB,GAE9B;IAED,OAAO,KAAK,mCAAmC,GAE9C;IAED,OAAO,KAAK,wCAAwC,GAEnD;IAED,OAAO,KAAK,wBAAwB,GAGnC;IAED,OAAO,KAAK,6BAA6B,GAExC;IAEc,aAAa;IA+BtB,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;YA2DzE,wBAAwB;YAQxB,kCAAkC;YAUlC,qBAAqB;IA2BnC;;;;;OAKG;IACH,OAAO,CAAC,qCAAqC;YAO/B,yBAAyB;CAexC"}
@@ -0,0 +1,4 @@
1
+ import type { PayloadBundle, WithStorageMeta } from '@xyo-network/payload-model';
2
+ import type { HydratedTransaction } from '@xyo-network/xl1-protocol';
3
+ export declare const bundledPayloadToHydratedTransaction: (payload: WithStorageMeta<PayloadBundle>) => Promise<HydratedTransaction | undefined>;
4
+ //# sourceMappingURL=bundledPayloadToHydratedTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundledPayloadToHydratedTransaction.d.ts","sourceRoot":"","sources":["../../../src/PendingTransactions/bundledPayloadToHydratedTransaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAGpE,eAAO,MAAM,mCAAmC,GAC9C,SAAS,eAAe,CAAC,aAAa,CAAC,KACtC,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAMzC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { PayloadBundle } from '@xyo-network/payload-model';
2
+ import type { HydratedTransaction } from '@xyo-network/xl1-protocol';
3
+ export declare const hydratedTransactionToPayloadBundle: (transaction: HydratedTransaction) => PayloadBundle;
4
+ //# sourceMappingURL=hydratedTransactionToPayloadBundle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydratedTransactionToPayloadBundle.d.ts","sourceRoot":"","sources":["../../../src/PendingTransactions/hydratedTransactionToPayloadBundle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAGpE,eAAO,MAAM,kCAAkC,GAAI,aAAa,mBAAmB,KAAG,aAGrF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"XyoStakeIntentService.d.ts","sourceRoot":"","sources":["../../../src/StakeIntent/XyoStakeIntentService.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,OAAO,EAAa,IAAI,EACzB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,iBAAiB,EAAwB,MAAM,8BAA8B,CAAA;AAKtF,OAAO,EAEc,WAAW,EAE/B,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,OAAO,EAAmB,MAAM,4BAA4B,CAAA;AACrE,OAAO,KAAK,EACV,iBAAiB,EAAE,gCAAgC,EAAE,MAAM,EAC5D,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAEuI,gBAAgB,EAE5J,kBAAkB,EACnB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAA;AAEjE,MAAM,WAAW,2BAA4B,SAAQ,iBAAiB;IACpE,cAAc,CAAC,EAAE,iBAAiB,CAAA;IAClC,aAAa,CAAC,EAAE,gCAAgC,CAAA;IAChD,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,yBAAyB,CAAC,EAAE,iBAAiB,CAAA;CAC9C;AAWD,qBACa,qBAAsB,SAAQ,WAAW,CAAC,2BAA2B,CAAE,YAAW,kBAAkB;IAE/G,SAAS,CAAC,qBAAqB,EAAE,IAAI,GAAG,SAAS,CAAY;IAQ7D,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAoB;IAC9D,SAAS,CAAC,WAAW,+CAAkE;IACvF,SAAS,CAAC,YAAY,QAAc;gBAExB,MAAM,EAAE,2BAA2B;IAO/C,SAAS,KAAK,cAAc;;;;;;;;mNAE3B;IAED,SAAS,KAAK,aAAa,qCAE1B;IAED,SAAS,KAAK,gBAAgB,qBAE7B;IAED,SAAS,KAAK,yBAAyB;;;;;;;;mNAEtC;IAEc,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAQvC,0BAA0B,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAO7G,6BAA6B,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAUhF,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAK3E,kBAAkB;YAkClB,YAAY;YAQZ,YAAY;YA+BZ,WAAW;CAgC1B"}
1
+ {"version":3,"file":"XyoStakeIntentService.d.ts","sourceRoot":"","sources":["../../../src/StakeIntent/XyoStakeIntentService.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,OAAO,EAAa,IAAI,EACzB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,iBAAiB,EAAwB,MAAM,8BAA8B,CAAA;AAKtF,OAAO,EAEc,WAAW,EAE/B,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,OAAO,EAAmB,MAAM,4BAA4B,CAAA;AACrE,OAAO,KAAK,EACV,iBAAiB,EAAE,gCAAgC,EAAE,MAAM,EAC5D,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAG2E,gBAAgB,EAEhG,kBAAkB,EACnB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAA;AAEjE,MAAM,WAAW,2BAA4B,SAAQ,iBAAiB;IACpE,cAAc,CAAC,EAAE,iBAAiB,CAAA;IAClC,aAAa,CAAC,EAAE,gCAAgC,CAAA;IAChD,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,yBAAyB,CAAC,EAAE,iBAAiB,CAAA;CAC9C;AAWD,qBACa,qBAAsB,SAAQ,WAAW,CAAC,2BAA2B,CAAE,YAAW,kBAAkB;IAE/G,SAAS,CAAC,qBAAqB,EAAE,IAAI,GAAG,SAAS,CAAY;IAQ7D,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAoB;IAC9D,SAAS,CAAC,WAAW,+CAAkE;IACvF,SAAS,CAAC,YAAY,QAAc;gBAExB,MAAM,EAAE,2BAA2B;IAO/C,SAAS,KAAK,cAAc;;;;;;;;mNAE3B;IAED,SAAS,KAAK,aAAa,qCAE1B;IAED,SAAS,KAAK,gBAAgB,qBAE7B;IAED,SAAS,KAAK,yBAAyB;;;;;;;;mNAEtC;IAEc,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAQvC,0BAA0B,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAO7G,6BAA6B,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAUhF,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAK3E,kBAAkB;YAkClB,YAAY;YAQZ,YAAY;YA+BZ,WAAW;CAgC1B"}
@@ -1,23 +1,20 @@
1
- import { Base } from '@xylabs/base';
2
1
  import type { Address } from '@xylabs/hex';
3
- import type { Promisable } from '@xylabs/promise';
4
2
  import type { StakedXyoChain } from '@xyo-network/typechain';
5
3
  import type { BaseServiceParams, ChainService } from '@xyo-network/xl1-protocol';
6
4
  import type { ContractRunner } from 'ethers/providers';
7
- export interface EvmChainServiceParams extends BaseServiceParams {
5
+ import { BaseService } from '../../BaseService.ts';
6
+ export type EvmChainServiceParams = BaseServiceParams<{
8
7
  contract: StakedXyoChain;
9
8
  id: Address;
10
9
  runner: ContractRunner;
11
- }
10
+ }>;
12
11
  /**
13
12
  * A class that represents a chain stake as backed by an EVM smart contract
14
13
  */
15
- export declare class EvmChainService extends Base<EvmChainServiceParams> implements ChainService {
16
- private _contract;
17
- protected constructor(params: EvmChainServiceParams);
14
+ export declare class EvmChainService extends BaseService<EvmChainServiceParams> implements ChainService {
15
+ get contract(): StakedXyoChain;
18
16
  get id(): Address;
19
17
  get runner(): ContractRunner;
20
- static create({ id, runner, logger, traceProvider, meterProvider, }: Omit<EvmChainServiceParams, 'contract'>): Promisable<EvmChainService>;
21
18
  active(): Promise<bigint>;
22
19
  activeByAddressStaked(address: string): Promise<bigint>;
23
20
  activeByStaker(address: string): Promise<bigint>;
@@ -1 +1 @@
1
- {"version":3,"file":"Evm.d.ts","sourceRoot":"","sources":["../../../../src/Staker/Evm/Evm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAEhF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,QAAQ,EAAE,cAAc,CAAA;IACxB,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,EAAE,cAAc,CAAA;CACvB;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,IAAI,CAAC,qBAAqB,CAAE,YAAW,YAAY;IACtF,OAAO,CAAC,SAAS,CAAgB;IAEjC,SAAS,aAAa,MAAM,EAAE,qBAAqB;IAKnD,IAAI,EAAE,IAAI,OAAO,CAEhB;IAED,IAAI,MAAM,IAAI,cAAc,CAE3B;IAED,MAAM,CAAC,MAAM,CAAC,EACZ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,GACjD,EAAE,IAAI,CAAC,qBAAqB,EAAE,UAAU,CAAC,GAAG,UAAU,CAAC,eAAe,CAAC;IAQlE,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAIzB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvD,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM1D,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAI3B,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI/B,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAI1B,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM3C,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAIlC,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM7C,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5B,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAGzD"}
1
+ {"version":3,"file":"Evm.d.ts","sourceRoot":"","sources":["../../../../src/Staker/Evm/Evm.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAG1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAEhF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;IACpD,QAAQ,EAAE,cAAc,CAAA;IACxB,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,EAAE,cAAc,CAAA;CACvB,CAAC,CAAA;AAEF;;GAEG;AACH,qBAAa,eAAgB,SAAQ,WAAW,CAAC,qBAAqB,CAAE,YAAW,YAAY;IAC7F,IAAI,QAAQ,mBAQX;IAED,IAAI,EAAE,IAAI,OAAO,CAEhB;IAED,IAAI,MAAM,IAAI,cAAc,CAE3B;IAEK,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAIzB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvD,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM1D,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAI3B,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI/B,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAI1B,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM3C,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAIlC,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM7C,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5B,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAGzD"}
@@ -1,12 +1,11 @@
1
1
  export * from './AccountBalance/index.ts';
2
- export * from './BaseEthProvider.ts';
3
2
  export * from './BaseService.ts';
4
3
  export * from './BlockProducer/index.ts';
5
4
  export * from './BlockReward/index.ts';
5
+ export * from './ChainBlockNumberIteration/index.ts';
6
6
  export * from './ChainValidator/index.ts';
7
7
  export * from './Election/index.ts';
8
8
  export * from './PendingTransactions/index.ts';
9
9
  export * from './StakeIntent/index.ts';
10
10
  export * from './Staker/index.ts';
11
- export * from './XyoChainBlockNumberIterator.ts';
12
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kCAAkC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,kBAAkB,CAAA;AAChC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sCAAsC,CAAA;AACpD,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "http://json.schemastore.org/package.json",
3
3
  "name": "@xyo-network/chain-services",
4
- "version": "1.5.29",
4
+ "version": "1.5.31",
5
5
  "description": "XYO Layer One SDK Services",
6
6
  "homepage": "https://xylabs.com",
7
7
  "bugs": {
@@ -35,52 +35,52 @@
35
35
  },
36
36
  "dependencies": {
37
37
  "@opentelemetry/api": "^1.9.0",
38
- "@xylabs/array": "^4.11.16",
39
- "@xylabs/assert": "^4.11.16",
40
- "@xylabs/base": "^4.11.16",
41
- "@xylabs/decimal-precision": "^4.11.16",
42
- "@xylabs/events": "^4.11.16",
43
- "@xylabs/exists": "^4.11.16",
44
- "@xylabs/forget": "^4.11.16",
45
- "@xylabs/hex": "^4.11.16",
46
- "@xylabs/promise": "^4.11.16",
47
- "@xylabs/telemetry": "^4.11.16",
48
- "@xylabs/typeof": "^4.11.16",
49
- "@xyo-network/account-model": "^3.18.5",
50
- "@xyo-network/archivist-memory": "^3.18.5",
51
- "@xyo-network/archivist-model": "^3.18.5",
52
- "@xyo-network/boundwitness-model": "^3.18.5",
53
- "@xyo-network/boundwitness-validator": "^3.18.5",
54
- "@xyo-network/boundwitness-wrapper": "^3.18.5",
55
- "@xyo-network/chain-analyze": "^1.5.29",
56
- "@xyo-network/chain-ethereum": "^1.5.29",
57
- "@xyo-network/chain-modules": "^1.5.29",
58
- "@xyo-network/chain-protocol": "^1.5.29",
59
- "@xyo-network/chain-telemetry": "^1.5.29",
60
- "@xyo-network/chain-utils": "^1.5.29",
61
- "@xyo-network/chain-validation": "^1.5.29",
62
- "@xyo-network/chain-wrappers": "^1.5.29",
63
- "@xyo-network/payload-builder": "^3.18.5",
64
- "@xyo-network/payload-model": "^3.18.5",
38
+ "@xylabs/array": "^4.11.20",
39
+ "@xylabs/assert": "^4.11.20",
40
+ "@xylabs/base": "^4.11.20",
41
+ "@xylabs/decimal-precision": "^4.11.20",
42
+ "@xylabs/events": "^4.11.20",
43
+ "@xylabs/exists": "^4.11.20",
44
+ "@xylabs/forget": "^4.11.20",
45
+ "@xylabs/hex": "^4.11.20",
46
+ "@xylabs/promise": "^4.11.20",
47
+ "@xylabs/telemetry": "^4.11.20",
48
+ "@xylabs/typeof": "^4.11.20",
49
+ "@xyo-network/account-model": "^3.18.8",
50
+ "@xyo-network/archivist-memory": "^3.18.8",
51
+ "@xyo-network/archivist-model": "^3.18.8",
52
+ "@xyo-network/boundwitness-model": "^3.18.8",
53
+ "@xyo-network/boundwitness-validator": "^3.18.8",
54
+ "@xyo-network/boundwitness-wrapper": "^3.18.8",
55
+ "@xyo-network/chain-analyze": "^1.5.31",
56
+ "@xyo-network/chain-ethereum": "^1.5.31",
57
+ "@xyo-network/chain-modules": "^1.5.31",
58
+ "@xyo-network/chain-protocol": "^1.5.31",
59
+ "@xyo-network/chain-telemetry": "^1.5.31",
60
+ "@xyo-network/chain-utils": "^1.5.31",
61
+ "@xyo-network/chain-validation": "^1.5.31",
62
+ "@xyo-network/chain-wrappers": "^1.5.31",
63
+ "@xyo-network/payload-builder": "^3.18.8",
64
+ "@xyo-network/payload-model": "^3.18.8",
65
65
  "@xyo-network/typechain": "^3.5.4",
66
- "@xyo-network/xl1-protocol": "^1.4.19",
67
- "@xyo-network/xl1-protocol-sdk": "^1.5.29",
66
+ "@xyo-network/xl1-protocol": "^1.4.33",
67
+ "@xyo-network/xl1-protocol-sdk": "^1.5.31",
68
68
  "async-mutex": "^0.5.0",
69
- "ethers": "6.14.3",
69
+ "ethers": "6.14.4",
70
70
  "lru-cache": "^11.1.0",
71
71
  "web3-types": "^1.10.0"
72
72
  },
73
73
  "devDependencies": {
74
- "@types/node": "^22.15.30",
75
- "@xylabs/delay": "^4.11.16",
74
+ "@types/node": "^24.0.1",
75
+ "@xylabs/delay": "^4.11.20",
76
76
  "@xylabs/ts-scripts-yarn3": "^6.5.8",
77
77
  "@xylabs/tsconfig": "^6.5.8",
78
- "@xylabs/vitest-extended": "^4.11.16",
79
- "@xyo-network/account": "^3.18.5",
80
- "@xyo-network/account-model": "^3.18.5",
81
- "@xyo-network/chain-validation": "^1.5.29",
82
- "@xyo-network/wallet": "^3.18.5",
83
- "knip": "^5.60.2",
78
+ "@xylabs/vitest-extended": "^4.11.20",
79
+ "@xyo-network/account": "^3.18.8",
80
+ "@xyo-network/account-model": "^3.18.8",
81
+ "@xyo-network/chain-validation": "^1.5.31",
82
+ "@xyo-network/wallet": "^3.18.8",
83
+ "knip": "^5.61.0",
84
84
  "typescript": "^5.8.3",
85
85
  "vitest": "^3.2.3",
86
86
  "vitest-mock-extended": "^3.1.0"
@@ -4,9 +4,10 @@ import {
4
4
  toHex,
5
5
  } from '@xylabs/hex'
6
6
  import {
7
- analyzeChain, BalanceAnalyzer, isChainSummaryBalances,
7
+ analyzeChain, BalanceAnalyzer, ChainSummaryBalances, ChainSummaryBalancesSchema, isChainSummaryBalances,
8
8
  } from '@xyo-network/chain-analyze'
9
9
  import { SignedBigInt, toPositiveBigInt } from '@xyo-network/chain-protocol'
10
+ import { PayloadBuilder } from '@xyo-network/payload-builder'
10
11
  import {
11
12
  AccountBalanceService, BaseServiceParams,
12
13
  ChainServiceCollection,
@@ -19,7 +20,15 @@ export type ChainAccountBalanceServiceParams = BaseServiceParams<Partial<Pick<Ch
19
20
  @creatableService()
20
21
  export class XyoChainAccountBalanceService extends BaseService<ChainAccountBalanceServiceParams> implements AccountBalanceService {
21
22
  private _balances: Partial<Record<Address, SignedBigInt>> = {}
22
- private _previousHead: Hash | null = null
23
+ /**
24
+ * The most recent head that was indexed to
25
+ */
26
+ private _firstBlock: Hash | null = null
27
+
28
+ /**
29
+ * The oldest block that was indexed through
30
+ */
31
+ private _lastBlock: Hash | null = null
23
32
 
24
33
  protected get chainArchivist() {
25
34
  return assertEx(this.params.chainArchivist, () => 'chainArchivist is required')
@@ -39,14 +48,34 @@ export class XyoChainAccountBalanceService extends BaseService<ChainAccountBalan
39
48
  }
40
49
 
41
50
  async sync(head: Hash): Promise<void> {
51
+ // Create starting balances from the current balances
52
+ const startingBalances = new PayloadBuilder<ChainSummaryBalances>({ schema: ChainSummaryBalancesSchema })
53
+ .fields({
54
+ balances: this._balances,
55
+ firstBlock: this._firstBlock,
56
+ lastBlock: this._lastBlock,
57
+ })
58
+ .build()
59
+
60
+ // Calculate the balances for each address through the last indexed block based on the current balances
42
61
  const analysis = await analyzeChain(
43
62
  this.chainArchivist,
44
- [new BalanceAnalyzer()],
63
+ [new BalanceAnalyzer(undefined, undefined, startingBalances)],
45
64
  head,
46
- this._previousHead,
47
- -1n,
48
- this.tracer,
65
+ this._firstBlock,
49
66
  )
50
- this._balances = assertEx(analysis.find(isChainSummaryBalances)?.balances, () => 'Failed to sync balances')
67
+ // Find the balances for all addresses
68
+ const allAddressesBalances = analysis.find(isChainSummaryBalances)
69
+
70
+ // Return if no balances were found (nothing to index)
71
+ if (allAddressesBalances === undefined) return
72
+
73
+ // Merge to existing balances map
74
+ this._balances = { ...this._balances, ...allAddressesBalances.balances }
75
+
76
+ // Update first indexed block
77
+ this._firstBlock = allAddressesBalances.firstBlock
78
+ // Update last indexed block
79
+ if (this._lastBlock === null) this._lastBlock = allAddressesBalances.lastBlock
51
80
  }
52
81
  }
@@ -27,6 +27,7 @@ export const accountBalanceServiceFromArchivist = async (archivist: ArchivistIns
27
27
  getBalances: (): Record<Address, Hex> => {
28
28
  return Object.fromEntries(Object.entries(allAddressesBalances.balances).map(([key, value]) => ([key, isPositiveBigInt(value) ? value.positive : '0'])))
29
29
  },
30
+ name: 'ArchivistAccountBalanceService',
30
31
  async sync(head: Hash): Promise<void> {
31
32
  const analysis = await analyzeChain(
32
33
  archivist,
@@ -1,3 +1,4 @@
1
+ import type { EventData } from '@xylabs/events'
1
2
  import { BaseEmitter } from '@xylabs/events'
2
3
  import type { Promisable } from '@xylabs/promise'
3
4
  import { span, spanAsync } from '@xylabs/telemetry'
@@ -10,7 +11,7 @@ declare global {
10
11
  var xyoServiceSingletons: Record<string, unknown>
11
12
  }
12
13
 
13
- export class BaseService<TParams extends BaseServiceParams = BaseServiceParams> extends BaseEmitter<Partial<TParams>> {
14
+ export class BaseService<TParams extends BaseServiceParams = BaseServiceParams, TEventData extends EventData = EventData> extends BaseEmitter<Partial<TParams>, TEventData> {
14
15
  private static singletonInitMutex = new Mutex()
15
16
 
16
17
  static get singletons() {
@@ -13,7 +13,7 @@ import { PayloadBuilder } from '@xyo-network/payload-builder'
13
13
  import { WithStorageMeta } from '@xyo-network/payload-model'
14
14
  import {
15
15
  AccountBalanceService,
16
- AllowedBlockPayload, asBlockBoundWitness, BlockBoundWitness, BlockNumber, BlockNumberSchema, BlockProducer, ChainStakeIntent, ChainStakeIntentSchema,
16
+ AllowedBlockPayload, asBlockBoundWitness, BlockBoundWitness, BlockNumber, BlockNumberSchema, BlockProducerService, ChainStakeIntent, ChainStakeIntentSchema,
17
17
  HydratedBlock, PendingTransactionsService, StakeIntentService, Transfer,
18
18
  } from '@xyo-network/xl1-protocol'
19
19
 
@@ -40,12 +40,12 @@ export const XYO_PRODUCER_RESTAKE_WINDOW = 500n
40
40
  export interface XyoBlockProducerParams extends XyoValidatorParams {
41
41
  balanceService: AccountBalanceService
42
42
  pendingTransactionsService: PendingTransactionsService
43
- rejectedBundledTransactionsArchivist: ArchivistInstance
43
+ rejectedTransactionsArchivist: ArchivistInstance
44
44
  rewardAddress: Address
45
45
  }
46
46
 
47
47
  @creatableService()
48
- export class XyoBlockProducer extends BaseService<XyoBlockProducerParams> implements BlockProducer {
48
+ export class XyoBlockProducer extends BaseService<XyoBlockProducerParams> implements BlockProducerService {
49
49
  protected _blockRewardDiviner: BlockRewardDiviner | undefined
50
50
 
51
51
  static get DefaultBlockSize(): number {
@@ -80,8 +80,8 @@ export class XyoBlockProducer extends BaseService<XyoBlockProducerParams> implem
80
80
  return assertEx(this.params.pendingTransactionsService, () => 'Missing pendingTransactionsService')
81
81
  }
82
82
 
83
- protected get rejectedBundledTransactionsArchivist() {
84
- return assertEx(this.params.rejectedBundledTransactionsArchivist, () => 'No rejected bundled transactions archivist')
83
+ protected get rejectedTransactionsArchivist() {
84
+ return assertEx(this.params.rejectedTransactionsArchivist, () => 'No rejected bundled transactions archivist')
85
85
  }
86
86
 
87
87
  protected get rewardAddress(): Address {
@@ -206,7 +206,7 @@ export class XyoBlockProducer extends BaseService<XyoBlockProducerParams> implem
206
206
  if (errors.length > 0) {
207
207
  this.logger?.warn(`Validation of produced block failed: ${errors.at(0)?.message}`)
208
208
  const rejectedTransactions = block[1]
209
- await this.rejectedBundledTransactionsArchivist.insert(rejectedTransactions)
209
+ await this.rejectedTransactionsArchivist.insert(rejectedTransactions)
210
210
  } else {
211
211
  return block
212
212
  }