@xyo-network/xl1-protocol-sdk 1.18.0-rc.1 → 1.18.1
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.
- package/dist/neutral/CreatableProvider/AbstractCreatableProvider.d.ts +57 -25
- package/dist/neutral/CreatableProvider/AbstractCreatableProvider.d.ts.map +1 -1
- package/dist/neutral/CreatableProvider/CreatableProvider.d.ts +16 -11
- package/dist/neutral/CreatableProvider/CreatableProvider.d.ts.map +1 -1
- package/dist/neutral/CreatableProvider/CreatableProviderRegistry.d.ts +2 -4
- package/dist/neutral/CreatableProvider/CreatableProviderRegistry.d.ts.map +1 -1
- package/dist/neutral/CreatableProvider/ProviderFactory.d.ts +6 -4
- package/dist/neutral/CreatableProvider/ProviderFactory.d.ts.map +1 -1
- package/dist/neutral/CreatableProvider/ProviderFactoryLocator.d.ts +7 -7
- package/dist/neutral/CreatableProvider/ProviderFactoryLocator.d.ts.map +1 -1
- package/dist/neutral/CreatableProvider/ProviderFactoryLocatorInstance.d.ts +3 -2
- package/dist/neutral/CreatableProvider/ProviderFactoryLocatorInstance.d.ts.map +1 -1
- package/dist/neutral/actor/Actor.d.ts +176 -0
- package/dist/neutral/actor/Actor.d.ts.map +1 -0
- package/dist/neutral/actor/index.d.ts +2 -0
- package/dist/neutral/actor/index.d.ts.map +1 -0
- package/dist/neutral/block/hydrate/allHashesPresent.d.ts +2 -2
- package/dist/neutral/block/hydrate/allHashesPresent.d.ts.map +1 -1
- package/dist/neutral/block/hydrate/hydrateBlock.d.ts +2 -2
- package/dist/neutral/block/hydrate/hydrateBlock.d.ts.map +1 -1
- package/dist/neutral/config/Api.d.ts +1 -1
- package/dist/neutral/config/Api.d.ts.map +1 -1
- package/dist/neutral/config/Bridge.d.ts +41 -21
- package/dist/neutral/config/Bridge.d.ts.map +1 -1
- package/dist/neutral/config/Chain.d.ts +7 -3
- package/dist/neutral/config/Chain.d.ts.map +1 -1
- package/dist/neutral/config/Config.d.ts +50 -22
- package/dist/neutral/config/Config.d.ts.map +1 -1
- package/dist/neutral/config/Evm.d.ts +1 -1
- package/dist/neutral/config/Evm.d.ts.map +1 -1
- package/dist/neutral/config/Log.d.ts +2 -2
- package/dist/neutral/config/Log.d.ts.map +1 -1
- package/dist/neutral/config/Mempool.d.ts +1 -1
- package/dist/neutral/config/Mempool.d.ts.map +1 -1
- package/dist/neutral/config/Producer.d.ts +6 -2
- package/dist/neutral/config/Producer.d.ts.map +1 -1
- package/dist/neutral/config/RewardRedemptionApi.d.ts +1 -1
- package/dist/neutral/config/RewardRedemptionApi.d.ts.map +1 -1
- package/dist/neutral/config/Services.d.ts +3 -3
- package/dist/neutral/config/Services.d.ts.map +1 -1
- package/dist/neutral/config/Telemetry.d.ts +11 -4
- package/dist/neutral/config/Telemetry.d.ts.map +1 -1
- package/dist/neutral/config/UsageMeta.d.ts +1 -1
- package/dist/neutral/config/UsageMeta.d.ts.map +1 -1
- package/dist/neutral/config/Validation.d.ts +11 -3
- package/dist/neutral/config/Validation.d.ts.map +1 -1
- package/dist/neutral/config/index.d.ts +1 -0
- package/dist/neutral/config/index.d.ts.map +1 -1
- package/dist/neutral/config/storage/Storage.d.ts +1 -1
- package/dist/neutral/config/storage/Storage.d.ts.map +1 -1
- package/dist/neutral/config/storage/driver/Mongo.d.ts +1 -1
- package/dist/neutral/config/storage/driver/Mongo.d.ts.map +1 -1
- package/dist/neutral/eip-712/Payloads/EIP712Data.d.ts +4 -4
- package/dist/neutral/eip-712/Payloads/EIP712Data.d.ts.map +1 -1
- package/dist/neutral/eip-712/Payloads/EIP712Signature.d.ts +3 -3
- package/dist/neutral/eip-712/Payloads/EIP712Signature.d.ts.map +1 -1
- package/dist/neutral/eip-712/Types.d.ts +4 -4
- package/dist/neutral/eip-712/Types.d.ts.map +1 -1
- package/dist/neutral/index.d.ts +1 -0
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +3440 -3089
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/model/ChainQualification.d.ts +42 -0
- package/dist/neutral/model/ChainQualification.d.ts.map +1 -0
- package/dist/neutral/model/index.d.ts +1 -1
- package/dist/neutral/model/index.d.ts.map +1 -1
- package/dist/neutral/payloads/netBalancesForPayloads.d.ts +5 -2
- package/dist/neutral/payloads/netBalancesForPayloads.d.ts.map +1 -1
- package/dist/neutral/payloads/netSchemasForPayloads.d.ts +5 -2
- package/dist/neutral/payloads/netSchemasForPayloads.d.ts.map +1 -1
- package/dist/neutral/primitives/chain/getWindowedChain.d.ts +11 -0
- package/dist/neutral/primitives/chain/getWindowedChain.d.ts.map +1 -0
- package/dist/neutral/primitives/chain/index.d.ts +1 -0
- package/dist/neutral/primitives/chain/index.d.ts.map +1 -1
- package/dist/neutral/primitives/index.d.ts +1 -0
- package/dist/neutral/primitives/index.d.ts.map +1 -1
- package/dist/neutral/primitives/rewards/networkStakeStepRewardPositionWeight.d.ts +1 -1
- package/dist/neutral/primitives/rewards/networkStakeStepRewardPositionWeight.d.ts.map +1 -1
- package/dist/neutral/primitives/stake/weightedStakeForRangeByPosition.d.ts +2 -1
- package/dist/neutral/primitives/stake/weightedStakeForRangeByPosition.d.ts.map +1 -1
- package/dist/neutral/primitives/uncle/findBestUncle.d.ts +32 -0
- package/dist/neutral/primitives/uncle/findBestUncle.d.ts.map +1 -0
- package/dist/neutral/primitives/uncle/findUncles.d.ts +33 -0
- package/dist/neutral/primitives/uncle/findUncles.d.ts.map +1 -0
- package/dist/neutral/primitives/uncle/index.d.ts +4 -0
- package/dist/neutral/primitives/uncle/index.d.ts.map +1 -0
- package/dist/neutral/primitives/uncle/scoreUncle.d.ts +3 -0
- package/dist/neutral/primitives/uncle/scoreUncle.d.ts.map +1 -0
- package/dist/neutral/provider/signer/XyoSigner.d.ts +2 -0
- package/dist/neutral/provider/signer/XyoSigner.d.ts.map +1 -1
- package/dist/neutral/provider/viewer/XyoViewer.d.ts +7 -5
- package/dist/neutral/provider/viewer/XyoViewer.d.ts.map +1 -1
- package/dist/neutral/runners/Finalization.d.ts +12 -0
- package/dist/neutral/runners/Finalization.d.ts.map +1 -0
- package/dist/neutral/runners/index.d.ts +1 -0
- package/dist/neutral/runners/index.d.ts.map +1 -1
- package/dist/neutral/simple/accountBalance/SimpleAccountBalanceViewer.d.ts +96 -12
- package/dist/neutral/simple/accountBalance/SimpleAccountBalanceViewer.d.ts.map +1 -1
- package/dist/neutral/simple/block/SimpleBlockViewer.d.ts +9 -25
- package/dist/neutral/simple/block/SimpleBlockViewer.d.ts.map +1 -1
- package/dist/neutral/simple/blockReward/SimpleBlockRewardViewer.d.ts +1 -0
- package/dist/neutral/simple/blockReward/SimpleBlockRewardViewer.d.ts.map +1 -1
- package/dist/neutral/simple/blockValidation/SimpleBlockValidationViewer.d.ts +32 -0
- package/dist/neutral/simple/blockValidation/SimpleBlockValidationViewer.d.ts.map +1 -0
- package/dist/neutral/simple/blockValidation/index.d.ts +2 -0
- package/dist/neutral/simple/blockValidation/index.d.ts.map +1 -0
- package/dist/neutral/simple/chainStake/SimpleStakeViewer.d.ts +1 -0
- package/dist/neutral/simple/chainStake/SimpleStakeViewer.d.ts.map +1 -1
- package/dist/neutral/simple/datalake/AbstractSimpleDataLake.d.ts +1 -1
- package/dist/neutral/simple/datalake/AbstractSimpleDataLake.d.ts.map +1 -1
- package/dist/neutral/simple/datalake/SimpleDataLakeRunner.d.ts +1 -0
- package/dist/neutral/simple/datalake/SimpleDataLakeRunner.d.ts.map +1 -1
- package/dist/neutral/simple/datalake/SimpleDataLakeViewer.d.ts +1 -0
- package/dist/neutral/simple/datalake/SimpleDataLakeViewer.d.ts.map +1 -1
- package/dist/neutral/simple/finalization/SimpleFinalizationRunner.d.ts +21 -0
- package/dist/neutral/simple/finalization/SimpleFinalizationRunner.d.ts.map +1 -0
- package/dist/neutral/simple/finalization/SimpleFinalizationViewer.d.ts +61 -0
- package/dist/neutral/simple/finalization/SimpleFinalizationViewer.d.ts.map +1 -0
- package/dist/neutral/simple/finalization/index.d.ts +3 -0
- package/dist/neutral/simple/finalization/index.d.ts.map +1 -0
- package/dist/neutral/simple/index.d.ts +3 -0
- package/dist/neutral/simple/index.d.ts.map +1 -1
- package/dist/neutral/simple/mempool/SimpleMempoolRunner.d.ts +2 -0
- package/dist/neutral/simple/mempool/SimpleMempoolRunner.d.ts.map +1 -1
- package/dist/neutral/simple/mempool/SimpleMempoolViewer.d.ts +7 -2
- package/dist/neutral/simple/mempool/SimpleMempoolViewer.d.ts.map +1 -1
- package/dist/neutral/simple/runner/SimpleXyoRunner.d.ts +1 -0
- package/dist/neutral/simple/runner/SimpleXyoRunner.d.ts.map +1 -1
- package/dist/neutral/simple/signer/SimpleXyoSigner.d.ts +19 -3
- package/dist/neutral/simple/signer/SimpleXyoSigner.d.ts.map +1 -1
- package/dist/neutral/simple/stakeEvents/SimpleStakeEventsViewer.d.ts +1 -0
- package/dist/neutral/simple/stakeEvents/SimpleStakeEventsViewer.d.ts.map +1 -1
- package/dist/neutral/simple/timesync/SimpleTimeSyncViewer.d.ts +2 -1
- package/dist/neutral/simple/timesync/SimpleTimeSyncViewer.d.ts.map +1 -1
- package/dist/neutral/simple/windowedBlock/SimpleWindowedBlockViewer.d.ts +191 -0
- package/dist/neutral/simple/windowedBlock/SimpleWindowedBlockViewer.d.ts.map +1 -0
- package/dist/neutral/simple/windowedBlock/index.d.ts +2 -0
- package/dist/neutral/simple/windowedBlock/index.d.ts.map +1 -0
- package/dist/neutral/summary/model/summary.d.ts +3 -2
- package/dist/neutral/summary/model/summary.d.ts.map +1 -1
- package/dist/neutral/summary/primitives/balances/balancesSummary.d.ts +2 -2
- package/dist/neutral/summary/primitives/balances/balancesSummary.d.ts.map +1 -1
- package/dist/neutral/summary/primitives/schemas/schemasSummary.d.ts +2 -2
- package/dist/neutral/summary/primitives/schemas/schemasSummary.d.ts.map +1 -1
- package/dist/neutral/summary/primitives/transfers/transfersSummary.d.ts +3 -3
- package/dist/neutral/summary/primitives/transfers/transfersSummary.d.ts.map +1 -1
- package/dist/neutral/transaction/TransactionBuilder.d.ts +56 -33
- package/dist/neutral/transaction/TransactionBuilder.d.ts.map +1 -1
- package/dist/neutral/transaction/signTransaction.d.ts +24 -12
- package/dist/neutral/transaction/signTransaction.d.ts.map +1 -1
- package/dist/neutral/utils/isZodError.d.ts +1 -1
- package/dist/neutral/utils/isZodError.d.ts.map +1 -1
- package/dist/neutral/validation/schema/Mnemonic.d.ts +1 -1
- package/dist/neutral/validation/schema/Mnemonic.d.ts.map +1 -1
- package/dist/neutral/viewers/AccountBalance.d.ts +92 -44
- package/dist/neutral/viewers/AccountBalance.d.ts.map +1 -1
- package/dist/neutral/viewers/Block.d.ts +2 -2
- package/dist/neutral/viewers/Block.d.ts.map +1 -1
- package/dist/neutral/viewers/BlockValidation.d.ts +54 -0
- package/dist/neutral/viewers/BlockValidation.d.ts.map +1 -0
- package/dist/neutral/viewers/Finalization.d.ts +14 -0
- package/dist/neutral/viewers/Finalization.d.ts.map +1 -0
- package/dist/neutral/viewers/Mempool.d.ts +5 -5
- package/dist/neutral/viewers/Mempool.d.ts.map +1 -1
- package/dist/neutral/viewers/StakeIntent.d.ts +2 -2
- package/dist/neutral/viewers/StakeIntent.d.ts.map +1 -1
- package/dist/neutral/viewers/TransactionValidation.d.ts +35 -0
- package/dist/neutral/viewers/TransactionValidation.d.ts.map +1 -0
- package/dist/neutral/viewers/WindowedBlock.d.ts +14 -0
- package/dist/neutral/viewers/WindowedBlock.d.ts.map +1 -0
- package/dist/neutral/viewers/index.d.ts +4 -0
- package/dist/neutral/viewers/index.d.ts.map +1 -1
- package/package.json +25 -23
- package/src/CreatableProvider/AbstractCreatableProvider.ts +34 -12
- package/src/CreatableProvider/CreatableProvider.ts +24 -12
- package/src/CreatableProvider/CreatableProviderRegistry.ts +4 -3
- package/src/CreatableProvider/ProviderFactory.ts +21 -12
- package/src/CreatableProvider/ProviderFactoryLocator.ts +8 -6
- package/src/CreatableProvider/ProviderFactoryLocatorInstance.ts +6 -2
- package/src/actor/Actor.ts +209 -0
- package/src/actor/index.ts +1 -0
- package/src/block/hydrate/allHashesPresent.ts +2 -2
- package/src/block/hydrate/hydrateBlock.ts +2 -2
- package/src/config/Api.ts +1 -2
- package/src/config/Bridge.ts +1 -2
- package/src/config/Chain.ts +1 -2
- package/src/config/Config.ts +1 -1
- package/src/config/Evm.ts +1 -2
- package/src/config/Log.ts +1 -2
- package/src/config/Mempool.ts +1 -2
- package/src/config/Producer.ts +1 -2
- package/src/config/RewardRedemptionApi.ts +1 -2
- package/src/config/Services.ts +5 -4
- package/src/config/Telemetry.ts +10 -4
- package/src/config/UsageMeta.ts +1 -1
- package/src/config/Validation.ts +1 -2
- package/src/config/index.ts +1 -0
- package/src/config/storage/Storage.ts +1 -2
- package/src/config/storage/driver/Mongo.ts +1 -2
- package/src/eip-712/Payloads/EIP712Data.ts +1 -1
- package/src/eip-712/Payloads/EIP712Signature.ts +1 -1
- package/src/eip-712/Types.ts +1 -1
- package/src/index.ts +1 -0
- package/src/model/ChainQualification.ts +33 -0
- package/src/model/index.ts +1 -1
- package/src/primitives/chain/getWindowedChain.ts +42 -0
- package/src/primitives/chain/index.ts +1 -0
- package/src/primitives/index.ts +1 -0
- package/src/primitives/rewards/networkStakeStepRewardPositionWeight.ts +4 -3
- package/src/primitives/stake/allStakersForStep.ts +1 -1
- package/src/primitives/stake/weightedStakeForRangeByPosition.ts +10 -2
- package/src/primitives/uncle/findBestUncle.ts +8 -0
- package/src/primitives/uncle/findUncles.ts +75 -0
- package/src/primitives/uncle/index.ts +3 -0
- package/src/primitives/uncle/scoreUncle.ts +6 -0
- package/src/provider/signer/XyoSigner.ts +3 -0
- package/src/provider/viewer/XyoViewer.ts +7 -7
- package/src/runners/Finalization.ts +15 -0
- package/src/runners/index.ts +1 -0
- package/src/simple/accountBalance/SimpleAccountBalanceViewer.ts +47 -30
- package/src/simple/block/SimpleBlockViewer.ts +23 -37
- package/src/simple/blockReward/SimpleBlockRewardViewer.ts +1 -0
- package/src/simple/blockValidation/SimpleBlockValidationViewer.ts +129 -0
- package/src/simple/blockValidation/index.ts +1 -0
- package/src/simple/chainStake/SimpleStakeViewer.ts +1 -0
- package/src/simple/datalake/AbstractSimpleDataLake.ts +2 -1
- package/src/simple/datalake/SimpleDataLakeRunner.ts +1 -0
- package/src/simple/datalake/SimpleDataLakeViewer.ts +1 -1
- package/src/simple/finalization/SimpleFinalizationRunner.ts +45 -0
- package/src/simple/finalization/SimpleFinalizationViewer.ts +101 -0
- package/src/simple/finalization/index.ts +2 -0
- package/src/simple/index.ts +3 -0
- package/src/simple/mempool/SimpleMempoolRunner.ts +11 -1
- package/src/simple/mempool/SimpleMempoolViewer.ts +41 -8
- package/src/simple/runner/SimpleXyoRunner.ts +3 -1
- package/src/simple/signer/SimpleXyoSigner.ts +26 -5
- package/src/simple/stakeEvents/SimpleStakeEventsViewer.ts +1 -0
- package/src/simple/timesync/SimpleTimeSyncViewer.ts +4 -2
- package/src/simple/windowedBlock/SimpleWindowedBlockViewer.ts +208 -0
- package/src/simple/windowedBlock/index.ts +1 -0
- package/src/summary/model/summary.ts +3 -4
- package/src/summary/primitives/balances/balancesSummary.ts +12 -12
- package/src/summary/primitives/schemas/schemasSummary.ts +12 -10
- package/src/summary/primitives/transfers/transfersSummary.ts +15 -17
- package/src/utils/isZodError.ts +1 -1
- package/src/validation/schema/Mnemonic.ts +1 -1
- package/src/viewers/AccountBalance.ts +23 -15
- package/src/viewers/Block.ts +2 -2
- package/src/viewers/BlockValidation.ts +47 -0
- package/src/viewers/Finalization.ts +19 -0
- package/src/viewers/Mempool.ts +1 -1
- package/src/viewers/StakeIntent.ts +2 -2
- package/src/viewers/TransactionValidation.ts +35 -0
- package/src/viewers/WindowedBlock.ts +17 -0
- package/src/viewers/index.ts +4 -0
- package/dist/neutral/model/Qualified.d.ts +0 -6
- package/dist/neutral/model/Qualified.d.ts.map +0 -1
- package/src/model/Qualified.ts +0 -9
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import type { Address } from '@xylabs/sdk-js'
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
} from '@xylabs/sdk-js'
|
|
5
|
-
import {
|
|
6
|
-
asBlockBoundWitnessWithStorageMeta, asXL1BlockNumber, asXL1BlockRange,
|
|
7
|
-
} from '@xyo-network/xl1-protocol'
|
|
2
|
+
import { asAddress, spanRootAsync } from '@xylabs/sdk-js'
|
|
3
|
+
import { asBlockBoundWitnessWithStorageMeta, asXL1BlockRange } from '@xyo-network/xl1-protocol'
|
|
8
4
|
|
|
9
5
|
import { deepCalculateFramesFromRange } from '../../../block/index.ts'
|
|
10
|
-
import
|
|
6
|
+
import {
|
|
7
|
+
type ChainQualified, type ChainQualifiedConfig, isChainQualifiedHeadConfig,
|
|
8
|
+
isChainQualifiedRangeConfig,
|
|
9
|
+
} from '../../../model/index.ts'
|
|
11
10
|
import { parseSignedBigInt } from '../../../SignedBigInt.ts'
|
|
12
11
|
import type { BalanceStepSummaryContext } from '../../model/index.ts'
|
|
13
12
|
import { balancesStepSummaryFromRange } from './balancesStepSummaryFromRange.ts'
|
|
14
13
|
|
|
15
14
|
export async function balancesSummary(
|
|
16
15
|
context: BalanceStepSummaryContext,
|
|
17
|
-
|
|
16
|
+
config?: ChainQualifiedConfig,
|
|
17
|
+
): Promise<ChainQualified<Record<Address, bigint>>> {
|
|
18
18
|
return await spanRootAsync('balancesSummary', async () => {
|
|
19
|
-
const [headHash] = await context.head()
|
|
19
|
+
const [headHash] = isChainQualifiedHeadConfig(config) ? [config.head] : await context.head()
|
|
20
20
|
const headResult = await context.store.chainMap.get(headHash)
|
|
21
21
|
const headBoundWitness = asBlockBoundWitnessWithStorageMeta(headResult, () => `Head block not found for hash: ${headHash}`)
|
|
22
|
-
const
|
|
22
|
+
const range = isChainQualifiedRangeConfig(config) ? config.range : asXL1BlockRange([0, headBoundWitness.block], true)
|
|
23
23
|
const ranges = deepCalculateFramesFromRange(asXL1BlockRange(
|
|
24
|
-
|
|
24
|
+
range,
|
|
25
25
|
{ name: 'balancesSummary' },
|
|
26
26
|
))
|
|
27
27
|
const summaries = await Promise.all(ranges.map(range => balancesStepSummaryFromRange(context, range)))
|
|
@@ -32,6 +32,6 @@ export async function balancesSummary(
|
|
|
32
32
|
balances[validAddress] = (balances[validAddress] ?? 0n) + parseSignedBigInt(balance)
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
return [balances,
|
|
35
|
+
return [balances, { range, head: headHash }]
|
|
36
36
|
})
|
|
37
37
|
}
|
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { spanRootAsync } from '@xylabs/sdk-js'
|
|
2
2
|
import type { Schema } from '@xyo-network/payload-model'
|
|
3
|
-
import {
|
|
4
|
-
asBlockBoundWitnessWithStorageMeta, asXL1BlockNumber, asXL1BlockRange,
|
|
5
|
-
} from '@xyo-network/xl1-protocol'
|
|
3
|
+
import { asBlockBoundWitnessWithStorageMeta, asXL1BlockRange } from '@xyo-network/xl1-protocol'
|
|
6
4
|
|
|
7
5
|
import { deepCalculateFramesFromRange } from '../../../block/index.ts'
|
|
8
|
-
import
|
|
6
|
+
import {
|
|
7
|
+
type ChainQualified, type ChainQualifiedConfig, isChainQualifiedHeadConfig,
|
|
8
|
+
isChainQualifiedRangeConfig,
|
|
9
|
+
} from '../../../model/index.ts'
|
|
9
10
|
import type { SchemasStepSummaryContext } from '../../model/index.ts'
|
|
10
11
|
import { schemasStepSummaryFromRange } from './schemasStepSummaryFromRange.ts'
|
|
11
12
|
|
|
12
13
|
export async function schemasSummary(
|
|
13
14
|
context: SchemasStepSummaryContext,
|
|
14
|
-
|
|
15
|
+
config?: ChainQualifiedConfig,
|
|
16
|
+
): Promise<ChainQualified<Record<Schema, number>>> {
|
|
15
17
|
return await spanRootAsync('schemasSummary', async () => {
|
|
16
|
-
const [headHash] = await context.head()
|
|
18
|
+
const [headHash] = isChainQualifiedHeadConfig(config) ? [config.head] : await context.head()
|
|
17
19
|
const headResult = await context.store.chainMap.get(headHash)
|
|
18
20
|
const headBoundWitness = asBlockBoundWitnessWithStorageMeta(headResult, () => `Head block not found for hash: ${headHash}`)
|
|
19
|
-
const
|
|
21
|
+
const range = isChainQualifiedRangeConfig(config) ? config.range : asXL1BlockRange([0, headBoundWitness.block], true)
|
|
20
22
|
const ranges = deepCalculateFramesFromRange(asXL1BlockRange(
|
|
21
|
-
|
|
23
|
+
range,
|
|
22
24
|
{ name: 'schemasSummary' },
|
|
23
25
|
))
|
|
24
26
|
const summaries = await Promise.all(ranges.map(range => schemasStepSummaryFromRange(context, range)))
|
|
@@ -28,6 +30,6 @@ export async function schemasSummary(
|
|
|
28
30
|
results[schema] = (results[schema] ?? 0) + count
|
|
29
31
|
}
|
|
30
32
|
}
|
|
31
|
-
return [results,
|
|
33
|
+
return [results, { range, head: headHash }]
|
|
32
34
|
})
|
|
33
35
|
}
|
|
@@ -1,31 +1,29 @@
|
|
|
1
1
|
import type { Address, Hash } from '@xylabs/sdk-js'
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
} from '@xylabs/sdk-js'
|
|
5
|
-
import {
|
|
6
|
-
asBlockBoundWitnessWithStorageMeta, asXL1BlockNumber, asXL1BlockRange,
|
|
7
|
-
} from '@xyo-network/xl1-protocol'
|
|
2
|
+
import { asAddress, spanRootAsync } from '@xylabs/sdk-js'
|
|
3
|
+
import { asBlockBoundWitnessWithStorageMeta, asXL1BlockRange } from '@xyo-network/xl1-protocol'
|
|
8
4
|
|
|
9
5
|
import { deepCalculateFramesFromRange } from '../../../block/index.ts'
|
|
10
|
-
import type {
|
|
6
|
+
import type { ChainQualified, ChainQualifiedConfig } from '../../../model/index.ts'
|
|
7
|
+
import { isChainQualifiedHeadConfig, isChainQualifiedRangeConfig } from '../../../model/index.ts'
|
|
11
8
|
import { parseSignedBigInt } from '../../../SignedBigInt.ts'
|
|
12
|
-
import type { TransfersStepSummaryContext } from '../../index.ts'
|
|
9
|
+
import type { TransfersStepSummaryContext } from '../../model/index.ts'
|
|
13
10
|
import { transfersStepSummaryFromRange } from './transfersStepSummaryFromRange.ts'
|
|
14
11
|
|
|
15
12
|
// the summary of amount of rewards claimed from the step reward pool by addresses
|
|
16
13
|
export async function transfersSummary(
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
context: TransfersStepSummaryContext,
|
|
15
|
+
config?: ChainQualifiedConfig,
|
|
16
|
+
): Promise<ChainQualified<Record<Address, Record<Address, bigint>>>> {
|
|
19
17
|
return await spanRootAsync('transferSummary', async () => {
|
|
20
|
-
const [headHash] = await
|
|
21
|
-
const headResult = await
|
|
22
|
-
const headBoundWitness = asBlockBoundWitnessWithStorageMeta(headResult, () => `Head block not found for hash: ${
|
|
23
|
-
const
|
|
18
|
+
const [headHash] = isChainQualifiedHeadConfig(config) ? [config.head] : await context.head()
|
|
19
|
+
const headResult = await context.store.chainMap.get(headHash)
|
|
20
|
+
const headBoundWitness = asBlockBoundWitnessWithStorageMeta(headResult, () => `Head block not found for hash: ${headHash}`)
|
|
21
|
+
const range = isChainQualifiedRangeConfig(config) ? config.range : asXL1BlockRange([0, headBoundWitness.block], true)
|
|
24
22
|
const ranges = deepCalculateFramesFromRange(asXL1BlockRange(
|
|
25
|
-
|
|
23
|
+
range,
|
|
26
24
|
{ name: 'transfersSummary' },
|
|
27
25
|
))
|
|
28
|
-
const summaries = await Promise.all(ranges.map(range => transfersStepSummaryFromRange(
|
|
26
|
+
const summaries = await Promise.all(ranges.map(range => transfersStepSummaryFromRange(context, range)))
|
|
29
27
|
const transfers: Record<Address, Record<Address, bigint>> = {}
|
|
30
28
|
for (let summary of summaries) {
|
|
31
29
|
for (const [from, toMap] of Object.entries(summary.transfers)) {
|
|
@@ -37,7 +35,7 @@ export async function transfersSummary(
|
|
|
37
35
|
}
|
|
38
36
|
}
|
|
39
37
|
}
|
|
40
|
-
return [transfers,
|
|
38
|
+
return [transfers, { range, head: headHash }]
|
|
41
39
|
})
|
|
42
40
|
}
|
|
43
41
|
|
package/src/utils/isZodError.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import type
|
|
2
|
-
|
|
3
|
-
} from '@xylabs/sdk-js'
|
|
1
|
+
import { type Address, type Promisable } from '@xylabs/sdk-js'
|
|
2
|
+
import { zodIsFactory } from '@xylabs/zod'
|
|
4
3
|
import { WithHashMetaZod } from '@xyo-network/payload-model'
|
|
5
4
|
import {
|
|
6
5
|
type AttoXL1,
|
|
7
6
|
TransferZod,
|
|
8
|
-
type XL1BlockRange,
|
|
9
7
|
} from '@xyo-network/xl1-protocol'
|
|
10
8
|
import { BlockBoundWitnessZod, TransactionBoundWitnessZod } from '@xyo-network/xl1-protocol'
|
|
11
|
-
import z from 'zod'
|
|
9
|
+
import { z } from 'zod'
|
|
12
10
|
|
|
13
|
-
import
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
import {
|
|
12
|
+
ChainQualificationZod,
|
|
13
|
+
type ChainQualified,
|
|
14
|
+
ChainQualifiedConfigZod,
|
|
15
|
+
type Provider,
|
|
16
16
|
} from '../model/index.ts'
|
|
17
17
|
|
|
18
18
|
export const AccountBalanceHistoryItemZod = z.tuple([
|
|
@@ -23,19 +23,27 @@ export const AccountBalanceHistoryItemZod = z.tuple([
|
|
|
23
23
|
|
|
24
24
|
export type AccountBalanceHistoryItem = z.infer<typeof AccountBalanceHistoryItemZod>
|
|
25
25
|
|
|
26
|
+
export const AccountBalanceQualificationZod = ChainQualificationZod
|
|
27
|
+
export type AccountBalanceQualification = z.infer<typeof AccountBalanceQualificationZod>
|
|
28
|
+
export const isAccountBalanceQualification = zodIsFactory(AccountBalanceQualificationZod)
|
|
29
|
+
|
|
30
|
+
export const AccountBalanceConfigZod = ChainQualifiedConfigZod
|
|
31
|
+
export type AccountBalanceConfig = z.infer<typeof AccountBalanceConfigZod>
|
|
32
|
+
export const isAccountBalanceCOnfig = zodIsFactory(AccountBalanceConfigZod)
|
|
33
|
+
|
|
26
34
|
export interface AccountBalanceViewerMethods {
|
|
27
35
|
qualifiedAccountBalanceHistories(
|
|
28
36
|
address: Address[],
|
|
29
|
-
|
|
30
|
-
): Promisable<
|
|
31
|
-
qualifiedAccountBalances(address: Address[],
|
|
37
|
+
config: AccountBalanceConfig
|
|
38
|
+
): Promisable<ChainQualified<Record<Address, AccountBalanceHistoryItem[]>>>
|
|
39
|
+
qualifiedAccountBalances(address: Address[], config: AccountBalanceConfig): Promisable<ChainQualified<Record<Address, AttoXL1>>>
|
|
32
40
|
}
|
|
33
41
|
|
|
34
42
|
export interface AccountBalanceViewer extends AccountBalanceViewerMethods, Provider<AccountBalanceViewerMoniker> {
|
|
35
|
-
accountBalance(address: Address,
|
|
36
|
-
accountBalanceHistories(address: Address[],
|
|
37
|
-
accountBalanceHistory(address: Address,
|
|
38
|
-
accountBalances(address: Address[],
|
|
43
|
+
accountBalance(address: Address, config?: AccountBalanceConfig): Promisable<AttoXL1>
|
|
44
|
+
accountBalanceHistories(address: Address[], config?: AccountBalanceConfig): Promisable<Record<Address, AccountBalanceHistoryItem[]>>
|
|
45
|
+
accountBalanceHistory(address: Address, config?: AccountBalanceConfig): Promisable<AccountBalanceHistoryItem[]>
|
|
46
|
+
accountBalances(address: Address[], config?: AccountBalanceConfig): Promisable<Record<Address, AttoXL1>>
|
|
39
47
|
}
|
|
40
48
|
|
|
41
49
|
export const AccountBalanceViewerMoniker = 'AccountBalanceViewer' as const
|
package/src/viewers/Block.ts
CHANGED
|
@@ -4,7 +4,7 @@ import type {
|
|
|
4
4
|
ChainId, SignedHydratedBlockWithHashMeta, XL1BlockNumber,
|
|
5
5
|
} from '@xyo-network/xl1-protocol'
|
|
6
6
|
|
|
7
|
-
import type { Provider } from '../model/index.ts'
|
|
7
|
+
import type { Provider, ProviderMoniker } from '../model/index.ts'
|
|
8
8
|
|
|
9
9
|
export interface BlockViewerMethods {
|
|
10
10
|
blocksByHash(hash: Hash, limit?: number): Promisable<SignedHydratedBlockWithHashMeta[]>
|
|
@@ -16,7 +16,7 @@ export interface BlockViewerMethods {
|
|
|
16
16
|
export const BlockViewerMoniker = 'BlockViewer' as const
|
|
17
17
|
export type BlockViewerMoniker = typeof BlockViewerMoniker
|
|
18
18
|
|
|
19
|
-
export interface BlockViewer extends BlockViewerMethods, Provider<
|
|
19
|
+
export interface BlockViewer<TMoniker extends ProviderMoniker = BlockViewerMoniker> extends BlockViewerMethods, Provider<TMoniker> {
|
|
20
20
|
blockByHash(hash: Hash): Promisable<SignedHydratedBlockWithHashMeta | null>
|
|
21
21
|
blockByNumber(block: XL1BlockNumber): Promisable<SignedHydratedBlockWithHashMeta | null>
|
|
22
22
|
chainId(): Promisable<ChainId>
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type Promisable } from '@xylabs/sdk-js'
|
|
2
|
+
import { zodIsFactory } from '@xylabs/zod'
|
|
3
|
+
import type { HydratedBlock, SignedHydratedBlockWithHashMeta } from '@xyo-network/xl1-protocol'
|
|
4
|
+
import { z } from 'zod'
|
|
5
|
+
|
|
6
|
+
import {
|
|
7
|
+
ChainQualificationZod, ChainQualifiedHeadConfigZod, ChainQualifiedRangeConfigZod, type Provider,
|
|
8
|
+
} from '../model/index.ts'
|
|
9
|
+
import type { HydratedBlockValidationError } from '../validation/index.ts'
|
|
10
|
+
|
|
11
|
+
export const BlockValidationQualificationZod = ChainQualificationZod
|
|
12
|
+
export type BlockValidationQualification = z.infer<typeof BlockValidationQualificationZod>
|
|
13
|
+
export const isBlockValidationQualification = zodIsFactory(BlockValidationQualificationZod)
|
|
14
|
+
|
|
15
|
+
export const BlockValidationConfigFieldsZod = z.object({
|
|
16
|
+
value: z.boolean().optional(),
|
|
17
|
+
state: z.boolean().optional(),
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
export const BlockValidationConfigZod = z.union([
|
|
21
|
+
BlockValidationConfigFieldsZod.extend(ChainQualifiedHeadConfigZod.shape),
|
|
22
|
+
BlockValidationConfigFieldsZod.extend(ChainQualifiedRangeConfigZod.shape),
|
|
23
|
+
BlockValidationConfigFieldsZod,
|
|
24
|
+
z.object({}),
|
|
25
|
+
])
|
|
26
|
+
|
|
27
|
+
export type BlockValidationConfig = z.infer<typeof BlockValidationConfigZod>
|
|
28
|
+
export const isBlockValidationConfig = zodIsFactory(BlockValidationConfigZod)
|
|
29
|
+
|
|
30
|
+
export interface BlockValidationViewerMethods {
|
|
31
|
+
qualifiedValidateBlocks(
|
|
32
|
+
blocks: HydratedBlock[],
|
|
33
|
+
config?: BlockValidationConfig
|
|
34
|
+
): Promisable<[HydratedBlockValidationError[], BlockValidationQualification]>
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export const BlockValidationViewerMoniker = 'BlockValidationViewer' as const
|
|
38
|
+
export type BlockValidationViewerMoniker = typeof BlockValidationViewerMoniker
|
|
39
|
+
|
|
40
|
+
export interface BlockValidationViewer extends BlockValidationViewerMethods, Provider<BlockValidationViewerMoniker> {
|
|
41
|
+
qualifiedValidateBlock(
|
|
42
|
+
block: SignedHydratedBlockWithHashMeta,
|
|
43
|
+
config?: BlockValidationConfig
|
|
44
|
+
): Promisable<[HydratedBlockValidationError[], BlockValidationQualification]>
|
|
45
|
+
validateBlock(block: SignedHydratedBlockWithHashMeta, config?: BlockValidationConfig): Promisable<HydratedBlockValidationError[]>
|
|
46
|
+
validateBlocks(blocks: SignedHydratedBlockWithHashMeta[], config?: BlockValidationConfig): Promisable<HydratedBlockValidationError[]>
|
|
47
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Hash } from '@xylabs/hex'
|
|
2
|
+
import type {
|
|
3
|
+
SignedBlockBoundWitnessWithHashMeta, SignedHydratedBlockWithHashMeta, XL1BlockNumber,
|
|
4
|
+
} from '@xyo-network/xl1-protocol'
|
|
5
|
+
|
|
6
|
+
import type { Provider } from '../model/index.ts'
|
|
7
|
+
|
|
8
|
+
export interface FinalizationViewerMethods {
|
|
9
|
+
head(): Promise<SignedHydratedBlockWithHashMeta>
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const FinalizationViewerMoniker = 'FinalizationViewer' as const
|
|
13
|
+
export type FinalizationViewerMoniker = typeof FinalizationViewerMoniker
|
|
14
|
+
|
|
15
|
+
export interface FinalizationViewer extends FinalizationViewerMethods, Provider<FinalizationViewerMoniker> {
|
|
16
|
+
headBlock(): Promise<SignedBlockBoundWitnessWithHashMeta>
|
|
17
|
+
headHash(): Promise<Hash>
|
|
18
|
+
headNumber(): Promise<XL1BlockNumber>
|
|
19
|
+
}
|
package/src/viewers/Mempool.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { HashZod } from '@xylabs/sdk-js'
|
|
2
2
|
import type { SignedHydratedBlockWithHashMeta, SignedHydratedTransactionWithHashMeta } from '@xyo-network/xl1-protocol'
|
|
3
3
|
import { XL1BlockRangeZod } from '@xyo-network/xl1-protocol'
|
|
4
|
-
import z from 'zod'
|
|
4
|
+
import { z } from 'zod'
|
|
5
5
|
|
|
6
6
|
import type { Provider } from '../model/index.ts'
|
|
7
7
|
|
|
@@ -3,10 +3,10 @@ import type {
|
|
|
3
3
|
} from '@xylabs/sdk-js'
|
|
4
4
|
import type { ChainStakeIntent, XL1BlockRange } from '@xyo-network/xl1-protocol'
|
|
5
5
|
|
|
6
|
-
import type {
|
|
6
|
+
import type { ChainQualified, Provider } from '../model/index.ts'
|
|
7
7
|
|
|
8
8
|
export interface StakeIntentViewerMethods {
|
|
9
|
-
qualifiedIntentByAddress(address: Address, headOrRange?: Hash | XL1BlockRange): Promisable<
|
|
9
|
+
qualifiedIntentByAddress(address: Address, headOrRange?: Hash | XL1BlockRange): Promisable<ChainQualified<ChainStakeIntent | null>>
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
export const StakeIntentViewerMoniker = 'StakeIntentViewer' as const
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type Promisable } from '@xylabs/sdk-js'
|
|
2
|
+
import { zodIsFactory } from '@xylabs/zod'
|
|
3
|
+
import { type HydratedTransaction, type ValidationError } from '@xyo-network/xl1-protocol'
|
|
4
|
+
import type { z } from 'zod'
|
|
5
|
+
|
|
6
|
+
import {
|
|
7
|
+
ChainQualificationZod, ChainQualifiedConfigZod, type Provider,
|
|
8
|
+
} from '../model/index.ts'
|
|
9
|
+
|
|
10
|
+
export const TransactionValidationQualificationZod = ChainQualificationZod
|
|
11
|
+
export type TransactionValidationQualification = z.infer<typeof TransactionValidationQualificationZod>
|
|
12
|
+
export const isTransactionValidationQualification = zodIsFactory(TransactionValidationQualificationZod)
|
|
13
|
+
|
|
14
|
+
export const TransactionValidationConfigZod = ChainQualifiedConfigZod
|
|
15
|
+
export type TransactionValidationConfig = z.infer<typeof TransactionValidationConfigZod>
|
|
16
|
+
export const isTransactionValidationConfig = zodIsFactory(TransactionValidationConfigZod)
|
|
17
|
+
|
|
18
|
+
export interface TransactionValidationViewerMethods {
|
|
19
|
+
qualifiedValidateTransactions(
|
|
20
|
+
transactions: HydratedTransaction[],
|
|
21
|
+
config?: TransactionValidationConfig
|
|
22
|
+
): Promisable<[ValidationError[][], TransactionValidationQualification]>
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export const TransactionValidationViewerMoniker = 'TransactionValidationViewer' as const
|
|
26
|
+
export type TransactionValidationViewerMoniker = typeof TransactionValidationViewerMoniker
|
|
27
|
+
|
|
28
|
+
export interface TransactionValidationViewer extends TransactionValidationViewerMethods, Provider<TransactionValidationViewerMoniker> {
|
|
29
|
+
qualifiedValidateTransaction(
|
|
30
|
+
transaction: HydratedTransaction,
|
|
31
|
+
config?: TransactionValidationConfig
|
|
32
|
+
): Promisable<[ValidationError[], TransactionValidationQualification]>
|
|
33
|
+
validateTransaction(transaction: HydratedTransaction[], config?: TransactionValidationConfig): Promisable<ValidationError[]>
|
|
34
|
+
validateTransactions(transactions: HydratedTransaction[], config?: TransactionValidationConfig): Promisable<ValidationError[][]>
|
|
35
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Hash } from '@xylabs/hex'
|
|
2
|
+
import type { Promisable } from '@xylabs/sdk-js'
|
|
3
|
+
import type { HydratedBlockWithHashMeta } from '@xyo-network/xl1-protocol'
|
|
4
|
+
|
|
5
|
+
import type { Provider, ProviderMoniker } from '../model/index.ts'
|
|
6
|
+
import type { BlockViewerMethods } from './Block.ts'
|
|
7
|
+
|
|
8
|
+
export interface WindowedBlockViewerMethods extends BlockViewerMethods {
|
|
9
|
+
blocksByTransactionHashes(hashes: Hash[]): Promisable<HydratedBlockWithHashMeta[]>
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const WindowedBlockViewerMoniker = 'WindowedBlockViewer' as const
|
|
13
|
+
export type WindowedBlockViewerMoniker = typeof WindowedBlockViewerMoniker
|
|
14
|
+
|
|
15
|
+
export interface WindowedBlockViewer<TMoniker extends ProviderMoniker = WindowedBlockViewerMoniker> extends WindowedBlockViewerMethods, Provider<TMoniker> {
|
|
16
|
+
blockByTransactionHash(hash: Hash): Promisable<HydratedBlockWithHashMeta | null>
|
|
17
|
+
}
|
package/src/viewers/index.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export * from './AccountBalance.ts'
|
|
2
2
|
export * from './Block.ts'
|
|
3
3
|
export * from './BlockReward.ts'
|
|
4
|
+
export * from './BlockValidation.ts'
|
|
4
5
|
export * from './ChainContract.ts'
|
|
5
6
|
export * from './ChainStakeViewer.ts'
|
|
7
|
+
export * from './Finalization.ts'
|
|
6
8
|
export * from './Fork.ts'
|
|
7
9
|
export * from './Mempool.ts'
|
|
8
10
|
export * from './NetworkStakeStepReward.ts'
|
|
@@ -13,4 +15,6 @@ export * from './StepStake.ts'
|
|
|
13
15
|
export * from './StepViewer.ts'
|
|
14
16
|
export * from './TimeSync.ts'
|
|
15
17
|
export * from './Transaction.ts'
|
|
18
|
+
export * from './TransactionValidation.ts'
|
|
16
19
|
export * from './TransferBalance.ts'
|
|
20
|
+
export * from './WindowedBlock.ts'
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { type Hash } from '@xylabs/sdk-js';
|
|
2
|
-
import { type XL1BlockRange } from '@xyo-network/xl1-protocol';
|
|
3
|
-
import z from 'zod';
|
|
4
|
-
export type Qualified<T> = [T, XL1BlockRange, Hash];
|
|
5
|
-
export declare const QualifiedZod: <T>(zodType: z.ZodType<T>) => z.ZodTuple<[z.ZodType<T, unknown, z.z.core.$ZodTypeInternals<T, unknown>>, z.ZodTuple<[z.ZodPipe<z.ZodNumber, z.ZodTransform<import("@xyo-network/xl1-protocol").XL1BlockNumber, number>>, z.ZodPipe<z.ZodNumber, z.ZodTransform<import("@xyo-network/xl1-protocol").XL1BlockNumber, number>>], null>, z.ZodPipe<z.ZodString, z.ZodTransform<Hash, string>>], null>;
|
|
6
|
-
//# sourceMappingURL=Qualified.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Qualified.d.ts","sourceRoot":"","sources":["../../../src/model/Qualified.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAW,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,KAAK,aAAa,EAAoB,MAAM,2BAA2B,CAAA;AAChF,OAAO,CAAC,MAAM,KAAK,CAAA;AAEnB,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;AAEnD,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,wWAEpD,CAAA"}
|
package/src/model/Qualified.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { type Hash, HashZod } from '@xylabs/sdk-js'
|
|
2
|
-
import { type XL1BlockRange, XL1BlockRangeZod } from '@xyo-network/xl1-protocol'
|
|
3
|
-
import z from 'zod'
|
|
4
|
-
|
|
5
|
-
export type Qualified<T> = [T, XL1BlockRange, Hash]
|
|
6
|
-
|
|
7
|
-
export const QualifiedZod = <T>(zodType: z.ZodType<T>) => {
|
|
8
|
-
return z.tuple([zodType, XL1BlockRangeZod, HashZod])
|
|
9
|
-
}
|