@xyo-network/chain-services 1.17.0 → 1.17.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.
Files changed (182) hide show
  1. package/dist/neutral/AccountBalance/accountBalanceServiceFromArchivist.d.ts +1 -1
  2. package/dist/neutral/AccountBalance/accountBalanceServiceFromArchivist.d.ts.map +1 -1
  3. package/dist/neutral/AccountBalance/index.d.ts +0 -1
  4. package/dist/neutral/AccountBalance/index.d.ts.map +1 -1
  5. package/dist/neutral/BaseService.d.ts +0 -3
  6. package/dist/neutral/BaseService.d.ts.map +1 -1
  7. package/dist/neutral/BlockReward/EvmBlockRewardViewer.d.ts +17 -0
  8. package/dist/neutral/BlockReward/EvmBlockRewardViewer.d.ts.map +1 -0
  9. package/dist/neutral/BlockReward/index.d.ts +1 -3
  10. package/dist/neutral/BlockReward/index.d.ts.map +1 -1
  11. package/dist/neutral/ChainBlockNumberIteration/ChainBlockNumberIterationService.d.ts +4 -2
  12. package/dist/neutral/ChainBlockNumberIteration/ChainBlockNumberIterationService.d.ts.map +1 -1
  13. package/dist/neutral/ChainService/Evm/Evm.d.ts +2 -1
  14. package/dist/neutral/ChainService/Evm/Evm.d.ts.map +1 -1
  15. package/dist/neutral/ChainService/Memory/Memory.d.ts +2 -0
  16. package/dist/neutral/ChainService/Memory/Memory.d.ts.map +1 -1
  17. package/dist/neutral/ChainValidator/XyoValidator.d.ts +2 -16
  18. package/dist/neutral/ChainValidator/XyoValidator.d.ts.map +1 -1
  19. package/dist/neutral/PendingTransactions/BasePendingTransactions.d.ts +7 -6
  20. package/dist/neutral/PendingTransactions/BasePendingTransactions.d.ts.map +1 -1
  21. package/dist/neutral/StakeIntent/XyoStakeIntentService.d.ts +5 -4
  22. package/dist/neutral/StakeIntent/XyoStakeIntentService.d.ts.map +1 -1
  23. package/dist/neutral/blockViewerFromChainIteratorAndArchivist.d.ts.map +1 -1
  24. package/dist/neutral/implementation/accountBalance.d.ts +7 -0
  25. package/dist/neutral/implementation/accountBalance.d.ts.map +1 -0
  26. package/dist/neutral/implementation/blockViewer.d.ts +7 -0
  27. package/dist/neutral/implementation/blockViewer.d.ts.map +1 -0
  28. package/dist/neutral/implementation/chain/evm.d.ts +7 -0
  29. package/dist/neutral/implementation/chain/evm.d.ts.map +1 -0
  30. package/dist/neutral/implementation/chain/index.d.ts +7 -0
  31. package/dist/neutral/implementation/chain/index.d.ts.map +1 -0
  32. package/dist/neutral/implementation/evm/index.d.ts +2 -0
  33. package/dist/neutral/implementation/evm/index.d.ts.map +1 -0
  34. package/dist/neutral/implementation/evm/initChainId.d.ts +4 -0
  35. package/dist/neutral/implementation/evm/initChainId.d.ts.map +1 -0
  36. package/dist/neutral/implementation/evm/initEvmProvider.d.ts +11 -0
  37. package/dist/neutral/implementation/evm/initEvmProvider.d.ts.map +1 -0
  38. package/dist/neutral/implementation/evm/initInfuraProvider.d.ts +6 -0
  39. package/dist/neutral/implementation/evm/initInfuraProvider.d.ts.map +1 -0
  40. package/dist/neutral/implementation/evm/initJsonRpcProvider.d.ts +6 -0
  41. package/dist/neutral/implementation/evm/initJsonRpcProvider.d.ts.map +1 -0
  42. package/dist/neutral/implementation/head/createBootstrapHead.d.ts +5 -0
  43. package/dist/neutral/implementation/head/createBootstrapHead.d.ts.map +1 -0
  44. package/dist/neutral/implementation/head/createForkedHead/config/getBridgeDestinationDetails.d.ts +8 -0
  45. package/dist/neutral/implementation/head/createForkedHead/config/getBridgeDestinationDetails.d.ts.map +1 -0
  46. package/dist/neutral/implementation/head/createForkedHead/config/getBridgeSourceDetails.d.ts +9 -0
  47. package/dist/neutral/implementation/head/createForkedHead/config/getBridgeSourceDetails.d.ts.map +1 -0
  48. package/dist/neutral/implementation/head/createForkedHead/config/getForkDetails.d.ts +4 -0
  49. package/dist/neutral/implementation/head/createForkedHead/config/getForkDetails.d.ts.map +1 -0
  50. package/dist/neutral/implementation/head/createForkedHead/config/index.d.ts +4 -0
  51. package/dist/neutral/implementation/head/createForkedHead/config/index.d.ts.map +1 -0
  52. package/dist/neutral/implementation/head/createForkedHead/createForkedHead.d.ts +5 -0
  53. package/dist/neutral/implementation/head/createForkedHead/createForkedHead.d.ts.map +1 -0
  54. package/dist/neutral/implementation/head/createForkedHead/getBridgeDestinationObservation.d.ts +11 -0
  55. package/dist/neutral/implementation/head/createForkedHead/getBridgeDestinationObservation.d.ts.map +1 -0
  56. package/dist/neutral/implementation/head/createForkedHead/getBridgeIntent.d.ts +11 -0
  57. package/dist/neutral/implementation/head/createForkedHead/getBridgeIntent.d.ts.map +1 -0
  58. package/dist/neutral/implementation/head/createForkedHead/getBridgeSourceObservation.d.ts +11 -0
  59. package/dist/neutral/implementation/head/createForkedHead/getBridgeSourceObservation.d.ts.map +1 -0
  60. package/dist/neutral/implementation/head/createForkedHead/getFirstBlockForNewChain.d.ts +13 -0
  61. package/dist/neutral/implementation/head/createForkedHead/getFirstBlockForNewChain.d.ts.map +1 -0
  62. package/dist/neutral/implementation/head/createForkedHead/index.d.ts +2 -0
  63. package/dist/neutral/implementation/head/createForkedHead/index.d.ts.map +1 -0
  64. package/dist/neutral/implementation/head/getForkFromBlock.d.ts +12 -0
  65. package/dist/neutral/implementation/head/getForkFromBlock.d.ts.map +1 -0
  66. package/dist/neutral/implementation/head/head.d.ts +11 -0
  67. package/dist/neutral/implementation/head/head.d.ts.map +1 -0
  68. package/dist/neutral/implementation/head/index.d.ts +2 -0
  69. package/dist/neutral/implementation/head/index.d.ts.map +1 -0
  70. package/dist/neutral/implementation/head/submitNewChain.d.ts +10 -0
  71. package/dist/neutral/implementation/head/submitNewChain.d.ts.map +1 -0
  72. package/dist/neutral/implementation/index.d.ts +13 -0
  73. package/dist/neutral/implementation/index.d.ts.map +1 -0
  74. package/dist/neutral/implementation/mempoolRunner.d.ts +7 -0
  75. package/dist/neutral/implementation/mempoolRunner.d.ts.map +1 -0
  76. package/dist/neutral/implementation/mempoolViewer.d.ts +7 -0
  77. package/dist/neutral/implementation/mempoolViewer.d.ts.map +1 -0
  78. package/dist/neutral/implementation/pendingTransactions.d.ts +9 -0
  79. package/dist/neutral/implementation/pendingTransactions.d.ts.map +1 -0
  80. package/dist/neutral/implementation/producer.d.ts +5 -0
  81. package/dist/neutral/implementation/producer.d.ts.map +1 -0
  82. package/dist/neutral/implementation/reward.d.ts +14 -0
  83. package/dist/neutral/implementation/reward.d.ts.map +1 -0
  84. package/dist/neutral/implementation/time.d.ts +6 -0
  85. package/dist/neutral/implementation/time.d.ts.map +1 -0
  86. package/dist/neutral/implementation/validator.d.ts +5 -0
  87. package/dist/neutral/implementation/validator.d.ts.map +1 -0
  88. package/dist/neutral/index.d.ts +2 -2
  89. package/dist/neutral/index.d.ts.map +1 -1
  90. package/dist/neutral/index.mjs +1565 -1140
  91. package/dist/neutral/index.mjs.map +1 -1
  92. package/dist/neutral/simple/block/index.d.ts +2 -0
  93. package/dist/neutral/simple/block/index.d.ts.map +1 -0
  94. package/dist/neutral/simple/block/runner/SimpleBlockRunner.d.ts +117 -0
  95. package/dist/neutral/simple/block/runner/SimpleBlockRunner.d.ts.map +1 -0
  96. package/dist/neutral/simple/block/runner/generateTransactionFeeTransfers.d.ts.map +1 -0
  97. package/dist/neutral/simple/block/runner/index.d.ts +2 -0
  98. package/dist/neutral/simple/block/runner/index.d.ts.map +1 -0
  99. package/dist/neutral/simple/block/runner/spec/SimpleBlockRewardViewer.d.ts +2 -0
  100. package/dist/neutral/simple/block/runner/spec/SimpleBlockRewardViewer.d.ts.map +1 -0
  101. package/dist/neutral/simple/index.d.ts +2 -0
  102. package/dist/neutral/simple/index.d.ts.map +1 -0
  103. package/package.json +32 -29
  104. package/src/AccountBalance/accountBalanceServiceFromArchivist.ts +35 -8
  105. package/src/AccountBalance/index.ts +0 -1
  106. package/src/BaseService.ts +0 -13
  107. package/src/BlockReward/EvmBlockRewardViewer.ts +50 -0
  108. package/src/BlockReward/index.ts +1 -3
  109. package/src/ChainBlockNumberIteration/ChainBlockNumberIterationService.ts +14 -2
  110. package/src/ChainService/Evm/Evm.ts +5 -4
  111. package/src/ChainService/Memory/Memory.ts +5 -0
  112. package/src/ChainValidator/XyoValidator.ts +25 -30
  113. package/src/NetworkStakeStepReward/BaseNetworkStakeStepRewardService.ts +18 -18
  114. package/src/PendingTransactions/BasePendingTransactions.ts +10 -5
  115. package/src/Schemas/BaseSchemasService.ts +1 -1
  116. package/src/StakeIntent/XyoStakeIntentService.ts +18 -8
  117. package/src/StepStake/BaseStepStakeService.ts +2 -2
  118. package/src/blockViewerFromChainIteratorAndArchivist.ts +8 -1
  119. package/src/implementation/accountBalance.ts +29 -0
  120. package/src/implementation/blockViewer.ts +29 -0
  121. package/src/implementation/chain/evm.ts +39 -0
  122. package/src/implementation/chain/index.ts +46 -0
  123. package/src/implementation/evm/index.ts +1 -0
  124. package/src/implementation/evm/initChainId.ts +20 -0
  125. package/src/implementation/evm/initEvmProvider.ts +24 -0
  126. package/src/implementation/evm/initInfuraProvider.ts +26 -0
  127. package/src/implementation/evm/initJsonRpcProvider.ts +20 -0
  128. package/src/implementation/head/createBootstrapHead.ts +31 -0
  129. package/src/implementation/head/createForkedHead/config/getBridgeDestinationDetails.ts +27 -0
  130. package/src/implementation/head/createForkedHead/config/getBridgeSourceDetails.ts +19 -0
  131. package/src/implementation/head/createForkedHead/config/getForkDetails.ts +10 -0
  132. package/src/implementation/head/createForkedHead/config/index.ts +3 -0
  133. package/src/implementation/head/createForkedHead/createForkedHead.ts +29 -0
  134. package/src/implementation/head/createForkedHead/getBridgeDestinationObservation.ts +42 -0
  135. package/src/implementation/head/createForkedHead/getBridgeIntent.ts +51 -0
  136. package/src/implementation/head/createForkedHead/getBridgeSourceObservation.ts +46 -0
  137. package/src/implementation/head/createForkedHead/getFirstBlockForNewChain.ts +41 -0
  138. package/src/implementation/head/createForkedHead/index.ts +1 -0
  139. package/src/implementation/head/getForkFromBlock.ts +43 -0
  140. package/src/implementation/head/head.ts +49 -0
  141. package/src/implementation/head/index.ts +1 -0
  142. package/src/implementation/head/submitNewChain.ts +27 -0
  143. package/src/implementation/index.ts +12 -0
  144. package/src/implementation/mempoolRunner.ts +29 -0
  145. package/src/implementation/mempoolViewer.ts +29 -0
  146. package/src/implementation/pendingTransactions.ts +36 -0
  147. package/src/implementation/producer.ts +16 -0
  148. package/src/implementation/reward.ts +53 -0
  149. package/src/implementation/time.ts +26 -0
  150. package/src/implementation/validator.ts +15 -0
  151. package/src/index.ts +2 -2
  152. package/src/simple/block/index.ts +1 -0
  153. package/src/{BlockProducer/BaseBlockProducerService.ts → simple/block/runner/SimpleBlockRunner.ts} +111 -74
  154. package/src/simple/block/runner/index.ts +1 -0
  155. package/src/simple/block/runner/spec/SimpleBlockRewardViewer.ts +413 -0
  156. package/src/simple/index.ts +1 -0
  157. package/dist/neutral/AccountBalance/BaseAccountBalanceService.d.ts +0 -35
  158. package/dist/neutral/AccountBalance/BaseAccountBalanceService.d.ts.map +0 -1
  159. package/dist/neutral/AccountTransfers/BaseAccountTransfersService.d.ts +0 -13
  160. package/dist/neutral/AccountTransfers/BaseAccountTransfersService.d.ts.map +0 -1
  161. package/dist/neutral/AccountTransfers/index.d.ts +0 -2
  162. package/dist/neutral/AccountTransfers/index.d.ts.map +0 -1
  163. package/dist/neutral/BlockProducer/BaseBlockProducerService.d.ts +0 -85
  164. package/dist/neutral/BlockProducer/BaseBlockProducerService.d.ts.map +0 -1
  165. package/dist/neutral/BlockProducer/generateTransactionFeeTransfers.d.ts.map +0 -1
  166. package/dist/neutral/BlockProducer/index.d.ts +0 -2
  167. package/dist/neutral/BlockProducer/index.d.ts.map +0 -1
  168. package/dist/neutral/BlockReward/BaseBlockRewardService.d.ts +0 -10
  169. package/dist/neutral/BlockReward/BaseBlockRewardService.d.ts.map +0 -1
  170. package/dist/neutral/BlockReward/EvmBlockRewardService.d.ts +0 -18
  171. package/dist/neutral/BlockReward/EvmBlockRewardService.d.ts.map +0 -1
  172. package/dist/neutral/BlockReward/MemoryBlockRewardService.d.ts +0 -23
  173. package/dist/neutral/BlockReward/MemoryBlockRewardService.d.ts.map +0 -1
  174. package/src/AccountBalance/BaseAccountBalanceService.ts +0 -98
  175. package/src/AccountTransfers/BaseAccountTransfersService.ts +0 -36
  176. package/src/AccountTransfers/index.ts +0 -1
  177. package/src/BlockProducer/index.ts +0 -1
  178. package/src/BlockReward/BaseBlockRewardService.ts +0 -17
  179. package/src/BlockReward/EvmBlockRewardService.ts +0 -49
  180. package/src/BlockReward/MemoryBlockRewardService.ts +0 -72
  181. /package/dist/neutral/{BlockProducer → simple/block/runner}/generateTransactionFeeTransfers.d.ts +0 -0
  182. /package/src/{BlockProducer → simple/block/runner}/generateTransactionFeeTransfers.ts +0 -0
