@xyo-network/xl1-protocol-sdk 1.26.11 → 1.26.13

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 (316) hide show
  1. package/package.json +29 -16
  2. package/src/ChainContextHelpers.ts +0 -50
  3. package/src/CreatableProvider/AbstractCreatableProvider.ts +0 -97
  4. package/src/CreatableProvider/CreatableProvider.ts +0 -102
  5. package/src/CreatableProvider/CreatableProviderRegistry.ts +0 -94
  6. package/src/CreatableProvider/GetInstanceOptions.ts +0 -11
  7. package/src/CreatableProvider/LabeledCreatableProviderFactory.ts +0 -24
  8. package/src/CreatableProvider/ProviderFactory.ts +0 -138
  9. package/src/CreatableProvider/ProviderFactoryLocator.ts +0 -170
  10. package/src/CreatableProvider/ProviderFactoryLocatorInstance.ts +0 -70
  11. package/src/CreatableProvider/index.ts +0 -8
  12. package/src/SignedBigInt.ts +0 -59
  13. package/src/_internal/context/getTestProviderContext.ts +0 -13
  14. package/src/_internal/context/index.ts +0 -1
  15. package/src/_internal/index.ts +0 -2
  16. package/src/actor/ActorV3.ts +0 -177
  17. package/src/actor/index.ts +0 -1
  18. package/src/amount/ShiftedBigInt.ts +0 -73
  19. package/src/amount/XL1Amount.ts +0 -103
  20. package/src/amount/index.ts +0 -4
  21. package/src/amount/splitOnDecimal.ts +0 -6
  22. package/src/amount/splitOnDecimalToString.ts +0 -40
  23. package/src/block/hydrate/allHashesPresent.ts +0 -8
  24. package/src/block/hydrate/blockPayloadsFromHydratedBlock.ts +0 -12
  25. package/src/block/hydrate/flattenHydratedBlock.ts +0 -28
  26. package/src/block/hydrate/flattenHydratedBlocks.ts +0 -7
  27. package/src/block/hydrate/hydrateBlock.ts +0 -43
  28. package/src/block/hydrate/index.ts +0 -7
  29. package/src/block/hydrate/transactionsFromHydratedBlock.ts +0 -7
  30. package/src/block/hydrate/tryHydrateBlock.ts +0 -26
  31. package/src/block/index.ts +0 -2
  32. package/src/block/primitives/blockFromBlockNumber.ts +0 -69
  33. package/src/block/primitives/frames/calculateFramesFromRange.ts +0 -30
  34. package/src/block/primitives/frames/deepCalculateFramesFromRange.ts +0 -28
  35. package/src/block/primitives/frames/index.ts +0 -2
  36. package/src/block/primitives/hashFromBlockNumber.ts +0 -9
  37. package/src/block/primitives/index.ts +0 -7
  38. package/src/block/primitives/model.ts +0 -18
  39. package/src/block/primitives/payloads/ChainWindow.ts +0 -7
  40. package/src/block/primitives/payloads/index.ts +0 -1
  41. package/src/block/primitives/toStepIdentityString.ts +0 -6
  42. package/src/block/primitives/validateTransactionOpcodes.ts +0 -45
  43. package/src/config/Actor.ts +0 -32
  44. package/src/config/Actors.ts +0 -9
  45. package/src/config/Base.ts +0 -27
  46. package/src/config/Chain.ts +0 -23
  47. package/src/config/Config.ts +0 -24
  48. package/src/config/DataLake/DataLake.ts +0 -12
  49. package/src/config/DataLake/DataLakeRemoteConfig.ts +0 -11
  50. package/src/config/DataLake/RestDataLakeConfig.ts +0 -18
  51. package/src/config/DataLake/RouterDataLakeConfig.ts +0 -22
  52. package/src/config/DataLake/index.ts +0 -4
  53. package/src/config/DeepPartial.ts +0 -4
  54. package/src/config/Evm.ts +0 -38
  55. package/src/config/HostActor.ts +0 -32
  56. package/src/config/Log.ts +0 -25
  57. package/src/config/Provider.ts +0 -20
  58. package/src/config/Providers.ts +0 -9
  59. package/src/config/Remote.ts +0 -59
  60. package/src/config/Telemetry.ts +0 -49
  61. package/src/config/UsageMeta.ts +0 -46
  62. package/src/config/Validation.ts +0 -29
  63. package/src/config/index.ts +0 -12
  64. package/src/config/storage/Storage.ts +0 -16
  65. package/src/config/storage/driver/Mongo.ts +0 -53
  66. package/src/config/storage/driver/index.ts +0 -1
  67. package/src/config/storage/index.ts +0 -2
  68. package/src/constants.ts +0 -4
  69. package/src/context/Actor.ts +0 -20
  70. package/src/context/HostActor.ts +0 -20
  71. package/src/context/getEmptyProviderContext.ts +0 -19
  72. package/src/context/index.ts +0 -3
  73. package/src/createDeclarationPayload.ts +0 -15
  74. package/src/createTransferPayload.ts +0 -16
  75. package/src/driver/cache/LruCacheMap.ts +0 -48
  76. package/src/driver/cache/index.ts +0 -1
  77. package/src/driver/index.ts +0 -2
  78. package/src/driver/memory/MemoryMap.ts +0 -48
  79. package/src/driver/memory/index.ts +0 -1
  80. package/src/eip-712/Payloads/EIP712Data.ts +0 -35
  81. package/src/eip-712/Payloads/EIP712Signature.ts +0 -32
  82. package/src/eip-712/Payloads/index.ts +0 -2
  83. package/src/eip-712/Types.ts +0 -41
  84. package/src/eip-712/index.ts +0 -4
  85. package/src/eip-712/sign.ts +0 -19
  86. package/src/eip-712/spec/fixtures.ts +0 -27
  87. package/src/eip-712/verify.ts +0 -20
  88. package/src/getFileConfig.ts +0 -36
  89. package/src/index.ts +0 -27
  90. package/src/instances/Address.ts +0 -16
  91. package/src/instances/BoundWitness.ts +0 -13
  92. package/src/instances/Data.ts +0 -4
  93. package/src/instances/Fees.ts +0 -9
  94. package/src/instances/HydratedBoundWitness.ts +0 -16
  95. package/src/instances/Object.ts +0 -6
  96. package/src/instances/Payload.ts +0 -7
  97. package/src/instances/Signature.ts +0 -12
  98. package/src/instances/block/BlockFields.ts +0 -18
  99. package/src/instances/block/HydratedBlock.ts +0 -10
  100. package/src/instances/block/index.ts +0 -1
  101. package/src/instances/index.ts +0 -10
  102. package/src/instances/modifiers/BlockWindowInstance.ts +0 -8
  103. package/src/instances/modifiers/BlockWindowState.ts +0 -6
  104. package/src/instances/modifiers/Signed.ts +0 -9
  105. package/src/instances/modifiers/Validatable.ts +0 -6
  106. package/src/instances/modifiers/index.ts +0 -4
  107. package/src/instances/transaction/HydratedTransaction.ts +0 -9
  108. package/src/instances/transaction/TransactionFields.ts +0 -22
  109. package/src/instances/transaction/index.ts +0 -1
  110. package/src/isInternetAvailable.ts +0 -11
  111. package/src/model/ChainFork/ChainForkStatic.ts +0 -9
  112. package/src/model/ChainFork/index.ts +0 -1
  113. package/src/model/ChainIdentity.ts +0 -6
  114. package/src/model/ChainStore.ts +0 -16
  115. package/src/model/CreatableProviderContext.ts +0 -6
  116. package/src/model/CreatableProviderContext.zod.ts +0 -55
  117. package/src/model/PayloadBundle/bundledPayloadToHydratedBlock.ts +0 -15
  118. package/src/model/PayloadBundle/bundledPayloadToHydratedTransaction.ts +0 -15
  119. package/src/model/PayloadBundle/hydratedBlockToPayloadBundle.ts +0 -19
  120. package/src/model/PayloadBundle/hydratedTransactionToPayloadBundle.ts +0 -19
  121. package/src/model/PayloadBundle/index.ts +0 -4
  122. package/src/model/index.ts +0 -6
  123. package/src/multipliers.ts +0 -18
  124. package/src/payloads/AddressPairPayload.ts +0 -27
  125. package/src/payloads/index.ts +0 -4
  126. package/src/payloads/netBalancesForPayloads.ts +0 -24
  127. package/src/payloads/netSchemasForPayloads.ts +0 -24
  128. package/src/payloads/netTransfersForPayloads.ts +0 -27
  129. package/src/primitives/block/index.ts +0 -2
  130. package/src/primitives/block/range/blockRangeSteps.ts +0 -23
  131. package/src/primitives/block/range/index.ts +0 -1
  132. package/src/primitives/block/rate/blockRate.ts +0 -77
  133. package/src/primitives/block/rate/index.ts +0 -4
  134. package/src/primitives/block/rate/stepRate.ts +0 -37
  135. package/src/primitives/block/rate/timeHelpers.ts +0 -61
  136. package/src/primitives/block/rate/timeRate.ts +0 -121
  137. package/src/primitives/chain/getWindowedChain.ts +0 -50
  138. package/src/primitives/chain/index.ts +0 -3
  139. package/src/primitives/chain/step/chainStepRewardAddress.ts +0 -30
  140. package/src/primitives/chain/step/index.ts +0 -4
  141. package/src/primitives/chain/step/stepRewardBlock.ts +0 -13
  142. package/src/primitives/chain/step/stepRewardTotal.ts +0 -46
  143. package/src/primitives/chain/step/stepsRewardTotal.ts +0 -37
  144. package/src/primitives/chain/time/externalBlockNumberFromXL1BlockNumber.ts +0 -32
  145. package/src/primitives/chain/time/externalBlockRangeFromStep.ts +0 -21
  146. package/src/primitives/chain/time/externalBlockRangeFromXL1BlockRange.ts +0 -17
  147. package/src/primitives/chain/time/index.ts +0 -3
  148. package/src/primitives/datalake/addDataLakePayloads.ts +0 -18
  149. package/src/primitives/datalake/addDataLakePayloadsToPayloads.ts +0 -24
  150. package/src/primitives/datalake/index.ts +0 -2
  151. package/src/primitives/index.ts +0 -13
  152. package/src/primitives/mapToMapType.ts +0 -35
  153. package/src/primitives/payload/index.ts +0 -1
  154. package/src/primitives/payload/mergeTransfers.ts +0 -16
  155. package/src/primitives/readPayloadMapFromStore.ts +0 -58
  156. package/src/primitives/rewardFromBlockNumber.ts +0 -19
  157. package/src/primitives/rewards/index.ts +0 -1
  158. package/src/primitives/rewards/networkStakeStepRewardPositionWeight.ts +0 -26
  159. package/src/primitives/stake/activeStakeAtTimeByAddress.ts +0 -27
  160. package/src/primitives/stake/activeStakeAtTimeByPosition.ts +0 -25
  161. package/src/primitives/stake/allStakersForRange.ts +0 -32
  162. package/src/primitives/stake/allStakersForStep.ts +0 -24
  163. package/src/primitives/stake/index.ts +0 -6
  164. package/src/primitives/stake/mergedAddRemoveStakeEventsByPosition.ts +0 -15
  165. package/src/primitives/stake/mergedAddRemoveStakeEventsByStaker.ts +0 -17
  166. package/src/primitives/stake/weightedStakeForRangeByPosition.ts +0 -69
  167. package/src/primitives/state/findMostRecentBlock.ts +0 -44
  168. package/src/primitives/state/hydratedBlockByNumber.ts +0 -25
  169. package/src/primitives/state/index.ts +0 -2
  170. package/src/primitives/step/completedStepRewardAddress.ts +0 -10
  171. package/src/primitives/step/derivedReceiveAddress.ts +0 -9
  172. package/src/primitives/step/index.ts +0 -4
  173. package/src/primitives/step/stepBlockRange.ts +0 -9
  174. package/src/primitives/step/stepTransferIndex.ts +0 -19
  175. package/src/primitives/transaction/elevatedPayloads.ts +0 -24
  176. package/src/primitives/transaction/index.ts +0 -1
  177. package/src/primitives/uncle/findBestUncle.ts +0 -9
  178. package/src/primitives/uncle/findUncles.ts +0 -75
  179. package/src/primitives/uncle/index.ts +0 -3
  180. package/src/primitives/uncle/scoreUncle.ts +0 -7
  181. package/src/services/AccountTransfersService.ts +0 -13
  182. package/src/services/BlockProducerService.ts +0 -11
  183. package/src/services/Chain/BaseChainService.ts +0 -4
  184. package/src/services/Chain/ChainHeadService.ts +0 -8
  185. package/src/services/Chain/ChainService.ts +0 -6
  186. package/src/services/Chain/index.ts +0 -3
  187. package/src/services/Election.ts +0 -14
  188. package/src/services/NetworkStakeService.ts +0 -4
  189. package/src/services/Params.ts +0 -13
  190. package/src/services/PendingTransactionsService.ts +0 -7
  191. package/src/services/SchemasService.ts +0 -11
  192. package/src/services/StakeIntentService/ChainIndexingServiceStateSchema.ts +0 -50
  193. package/src/services/StakeIntentService/StakeIntentService.ts +0 -35
  194. package/src/services/StakeIntentService/index.ts +0 -2
  195. package/src/services/index.ts +0 -8
  196. package/src/simple/StakeEventsViewer/SimpleStakeEventsViewer.ts +0 -93
  197. package/src/simple/StakeEventsViewer/index.ts +0 -1
  198. package/src/simple/StakeTotalsViewer/SimpleStakeTotalsViewer.ts +0 -116
  199. package/src/simple/StakeTotalsViewer/index.ts +0 -1
  200. package/src/simple/StakeViewer/SimpleStakeViewer.ts +0 -164
  201. package/src/simple/StakeViewer/index.ts +0 -1
  202. package/src/simple/TransactionViewer/SimpleTransactionViewer.ts +0 -100
  203. package/src/simple/TransactionViewer/index.ts +0 -1
  204. package/src/simple/accountBalance/SimpleAccountBalanceViewer.ts +0 -271
  205. package/src/simple/accountBalance/index.ts +0 -1
  206. package/src/simple/block/SimpleBlockViewer.ts +0 -231
  207. package/src/simple/block/index.ts +0 -1
  208. package/src/simple/blockInvalidation/SimpleBlockInvalidationViewer.ts +0 -197
  209. package/src/simple/blockInvalidation/index.ts +0 -1
  210. package/src/simple/blockReward/SimpleBlockRewardViewer.ts +0 -27
  211. package/src/simple/blockReward/index.ts +0 -1
  212. package/src/simple/blockValidation/SimpleBlockValidationViewer.ts +0 -194
  213. package/src/simple/blockValidation/index.ts +0 -1
  214. package/src/simple/chainContractViewer/SimpleChainContractViewer.ts +0 -92
  215. package/src/simple/chainContractViewer/index.ts +0 -1
  216. package/src/simple/client/SimpleXyoClient.ts +0 -14
  217. package/src/simple/client/index.ts +0 -1
  218. package/src/simple/datalake/AbstractRestDataLake.ts +0 -70
  219. package/src/simple/datalake/AbstractSimpleDataLake.ts +0 -62
  220. package/src/simple/datalake/RestDataLakeRunner.ts +0 -54
  221. package/src/simple/datalake/RestDataLakeViewer.ts +0 -22
  222. package/src/simple/datalake/SimpleDataLakeRunner.ts +0 -44
  223. package/src/simple/datalake/SimpleDataLakeViewer.ts +0 -24
  224. package/src/simple/datalake/index.ts +0 -4
  225. package/src/simple/finalization/SimpleFinalizationRunner.ts +0 -45
  226. package/src/simple/finalization/SimpleFinalizationViewer.ts +0 -123
  227. package/src/simple/finalization/index.ts +0 -2
  228. package/src/simple/gateway/SimpleXyoGateway.ts +0 -30
  229. package/src/simple/gateway/SimpleXyoGatewayRunner.ts +0 -137
  230. package/src/simple/gateway/index.ts +0 -2
  231. package/src/simple/index.ts +0 -22
  232. package/src/simple/mempool/SimpleMempoolRunner.ts +0 -390
  233. package/src/simple/mempool/SimpleMempoolViewer.ts +0 -215
  234. package/src/simple/mempool/index.ts +0 -2
  235. package/src/simple/network/SimpleXyoNetwork.ts +0 -48
  236. package/src/simple/network/index.ts +0 -1
  237. package/src/simple/network/lib/FailedNetworkStatusPayloads.ts +0 -16
  238. package/src/simple/network/lib/StatusNetworks.ts +0 -32
  239. package/src/simple/network/lib/index.ts +0 -2
  240. package/src/simple/permissions/SimpleXyoPermissions.ts +0 -82
  241. package/src/simple/permissions/index.ts +0 -2
  242. package/src/simple/permissions/store/MemoryPermissions.ts +0 -32
  243. package/src/simple/permissions/store/PermissionsStore.ts +0 -17
  244. package/src/simple/permissions/store/index.ts +0 -2
  245. package/src/simple/runner/SimpleXyoRunner.ts +0 -41
  246. package/src/simple/runner/index.ts +0 -1
  247. package/src/simple/signer/SimpleXyoSigner.ts +0 -78
  248. package/src/simple/signer/index.ts +0 -1
  249. package/src/simple/timeSync2/SimpleTimeSyncViewer.ts +0 -132
  250. package/src/simple/timeSync2/index.ts +0 -1
  251. package/src/simple/transactionInvalidation/SimpleTransactionInvalidationViewer.ts +0 -197
  252. package/src/simple/transactionInvalidation/index.ts +0 -1
  253. package/src/simple/transactionValidation/SimpleTransactionValidationViewer.ts +0 -173
  254. package/src/simple/transactionValidation/index.ts +0 -1
  255. package/src/simple/windowedBlock/SimpleWindowedBlockViewer.ts +0 -207
  256. package/src/simple/windowedBlock/index.ts +0 -1
  257. package/src/status/RuntimeStatusMonitor.ts +0 -120
  258. package/src/status/ServiceStatus.ts +0 -21
  259. package/src/status/index.ts +0 -2
  260. package/src/summary/index.ts +0 -2
  261. package/src/summary/model/BalancesStepSummary.ts +0 -35
  262. package/src/summary/model/SchemasStepSummary.ts +0 -33
  263. package/src/summary/model/StepSummary.ts +0 -20
  264. package/src/summary/model/TransfersSummary.ts +0 -36
  265. package/src/summary/model/index.ts +0 -4
  266. package/src/summary/primitives/balances/balancesStepSummaryFromRange.ts +0 -94
  267. package/src/summary/primitives/balances/balancesSummary.ts +0 -48
  268. package/src/summary/primitives/balances/index.ts +0 -2
  269. package/src/summary/primitives/index.ts +0 -3
  270. package/src/summary/primitives/schemas/index.ts +0 -2
  271. package/src/summary/primitives/schemas/schemasStepSummaryFromRange.ts +0 -86
  272. package/src/summary/primitives/schemas/schemasSummary.ts +0 -44
  273. package/src/summary/primitives/transfers/index.ts +0 -2
  274. package/src/summary/primitives/transfers/transfersStepSummaryFromRange.ts +0 -109
  275. package/src/summary/primitives/transfers/transfersSummary.ts +0 -52
  276. package/src/test/BuildBlockOptions.ts +0 -81
  277. package/src/test/buildBlock.ts +0 -105
  278. package/src/test/buildGenesisBlock.ts +0 -29
  279. package/src/test/buildNextBlock.ts +0 -37
  280. package/src/test/buildRandomChain.ts +0 -92
  281. package/src/test/buildRandomGenesisBlock.ts +0 -47
  282. package/src/test/createGenesisBlock.ts +0 -41
  283. package/src/test/createProducerChainStakeIntentTransaction.ts +0 -48
  284. package/src/test/getSimpleBlockViewerLocator.ts +0 -41
  285. package/src/test/getTestProviderContext.ts +0 -8
  286. package/src/test/index.ts +0 -2
  287. package/src/time/index.ts +0 -1
  288. package/src/time/primitives/index.ts +0 -1
  289. package/src/time/primitives/xl1BlockNumberToEthBlockNumber.ts +0 -13
  290. package/src/transaction/TransactionBuilder.ts +0 -164
  291. package/src/transaction/buildRandomTransaction.ts +0 -38
  292. package/src/transaction/buildTransaction.ts +0 -68
  293. package/src/transaction/buildUnsignedTransaction.ts +0 -56
  294. package/src/transaction/confirmSubmittedTransaction.ts +0 -42
  295. package/src/transaction/hydrateTransaction.ts +0 -117
  296. package/src/transaction/index.ts +0 -9
  297. package/src/transaction/primitives/index.ts +0 -4
  298. package/src/transaction/primitives/transactionBlockByteCount.ts +0 -10
  299. package/src/transaction/primitives/transactionElevatedPayloads.ts +0 -18
  300. package/src/transaction/primitives/transactionOperations.ts +0 -13
  301. package/src/transaction/primitives/transactionRequiredGas.ts +0 -22
  302. package/src/transaction/script.ts +0 -48
  303. package/src/transaction/signTransaction.ts +0 -32
  304. package/src/utils/HydratedCache.ts +0 -39
  305. package/src/utils/index.ts +0 -2
  306. package/src/utils/isZodError.ts +0 -11
  307. package/src/validation/index.ts +0 -2
  308. package/src/validation/lib/getUrl.ts +0 -7
  309. package/src/validation/lib/index.ts +0 -2
  310. package/src/validation/lib/isLocalhost.ts +0 -9
  311. package/src/validation/schema/Address.ts +0 -2
  312. package/src/validation/schema/Mnemonic.ts +0 -21
  313. package/src/validation/schema/index.ts +0 -2
  314. package/src/wallet/generateXyoBaseWalletFromPhrase.ts +0 -13
  315. package/src/wallet/index.ts +0 -2
  316. package/src/wallet/paths.ts +0 -17
