@xyo-network/xl1-protocol-sdk 1.26.12 → 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 (323) hide show
  1. package/dist/neutral/simple/accountBalance/SimpleAccountBalanceViewer.d.ts +2 -2
  2. package/dist/neutral/simple/block/SimpleBlockViewer.d.ts +2 -2
  3. package/dist/neutral/simple/datalake/SimpleDataLakeRunner.d.ts +1 -1
  4. package/dist/neutral/simple/finalization/SimpleFinalizationViewer.d.ts +1 -1
  5. package/dist/neutral/simple/windowedBlock/SimpleWindowedBlockViewer.d.ts +10 -10
  6. package/dist/neutral/transaction/TransactionBuilder.d.ts +4 -4
  7. package/dist/neutral/transaction/signTransaction.d.ts +1 -1
  8. package/package.json +24 -14
  9. package/src/ChainContextHelpers.ts +0 -50
  10. package/src/CreatableProvider/AbstractCreatableProvider.ts +0 -97
  11. package/src/CreatableProvider/CreatableProvider.ts +0 -102
  12. package/src/CreatableProvider/CreatableProviderRegistry.ts +0 -94
  13. package/src/CreatableProvider/GetInstanceOptions.ts +0 -11
  14. package/src/CreatableProvider/LabeledCreatableProviderFactory.ts +0 -24
  15. package/src/CreatableProvider/ProviderFactory.ts +0 -138
  16. package/src/CreatableProvider/ProviderFactoryLocator.ts +0 -170
  17. package/src/CreatableProvider/ProviderFactoryLocatorInstance.ts +0 -70
  18. package/src/CreatableProvider/index.ts +0 -8
  19. package/src/SignedBigInt.ts +0 -59
  20. package/src/_internal/context/getTestProviderContext.ts +0 -13
  21. package/src/_internal/context/index.ts +0 -1
  22. package/src/_internal/index.ts +0 -2
  23. package/src/actor/ActorV3.ts +0 -177
  24. package/src/actor/index.ts +0 -1
  25. package/src/amount/ShiftedBigInt.ts +0 -73
  26. package/src/amount/XL1Amount.ts +0 -103
  27. package/src/amount/index.ts +0 -4
  28. package/src/amount/splitOnDecimal.ts +0 -6
  29. package/src/amount/splitOnDecimalToString.ts +0 -40
  30. package/src/block/hydrate/allHashesPresent.ts +0 -8
  31. package/src/block/hydrate/blockPayloadsFromHydratedBlock.ts +0 -12
  32. package/src/block/hydrate/flattenHydratedBlock.ts +0 -28
  33. package/src/block/hydrate/flattenHydratedBlocks.ts +0 -7
  34. package/src/block/hydrate/hydrateBlock.ts +0 -43
  35. package/src/block/hydrate/index.ts +0 -7
  36. package/src/block/hydrate/transactionsFromHydratedBlock.ts +0 -7
  37. package/src/block/hydrate/tryHydrateBlock.ts +0 -26
  38. package/src/block/index.ts +0 -2
  39. package/src/block/primitives/blockFromBlockNumber.ts +0 -69
  40. package/src/block/primitives/frames/calculateFramesFromRange.ts +0 -30
  41. package/src/block/primitives/frames/deepCalculateFramesFromRange.ts +0 -28
  42. package/src/block/primitives/frames/index.ts +0 -2
  43. package/src/block/primitives/hashFromBlockNumber.ts +0 -9
  44. package/src/block/primitives/index.ts +0 -7
  45. package/src/block/primitives/model.ts +0 -18
  46. package/src/block/primitives/payloads/ChainWindow.ts +0 -7
  47. package/src/block/primitives/payloads/index.ts +0 -1
  48. package/src/block/primitives/toStepIdentityString.ts +0 -6
  49. package/src/block/primitives/validateTransactionOpcodes.ts +0 -45
  50. package/src/config/Actor.ts +0 -32
  51. package/src/config/Actors.ts +0 -9
  52. package/src/config/Base.ts +0 -27
  53. package/src/config/Chain.ts +0 -23
  54. package/src/config/Config.ts +0 -24
  55. package/src/config/DataLake/DataLake.ts +0 -12
  56. package/src/config/DataLake/DataLakeRemoteConfig.ts +0 -11
  57. package/src/config/DataLake/RestDataLakeConfig.ts +0 -18
  58. package/src/config/DataLake/RouterDataLakeConfig.ts +0 -22
  59. package/src/config/DataLake/index.ts +0 -4
  60. package/src/config/DeepPartial.ts +0 -4
  61. package/src/config/Evm.ts +0 -38
  62. package/src/config/HostActor.ts +0 -32
  63. package/src/config/Log.ts +0 -25
  64. package/src/config/Provider.ts +0 -20
  65. package/src/config/Providers.ts +0 -9
  66. package/src/config/Remote.ts +0 -59
  67. package/src/config/Telemetry.ts +0 -49
  68. package/src/config/UsageMeta.ts +0 -46
  69. package/src/config/Validation.ts +0 -29
  70. package/src/config/index.ts +0 -12
  71. package/src/config/storage/Storage.ts +0 -16
  72. package/src/config/storage/driver/Mongo.ts +0 -53
  73. package/src/config/storage/driver/index.ts +0 -1
  74. package/src/config/storage/index.ts +0 -2
  75. package/src/constants.ts +0 -4
  76. package/src/context/Actor.ts +0 -20
  77. package/src/context/HostActor.ts +0 -20
  78. package/src/context/getEmptyProviderContext.ts +0 -19
  79. package/src/context/index.ts +0 -3
  80. package/src/createDeclarationPayload.ts +0 -15
  81. package/src/createTransferPayload.ts +0 -16
  82. package/src/driver/cache/LruCacheMap.ts +0 -48
  83. package/src/driver/cache/index.ts +0 -1
  84. package/src/driver/index.ts +0 -2
  85. package/src/driver/memory/MemoryMap.ts +0 -48
  86. package/src/driver/memory/index.ts +0 -1
  87. package/src/eip-712/Payloads/EIP712Data.ts +0 -35
  88. package/src/eip-712/Payloads/EIP712Signature.ts +0 -32
  89. package/src/eip-712/Payloads/index.ts +0 -2
  90. package/src/eip-712/Types.ts +0 -41
  91. package/src/eip-712/index.ts +0 -4
  92. package/src/eip-712/sign.ts +0 -19
  93. package/src/eip-712/spec/fixtures.ts +0 -27
  94. package/src/eip-712/verify.ts +0 -20
  95. package/src/getFileConfig.ts +0 -36
  96. package/src/index.ts +0 -27
  97. package/src/instances/Address.ts +0 -16
  98. package/src/instances/BoundWitness.ts +0 -13
  99. package/src/instances/Data.ts +0 -4
  100. package/src/instances/Fees.ts +0 -9
  101. package/src/instances/HydratedBoundWitness.ts +0 -16
  102. package/src/instances/Object.ts +0 -6
  103. package/src/instances/Payload.ts +0 -7
  104. package/src/instances/Signature.ts +0 -12
  105. package/src/instances/block/BlockFields.ts +0 -18
  106. package/src/instances/block/HydratedBlock.ts +0 -10
  107. package/src/instances/block/index.ts +0 -1
  108. package/src/instances/index.ts +0 -10
  109. package/src/instances/modifiers/BlockWindowInstance.ts +0 -8
  110. package/src/instances/modifiers/BlockWindowState.ts +0 -6
  111. package/src/instances/modifiers/Signed.ts +0 -9
  112. package/src/instances/modifiers/Validatable.ts +0 -6
  113. package/src/instances/modifiers/index.ts +0 -4
  114. package/src/instances/transaction/HydratedTransaction.ts +0 -9
  115. package/src/instances/transaction/TransactionFields.ts +0 -22
  116. package/src/instances/transaction/index.ts +0 -1
  117. package/src/isInternetAvailable.ts +0 -11
  118. package/src/model/ChainFork/ChainForkStatic.ts +0 -9
  119. package/src/model/ChainFork/index.ts +0 -1
  120. package/src/model/ChainIdentity.ts +0 -6
  121. package/src/model/ChainStore.ts +0 -16
  122. package/src/model/CreatableProviderContext.ts +0 -6
  123. package/src/model/CreatableProviderContext.zod.ts +0 -55
  124. package/src/model/PayloadBundle/bundledPayloadToHydratedBlock.ts +0 -15
  125. package/src/model/PayloadBundle/bundledPayloadToHydratedTransaction.ts +0 -15
  126. package/src/model/PayloadBundle/hydratedBlockToPayloadBundle.ts +0 -19
  127. package/src/model/PayloadBundle/hydratedTransactionToPayloadBundle.ts +0 -19
  128. package/src/model/PayloadBundle/index.ts +0 -4
  129. package/src/model/index.ts +0 -6
  130. package/src/multipliers.ts +0 -18
  131. package/src/payloads/AddressPairPayload.ts +0 -27
  132. package/src/payloads/index.ts +0 -4
  133. package/src/payloads/netBalancesForPayloads.ts +0 -24
  134. package/src/payloads/netSchemasForPayloads.ts +0 -24
  135. package/src/payloads/netTransfersForPayloads.ts +0 -27
  136. package/src/primitives/block/index.ts +0 -2
  137. package/src/primitives/block/range/blockRangeSteps.ts +0 -23
  138. package/src/primitives/block/range/index.ts +0 -1
  139. package/src/primitives/block/rate/blockRate.ts +0 -77
  140. package/src/primitives/block/rate/index.ts +0 -4
  141. package/src/primitives/block/rate/stepRate.ts +0 -37
  142. package/src/primitives/block/rate/timeHelpers.ts +0 -61
  143. package/src/primitives/block/rate/timeRate.ts +0 -121
  144. package/src/primitives/chain/getWindowedChain.ts +0 -50
  145. package/src/primitives/chain/index.ts +0 -3
  146. package/src/primitives/chain/step/chainStepRewardAddress.ts +0 -30
  147. package/src/primitives/chain/step/index.ts +0 -4
  148. package/src/primitives/chain/step/stepRewardBlock.ts +0 -13
  149. package/src/primitives/chain/step/stepRewardTotal.ts +0 -46
  150. package/src/primitives/chain/step/stepsRewardTotal.ts +0 -37
  151. package/src/primitives/chain/time/externalBlockNumberFromXL1BlockNumber.ts +0 -32
  152. package/src/primitives/chain/time/externalBlockRangeFromStep.ts +0 -21
  153. package/src/primitives/chain/time/externalBlockRangeFromXL1BlockRange.ts +0 -17
  154. package/src/primitives/chain/time/index.ts +0 -3
  155. package/src/primitives/datalake/addDataLakePayloads.ts +0 -18
  156. package/src/primitives/datalake/addDataLakePayloadsToPayloads.ts +0 -24
  157. package/src/primitives/datalake/index.ts +0 -2
  158. package/src/primitives/index.ts +0 -13
  159. package/src/primitives/mapToMapType.ts +0 -35
  160. package/src/primitives/payload/index.ts +0 -1
  161. package/src/primitives/payload/mergeTransfers.ts +0 -16
  162. package/src/primitives/readPayloadMapFromStore.ts +0 -58
  163. package/src/primitives/rewardFromBlockNumber.ts +0 -19
  164. package/src/primitives/rewards/index.ts +0 -1
  165. package/src/primitives/rewards/networkStakeStepRewardPositionWeight.ts +0 -26
  166. package/src/primitives/stake/activeStakeAtTimeByAddress.ts +0 -27
  167. package/src/primitives/stake/activeStakeAtTimeByPosition.ts +0 -25
  168. package/src/primitives/stake/allStakersForRange.ts +0 -32
  169. package/src/primitives/stake/allStakersForStep.ts +0 -24
  170. package/src/primitives/stake/index.ts +0 -6
  171. package/src/primitives/stake/mergedAddRemoveStakeEventsByPosition.ts +0 -15
  172. package/src/primitives/stake/mergedAddRemoveStakeEventsByStaker.ts +0 -17
  173. package/src/primitives/stake/weightedStakeForRangeByPosition.ts +0 -69
  174. package/src/primitives/state/findMostRecentBlock.ts +0 -44
  175. package/src/primitives/state/hydratedBlockByNumber.ts +0 -25
  176. package/src/primitives/state/index.ts +0 -2
  177. package/src/primitives/step/completedStepRewardAddress.ts +0 -10
  178. package/src/primitives/step/derivedReceiveAddress.ts +0 -9
  179. package/src/primitives/step/index.ts +0 -4
  180. package/src/primitives/step/stepBlockRange.ts +0 -9
  181. package/src/primitives/step/stepTransferIndex.ts +0 -19
  182. package/src/primitives/transaction/elevatedPayloads.ts +0 -24
  183. package/src/primitives/transaction/index.ts +0 -1
  184. package/src/primitives/uncle/findBestUncle.ts +0 -9
  185. package/src/primitives/uncle/findUncles.ts +0 -75
  186. package/src/primitives/uncle/index.ts +0 -3
  187. package/src/primitives/uncle/scoreUncle.ts +0 -7
  188. package/src/services/AccountTransfersService.ts +0 -13
  189. package/src/services/BlockProducerService.ts +0 -11
  190. package/src/services/Chain/BaseChainService.ts +0 -4
  191. package/src/services/Chain/ChainHeadService.ts +0 -8
  192. package/src/services/Chain/ChainService.ts +0 -6
  193. package/src/services/Chain/index.ts +0 -3
  194. package/src/services/Election.ts +0 -14
  195. package/src/services/NetworkStakeService.ts +0 -4
  196. package/src/services/Params.ts +0 -13
  197. package/src/services/PendingTransactionsService.ts +0 -7
  198. package/src/services/SchemasService.ts +0 -11
  199. package/src/services/StakeIntentService/ChainIndexingServiceStateSchema.ts +0 -50
  200. package/src/services/StakeIntentService/StakeIntentService.ts +0 -35
  201. package/src/services/StakeIntentService/index.ts +0 -2
  202. package/src/services/index.ts +0 -8
  203. package/src/simple/StakeEventsViewer/SimpleStakeEventsViewer.ts +0 -93
  204. package/src/simple/StakeEventsViewer/index.ts +0 -1
  205. package/src/simple/StakeTotalsViewer/SimpleStakeTotalsViewer.ts +0 -116
  206. package/src/simple/StakeTotalsViewer/index.ts +0 -1
  207. package/src/simple/StakeViewer/SimpleStakeViewer.ts +0 -164
  208. package/src/simple/StakeViewer/index.ts +0 -1
  209. package/src/simple/TransactionViewer/SimpleTransactionViewer.ts +0 -100
  210. package/src/simple/TransactionViewer/index.ts +0 -1
  211. package/src/simple/accountBalance/SimpleAccountBalanceViewer.ts +0 -271
  212. package/src/simple/accountBalance/index.ts +0 -1
  213. package/src/simple/block/SimpleBlockViewer.ts +0 -231
  214. package/src/simple/block/index.ts +0 -1
  215. package/src/simple/blockInvalidation/SimpleBlockInvalidationViewer.ts +0 -197
  216. package/src/simple/blockInvalidation/index.ts +0 -1
  217. package/src/simple/blockReward/SimpleBlockRewardViewer.ts +0 -27
  218. package/src/simple/blockReward/index.ts +0 -1
  219. package/src/simple/blockValidation/SimpleBlockValidationViewer.ts +0 -194
  220. package/src/simple/blockValidation/index.ts +0 -1
  221. package/src/simple/chainContractViewer/SimpleChainContractViewer.ts +0 -92
  222. package/src/simple/chainContractViewer/index.ts +0 -1
  223. package/src/simple/client/SimpleXyoClient.ts +0 -14
  224. package/src/simple/client/index.ts +0 -1
  225. package/src/simple/datalake/AbstractRestDataLake.ts +0 -70
  226. package/src/simple/datalake/AbstractSimpleDataLake.ts +0 -62
  227. package/src/simple/datalake/RestDataLakeRunner.ts +0 -54
  228. package/src/simple/datalake/RestDataLakeViewer.ts +0 -22
  229. package/src/simple/datalake/SimpleDataLakeRunner.ts +0 -44
  230. package/src/simple/datalake/SimpleDataLakeViewer.ts +0 -24
  231. package/src/simple/datalake/index.ts +0 -4
  232. package/src/simple/finalization/SimpleFinalizationRunner.ts +0 -45
  233. package/src/simple/finalization/SimpleFinalizationViewer.ts +0 -123
  234. package/src/simple/finalization/index.ts +0 -2
  235. package/src/simple/gateway/SimpleXyoGateway.ts +0 -30
  236. package/src/simple/gateway/SimpleXyoGatewayRunner.ts +0 -137
  237. package/src/simple/gateway/index.ts +0 -2
  238. package/src/simple/index.ts +0 -22
  239. package/src/simple/mempool/SimpleMempoolRunner.ts +0 -390
  240. package/src/simple/mempool/SimpleMempoolViewer.ts +0 -215
  241. package/src/simple/mempool/index.ts +0 -2
  242. package/src/simple/network/SimpleXyoNetwork.ts +0 -48
  243. package/src/simple/network/index.ts +0 -1
  244. package/src/simple/network/lib/FailedNetworkStatusPayloads.ts +0 -16
  245. package/src/simple/network/lib/StatusNetworks.ts +0 -32
  246. package/src/simple/network/lib/index.ts +0 -2
  247. package/src/simple/permissions/SimpleXyoPermissions.ts +0 -82
  248. package/src/simple/permissions/index.ts +0 -2
  249. package/src/simple/permissions/store/MemoryPermissions.ts +0 -32
  250. package/src/simple/permissions/store/PermissionsStore.ts +0 -17
  251. package/src/simple/permissions/store/index.ts +0 -2
  252. package/src/simple/runner/SimpleXyoRunner.ts +0 -41
  253. package/src/simple/runner/index.ts +0 -1
  254. package/src/simple/signer/SimpleXyoSigner.ts +0 -78
  255. package/src/simple/signer/index.ts +0 -1
  256. package/src/simple/timeSync2/SimpleTimeSyncViewer.ts +0 -132
  257. package/src/simple/timeSync2/index.ts +0 -1
  258. package/src/simple/transactionInvalidation/SimpleTransactionInvalidationViewer.ts +0 -197
  259. package/src/simple/transactionInvalidation/index.ts +0 -1
  260. package/src/simple/transactionValidation/SimpleTransactionValidationViewer.ts +0 -173
  261. package/src/simple/transactionValidation/index.ts +0 -1
  262. package/src/simple/windowedBlock/SimpleWindowedBlockViewer.ts +0 -207
  263. package/src/simple/windowedBlock/index.ts +0 -1
  264. package/src/status/RuntimeStatusMonitor.ts +0 -120
  265. package/src/status/ServiceStatus.ts +0 -21
  266. package/src/status/index.ts +0 -2
  267. package/src/summary/index.ts +0 -2
  268. package/src/summary/model/BalancesStepSummary.ts +0 -35
  269. package/src/summary/model/SchemasStepSummary.ts +0 -33
  270. package/src/summary/model/StepSummary.ts +0 -20
  271. package/src/summary/model/TransfersSummary.ts +0 -36
  272. package/src/summary/model/index.ts +0 -4
  273. package/src/summary/primitives/balances/balancesStepSummaryFromRange.ts +0 -94
  274. package/src/summary/primitives/balances/balancesSummary.ts +0 -48
  275. package/src/summary/primitives/balances/index.ts +0 -2
  276. package/src/summary/primitives/index.ts +0 -3
  277. package/src/summary/primitives/schemas/index.ts +0 -2
  278. package/src/summary/primitives/schemas/schemasStepSummaryFromRange.ts +0 -86
  279. package/src/summary/primitives/schemas/schemasSummary.ts +0 -44
  280. package/src/summary/primitives/transfers/index.ts +0 -2
  281. package/src/summary/primitives/transfers/transfersStepSummaryFromRange.ts +0 -109
  282. package/src/summary/primitives/transfers/transfersSummary.ts +0 -52
  283. package/src/test/BuildBlockOptions.ts +0 -81
  284. package/src/test/buildBlock.ts +0 -105
  285. package/src/test/buildGenesisBlock.ts +0 -29
  286. package/src/test/buildNextBlock.ts +0 -37
  287. package/src/test/buildRandomChain.ts +0 -92
  288. package/src/test/buildRandomGenesisBlock.ts +0 -47
  289. package/src/test/createGenesisBlock.ts +0 -41
  290. package/src/test/createProducerChainStakeIntentTransaction.ts +0 -48
  291. package/src/test/getSimpleBlockViewerLocator.ts +0 -41
  292. package/src/test/getTestProviderContext.ts +0 -8
  293. package/src/test/index.ts +0 -2
  294. package/src/time/index.ts +0 -1
  295. package/src/time/primitives/index.ts +0 -1
  296. package/src/time/primitives/xl1BlockNumberToEthBlockNumber.ts +0 -13
  297. package/src/transaction/TransactionBuilder.ts +0 -164
  298. package/src/transaction/buildRandomTransaction.ts +0 -38
  299. package/src/transaction/buildTransaction.ts +0 -68
  300. package/src/transaction/buildUnsignedTransaction.ts +0 -56
  301. package/src/transaction/confirmSubmittedTransaction.ts +0 -42
  302. package/src/transaction/hydrateTransaction.ts +0 -117
  303. package/src/transaction/index.ts +0 -9
  304. package/src/transaction/primitives/index.ts +0 -4
  305. package/src/transaction/primitives/transactionBlockByteCount.ts +0 -10
  306. package/src/transaction/primitives/transactionElevatedPayloads.ts +0 -18
  307. package/src/transaction/primitives/transactionOperations.ts +0 -13
  308. package/src/transaction/primitives/transactionRequiredGas.ts +0 -22
  309. package/src/transaction/script.ts +0 -48
  310. package/src/transaction/signTransaction.ts +0 -32
  311. package/src/utils/HydratedCache.ts +0 -39
  312. package/src/utils/index.ts +0 -2
  313. package/src/utils/isZodError.ts +0 -11
  314. package/src/validation/index.ts +0 -2
  315. package/src/validation/lib/getUrl.ts +0 -7
  316. package/src/validation/lib/index.ts +0 -2
  317. package/src/validation/lib/isLocalhost.ts +0 -9
  318. package/src/validation/schema/Address.ts +0 -2
  319. package/src/validation/schema/Mnemonic.ts +0 -21
  320. package/src/validation/schema/index.ts +0 -2
  321. package/src/wallet/generateXyoBaseWalletFromPhrase.ts +0 -13
  322. package/src/wallet/index.ts +0 -2
  323. package/src/wallet/paths.ts +0 -17