@@ -0,0 +1,2 @@
1
+ export * from './runner/index.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/simple/block/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1,117 @@
1
+ import { AbstractCreatable, Address, CreatableParams, Hex, Promisable } from '@xylabs/sdk-js';
2
+ import { AccountInstance } from '@xyo-network/account-model';
3
+ import { ArchivistInstance } from '@xyo-network/archivist-model';
4
+ import { BlockRewardDiviner } from '@xyo-network/chain-modules';
5
+ import { WithHashMeta } from '@xyo-network/payload-model';
6
+ import { BlockBoundWitness, ChainId, ChainStakeIntent, SignedBlockBoundWitnessWithHashMeta, SignedHydratedBlockWithHashMeta, Transfer } from '@xyo-network/xl1-protocol';
7
+ import { AccountBalanceViewer, BlockRewardViewer, BlockRunner, Config, HydratedBlockStateValidationFunction, MempoolRunner, MempoolViewer, TimeSyncViewer } from '@xyo-network/xl1-protocol-sdk';
8
+ import z from 'zod';
9
+ /**
10
+ * The default block size for a block
11
+ */
12
+ export declare const DEFAULT_BLOCK_SIZE = 10;
13
+ /**
14
+ * The amount of time for which a producer will restake their intent
15
+ */
16
+ export declare const XYO_PRODUCER_REDECLARATION_DURATION = 10000;
17
+ /**
18
+ * The number of blocks within which a producer will redeclare
19
+ * their intent to produce blocks
20
+ */
21
+ export declare const XYO_PRODUCER_REDECLARATION_WINDOW = 500;
22
+ export declare const SimpleBlockRunnerParamsZod: z.ZodObject<{
23
+ balanceViewer: z.ZodObject<{}, z.z.core.$loose>;
24
+ blockRewardViewer: z.ZodObject<{}, z.z.core.$loose>;
25
+ chainId: z.ZodString;
26
+ config: z.ZodObject<{}, z.z.core.$loose>;
27
+ mempoolViewer: z.ZodObject<{}, z.z.core.$loose>;
28
+ mempoolRunner: z.ZodObject<{}, z.z.core.$loose>;
29
+ rejectedTransactionsArchivist: z.ZodOptional<z.ZodObject<{}, z.z.core.$loose>>;
30
+ rewardAddress: z.ZodPipe<z.ZodString, z.ZodTransform<Address, string>>;
31
+ time: z.ZodObject<{}, z.z.core.$loose>;
32
+ validateHydratedBlockState: z.ZodOptional<z.ZodFunction<z.z.core.$ZodFunctionArgs, z.z.core.$ZodFunctionOut>>;
33
+ }, z.z.core.$strip>;
34
+ export type SimpleBlockRunnerParams = CreatableParams & {
35
+ account: AccountInstance;
36
+ balanceViewer: AccountBalanceViewer;
37
+ blockRewardViewer: BlockRewardViewer;
38
+ chainId: ChainId;
39
+ config: Config;
40
+ mempoolRunner: MempoolRunner;
41
+ mempoolViewer: MempoolViewer;
42
+ rejectedTransactionsArchivist?: ArchivistInstance;
43
+ rewardAddress: Address;
44
+ time: TimeSyncViewer;
45
+ validateHydratedBlockState?: HydratedBlockStateValidationFunction;
46
+ };
47
+ export declare class SimpleBlockRunner extends AbstractCreatable<SimpleBlockRunnerParams> implements BlockRunner {
48
+ protected _blockRewardDiviner: BlockRewardDiviner | undefined;
49
+ protected _lastRedeclarationBlock: number | undefined;
50
+ protected _rejectedTransactionsArchivist: ArchivistInstance | undefined;
51
+ /**
52
+ * The default block size for a block
53
+ */
54
+ static get DefaultBlockSize(): number;
55
+ /**
56
+ * The amount of time for which the producer will redeclare
57
+ * their intent to continue producing blocks
58
+ */
59
+ static get RedeclarationDuration(): number;
60
+ /**
61
+ * The number of blocks within which the producer will redeclare
62
+ * their intent to continue producing blocks
63
+ */
64
+ static get RedeclarationWindow(): number;
65
+ get address(): Address;
66
+ protected get account(): AccountInstance;
67
+ protected get balanceViewer(): AccountBalanceViewer;
68
+ protected get blockRewardViewer(): BlockRewardViewer;
69
+ protected get chainId(): Hex;
70
+ protected get mempoolRunner(): MempoolRunner;
71
+ protected get mempoolViewer(): MempoolViewer;
72
+ protected get rejectedTransactionsArchivist(): ArchivistInstance<import("@xyo-network/archivist-model").ArchivistParams<import("@xyo-network/module-model").AnyConfigSchema<import("@xyo-network/archivist-model").ArchivistConfig>>, import("@xyo-network/archivist-model").ArchivistModuleEventData, import("@xyo-network/payload-model").Payload>;
73
+ protected get rewardAddress(): Address;
74
+ protected get time(): TimeSyncViewer;
75
+ static paramsHandler(params?: Partial<SimpleBlockRunnerParams> | undefined): Promise<SimpleBlockRunnerParams>;
76
+ next(head: WithHashMeta<BlockBoundWitness>): Promise<SignedHydratedBlockWithHashMeta | undefined>;
77
+ produceNextBlock(head: SignedBlockBoundWitnessWithHashMeta, force: true): Promise<SignedHydratedBlockWithHashMeta>;
78
+ produceNextBlock(head: SignedBlockBoundWitnessWithHashMeta, force?: false): Promise<SignedHydratedBlockWithHashMeta | undefined>;
79
+ protected getBlockRewardTransfers(block: number): Promise<Transfer[]>;
80
+ /**
81
+ * Handles the producer redeclaration logic
82
+ * @param head The current head block
83
+ * @returns chain stake intent for the producer redeclaration, or undefined if no redeclaration is needed
84
+ */
85
+ protected getProducerRedeclaration(head: WithHashMeta<BlockBoundWitness>): Promisable<ChainStakeIntent | undefined>;
86
+ protected proposeNextValidBlock(head: WithHashMeta<BlockBoundWitness>, validateBalances?: boolean, force?: boolean): Promise<[{
87
+ schema: "network.xyo.boundwitness";
88
+ addresses: Address[];
89
+ payload_hashes: import("@xylabs/sdk-js").Hash[];
90
+ payload_schemas: string[];
91
+ previous_hashes: (import("@xylabs/sdk-js").Hash | null)[];
92
+ $signatures: Hex[];
93
+ block: import("@xyo-network/xl1-protocol").XL1BlockNumber;
94
+ chain: Hex;
95
+ previous: import("@xylabs/sdk-js").Hash | null;
96
+ $epoch: number;
97
+ _hash: import("@xylabs/sdk-js").Hash;
98
+ _dataHash: import("@xylabs/sdk-js").Hash;
99
+ $destination?: Address | undefined;
100
+ $sourceQuery?: import("@xylabs/sdk-js").Hash | undefined;
101
+ protocol?: number | undefined;
102
+ step_hashes?: import("@xylabs/sdk-js").Hash[] | undefined;
103
+ }, {
104
+ schema: string;
105
+ _hash: import("@xylabs/sdk-js").Hash;
106
+ _dataHash: import("@xylabs/sdk-js").Hash;
107
+ }[]] | undefined>;
108
+ private filterByFunded;
109
+ private generateTimePayload;
110
+ /**
111
+ * Check if a heartbeat block is required based on network activity.
112
+ * @param head The current head block
113
+ * @returns True if a heartbeat is required, false otherwise
114
+ */
115
+ private heartbeatRequired;
116
+ }
117
+ //# sourceMappingURL=SimpleBlockRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleBlockRunner.d.ts","sourceRoot":"","sources":["../../../../../src/simple/block/runner/SimpleBlockRunner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateTransactionFeeTransfers.d.ts","sourceRoot":"","sources":["../../../../../src/simple/block/runner/generateTransactionFeeTransfers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAiB,MAAM,gBAAgB,CAAA;AAG5D,OAAO,KAAK,EACV,yBAAyB,EACzB,QAAQ,EAET,MAAM,2BAA2B,CAAA;AAKlC,wBAAsB,+BAA+B,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CA0CtI"}
@@ -0,0 +1,2 @@
1
+ export * from './SimpleBlockRunner.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/simple/block/runner/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA"}
@@ -0,0 +1,2 @@
1
+ import '@xylabs/vitest-extended';
2
+ //# sourceMappingURL=SimpleBlockRewardViewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleBlockRewardViewer.d.ts","sourceRoot":"","sources":["../../../../../../src/simple/block/runner/spec/SimpleBlockRewardViewer.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './block/index.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/simple/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,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.17.0",
4
+ "version": "1.17.2",
5
5
  "description": "XYO Layer One SDK Services",