@@ -1,92 +0,0 @@
1
- import {
2
- type Address, assertEx,
3
- type Hash,
4
- } from '@xylabs/sdk-js'
5
- import {
6
- ChainContractViewer, ChainContractViewerMoniker, ChainId, FinalizationViewer, FinalizationViewerMoniker, XL1BlockNumber,
7
- } from '@xyo-network/xl1-protocol-lib'
8
-
9
- import { withContextCacheResponse } from '../../ChainContextHelpers.ts'
10
- import {
11
- AbstractCreatableProvider, creatableProvider, CreatableProviderParams,
12
- } from '../../CreatableProvider/index.ts'
13
-
14
- /** Parameters for SimpleChainContractViewer. */
15
- export interface SimpleChainContractViewerParams extends CreatableProviderParams {
16
- forkedAtBlockNumber?: XL1BlockNumber
17
- forkedAtHash?: Hash
18
- forkedChainContractViewer?: ChainContractViewer
19
- forkedChainId?: ChainId
20
- minWithdrawalBlocks: number
21
- rewardsContract: Address
22
- stakingTokenAddress: Address
23
- }
24
-
25
- /**
26
- * A class that represents a chain stake as backed by an EVM smart contract
27
- */
28
- @creatableProvider()
29
- export class SimpleChainContractViewer extends AbstractCreatableProvider<SimpleChainContractViewerParams> implements ChainContractViewer {
30
- static readonly defaultMoniker = ChainContractViewerMoniker
31
- static readonly dependencies = [FinalizationViewerMoniker]
32
- static readonly monikers = [ChainContractViewerMoniker]
33
- override moniker = SimpleChainContractViewer.defaultMoniker
34
-
35
- protected _finalizationViewer!: FinalizationViewer
36
-
37
- protected get finalizationViewer() {
38
- return this._finalizationViewer
39
- }
40
-
41
- chainId() {
42
- return this.finalizationViewer.chainId()
43
- }
44
-
45
- async chainIdAtBlockNumber(blockNumber: XL1BlockNumber) {
46
- return await withContextCacheResponse(this.context, 'chainIdAtBlockNumber', `${blockNumber}`, async () => {
47
- let chainId = this.chainId()
48
- // eslint-disable-next-line unicorn/no-this-assignment, @typescript-eslint/no-this-alias
49
- let contractViewer: ChainContractViewer = this
50
- let forkedAtBlockNumber = await contractViewer.forkedAtBlockNumber()
51
- while (forkedAtBlockNumber !== null && blockNumber <= forkedAtBlockNumber) {
52
- contractViewer = assertEx(await contractViewer.forkedChainContractViewer())
53
- forkedAtBlockNumber = await contractViewer.forkedAtBlockNumber()
54
- chainId = await contractViewer.chainId()
55
- }
56
- return chainId
57
- })
58
- }
59
-
60
- override async createHandler() {
61
- this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker)
62
- return await super.createHandler()
63
- }
64
-
65
- forkedAtBlockNumber() {
66
- return this.params.forkedAtBlockNumber ?? null
67
- }
68
-
69
- forkedAtHash() {
70
- return this.params.forkedAtHash ?? null
71
- }
72
-
73
- forkedChainContractViewer() {
74
- return this.params.forkedChainContractViewer ?? null
75
- }
76
-
77
- forkedChainId() {
78
- return this.params.forkedChainId ?? null
79
- }
80
-
81
- minWithdrawalBlocks() {
82
- return this.params.minWithdrawalBlocks
83
- }
84
-
85
- rewardsContract() {
86
- return this.params.rewardsContract
87
- }
88
-
89
- stakingTokenAddress() {
90
- return this.params.stakingTokenAddress
91
- }
92
- }
@@ -1 +0,0 @@
1
- export * from './SimpleChainContractViewer.ts'
@@ -1,14 +0,0 @@
1
- import type {
2
- XyoClient, XyoGatewayRunner, XyoPermissions,
3
- } from '@xyo-network/xl1-protocol-lib'
4
-
5
- /** SimpleXyoClient implementation. */
6
- export class SimpleXyoClient implements XyoClient {
7
- gateways: Readonly<Partial<Record<string, XyoGatewayRunner>>>
8
- permissions: XyoPermissions
9
-
10
- constructor(gateways: Readonly<Partial<Record<string, XyoGatewayRunner>>>, permissions: XyoPermissions) {
11
- this.gateways = gateways
12
- this.permissions = permissions
13
- }
14
- }
@@ -1 +0,0 @@
1
- export * from './SimpleXyoClient.ts'
@@ -1,70 +0,0 @@
1
- import { axiosJsonConfig } from '@xylabs/sdk-js'
2
- import {
3
- exists, type Hash, type PromisableArray,
4
- } from '@xylabs/sdk-js'
5
- import type {
6
- NextOptions, Schema, Sequence,
7
- } from '@xyo-network/sdk-js'
8
- import { asAnyPayload, isAnyPayload } from '@xyo-network/sdk-js'
9
- import type { DataLakeData, DataLakeViewer } from '@xyo-network/xl1-protocol-lib'
10
- import { Axios } from 'axios'
11
-
12
- import { AbstractCreatableProvider, type CreatableProviderParams } from '../../CreatableProvider/index.ts'
13
-
14
- /** Parameters for AbstractRestDataLake. */
15
- export interface AbstractRestDataLakeParams extends
16
- CreatableProviderParams {
17
-
18
- allowedSchemas?: Schema[]
19
- disallowedSchemas?: Schema[]
20
- endpoint: string
21
- }
22
-
23
- /** Abstract base class for RestDataLake implementations. */
24
- export abstract class AbstractRestDataLake<TParams extends AbstractRestDataLakeParams = AbstractRestDataLakeParams> extends
25
- AbstractCreatableProvider<TParams> implements Omit<DataLakeViewer, 'moniker'> {
26
- get allowedSchemas(): Schema[] | undefined {
27
- return this.params.allowedSchemas
28
- }
29
-
30
- get axios() {
31
- return new Axios(axiosJsonConfig())
32
- }
33
-
34
- get disallowedSchemas(): Schema[] | undefined {
35
- return this.params.disallowedSchemas
36
- }
37
-
38
- get endpoint() {
39
- return this.params.endpoint
40
- }
41
-
42
- async get(hashes: Hash[]): Promise<DataLakeData[]> {
43
- return (await Promise.all(hashes.map(hash => this.getOne(hash)))).filter(exists)
44
- }
45
-
46
- next(_options?: NextOptions<Sequence> | undefined): PromisableArray<DataLakeData> {
47
- throw new Error('Method not implemented.')
48
- }
49
-
50
- protected async getOne(hash: Hash): Promise<DataLakeData | undefined> {
51
- return asAnyPayload((await this.axios.get(`${this.params.endpoint}/get/${hash}`)).data)
52
- }
53
-
54
- protected isAllowed(value: DataLakeData | undefined): boolean {
55
- if (isAnyPayload(value)) {
56
- return this.isAllowedSchema(value.schema)
57
- }
58
- return false
59
- }
60
-
61
- protected isAllowedSchema(schema: Schema): boolean {
62
- if (this.allowedSchemas && !this.allowedSchemas.includes(schema)) {
63
- return false
64
- }
65
- if (this.disallowedSchemas && this.disallowedSchemas.includes(schema)) {
66
- return false
67
- }
68
- return true
69
- }
70
- }
@@ -1,62 +0,0 @@
1
- import type { Hash, PromisableArray } from '@xylabs/sdk-js'
2
- import type {
3
- NextOptions, Schema, Sequence,
4
- } from '@xyo-network/sdk-js'
5
- import { isAnyPayload } from '@xyo-network/sdk-js'
6
- import type {
7
- DataLakeData, DataLakeViewer, MapTypeRead,
8
- } from '@xyo-network/xl1-protocol-lib'
9
-
10
- import { AbstractCreatableProvider, type CreatableProviderParams } from '../../CreatableProvider/index.ts'
11
-
12
- /** Parameters for AbstractSimpleDataLake. */
13
- export interface AbstractSimpleDataLakeParams<TMap extends
14
- MapTypeRead<Hash, DataLakeData> = MapTypeRead<Hash, DataLakeData>> extends
15
- CreatableProviderParams {
16
-
17
- allowedSchemas?: Schema[]
18
- disallowedSchemas?: Schema[]
19
- map: TMap
20
- }
21
-
22
- /** Abstract base class for SimpleDataLake implementations. */
23
- export abstract class AbstractSimpleDataLake<TParams extends AbstractSimpleDataLakeParams = AbstractSimpleDataLakeParams> extends
24
- AbstractCreatableProvider<TParams> implements Omit<DataLakeViewer, 'moniker'> {
25
- get allowedSchemas(): Schema[] | undefined {
26
- return this.params.allowedSchemas
27
- }
28
-
29
- get disallowedSchemas(): Schema[] | undefined {
30
- return this.params.disallowedSchemas
31
- }
32
-
33
- protected get map(): TParams['map'] {
34
- return this.params.map
35
- }
36
-
37
- async get(hashes: Hash[]): Promise<DataLakeData[]> {
38
- const result = await this.map.getMany(hashes)
39
- return result.filter(data => this.isAllowed(data))
40
- }
41
-
42
- next(_options?: NextOptions<Sequence> | undefined): PromisableArray<DataLakeData> {
43
- throw new Error('Method not implemented.')
44
- }
45
-
46
- protected isAllowed(value: DataLakeData | undefined): boolean {
47
- if (isAnyPayload(value)) {
48
- return this.isAllowedSchema(value.schema)
49
- }
50
- return true
51
- }
52
-
53
- protected isAllowedSchema(schema: Schema): boolean {
54
- if (this.allowedSchemas && !this.allowedSchemas.includes(schema)) {
55
- return false
56
- }
57
- if (this.disallowedSchemas && this.disallowedSchemas.includes(schema)) {
58
- return false
59
- }
60
- return true
61
- }
62
- }
@@ -1,54 +0,0 @@
1
- import {
2
- assertEx, BrandedHash, exists, type Hash,
3
- Promisable,
4
- PromisableArray,
5
- } from '@xylabs/sdk-js'
6
- import { isAnyPayload, PayloadZodLoose } from '@xyo-network/sdk-js'
7
- import {
8
- DataLakeData,
9
- DataLakeRunner,
10
- DataLakeRunnerMoniker,
11
- } from '@xyo-network/xl1-protocol-lib'
12
- import { AxiosResponse } from 'axios'
13
- import z from 'zod'
14
-
15
- import { creatableProvider } from '../../CreatableProvider/index.ts'
16
- import { AbstractRestDataLake } from './AbstractRestDataLake.ts'
17
- import { RestDataLakeViewerParams } from './RestDataLakeViewer.ts'
18
-
19
- /** Parameters for RestDataLakeRunner. */
20
- export interface RestDataLakeRunnerParams extends RestDataLakeViewerParams {}
21
-
22
- /** RestDataLakeRunner implementation. */
23
- @creatableProvider()
24
- export class RestDataLakeRunner<TParams extends RestDataLakeRunnerParams> extends
25
- AbstractRestDataLake<TParams> implements DataLakeRunner {
26
- static readonly defaultMoniker = DataLakeRunnerMoniker
27
- static readonly dependencies = []
28
- static readonly monikers = [DataLakeRunnerMoniker]
29
- moniker = RestDataLakeRunner.defaultMoniker
30
-
31
- clear(): Promisable<void> {
32
- throw new Error('Method not implemented.')
33
- }
34
-
35
- delete(_hashes: BrandedHash[]): PromisableArray<DataLakeData> {
36
- throw new Error('Method not implemented.')
37
- }
38
-
39
- async insert(items: DataLakeData[]): Promise<DataLakeData[]> {
40
- const allowedItems = items.map((item) => {
41
- if (isAnyPayload(item) && this.isAllowed(item)) {
42
- assertEx(typeof item === 'object' && item !== null, () => 'Data must be an object')
43
- return item
44
- }
45
- return null
46
- }).filter(exists)
47
- if (allowedItems.length > 0) {
48
- const result = await this.axios.post<DataLakeData[], AxiosResponse<Hash[]>>(`${this.params.endpoint}/insert`, allowedItems)
49
- return z.array(PayloadZodLoose).parse(result.data)
50
- } else {
51
- return []
52
- }
53
- }
54
- }
@@ -1,22 +0,0 @@
1
- import {
2
- DataLakeViewer,
3
- DataLakeViewerMoniker,
4
- } from '@xyo-network/xl1-protocol-lib'
5
-
6
- import { creatableProvider } from '../../CreatableProvider/index.ts'
7
- import { AbstractRestDataLake, AbstractRestDataLakeParams } from './AbstractRestDataLake.ts'
8
-
9
- /** Parameters for RestDataLakeViewer. */
10
- export interface RestDataLakeViewerParams extends
11
- AbstractRestDataLakeParams {
12
- }
13
-
14
- /** RestDataLakeViewer implementation. */
15
- @creatableProvider()
16
- export class RestDataLakeViewer<TParams extends RestDataLakeViewerParams = RestDataLakeViewerParams>
17
- extends AbstractRestDataLake<TParams> implements DataLakeViewer {
18
- static readonly defaultMoniker = DataLakeViewerMoniker
19
- static readonly dependencies = []
20
- static readonly monikers = [DataLakeViewerMoniker]
21
- moniker = RestDataLakeViewer.defaultMoniker
22
- }
@@ -1,44 +0,0 @@
1
- import { exists, type Hash } from '@xylabs/sdk-js'
2
- import { isAnyPayload, PayloadBuilder } from '@xyo-network/sdk-js'
3
- import {
4
- DataLakeData,
5
- DataLakeRunner,
6
- DataLakeRunnerMoniker, MapType,
7
- } from '@xyo-network/xl1-protocol-lib'
8
-
9
- import { creatableProvider } from '../../CreatableProvider/index.ts'
10
- import { AbstractSimpleDataLake } from './AbstractSimpleDataLake.ts'
11
- import { SimpleDataLakeViewerParams } from './SimpleDataLakeViewer.ts'
12
-
13
- /** Parameters for SimpleDataLakeRunner. */
14
- export interface SimpleDataLakeRunnerParams extends SimpleDataLakeViewerParams<MapType<Hash, DataLakeData>> {}
15
-
16
- /** SimpleDataLakeRunner implementation. */
17
- @creatableProvider()
18
- export class SimpleDataLakeRunner<TParams extends SimpleDataLakeRunnerParams> extends
19
- AbstractSimpleDataLake<TParams> implements DataLakeRunner {
20
- static readonly defaultMoniker = DataLakeRunnerMoniker
21
- static readonly dependencies = []
22
- static readonly monikers = [DataLakeRunnerMoniker]
23
- moniker = SimpleDataLakeRunner.defaultMoniker
24
-
25
- async clear(): Promise<void> {
26
- await this.map.clear()
27
- }
28
-
29
- async delete(hashes: Hash[]) {
30
- return (await Promise.all(hashes.map(async (hash) => {
31
- const payload = await this.map.get(hash)
32
- return (await this.map.delete(hash)) ? payload : undefined
33
- }))).filter(exists)
34
- }
35
-
36
- async insert(items: DataLakeData[]) {
37
- const payloads = items.filter(isAnyPayload).filter(i => this.isAllowed(i))
38
- const hashPairs = await PayloadBuilder.hashPairs(payloads)
39
- for (const [payload, hash] of hashPairs) {
40
- await this.map.set(hash, payload)
41
- }
42
- return hashPairs.map(([payload]) => payload)
43
- }
44
- }
@@ -1,24 +0,0 @@
1
- import type { Hash } from '@xylabs/sdk-js'
2
- import {
3
- DataLakeData,
4
- DataLakeViewer,
5
- DataLakeViewerMoniker, MapTypeRead,
6
- } from '@xyo-network/xl1-protocol-lib'
7
-
8
- import { creatableProvider } from '../../CreatableProvider/index.ts'
9
- import { AbstractSimpleDataLake, AbstractSimpleDataLakeParams } from './AbstractSimpleDataLake.ts'
10
-
11
- /** Parameters for SimpleDataLakeViewer. */
12
- export interface SimpleDataLakeViewerParams<TMap extends MapTypeRead<Hash, DataLakeData> = MapTypeRead<Hash, DataLakeData>> extends
13
- AbstractSimpleDataLakeParams<TMap> {
14
- }
15
-
16
- /** SimpleDataLakeViewer implementation. */
17
- @creatableProvider()
18
- export class SimpleDataLakeViewer<TParams extends SimpleDataLakeViewerParams = SimpleDataLakeViewerParams>
19
- extends AbstractSimpleDataLake<TParams> implements DataLakeViewer {
20
- static readonly defaultMoniker = DataLakeViewerMoniker
21
- static readonly dependencies = []
22
- static readonly monikers = [DataLakeViewerMoniker]
23
- moniker = SimpleDataLakeViewer.defaultMoniker
24
- }
@@ -1,4 +0,0 @@
1
- export * from './RestDataLakeRunner.ts'
2
- export * from './RestDataLakeViewer.ts'
3
- export * from './SimpleDataLakeRunner.ts'
4
- export * from './SimpleDataLakeViewer.ts'
@@ -1,45 +0,0 @@
1
- import { type Hash } from '@xylabs/sdk-js'
2
- import type { ArchivistInstance } from '@xyo-network/sdk-js'
3
- import { type SignedHydratedBlockWithHashMeta } from '@xyo-network/xl1-protocol-lib'
4
- import { FinalizationRunner, FinalizationRunnerMoniker } from '@xyo-network/xl1-protocol-lib'
5
-
6
- import {
7
- AbstractCreatableProvider, creatableProvider, CreatableProviderParams,
8
- } from '../../CreatableProvider/index.ts'
9
- import { ChainStoreWrite } from '../../model/index.ts'
10
-
11
- /** Parameters for SimpleFinalizationRunner. */
12
- export interface SimpleFinalizationRunnerParams extends CreatableProviderParams {
13
- finalizedArchivist: ArchivistInstance
14
- }
15
-
16
- /** SimpleFinalizationRunner implementation. */
17
- @creatableProvider()
18
- export class SimpleFinalizationRunner extends AbstractCreatableProvider<SimpleFinalizationRunnerParams> implements FinalizationRunner {
19
- static readonly defaultMoniker = FinalizationRunnerMoniker
20
- static readonly dependencies = []
21
- static readonly monikers = [FinalizationRunnerMoniker]
22
- moniker = SimpleFinalizationRunner.defaultMoniker
23
-
24
- protected _store: ChainStoreWrite | undefined
25
-
26
- protected get store() {
27
- return this._store!
28
- }
29
-
30
- override async createHandler() {
31
- await super.createHandler()
32
- this._store = { chainMap: this.params.finalizedArchivist }
33
- }
34
-
35
- async finalizeBlock(block: SignedHydratedBlockWithHashMeta): Promise<Hash> {
36
- return (await this.finalizeBlocks([block]))[0]
37
- }
38
-
39
- async finalizeBlocks(blocks: SignedHydratedBlockWithHashMeta[]): Promise<Hash[]> {
40
- const sortedBlocks = blocks.toSorted((a, b) => a[0].block - b[0].block)
41
- const payloads = sortedBlocks.flatMap(block => [...block[1], block[0]])
42
- await this.store.chainMap.insert(payloads)
43
- return sortedBlocks.map(b => b[0]._hash)
44
- }
45
- }
@@ -1,123 +0,0 @@
1
- import {
2
- assertEx,
3
- Hash,
4
- } from '@xylabs/sdk-js'
5
- import type { ReadArchivist } from '@xyo-network/sdk-js'
6
- import {
7
- asSignedHydratedBlockWithStorageMeta, BlockContextRead, ChainContextRead, ChainContractViewerMoniker, ChainId, FinalizationViewer,
8
- FinalizationViewerMoniker, type SignedBlockBoundWitnessWithHashMeta, type SignedHydratedBlockWithHashMeta,
9
- SignedHydratedBlockWithStorageMeta,
10
- XL1BlockNumber,
11
- } from '@xyo-network/xl1-protocol-lib'
12
-
13
- import { hydrateBlock } from '../../block/index.ts'
14
- import {
15
- AbstractCreatableProvider, creatableProvider, CreatableProviderParams,
16
- } from '../../CreatableProvider/index.ts'
17
- import { ChainStoreRead } from '../../model/index.ts'
18
- import { findMostRecentBlock } from '../../primitives/index.ts'
19
- import { HydratedCache } from '../../utils/index.ts'
20
-
21
- /** Parameters for SimpleFinalizationViewer. */
22
- export interface SimpleFinalizationViewerParams extends CreatableProviderParams {
23
- finalizedArchivist: ReadArchivist
24
- }
25
-
26
- /** SimpleFinalizationViewer implementation. */
27
- @creatableProvider()
28
- export class SimpleFinalizationViewer extends AbstractCreatableProvider<SimpleFinalizationViewerParams> implements FinalizationViewer {
29
- static readonly defaultMoniker = FinalizationViewerMoniker
30
- static readonly dependencies = [ChainContractViewerMoniker]
31
- static readonly monikers = [FinalizationViewerMoniker]
32
- moniker = SimpleFinalizationViewer.defaultMoniker
33
-
34
- protected _chainId!: ChainId
35
- protected _store: ChainStoreRead | undefined
36
-
37
- private _signedHydratedBlockCache: HydratedCache<SignedHydratedBlockWithStorageMeta> | undefined
38
-
39
- protected get finalizedArchivist() {
40
- return this.params.finalizedArchivist
41
- }
42
-
43
- protected get hydratedBlockCache(): HydratedCache<SignedHydratedBlockWithStorageMeta> {
44
- if (this._signedHydratedBlockCache) return this._signedHydratedBlockCache
45
- const context = this.getBlockContextRead()
46
- this._signedHydratedBlockCache = new HydratedCache<SignedHydratedBlockWithStorageMeta>(context, async (
47
- store: ChainStoreRead,
48
- hash: Hash,
49
- maxDepth?: number,
50
- minDepth?: number,
51
- ) => {
52
- const result = await hydrateBlock(context, hash, maxDepth, minDepth)
53
- return asSignedHydratedBlockWithStorageMeta(result, true)
54
- }, 200)
55
- return this._signedHydratedBlockCache
56
- }
57
-
58
- protected get store() {
59
- return this._store!
60
- }
61
-
62
- static override async paramsHandler(params: Partial<SimpleFinalizationViewerParams>) {
63
- return {
64
- ...await super.paramsHandler(params),
65
- finalizedArchivist: assertEx(params.finalizedArchivist, () => 'finalizedArchivist is required'),
66
- } satisfies SimpleFinalizationViewerParams
67
- }
68
-
69
- chainId() {
70
- return this._chainId
71
- }
72
-
73
- override async createHandler() {
74
- await super.createHandler()
75
- this._chainId = assertEx(this.config.chain.id ?? (await findMostRecentBlock(this.params.finalizedArchivist))?.chain, () => 'chain.id is required if empty archivist')
76
- this._store = { chainMap: this.params.finalizedArchivist }
77
- }
78
-
79
- async head(): Promise<SignedHydratedBlockWithHashMeta> {
80
- return await this.spanAsync('head', async () => {
81
- const currentHead = assertEx(await this.getCurrentHead(), () => 'Could not find most recent block [currentBlock]')
82
- const cache = this.hydratedBlockCache
83
- const block = await cache.get(currentHead._hash)
84
- if (!block) {
85
- console.log(`Could not find current block with hash ${currentHead!._hash}`)
86
- }
87
- return assertEx(block, () => 'Could not find current block')
88
- }, this.context)
89
- }
90
-
91
- async headBlock(): Promise<SignedBlockBoundWitnessWithHashMeta> {
92
- return (await this.head())[0]
93
- }
94
-
95
- async headHash(): Promise<Hash> {
96
- return (await this.headBlock())._hash
97
- }
98
-
99
- async headNumber(): Promise<XL1BlockNumber> {
100
- return (await this.headBlock()).block
101
- }
102
-
103
- protected getBlockContextRead(): BlockContextRead {
104
- return {
105
- ...this.context,
106
- chainMap: this.store.chainMap,
107
- }
108
- }
109
-
110
- protected async getChainContextRead(): Promise<ChainContextRead> {
111
- return {
112
- ...this.getBlockContextRead(),
113
- head: (await this.head())[0],
114
- }
115
- }
116
-
117
- protected async getCurrentHead() {
118
- const chainArchivist = this.finalizedArchivist
119
- const result = assertEx(await findMostRecentBlock(chainArchivist), () => 'Could not find most recent block [getCurrentHead]')
120
- assertEx(result?.chain === this._chainId, () => 'Chain ID does not match head block chain ID')
121
- return result
122
- }
123
- }
@@ -1,2 +0,0 @@
1
- export * from './SimpleFinalizationRunner.ts'
2
- export * from './SimpleFinalizationViewer.ts'
@@ -1,30 +0,0 @@
1
- import type {
2
- XyoConnection,
3
- XyoGateway,
4
- } from '@xyo-network/xl1-protocol-lib'
5
- import { XyoConnectionMoniker, XyoGatewayMoniker } from '@xyo-network/xl1-protocol-lib'
6
-
7
- import type { CreatableProviderParams } from '../../CreatableProvider/index.ts'
8
- import { AbstractCreatableProvider } from '../../CreatableProvider/index.ts'
9
-
10
- /** Parameters for SimpleXyoGateway. */
11
- export interface SimpleXyoGatewayParams extends CreatableProviderParams {}
12
-
13
- /** SimpleXyoGateway implementation. */
14
- export class SimpleXyoGateway extends AbstractCreatableProvider<SimpleXyoGatewayParams> implements XyoGateway {
15
- static readonly defaultMoniker = XyoGatewayMoniker
16
- static readonly dependencies = [XyoConnectionMoniker]
17
- static readonly monikers = [XyoGatewayMoniker]
18
- moniker = SimpleXyoGateway.defaultMoniker
19
-
20
- private _connection!: XyoConnection
21
-
22
- get connection(): XyoConnection {
23
- return this._connection
24
- }
25
-
26
- override async createHandler() {
27
- await super.createHandler()
28
- this._connection = await this.locator.getInstance<XyoConnection>(XyoConnectionMoniker)
29
- }
30
- }