@@ -1,197 +0,0 @@
1
- import { assertEx, Promisable } from '@xylabs/sdk-js'
2
- import { PayloadBuilder } from '@xyo-network/sdk-js'
3
- import {
4
- AccountBalanceViewer,
5
- AccountBalanceViewerMoniker,
6
- asXL1BlockRange,
7
- BlockInvalidationConfig,
8
- BlockInvalidationQualification,
9
- BlockInvalidationViewer,
10
- BlockInvalidationViewerMoniker,
11
- BlockViewer,
12
- BlockViewerMoniker,
13
- ChainContractViewer,
14
- ChainContractViewerMoniker,
15
- ChainId,
16
- HydratedBlockStateValidationFunction,
17
- HydratedBlockValidationError,
18
- HydratedBlockValidationFunction,
19
- isChainQualifiedHeadConfig,
20
- isHydratedBlock,
21
- SignedHydratedBlock,
22
- type SignedHydratedBlockWithHashMeta,
23
- XL1BlockNumber,
24
- } from '@xyo-network/xl1-protocol-lib'
25
-
26
- import type { CreatableProviderParams } from '../../CreatableProvider/index.ts'
27
- import { AbstractCreatableProvider, creatableProvider } from '../../CreatableProvider/index.ts'
28
- import { findUncles, getWindowedChain } from '../../primitives/index.ts'
29
-
30
- /** Parameters for SimpleBlockInvalidationViewer. */
31
- export interface SimpleBlockInvalidationViewerParams extends CreatableProviderParams {
32
- maxUncleWindowSize?: number
33
- state?: HydratedBlockStateValidationFunction
34
- value?: HydratedBlockValidationFunction
35
- }
36
-
37
- /** SimpleBlockInvalidationViewer implementation. */
38
- @creatableProvider()
39
- export class SimpleBlockInvalidationViewer extends AbstractCreatableProvider<SimpleBlockInvalidationViewerParams> implements BlockInvalidationViewer {
40
- static readonly defaultMoniker = BlockInvalidationViewerMoniker
41
- static readonly dependencies = [AccountBalanceViewerMoniker, BlockViewerMoniker, ChainContractViewerMoniker]
42
- static readonly monikers = [BlockInvalidationViewerMoniker]
43
- moniker = SimpleBlockInvalidationViewer.defaultMoniker
44
-
45
- private _accountBalanceViewer!: AccountBalanceViewer
46
- private _blockViewer!: BlockViewer
47
- private _chainContractViewer!: ChainContractViewer
48
- private _uncleWindowedChainCache: SignedHydratedBlockWithHashMeta[] | null = null
49
-
50
- protected get blockViewer() {
51
- return this._blockViewer
52
- }
53
-
54
- protected get chainContractViewer() {
55
- return this._chainContractViewer
56
- }
57
-
58
- protected get maxUncleWindowSize() {
59
- return this.params.maxUncleWindowSize!
60
- }
61
-
62
- static override async paramsHandler(params: Partial<SimpleBlockInvalidationViewerParams>): Promise<SimpleBlockInvalidationViewerParams> {
63
- return {
64
- ...await super.paramsHandler(params),
65
- value: params.value,
66
- state: params.state,
67
- maxUncleWindowSize: params.maxUncleWindowSize ?? 100,
68
- } satisfies SimpleBlockInvalidationViewerParams
69
- }
70
-
71
- override async createHandler() {
72
- await super.createHandler()
73
- this._accountBalanceViewer = await this.locator.getInstance<AccountBalanceViewer>(AccountBalanceViewerMoniker)
74
- this._blockViewer = await this.locator.getInstance<BlockViewer>(BlockViewerMoniker)
75
- this._chainContractViewer = await this.locator.getInstance<ChainContractViewer>(ChainContractViewerMoniker)
76
- }
77
-
78
- async invalidateBlock(
79
- block: SignedHydratedBlock,
80
- config?: BlockInvalidationConfig,
81
- ): Promise<HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta> {
82
- return (await this.invalidateBlocks([block], config))[0]
83
- }
84
-
85
- async invalidateBlocks(
86
- blocks: SignedHydratedBlock[],
87
- config?: BlockInvalidationConfig,
88
- ): Promise<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]> {
89
- return (await this.qualifiedInvalidateBlocks(blocks, config))[0]
90
- }
91
-
92
- async invalidateUncle(
93
- blocks: SignedHydratedBlock[],
94
- config?: BlockInvalidationConfig,
95
- ): Promise<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]> {
96
- return (await this.qualifiedInvalidateUncle(blocks, config))[0]
97
- }
98
-
99
- async qualifiedInvalidateBlock(
100
- block: SignedHydratedBlockWithHashMeta,
101
- config?: BlockInvalidationConfig,
102
- ): Promise<[HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta, BlockInvalidationQualification]> {
103
- const result = (await this.qualifiedInvalidateBlocks([block], config))
104
- return [result[0][0], result[1]]
105
- }
106
-
107
- async qualifiedInvalidateBlocks(
108
- blocks: SignedHydratedBlock[],
109
- config?: BlockInvalidationConfig,
110
- ): Promise<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockInvalidationQualification]> {
111
- const { value, state } = config ?? {
112
- shape: true, links: true, state: true, head: undefined,
113
- }
114
-
115
- const blocksWithMeta = await Promise.all(blocks.map(b => Promise.all([PayloadBuilder.addHashMeta(b[0]), PayloadBuilder.addHashMeta(b[1])])))
116
-
117
- const head = isChainQualifiedHeadConfig(config)
118
- ? assertEx(
119
- (await this.blockViewer.blockByHash(config.head))?.[0],
120
- () => `Specified a head that is not in the chain [${config.head}]`,
121
- )
122
- : undefined
123
-
124
- const headBlock = head ?? (await this.blockViewer.currentBlock())[0]
125
-
126
- const validateProtocol = value ? this.doInvalidateProtocol.bind(this) : undefined
127
- const validateState = state ? this.doInvalidateState.bind(this) : undefined
128
-
129
- const chainIdAtBlockNumber = (blockNumber: XL1BlockNumber) => this.chainContractViewer.chainIdAtBlockNumber(blockNumber)
130
-
131
- const qualification = { head: headBlock._hash, range: asXL1BlockRange([0, headBlock.block], true) }
132
- const [protocolResults, stateResults] = await Promise.all([
133
- validateProtocol?.(blocksWithMeta, chainIdAtBlockNumber), validateState?.(blocksWithMeta, chainIdAtBlockNumber),
134
- ])
135
- const blockResults = blocksWithMeta.map((r, i) => {
136
- const errors = []
137
- if (protocolResults && !isHydratedBlock(protocolResults[i])) {
138
- errors.push(...(protocolResults[i]))
139
- }
140
- if (stateResults && !isHydratedBlock(stateResults[i])) {
141
- errors.push(...(stateResults[i]))
142
- }
143
- return errors.length === 0 ? r : errors
144
- })
145
- return [blockResults, qualification]
146
- }
147
-
148
- qualifiedInvalidateUncle(
149
- _blocks: SignedHydratedBlock[],
150
- _config?: BlockInvalidationConfig,
151
- ): Promise<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockInvalidationQualification]> {
152
- throw new Error('Method not implemented.')
153
- }
154
-
155
- private async doInvalidateProtocol(
156
- blocks: SignedHydratedBlockWithHashMeta[],
157
- chainIdAtBlockNumber: (blockNumber: XL1BlockNumber) => Promisable<ChainId>,
158
- ): Promise<(SignedHydratedBlockWithHashMeta | HydratedBlockValidationError[])[]> {
159
- return (await Promise.all(blocks.map(async (block) => {
160
- const errors = await this.params.value!(
161
- this.context,
162
- block,
163
- chainIdAtBlockNumber,
164
- )
165
- return (errors.length === 0) ? block : errors
166
- })))
167
- }
168
-
169
- private async doInvalidateState(
170
- blocks: SignedHydratedBlockWithHashMeta[],
171
- chainIdAtBlockNumber: (blockNumber: XL1BlockNumber) => Promisable<ChainId>,
172
- ): Promise<(SignedHydratedBlockWithHashMeta | HydratedBlockValidationError[])[]> {
173
- const windowedUncleChain = await this.updateWindowedChainCache()
174
-
175
- const uncles = findUncles(this.context, windowedUncleChain, blocks)
176
-
177
- if (uncles.length !== 1) {
178
- this.logger?.warn(JSON.stringify({ uncles, blocks }, null, 2))
179
- this.logger?.warn(JSON.stringify(windowedUncleChain, null, 2))
180
- throw new Error(`No uncles or greater than one uncle found in block validation, which is not supported [${uncles.length}, ${blocks.length}]`)
181
- }
182
- return (await Promise.all(uncles[0].map(async (block) => {
183
- const errors = await this.params.state!(
184
- {
185
- ...this.context, chainIdAtBlockNumber, accountBalance: this._accountBalanceViewer,
186
- },
187
- block,
188
- )
189
- return (errors.length === 0) ? block : errors
190
- })))
191
- }
192
-
193
- private async updateWindowedChainCache() {
194
- this._uncleWindowedChainCache = await getWindowedChain(this.context, this.blockViewer, this.maxUncleWindowSize, this._uncleWindowedChainCache ?? [])
195
- return [...this._uncleWindowedChainCache]
196
- }
197
- }
@@ -1 +0,0 @@
1
- export * from './SimpleBlockInvalidationViewer.ts'
@@ -1,27 +0,0 @@
1
- import { Promisable } from '@xylabs/sdk-js'
2
- import {
3
- AttoXL1, BlockRewardViewer, BlockRewardViewerMoniker, XL1BlockNumber,
4
- } from '@xyo-network/xl1-protocol-lib'
5
-
6
- import {
7
- AbstractCreatableProvider, creatableProvider, CreatableProviderParams,
8
- } from '../../CreatableProvider/index.ts'
9
- import { rewardFromBlockNumber } from '../../primitives/index.ts'
10
-
11
- /** Parameters for SimpleBlockRewardViewer. */
12
- export interface SimpleBlockRewardViewerParams extends CreatableProviderParams {}
13
-
14
- /** SimpleBlockRewardViewer implementation. */
15
- @creatableProvider()
16
- export class SimpleBlockRewardViewer extends AbstractCreatableProvider<SimpleBlockRewardViewerParams> implements BlockRewardViewer {
17
- static readonly defaultMoniker = BlockRewardViewerMoniker
18
- static readonly dependencies = []
19
- static readonly monikers = [BlockRewardViewerMoniker]
20
- moniker = SimpleBlockRewardViewer.defaultMoniker
21
-
22
- allowedRewardForBlock(block: XL1BlockNumber): Promisable<AttoXL1> {
23
- return rewardFromBlockNumber(
24
- block,
25
- )
26
- }
27
- }
@@ -1 +0,0 @@
1
- export * from './SimpleBlockRewardViewer.ts'
@@ -1,194 +0,0 @@
1
- import { assertEx, Promisable } from '@xylabs/sdk-js'
2
- import { PayloadBuilder } from '@xyo-network/sdk-js'
3
- import {
4
- AccountBalanceViewer,
5
- AccountBalanceViewerMoniker,
6
- asXL1BlockRange,
7
- BlockValidationConfig,
8
- BlockValidationQualification,
9
- BlockValidationViewer,
10
- BlockValidationViewerMoniker,
11
- BlockViewer,
12
- BlockViewerMoniker,
13
- ChainContractViewer,
14
- ChainContractViewerMoniker,
15
- ChainId,
16
- HydratedBlockStateValidationFunction,
17
- HydratedBlockValidationError,
18
- HydratedBlockValidationFunction,
19
- isChainQualifiedHeadConfig,
20
- isHydratedBlock,
21
- SignedHydratedBlock,
22
- type SignedHydratedBlockWithHashMeta,
23
- XL1BlockNumber,
24
- } from '@xyo-network/xl1-protocol-lib'
25
-
26
- import type { CreatableProviderParams } from '../../CreatableProvider/index.ts'
27
- import { AbstractCreatableProvider, creatableProvider } from '../../CreatableProvider/index.ts'
28
- import { findUncles, getWindowedChain } from '../../primitives/index.ts'
29
-
30
- /** Parameters for SimpleBlockValidationViewer. */
31
- export interface SimpleBlockValidationViewerParams extends CreatableProviderParams {
32
- maxUncleWindowSize?: number
33
- protocol?: HydratedBlockValidationFunction
34
- state?: HydratedBlockStateValidationFunction
35
- }
36
-
37
- /** SimpleBlockValidationViewer implementation. */
38
- @creatableProvider()
39
- export class SimpleBlockValidationViewer extends AbstractCreatableProvider<SimpleBlockValidationViewerParams> implements BlockValidationViewer {
40
- static readonly defaultMoniker = BlockValidationViewerMoniker
41
- static readonly dependencies = [AccountBalanceViewerMoniker, BlockViewerMoniker, ChainContractViewerMoniker]
42
- static readonly monikers = [BlockValidationViewerMoniker]
43
- moniker = SimpleBlockValidationViewer.defaultMoniker
44
-
45
- private _accountBalanceViewer!: AccountBalanceViewer
46
- private _blockViewer!: BlockViewer
47
- private _chainContractViewer!: ChainContractViewer
48
- private _uncleWindowedChainCache: SignedHydratedBlockWithHashMeta[] | null = null
49
-
50
- protected get blockViewer() {
51
- return this._blockViewer
52
- }
53
-
54
- protected get chainContractViewer() {
55
- return this._chainContractViewer
56
- }
57
-
58
- protected get maxUncleWindowSize() {
59
- return this.params.maxUncleWindowSize!
60
- }
61
-
62
- static override async paramsHandler(params: Partial<SimpleBlockValidationViewerParams>): Promise<SimpleBlockValidationViewerParams> {
63
- return {
64
- ...await super.paramsHandler(params),
65
- protocol: params.protocol,
66
- state: params.state,
67
- maxUncleWindowSize: params.maxUncleWindowSize ?? 100,
68
- } satisfies SimpleBlockValidationViewerParams
69
- }
70
-
71
- override async createHandler() {
72
- await super.createHandler()
73
- this._accountBalanceViewer = await this.locator.getInstance<AccountBalanceViewer>(AccountBalanceViewerMoniker)
74
- this._blockViewer = await this.locator.getInstance<BlockViewer>(BlockViewerMoniker)
75
- this._chainContractViewer = await this.locator.getInstance<ChainContractViewer>(ChainContractViewerMoniker)
76
- }
77
-
78
- async qualifiedValidateBlock(
79
- block: SignedHydratedBlockWithHashMeta,
80
- config?: BlockValidationConfig,
81
- ): Promise<[HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta, BlockValidationQualification]> {
82
- const result = (await this.qualifiedValidateBlocks([block], config))
83
- return [result[0][0], result[1]]
84
- }
85
-
86
- async qualifiedValidateBlocks(
87
- blocks: SignedHydratedBlock[],
88
- config?: BlockValidationConfig,
89
- ): Promise<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockValidationQualification]> {
90
- const { value, state } = config ?? {
91
- shape: true, links: true, state: true, head: undefined,
92
- }
93
-
94
- const blocksWithMeta = await Promise.all(blocks.map(b => Promise.all([PayloadBuilder.addHashMeta(b[0]), PayloadBuilder.addHashMeta(b[1])])))
95
-
96
- const head = isChainQualifiedHeadConfig(config)
97
- ? assertEx(
98
- (await this.blockViewer.blockByHash(config.head))?.[0],
99
- () => `Specified a head that is not in the chain [${config.head}]`,
100
- )
101
- : undefined
102
-
103
- const headBlock = head ?? (await this.blockViewer.currentBlock())[0]
104
-
105
- const validateProtocol = value ? this.doValidateProtocol.bind(this) : undefined
106
- const validateState = state ? this.doValidateState.bind(this) : undefined
107
-
108
- const chainIdAtBlockNumber = (blockNumber: XL1BlockNumber) => this.chainContractViewer.chainIdAtBlockNumber(blockNumber)
109
-
110
- const qualification = { head: headBlock._hash, range: asXL1BlockRange([0, headBlock.block], true) }
111
- const [protocolResults, stateResults] = await Promise.all([
112
- validateProtocol?.(blocksWithMeta, chainIdAtBlockNumber), validateState?.(blocksWithMeta, chainIdAtBlockNumber),
113
- ])
114
- const blockResults = blocksWithMeta.map((r, i) => {
115
- const errors = []
116
- if (protocolResults && !isHydratedBlock(protocolResults[i])) {
117
- errors.push(...(protocolResults[i]))
118
- }
119
- if (stateResults && !isHydratedBlock(stateResults[i])) {
120
- errors.push(...(stateResults[i]))
121
- }
122
- return errors.length === 0 ? r : errors
123
- })
124
- return [blockResults, qualification]
125
- }
126
-
127
- qualifiedValidateUncle(
128
- _blocks: SignedHydratedBlock[],
129
- _config?: BlockValidationConfig,
130
- ): Promise<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockValidationQualification]> {
131
- throw new Error('Method not implemented.')
132
- }
133
-
134
- async validateBlock(block: SignedHydratedBlock, config?: BlockValidationConfig): Promise<HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta> {
135
- return (await this.validateBlocks([block], config))[0]
136
- }
137
-
138
- async validateBlocks(
139
- blocks: SignedHydratedBlock[],
140
- config?: BlockValidationConfig,
141
- ): Promise<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]> {
142
- return (await this.qualifiedValidateBlocks(blocks, config))[0]
143
- }
144
-
145
- async validateUncle(
146
- blocks: SignedHydratedBlock[],
147
- config?: BlockValidationConfig,
148
- ): Promise<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]> {
149
- return (await this.qualifiedValidateUncle(blocks, config))[0]
150
- }
151
-
152
- private async doValidateProtocol(
153
- blocks: SignedHydratedBlockWithHashMeta[],
154
- chainIdAtBlockNumber: (blockNumber: XL1BlockNumber) => Promisable<ChainId>,
155
- ): Promise<(SignedHydratedBlockWithHashMeta | HydratedBlockValidationError[])[]> {
156
- return (await Promise.all(blocks.map(async (block) => {
157
- const errors = await this.params.protocol!(
158
- this.context,
159
- block,
160
- chainIdAtBlockNumber,
161
- )
162
- return (errors.length === 0) ? block : errors
163
- })))
164
- }
165
-
166
- private async doValidateState(
167
- blocks: SignedHydratedBlockWithHashMeta[],
168
- chainIdAtBlockNumber: (blockNumber: XL1BlockNumber) => Promisable<ChainId>,
169
- ): Promise<(SignedHydratedBlockWithHashMeta | HydratedBlockValidationError[])[]> {
170
- const windowedUncleChain = await this.updateWindowedChainCache()
171
-
172
- const uncles = findUncles(this.context, windowedUncleChain, blocks)
173
-
174
- if (uncles.length !== 1) {
175
- this.logger?.warn(JSON.stringify({ uncles, blocks }, null, 2))
176
- this.logger?.warn(JSON.stringify(windowedUncleChain, null, 2))
177
- throw new Error(`No uncles or greater than one uncle found in block validation, which is not supported [${uncles.length}, ${blocks.length}]`)
178
- }
179
- return (await Promise.all(uncles[0].map(async (block) => {
180
- const errors = await this.params.state!(
181
- {
182
- ...this.context, chainIdAtBlockNumber, accountBalance: this._accountBalanceViewer,
183
- },
184
- block,
185
- )
186
- return (errors.length === 0) ? block : errors
187
- })))
188
- }
189
-
190
- private async updateWindowedChainCache() {
191
- this._uncleWindowedChainCache = await getWindowedChain(this.context, this.blockViewer, this.maxUncleWindowSize, this._uncleWindowedChainCache ?? [])
192
- return [...this._uncleWindowedChainCache]
193
- }
194
- }
@@ -1 +0,0 @@
1
- export * from './SimpleBlockValidationViewer.ts'
@@ -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
- }