6
6
  "homepage": "https://xylabs.com",
7
7
  "bugs": {
@@ -40,44 +40,47 @@
40
40
  ],
41
41
  "dependencies": {
42
42
  "@opentelemetry/api": "~1.9.0",
43
- "@xylabs/sdk-js": "~5.0.46",
44
- "@xylabs/telemetry": "~5.0.46",
45
- "@xyo-network/account-model": "~5.2.10",
46
- "@xyo-network/archivist-memory": "~5.2.10",
47
- "@xyo-network/archivist-model": "~5.2.10",
48
- "@xyo-network/boundwitness-model": "~5.2.10",
49
- "@xyo-network/boundwitness-validator": "~5.2.10",
50
- "@xyo-network/boundwitness-wrapper": "~5.2.10",
51
- "@xyo-network/chain-analyze": "~1.17.0",
52
- "@xyo-network/chain-modules": "~1.17.0",
53
- "@xyo-network/chain-protocol": "~1.17.0",
54
- "@xyo-network/chain-utils": "~1.17.0",
55
- "@xyo-network/payload-builder": "~5.2.10",
56
- "@xyo-network/payload-model": "~5.2.10",
57
- "@xyo-network/typechain": "~4.0.10",
58
- "@xyo-network/xl1-protocol": "~1.14.15",
59
- "@xyo-network/xl1-protocol-sdk": "~1.17.0",
60
- "@xyo-network/xl1-validation": "~1.17.0",
61
- "@xyo-network/xl1-wrappers": "~1.17.0",
43
+ "@xylabs/sdk-js": "~5.0.50",
44
+ "@xylabs/telemetry": "~5.0.50",
45
+ "@xyo-network/account-model": "~5.2.17",
46
+ "@xyo-network/archivist-memory": "~5.2.17",
47
+ "@xyo-network/archivist-model": "~5.2.17",
48
+ "@xyo-network/boundwitness-model": "~5.2.17",
49
+ "@xyo-network/boundwitness-validator": "~5.2.17",
50
+ "@xyo-network/boundwitness-wrapper": "~5.2.17",
51
+ "@xyo-network/chain-analyze": "~1.17.2",
52
+ "@xyo-network/chain-modules": "~1.17.2",
53
+ "@xyo-network/chain-protocol": "~1.17.2",
54
+ "@xyo-network/chain-utils": "~1.17.2",
55
+ "@xyo-network/payload-builder": "~5.2.17",
56
+ "@xyo-network/payload-model": "~5.2.17",
57
+ "@xyo-network/typechain": "~4.0.11",
58
+ "@xyo-network/xl1-protocol": "~1.14.16",
59
+ "@xyo-network/xl1-protocol-sdk": "~1.17.2",
60
+ "@xyo-network/xl1-rpc": "~1.17.2",
61
+ "@xyo-network/xl1-validation": "~1.17.2",
62
+ "@xyo-network/xl1-wrappers": "~1.17.2",
62
63
  "async-mutex": "~0.5.0",
63
- "ethers": "6.15.0",
64
- "lru-cache": "~11.2.2",
64
+ "ethers": "^6.16.0",
65
+ "lru-cache": "~11.2.4",
65
66
  "zod": "~4.1.13"
66
67
  },
67
68
  "devDependencies": {
68
69
  "@types/node": "~24.10.1",
69
- "@xylabs/sdk-js": "~5.0.46",
70
+ "@xylabs/sdk-js": "~5.0.50",
70
71
  "@xylabs/ts-scripts-yarn3": "~7.2.8",
71
72
  "@xylabs/tsconfig": "~7.2.8",
72
- "@xylabs/vitest-extended": "~5.0.46",
73
- "@xyo-network/account": "~5.2.10",
74
- "@xyo-network/account-model": "~5.2.10",
75
- "@xyo-network/chain-validation": "~1.17.0",
76
- "@xyo-network/wallet": "~5.2.10",
73
+ "@xylabs/vitest-extended": "~5.0.50",
74
+ "@xyo-network/account": "~5.2.17",
75
+ "@xyo-network/account-model": "~5.2.17",
76
+ "@xyo-network/chain-validation": "~1.17.2",
77
+ "@xyo-network/wallet": "~5.2.17",
78
+ "@xyo-network/wallet-model": "~5.2.17",
79
+ "cosmiconfig": "^9.0.0",
77
80
  "eslint": "^9.39.1",
78
81
  "tslib": "~2.8.1",
79
82
  "typescript": "~5.9.3",
80
- "vitest": "~4.0.14",
83
+ "vitest": "~4.0.15",
81
84
  "vitest-mock-extended": "~3.1.0",
82
85
  "web3-types": "~1.10.0"
83
86
  },
@@ -4,16 +4,18 @@ import type { ReadArchivist } from '@xyo-network/archivist-model'
4
4
  import type { Payload, WithStorageMeta } from '@xyo-network/payload-model'
5
5
  import type { ChainId } from '@xyo-network/xl1-protocol'
6
6
  import { StepSizes } from '@xyo-network/xl1-protocol'
7
- import type { AccountBalanceViewer, BalancesStepSummary } from '@xyo-network/xl1-protocol-sdk'
7
+ import type {
8
+ AccountBalanceViewer, BalancesStepSummary, SimpleAccountBalanceViewerParams, SimpleBlockViewerParams, TransfersStepSummary,
9
+ } from '@xyo-network/xl1-protocol-sdk'
8
10
  import {
9
11
  findMostRecentBlock, LruCacheMap, readPayloadMapFromStore,
12
+ SimpleAccountBalanceViewer,
13
+ SimpleBlockViewer,
10
14
  } from '@xyo-network/xl1-protocol-sdk'
11
15
  import { Semaphore } from 'async-mutex'
12
16
 
13
- import { BaseAccountBalanceService } from './BaseAccountBalanceService.ts'
14
-
15
17
  // this is intended to only be used for testing
16
- export const accountBalancesServiceFromArchivist = async (
18
+ export const accountBalancesViewerFromArchivist = async (
17
19
  chainId: ChainId,
18
20
  archivist: ReadArchivist<WithStorageMeta<Payload>>,
19
21
  ): Promise<AccountBalanceViewer> => {
@@ -23,12 +25,21 @@ export const accountBalancesServiceFromArchivist = async (
23
25
  noDisposeOnSet: false,
24
26
  updateAgeOnGet: true,
25
27
  })
28
+
29
+ const transferSummaryMap = new LruCacheMap<string, TransfersStepSummary>({
30
+ max: 100_000,
31
+ allowStale: true,
32
+ noDisposeOnSet: false,
33
+ updateAgeOnGet: true,
34
+ })
35
+
26
36
  const chainMap = readPayloadMapFromStore<WithStorageMeta<Payload>>(archivist)
27
37
  const headFunc = async (): Promise<[Hash, number]> => {
28
- const head = await findMostRecentBlock(archivist)
29
- return [assertEx(head?._hash, () => 'No head found in chainArchivist'), assertEx(head?.block, () => 'No head found in chainArchivist')]
38
+ const head = assertEx(await findMostRecentBlock(archivist), () => 'No blocks found in chainArchivist')
39
+ return [head._hash, head.block]
30
40
  }
31
- const service = await BaseAccountBalanceService.create({
41
+
42
+ const service = await SimpleAccountBalanceViewer.create({
32
43
  context: {
33
44
  chainId,
34
45
  store: { chainMap },
@@ -36,6 +47,22 @@ export const accountBalancesServiceFromArchivist = async (
36
47
  summaryMap,
37
48
  head: headFunc,
38
49
  },
39
- })
50
+ transfersSummaryContext: {
51
+ chainId,
52
+ store: { chainMap },
53
+ stepSemaphores: StepSizes.map(() => new Semaphore(20)),
54
+ summaryMap: transferSummaryMap,
55
+ head: headFunc,
56
+
57
+ },
58
+ blockViewer: await SimpleBlockViewer.create({
59
+ context: {
60
+ chainId,
61
+ head: headFunc,
62
+ store: { chainMap },
63
+ },
64
+ finalizedArchivist: archivist,
65
+ } satisfies SimpleBlockViewerParams),
66
+ } satisfies SimpleAccountBalanceViewerParams)
40
67
  return service
41
68
  }
@@ -1,2 +1 @@
1
1
  export * from './accountBalanceServiceFromArchivist.ts'
2
- export * from './BaseAccountBalanceService.ts'
@@ -1,6 +1,5 @@
1
1
  import type { EventData, Promisable } from '@xylabs/sdk-js'
2
2
  import { AbstractCreatable, creatable } from '@xylabs/sdk-js'
3
- import { spanRoot, spanRootAsync } from '@xylabs/telemetry'
4
3
  import { Mutex } from 'async-mutex'
5
4
 
6
5
  import type { BaseAccountableServiceParams, BaseServiceParams } from './model/index.ts'
@@ -24,18 +23,6 @@ export class BaseService<TParams extends BaseServiceParams = BaseServiceParams,
24
23
  return await this.create(params) as TService
25
24
  })
26
25
  }
27
-
28
- paramsHandler(params?: Partial<TParams>): TParams {
29
- return params as TParams
30
- }
31
-
32
- span<T>(name: string, fn: () => T): T {
33
- return spanRoot(name, fn, this.tracer)
34
- }
35
-
36
- async spanAsync<T>(name: string, fn: () => Promise<T>): Promise<T> {
37
- return await spanRootAsync(name, fn, this.tracer)
38
- }
39
26
  }
40
27
 
41
28
  export abstract class BaseAccountableService<
@@ -0,0 +1,50 @@
1
+ import {
2
+ AbstractCreatable,
3
+ assertEx, creatable, CreatableParams, toEthAddress,
4
+ } from '@xylabs/sdk-js'
5
+ import { XyoChainRewards__factory as XyoChainRewardsFactory } from '@xyo-network/typechain'
6
+ import {
7
+ asAttoXL1, AttoXL1, XL1BlockNumber,
8
+ } from '@xyo-network/xl1-protocol'
9
+ import {
10
+ BlockRewardViewer,
11
+ ChainContractViewer,
12
+ } from '@xyo-network/xl1-protocol-sdk'
13
+ import { Provider } from 'ethers/providers'
14
+
15
+ export interface EvmBlockRewardViewerParams extends CreatableParams {
16
+ chainContractViewer: ChainContractViewer
17
+ provider: Provider
18
+ }
19
+
20
+ @creatable()
21
+ export class EvmBlockRewardViewer extends AbstractCreatable<EvmBlockRewardViewerParams> implements BlockRewardViewer {
22
+ protected _contractAddress: string | undefined
23
+
24
+ protected get chainContractViewer() {
25
+ return assertEx(this.params.chainContractViewer, () => 'chainContractViewer is required')
26
+ }
27
+
28
+ protected get contractAddress() {
29
+ return assertEx(this._contractAddress, () => 'contractAddress is required')
30
+ }
31
+
32
+ protected get provider() {
33
+ return assertEx(this.params.provider, () => 'provider is required')
34
+ }
35
+
36
+ async allowedRewardForBlock(blockNumber: XL1BlockNumber): Promise<AttoXL1> {
37
+ const contract = XyoChainRewardsFactory.connect(toEthAddress(this.contractAddress), this.provider)
38
+ return asAttoXL1(await contract.calcBlockReward(blockNumber))
39
+ }
40
+
41
+ override async createHandler() {
42
+ await super.createHandler()
43
+ try {
44
+ this._contractAddress = await this.chainContractViewer.rewardsContract()
45
+ } catch (ex) {
46
+ const error = ex as Error
47
+ throw new Error(`Failed to get rewards contract address: ${error.message}`)
48
+ }
49
+ }
50
+ }
@@ -1,3 +1 @@
1
- export * from './BaseBlockRewardService.ts'
2
- export * from './EvmBlockRewardService.ts'
3
- export * from './MemoryBlockRewardService.ts'
1
+ export * from './EvmBlockRewardViewer.ts'
@@ -1,10 +1,14 @@
1
- import type { Hash, Hex } from '@xylabs/sdk-js'
1
+ import type {
2
+ Hash, Hex, Promisable,
3
+ } from '@xylabs/sdk-js'
2
4
  import {
3
5
  assertEx,
4
6
  isDefined, isNull, isUndefined,
5
7
  } from '@xylabs/sdk-js'
6
8
  import { PayloadBuilder } from '@xyo-network/payload-builder'
7
- import type { Payload, WithStorageMeta } from '@xyo-network/payload-model'
9
+ import type {
10
+ Payload, WithHashMeta, WithStorageMeta,
11
+ } from '@xyo-network/payload-model'
8
12
  import type {
9
13
  BlockBoundWitness, SignedHydratedBlockWithHashMeta, XL1BlockNumber,
10
14
  } from '@xyo-network/xl1-protocol'
@@ -124,6 +128,14 @@ export class ChainBlockNumberIterationService extends BaseService<XyoChainIterat
124
128
  return await this.get(nextBlockNumber)
125
129
  }
126
130
 
131
+ payloadByHash(_hash: Hash): Promisable<WithHashMeta<Payload> | null> {
132
+ throw new Error('Method [payloadByHash] not implemented.')
133
+ }
134
+
135
+ payloadsByHash(_hashes: Hash[]): Promisable<WithHashMeta<Payload>[]> {
136
+ throw new Error('Method [payloadsByHash] not implemented.')
137
+ }
138
+
127
139
  // TODO: Decide on inclusive/exclusive (probably need inclusive to account for chain head)
128
140
  // and then communicate via method name and documentation
129
141
  async previous(block: number | undefined = undefined, count: number = 1): Promise<WithStorageMeta<BlockBoundWitness>[]> {
@@ -6,6 +6,7 @@ import {
6
6
  } from '@xylabs/sdk-js'
7
7
  import type { StakedXyoChain } from '@xyo-network/typechain'
8
8
  import { StakedXyoChain__factory as StakedXyoChainFactory } from '@xyo-network/typechain'
9
+ import type { AttoXL1, XL1BlockNumber } from '@xyo-network/xl1-protocol'
9
10
  import type { ChainService } from '@xyo-network/xl1-protocol-sdk'
10
11
  import { getAddress } from 'ethers/address'
11
12
  import type { ContractRunner } from 'ethers/providers'
@@ -23,10 +24,6 @@ export interface EvmChainServiceParams extends BaseServiceParams {
23
24
  * A class that represents a chain stake as backed by an EVM smart contract
24
25
  */
25
26
  export class EvmChainService extends BaseService<EvmChainServiceParams> implements ChainService {
26
- get runner(): ContractRunner {
27
- return assertEx(this.params.runner)
28
- }
29
-
30
27
  async active(): Promise<bigint> {
31
28
  return await (await this.contract()).active()
32
29
  }
@@ -89,6 +86,10 @@ export class EvmChainService extends BaseService<EvmChainServiceParams> implemen
89
86
  return true
90
87
  }
91
88
 
89
+ rewardForBlock(_block: XL1BlockNumber): Promisable<AttoXL1> {
90
+ throw new Error('Method not implemented.')
91
+ }
92
+
92
93
  async rewardsContract(): Promise<string> {
93
94
  return await (await this.contract()).rewardsContract()
94
95
  }
@@ -4,6 +4,7 @@ import type {
4
4
  import {
5
5
  assertEx, toAddress, ZERO_ADDRESS,
6
6
  } from '@xylabs/sdk-js'
7
+ import type { AttoXL1, XL1BlockNumber } from '@xyo-network/xl1-protocol'
7
8
  import type { ChainService, Config } from '@xyo-network/xl1-protocol-sdk'
8
9
 
9
10
  import { BaseService } from '../../BaseService.ts'
@@ -73,6 +74,10 @@ export class MemoryChainService extends BaseService<MemoryChainServiceParams> im
73
74
  return await Promise.resolve(true)
74
75
  }
75
76
 
77
+ rewardForBlock(_block: XL1BlockNumber): Promisable<AttoXL1> {
78
+ throw new Error('Method not implemented.')
79
+ }
80
+
76
81
  async rewardsContract(): Promise<string> {
77
82
  return await Promise.resolve('')
78
83
  }
@@ -2,61 +2,56 @@ import {
2
2
  assertEx, creatable, EmptyObject,
3
3
  Promisable,
4
4
  } from '@xylabs/sdk-js'
5
- import { AccountInstance } from '@xyo-network/account-model'
6
- import { ArchivistInstance } from '@xyo-network/archivist-model'
7
5
  import {
8
6
  BlockBoundWitness,
9
- ChainId,
10
7
  SignedHydratedTransactionWithStorageMeta,
11
8
  } from '@xyo-network/xl1-protocol'
12
- import {
13
- BlockRewardService, BlockViewer, ElectionService, HydratedBlockStateValidationFunction, StakeIntentService,
14
- } from '@xyo-network/xl1-protocol-sdk'
9
+ import { BlockViewer, HydratedBlockStateValidationFunction } from '@xyo-network/xl1-protocol-sdk'
15
10
 
16
11
  import { BaseService } from '../BaseService.ts'
17
12
  import { BaseServiceParams } from '../model/index.ts'
18
13
  import { Validator } from './model/index.ts'
19
14
 
20
15
  export interface XyoValidatorParams<TConfig extends EmptyObject = EmptyObject> extends BaseServiceParams<TConfig> {
21
- account: AccountInstance
16
+ // account: AccountInstance
17
+ // blockRewardService: BlockRewardService
22
18
  blockViewer: BlockViewer
23
- chainId: ChainId
24
- electionService: ElectionService
25
- pendingBundledTransactionsArchivist: ArchivistInstance
26
- rewardService: BlockRewardService
27
- stakeIntentService: StakeIntentService
19
+ // chainId: ChainId
20
+ // electionService: ElectionService
21
+ // pendingBundledTransactionsArchivist: ArchivistInstance
22
+ // stakeIntentService: StakeIntentService
28
23
  validateHydratedBlockState: HydratedBlockStateValidationFunction
29
24
  }
30
25
 
31
26
  @creatable()
32
27
  export class XyoValidator<TParams extends XyoValidatorParams = XyoValidatorParams> extends BaseService<TParams> implements Validator {
33
- get address() {
34
- return this.account.address
35
- }
28
+ // get address() {
29
+ // return this.account.address
30
+ // }
36
31
 
37
- protected get account() {
38
- return assertEx(this.params.account, () => 'account is required')
39
- }
32
+ // protected get account() {
33
+ // return assertEx(this.params.account, () => 'account is required')
34
+ // }
40
35
 
41
36
  protected get blockViewer() {
42
37
  return assertEx(this.params.blockViewer, () => 'blockViewer is required')
43
38
  }
44
39
 
45
- protected get chainInfo() {
46
- return assertEx(this.params.chainId, () => 'chainInfo is required')
47
- }
40
+ // protected get chainInfo() {
41
+ // return assertEx(this.params.chainId, () => 'chainInfo is required')
42
+ // }
48
43
 
49
- protected get electionService() {
50
- return assertEx(this.params.electionService, () => 'electionService is required')
51
- }
44
+ // protected get electionService() {
45
+ // return assertEx(this.params.electionService, () => 'electionService is required')
46
+ // }
52
47
 
53
- protected get pendingBundledTransactionsArchivist() {
54
- return assertEx(this.params.pendingBundledTransactionsArchivist, () => 'pendingBundledTransactions is required')
55
- }
48
+ // protected get pendingBundledTransactionsArchivist() {
49
+ // return assertEx(this.params.pendingBundledTransactionsArchivist, () => 'pendingBundledTransactions is required')
50
+ // }
56
51
 
57
- protected get rewardService() {
58
- return assertEx(this.params.rewardService, () => 'rewardService is required')
59
- }
52
+ // protected get blockRewardService() {
53
+ // return assertEx(this.params.blockRewardService, () => 'blockRewardService is required')
54
+ // }
60
55
 
61
56
  validatePendingBlock(_block: BlockBoundWitness): Promisable<Error[]> {
62
57
  return [] // await validateBlockProtocol(block, this.chainInfo)