@xyo-network/xl1-protocol 5.1.4 → 5.2.0
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/modules/network-model/staticRest/layout/chainParams.d.ts +371 -0
- package/dist/neutral/modules/network-model/staticRest/layout/chainParams.d.ts.map +1 -0
- package/dist/neutral/modules/network-model/staticRest/layout/chainParamsRules.d.ts +36 -0
- package/dist/neutral/modules/network-model/staticRest/layout/chainParamsRules.d.ts.map +1 -0
- package/dist/neutral/modules/network-model/staticRest/layout/index.d.ts +3 -0
- package/dist/neutral/modules/network-model/staticRest/layout/index.d.ts.map +1 -1
- package/dist/neutral/modules/network-model/staticRest/layout/trustedPosture.d.ts +81 -0
- package/dist/neutral/modules/network-model/staticRest/layout/trustedPosture.d.ts.map +1 -0
- package/dist/neutral/modules/network-model/staticRest/paths/chainState.d.ts +7 -0
- package/dist/neutral/modules/network-model/staticRest/paths/chainState.d.ts.map +1 -1
- package/dist/neutral/modules/protocol-lib/validation/payload/InBlockPayloadValidationFunction.d.ts +37 -3
- package/dist/neutral/modules/protocol-lib/validation/payload/InBlockPayloadValidationFunction.d.ts.map +1 -1
- package/dist/neutral/modules/protocol-lib/validation/payload/index.d.ts +1 -0
- package/dist/neutral/modules/protocol-lib/validation/payload/index.d.ts.map +1 -1
- package/dist/neutral/modules/protocol-lib/validation/payload/ruleGate.d.ts +29 -0
- package/dist/neutral/modules/protocol-lib/validation/payload/ruleGate.d.ts.map +1 -0
- package/dist/neutral/modules/protocol-lib/viewers/ChainParams.d.ts +26 -0
- package/dist/neutral/modules/protocol-lib/viewers/ChainParams.d.ts.map +1 -0
- package/dist/neutral/modules/protocol-lib/viewers/index.d.ts +1 -0
- package/dist/neutral/modules/protocol-lib/viewers/index.d.ts.map +1 -1
- package/dist/neutral/modules/protocol-model/block/AllowedBlockPayload.d.ts +14 -2
- package/dist/neutral/modules/protocol-model/block/AllowedBlockPayload.d.ts.map +1 -1
- package/dist/neutral/modules/protocol-model/block/BlockBoundWitness.d.ts +19 -0
- package/dist/neutral/modules/protocol-model/block/BlockBoundWitness.d.ts.map +1 -1
- package/dist/neutral/modules/protocol-model/block/HydratedBlock.d.ts +44 -0
- package/dist/neutral/modules/protocol-model/block/HydratedBlock.d.ts.map +1 -1
- package/dist/neutral/modules/protocol-model/block/signed/SignedBlockBoundWitness.d.ts +6 -0
- package/dist/neutral/modules/protocol-model/block/signed/SignedBlockBoundWitness.d.ts.map +1 -1
- package/dist/neutral/modules/protocol-model/block/signed/SignedBlockBoundWitnessWithHashMeta.d.ts +10 -0
- package/dist/neutral/modules/protocol-model/block/signed/SignedBlockBoundWitnessWithHashMeta.d.ts.map +1 -1
- package/dist/neutral/modules/protocol-model/block/signed/SignedBlockBoundWitnessWithStorageMeta.d.ts +12 -0
- package/dist/neutral/modules/protocol-model/block/signed/SignedBlockBoundWitnessWithStorageMeta.d.ts.map +1 -1
- package/dist/neutral/modules/protocol-model/block/unsigned/UnsignedBlockBoundWitness.d.ts +6 -0
- package/dist/neutral/modules/protocol-model/block/unsigned/UnsignedBlockBoundWitness.d.ts.map +1 -1
- package/dist/neutral/modules/protocol-model/evidence/EvidenceDisposition.d.ts +1 -1
- package/dist/neutral/modules/protocol-model/evidence/EvidenceNotePayload.d.ts +1 -1
- package/dist/neutral/modules/protocol-model/model/AccountBalance.d.ts +1 -0
- package/dist/neutral/modules/protocol-model/model/AccountBalance.d.ts.map +1 -1
- package/dist/neutral/modules/protocol-model/model/Context/ChainContext.zod.d.ts +3 -0
- package/dist/neutral/modules/protocol-model/model/Context/ChainContext.zod.d.ts.map +1 -1
- package/dist/neutral/modules/protocol-model/model/Context/HeadContext.zod.d.ts +2 -0
- package/dist/neutral/modules/protocol-model/model/Context/HeadContext.zod.d.ts.map +1 -1
- package/dist/neutral/modules/protocol-model/model/OffenseCode.d.ts +13 -0
- package/dist/neutral/modules/protocol-model/model/OffenseCode.d.ts.map +1 -0
- package/dist/neutral/modules/protocol-model/model/RuleActivation.d.ts +63 -0
- package/dist/neutral/modules/protocol-model/model/RuleActivation.d.ts.map +1 -0
- package/dist/neutral/modules/protocol-model/model/SyncStepSummary.d.ts +6 -0
- package/dist/neutral/modules/protocol-model/model/SyncStepSummary.d.ts.map +1 -1
- package/dist/neutral/modules/protocol-model/model/index.d.ts +2 -0
- package/dist/neutral/modules/protocol-model/model/index.d.ts.map +1 -1
- package/dist/neutral/modules/protocol-model/model/version.d.ts +2 -2
- package/dist/neutral/modules/protocol-model/payload/index.d.ts +1 -0
- package/dist/neutral/modules/protocol-model/payload/index.d.ts.map +1 -1
- package/dist/neutral/modules/protocol-model/payload/slash/SlashAdjudicationPayload.d.ts +51 -0
- package/dist/neutral/modules/protocol-model/payload/slash/SlashAdjudicationPayload.d.ts.map +1 -0
- package/dist/neutral/modules/protocol-model/payload/slash/SlashChallengePayload.d.ts +33 -0
- package/dist/neutral/modules/protocol-model/payload/slash/SlashChallengePayload.d.ts.map +1 -0
- package/dist/neutral/modules/protocol-model/payload/slash/SlashCommitPayload.d.ts +35 -0
- package/dist/neutral/modules/protocol-model/payload/slash/SlashCommitPayload.d.ts.map +1 -0
- package/dist/neutral/modules/protocol-model/payload/slash/SlashEvidencePayload.d.ts +33 -0
- package/dist/neutral/modules/protocol-model/payload/slash/SlashEvidencePayload.d.ts.map +1 -0
- package/dist/neutral/modules/protocol-model/payload/slash/SlashRequestPayload.d.ts +46 -0
- package/dist/neutral/modules/protocol-model/payload/slash/SlashRequestPayload.d.ts.map +1 -0
- package/dist/neutral/modules/protocol-model/payload/slash/index.d.ts +6 -0
- package/dist/neutral/modules/protocol-model/payload/slash/index.d.ts.map +1 -0
- package/dist/neutral/modules/protocol-model/rejection/BlockRejectionPayload.d.ts +4 -0
- package/dist/neutral/modules/protocol-model/rejection/BlockRejectionPayload.d.ts.map +1 -1
- package/dist/neutral/network-model.mjs +328 -114
- package/dist/neutral/network-model.mjs.map +4 -4
- package/dist/neutral/protocol-lib.mjs +19 -0
- package/dist/neutral/protocol-lib.mjs.map +3 -3
- package/dist/neutral/protocol-model.mjs +505 -296
- package/dist/neutral/protocol-model.mjs.map +4 -4
- package/package.json +3 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../src/modules/network-model/icons/local/local.svg", "../../src/modules/network-model/icons/mainnet/mainnet.svg", "../../src/modules/network-model/icons/sequence/testnet.svg", "../../src/modules/network-model/lib/Networks.ts", "../../src/modules/network-model/models/Bootstrap.ts", "../../src/modules/network-model/lib/NetworkDataLakeUrls.ts", "../../src/modules/network-model/modules/node/getNetworkNode.ts", "../../src/modules/network-model/manifest/network.json", "../../src/modules/network-model/manifest/networkManifest.ts", "../../src/modules/network-model/modules/node/getNetworkNodes.ts", "../../src/modules/network-model/modules/node/initNetworkNode.ts", "../../src/modules/network-model/staticRest/layout/chainContractManifest.ts", "../../src/modules/network-model/staticRest/layout/chainManifest.ts", "../../src/modules/network-model/staticRest/templates.ts", "../../src/modules/network-model/staticRest/paths/chainState.ts", "../../src/modules/network-model/staticRest/paths/finalized.ts", "../../src/modules/network-model/staticRest/paths/indexPaths.ts", "../../src/modules/network-model/staticRest/paths/transactionInclusionIndex.ts", "../../src/modules/network-model/staticRest/layout/evmEventIndex.ts", "../../src/modules/network-model/staticRest/layout/indexManifest.ts", "../../src/modules/network-model/staticRest/layout/networkStakeRewardsIndex.ts", "../../src/modules/network-model/staticRest/layout/transactionInclusionIndex.ts", "../../src/modules/network-model/staticRest/paths/evmEventIndex.ts", "../../src/modules/network-model/staticRest/paths/networkStakeRewardsIndex.ts", "../../src/modules/network-model/utils/ExplorerLinks.ts"],
|
|
4
|
-
"sourcesContent": ["<svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\"><g style=\"opacity:.5;\"><path d=\"M154.71,97c.46,2.59,2.5,4.62,5.1,5.05l14.05,2.34,31.71-46.17c4.57-6.65-3.62-14.62-10.14-9.87l-43.68,31.83,2.97,16.82Z\" style=\"fill:#f47f00;\"/><path d=\"M173.86,151.62l-14.05,2.34c-2.6.43-4.64,2.45-5.1,5.05l-2.97,16.82,43.68,31.83c6.52,4.75,14.71-3.21,10.14-9.87l-31.71-46.17Z\" style=\"fill:#f47f00;\"/><path d=\"M82.14,104.38l14.05-2.34c2.6-.43,4.64-2.45,5.1-5.05l2.97-16.82-43.68-31.83c-6.52-4.75-14.71,3.21-10.14,9.87l31.71,46.17Z\" style=\"fill:#f47f00;\"/><path d=\"M101.29,159c-.46-2.59-2.5-4.62-5.1-5.05l-14.05-2.34-31.71,46.17c-4.57,6.65,3.62,14.62,10.14,9.87l43.68-31.83-2.97-16.82Z\" style=\"fill:#f47f00;\"/></g><path d=\"M107.33,104l15.94-90.32c.93-5.3,8.53-5.3,9.47,0l15.94,90.32c.35,2.01,1.94,3.57,3.95,3.91l92.24,15.35c5.36.89,5.36,8.59,0,9.49l-92.24,15.35c-2.01.33-3.59,1.9-3.95,3.91l-15.94,90.32c-.93,5.3-8.53,5.3-9.47,0l-15.94-90.32c-.35-2.01-1.94-3.57-3.95-3.91l-92.24-15.35c-5.36-.89-5.36-8.59,0-9.49l92.24-15.35c2.01-.33,3.59-1.9,3.95-3.91Z\" style=\"fill:#f47f00;\"/></svg>", "<svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\"><path d=\"M154.71,97c.46,2.59,2.5,4.62,5.1,5.05l14.05,2.34,31.71-46.17c4.57-6.65-3.62-14.62-10.14-9.87l-43.68,31.83,2.97,16.82Z\" style=\"fill:#8d8fc6;\"/><path d=\"M173.86,151.62l-14.05,2.34c-2.6.43-4.64,2.45-5.1,5.05l-2.97,16.82,43.68,31.83c6.52,4.75,14.71-3.21,10.14-9.87l-31.71-46.17Z\" style=\"fill:#eb407a;\"/><path d=\"M82.14,104.38l14.05-2.34c2.6-.43,4.64-2.45,5.1-5.05l2.97-16.82-43.68-31.83c-6.52-4.75-14.71,3.21-10.14,9.87l31.71,46.17Z\" style=\"fill:#579fd6;\"/><path d=\"M101.29,159c-.46-2.59-2.5-4.62-5.1-5.05l-14.05-2.34-31.71,46.17c-4.57,6.65,3.62,14.62,10.14,9.87l43.68-31.83-2.97-16.82Z\" style=\"fill:#f27046;\"/><path d=\"M107.33,104l15.94-90.32c.93-5.3,8.53-5.3,9.47,0l15.94,90.32c.35,2.01,1.94,3.57,3.95,3.91l92.24,15.35c5.36.89,5.36,8.59,0,9.49l-92.24,15.35c-2.01.33-3.59,1.9-3.95,3.91l-15.94,90.32c-.93,5.3-8.53,5.3-9.47,0l-15.94-90.32c-.35-2.01-1.94-3.57-3.95-3.91l-92.24-15.35c-5.36-.89-5.36-8.59,0-9.49l92.24-15.35c2.01-.33,3.59-1.9,3.95-3.91Z\" style=\"fill:#572aff;\"/></svg>", "<svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\"><g style=\"opacity:.5;\"><path d=\"M154.71,97c.46,2.59,2.5,4.62,5.1,5.05l14.05,2.34,31.71-46.17c4.57-6.65-3.62-14.62-10.14-9.87l-43.68,31.83,2.97,16.82Z\" style=\"fill:#579fd6;\"/><path d=\"M173.86,151.62l-14.05,2.34c-2.6.43-4.64,2.45-5.1,5.05l-2.97,16.82,43.68,31.83c6.52,4.75,14.71-3.21,10.14-9.87l-31.71-46.17Z\" style=\"fill:#579fd6;\"/><path d=\"M82.14,104.38l14.05-2.34c2.6-.43,4.64-2.45,5.1-5.05l2.97-16.82-43.68-31.83c-6.52-4.75-14.71,3.21-10.14,9.87l31.71,46.17Z\" style=\"fill:#579fd6;\"/><path d=\"M101.29,159c-.46-2.59-2.5-4.62-5.1-5.05l-14.05-2.34-31.71,46.17c-4.57,6.65,3.62,14.62,10.14,9.87l43.68-31.83-2.97-16.82Z\" style=\"fill:#579fd6;\"/></g><path d=\"M107.33,104l15.94-90.32c.93-5.3,8.53-5.3,9.47,0l15.94,90.32c.35,2.01,1.94,3.57,3.95,3.91l92.24,15.35c5.36.89,5.36,8.59,0,9.49l-92.24,15.35c-2.01.33-3.59,1.9-3.95,3.91l-15.94,90.32c-.93,5.3-8.53,5.3-9.47,0l-15.94-90.32c-.35-2.01-1.94-3.57-3.95-3.91l-92.24-15.35c-5.36-.89-5.36-8.59,0-9.49l92.24-15.35c2.01-.33,3.59-1.9,3.95-3.91Z\" style=\"fill:#579fd6;\"/></svg>", "import { asHex } from '@ariestools/sdk'\n\nimport {\n LocalNetworkIconString, MainNetworkIconString, SequenceNetworkIconString,\n} from '../icons/index.ts'\nimport type { NetworkBootstrap, NetworkId } from '../models/index.ts'\nimport { NetworkBootstrapSchema } from '../models/index.ts'\n\n/** Bootstrap configuration for the XYO Layer 1 mainnet. */\nexport const MainNetwork: NetworkBootstrap = {\n chain: asHex('319e667ced10452a117472811130444ded357f26', true),\n description: 'Main Network for XYO Layer 1',\n icon: MainNetworkIconString,\n id: 'mainnet' as NetworkId,\n name: 'Mainnet',\n schema: NetworkBootstrapSchema,\n symbol: 'XL1',\n url: 'https://api.chain.xyo.network',\n explorerUrl: 'https://explore.xyo.network',\n}\n\n/** Bootstrap configuration for the XYO Layer 1 sequence (test) network. */\nexport const SequenceNetwork: NetworkBootstrap = {\n chain: asHex('4b43a753c8024c0e5000e8ac948ac0063ac624bc', true),\n description: 'Test Network for XYO Layer 1',\n icon: SequenceNetworkIconString,\n id: 'sequence' as NetworkId,\n name: 'Sequence',\n schema: NetworkBootstrapSchema,\n symbol: 'XL1',\n url: 'https://beta.api.chain.xyo.network',\n explorerUrl: 'https://beta.explore.xyo.network',\n}\n\n/** Bootstrap configuration for a local development network. */\nexport const LocalNetwork: NetworkBootstrap = {\n description: 'Local Node',\n icon: LocalNetworkIconString,\n id: 'local' as NetworkId,\n name: 'Local',\n schema: NetworkBootstrapSchema,\n symbol: 'XL1',\n url: 'http://localhost:8080',\n explorerUrl: 'http://localhost:3000',\n}\n\n/** Default set of available XYO Layer 1 networks (mainnet, sequence, local). */\nexport const DefaultNetworks: NetworkBootstrap[] = [MainNetwork, SequenceNetwork, LocalNetwork]\n", "import type { Address } from '@ariestools/sdk'\nimport { AsObjectFactory } from '@ariestools/sdk'\nimport type { Payload } from '@xyo-network/sdk'\nimport { asSchema, isPayloadOfSchemaType } from '@xyo-network/sdk'\n\nimport type { ChainId } from '#protocol-lib'\n\nimport type { NetworkId } from './NetworkId.ts'\n\n/** Connection details for accessing a chain endpoint. */\nexport interface ChainConnection {\n /** Chain Identifier - can be a hex (eth contract address) or a string */\n chain?: ChainId\n /** Name of the chain */\n name: string\n /** URL for accessing the network */\n url: string\n}\n\n/** Schema identifier for network bootstrap payloads. */\nexport const NetworkBootstrapSchema = asSchema('network.xyo.network.bootstrap', true)\n/** Schema type for network bootstrap payloads. */\nexport type NetworkBootstrapSchema = typeof NetworkBootstrapSchema\n\n/** Fields describing a chain fork origin. */\nexport interface ChainForkFields {\n /** Block Number at which the chain was forked from */\n forkedAtLastBlockNumber?: string\n /** Hash in the last block the chain was forked from */\n forkedAtLastHash?: string\n /** Address of the forked chain */\n forkedChainId?: Address\n}\n\n/** Core fields describing an XYO network. */\nexport interface NetworkFields {\n /** Description of the network */\n description: string\n /** URL for accessing the network explorer */\n explorerUrl?: string\n /** string representation of the icon (SVG) */\n icon?: string\n /** Machine-readable identifier */\n id: NetworkId\n /** Schema identifier for this configuration or payload. */\n schema: NetworkBootstrapSchema\n /** Symbol of the network */\n symbol?: string\n}\n\n/** Optional Properties can be found walking the chain to the genesis block */\nexport interface NetworkBootstrapFields extends NetworkFields, ChainForkFields, ChainConnection {}\n\n/** A network bootstrap extended with a flag indicating whether it is a custom network. */\nexport interface Network extends NetworkBootstrap {\n /** Application-defined bootstrap configuration passed through unchanged. */\n custom: boolean\n}\n\n/** Payload type containing all network bootstrap configuration fields. */\nexport type NetworkBootstrap = Payload<NetworkBootstrapFields, NetworkBootstrapSchema>\n\n/** Type guard that checks whether a payload is a NetworkBootstrap. */\nexport const isNetworkBootstrap = isPayloadOfSchemaType<NetworkBootstrap>(NetworkBootstrapSchema)\n\n/** Optionally casts a value to a Network if it is a valid NetworkBootstrap. */\nexport const asOptionalNetwork = AsObjectFactory.createOptional(isNetworkBootstrap)\n", "import type { GatewayName } from '#protocol-lib'\n\nimport {\n LocalNetwork, MainNetwork, SequenceNetwork,\n} from './Networks.ts'\n\n/** Map of network IDs to their corresponding Data Lake API URLs. */\nexport const NetworkDataLakeUrls = {\n [MainNetwork.id]: 'https://api.archivist.xyo.network/dataLake',\n [SequenceNetwork.id]: 'https://beta.api.archivist.xyo.network/dataLake',\n [LocalNetwork.id]: 'http://localhost:8080/dataLake',\n} as const satisfies Record<GatewayName, string>\n", "import type { AttachableNodeInstance, WalletInstance } from '@xyo-network/sdk'\nimport { ManifestWrapper, ModuleFactoryLocator } from '@xyo-network/sdk'\n\nimport { NetworkNodeManifest } from '../../manifest/index.ts'\n\n/**\n * Creates a network node from the network manifest using the provided wallet.\n *\n * @deprecated Bootstrapping an XYO `NodeInstance` via manifest is no longer supported.\n * Use `connectArchivist` from `@xyo-network/xl1-protocol-sdk` for co-located archivist\n * access, or `GatewayBuilder` from `@xyo-network/xl1-gateway` for remote RPC access.\n */\nexport async function getNetworkNode(wallet: WalletInstance): Promise<AttachableNodeInstance> {\n const wrapper = new ManifestWrapper(NetworkNodeManifest, wallet, new ModuleFactoryLocator())\n const [node] = await wrapper.loadNodes()\n return node\n}\n", "{\n \"$schema\": \"https://raw.githubusercontent.com/XYOracleNetwork/sdk-xyo-client-js/main/packages/manifest/src/schema.json\",\n \"nodes\": [\n {\n \"config\": {\n \"accountPath\": \"44'/60'/1\",\n \"name\": \"Network\",\n \"schema\": \"network.xyo.node.config\"\n },\n \"modules\": {\n \"private\": [],\n \"public\": []\n }\n }\n ],\n \"schema\": \"network.xyo.manifest\"\n}", "import type { PackageManifestPayload } from '@xyo-network/sdk'\n\nimport node from './network.json' with { type: 'json' }\n\n/** @deprecated XYO Node manifest bootstrap is no longer used; wire providers via archivist bindings or JsonRpc instead. */\nexport const NetworkNodeManifest = node as unknown as PackageManifestPayload\n", "import type { AttachableNodeInstance } from '@xyo-network/sdk'\n\nconst networkNodeMap = new Map<string, AttachableNodeInstance>()\n\n/** @deprecated Internal cache for deprecated `initNetworkNode`; do not use. */\nexport const getNetworkNodes = () => {\n return networkNodeMap\n}\n", "import type { AttachableNodeInstance, WalletInstance } from '@xyo-network/sdk'\n\nimport type { NetworkBootstrap } from '../../models/index.ts'\nimport { getNetworkNode } from './getNetworkNode.ts'\nimport { getNetworkNodes } from './getNetworkNodes.ts'\n\n/** @deprecated Use `connectArchivist` archivist bindings (`@xyo-network/xl1-protocol-sdk`) or `GatewayBuilder` (`@xyo-network/xl1-gateway`) instead of bootstrapping an XYO NodeInstance. */\nexport const initNetworkNode = async (activeNetwork: NetworkBootstrap, wallet: WalletInstance): Promise<AttachableNodeInstance> => {\n const networkNodeMap = getNetworkNodes()\n if (networkNodeMap.has(activeNetwork.url)) return networkNodeMap.get(activeNetwork.url)!\n\n const activeNetworkNode = await getNetworkNode(wallet)\n networkNodeMap.set(activeNetwork.url, activeNetworkNode)\n\n return activeNetworkNode\n}\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { z } from 'zod'\n\nimport {\n ChainIdZod, NumberishZod, type XL1BlockNumber,\n} from '#protocol-lib'\n\nconst ChainContractBlockNumberZod = NumberishZod\n .pipe(z.int().nonnegative())\n .transform(value => value as XL1BlockNumber)\n\n/** Schema id for the chain-contract manifest document. */\nexport const ChainContractManifestSchema = 'network.xyo.s3.chain.contract' as const\n/** Type literal for the chain-contract manifest schema. */\nexport type ChainContractManifestSchema = typeof ChainContractManifestSchema\n\n/** Bumped when the manifest shape changes, so readers can detect a mismatch. */\nexport const CHAIN_CONTRACT_MANIFEST_VERSION = 1\n\n/**\n * Zod schema for the static per-chain config at `chainContractByIdPath(chainId)`: the reward\n * contract, staking token, minimum withdrawal window, and (optional) fork edge. Immutable\n * once published \u2014 does not change per block, unlike `chain/head.json`.\n */\nexport const ChainContractManifestZod = z.object({\n /** Self-identifying chain id (matches the path key). Optional for older fixtures. */\n chainId: z.optional(ChainIdZod),\n forkedAtBlockNumber: ChainContractBlockNumberZod.nullable().optional(),\n forkedAtHash: z.string().nullable().optional(),\n forkedChainId: z.nullable(ChainIdZod).optional(),\n minWithdrawalBlocks: NumberishZod.pipe(z.int().nonnegative()),\n rewardsContract: z.string(),\n schema: z.literal(ChainContractManifestSchema),\n stakingTokenAddress: z.string(),\n version: z.int().positive(),\n})\n\n/** The static per-chain contract config at `chainContractByIdPath(chainId)`. */\nexport type ChainContractManifest = z.infer<typeof ChainContractManifestZod>\n\n/** Numeric-input-tolerant shape accepted when creating a chain-contract manifest. */\nexport type ChainContractManifestInput = z.input<typeof ChainContractManifestZod>\n\n/** Type guard that checks if a value is a valid ChainContractManifest. */\nexport const isChainContractManifest = zodIsFactory(ChainContractManifestZod)\n/** Converts a value to ChainContractManifest, throwing if invalid. */\nexport const asChainContractManifest = zodAsFactory(ChainContractManifestZod, 'asChainContractManifest')\n/** Non-validating cast to ChainContractManifest. */\nexport const toChainContractManifest = zodToFactory(ChainContractManifestZod, 'toChainContractManifest')\n\n/** Builds a validated chain-contract manifest. */\nexport function createChainContractManifest(\n config: Omit<ChainContractManifestInput, 'schema' | 'version'>,\n): ChainContractManifest {\n return ChainContractManifestZod.parse({\n ...config,\n schema: ChainContractManifestSchema,\n version: CHAIN_CONTRACT_MANIFEST_VERSION,\n })\n}\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { z } from 'zod'\n\nimport { chainManifestPathTemplates } from '../templates.ts'\n\n/** Bumped when the finalized layout changes shape, so readers can detect a mismatch. */\nexport const CHAIN_LAYOUT_VERSION = 1\n\n/** Schema id for the finalized layout manifest document. */\nexport const ChainManifestSchema = 'network.xyo.s3.chain.manifest' as const\n/** Type literal for the chain manifest schema. */\nexport type ChainManifestSchema = typeof ChainManifestSchema\n\n/** Path templates for the finalized + chain-state files. */\nexport const ChainManifestPathsZod = z.object({\n blockByHash: z.string(),\n blockByNumber: z.string(),\n head: z.string(),\n payload: z.string(),\n})\n\n/** Type for chain manifest path templates. */\nexport type ChainManifestPaths = z.infer<typeof ChainManifestPathsZod>\n\n/** Zod schema for the finalized layout descriptor at `manifestPath()`. */\nexport const ChainManifestZod = z.object({\n /** Lowest block number available in the bucket (genesis until pruning exists). */\n earliestBlock: z.int().nonnegative(),\n /** Storage/wire encoding of the published files (also on each object's Content-Encoding). */\n encoding: z.string(),\n paths: ChainManifestPathsZod,\n schema: z.literal(ChainManifestSchema),\n version: z.int().positive(),\n})\n\n/** The finalized layout descriptor at `manifestPath()`. */\nexport type ChainManifest = z.infer<typeof ChainManifestZod>\n\n/** Type guard that checks if a value is a valid ChainManifest. */\nexport const isChainManifest = zodIsFactory(ChainManifestZod)\n/** Converts a value to ChainManifest, throwing if invalid. */\nexport const asChainManifest = zodAsFactory(ChainManifestZod, 'asChainManifest')\n/** Non-validating cast to ChainManifest. */\nexport const toChainManifest = zodToFactory(ChainManifestZod, 'toChainManifest')\n\n/** Builds a validated chain manifest with path templates derived from the path builders. */\nexport function createChainManifest(encoding: string, earliestBlock = 0): ChainManifest {\n return asChainManifest({\n earliestBlock,\n encoding,\n paths: chainManifestPathTemplates(),\n schema: ChainManifestSchema,\n version: CHAIN_LAYOUT_VERSION,\n }, true)\n}\n", "import { asHash } from '@ariestools/sdk'\n\nimport type { IndexSummaryFamily } from '#protocol-lib'\n\nimport { headPath } from './paths/chainState.ts'\nimport {\n blockHashPath, blockNumberPath, payloadPath,\n} from './paths/finalized.ts'\nimport { indexSummaryPath } from './paths/indexPaths.ts'\nimport { transactionInclusionPath } from './paths/transactionInclusionIndex.ts'\n\n/** Sentinel values used when deriving self-describing path templates from concrete builders. */\nconst TEMPLATE_SLOTS = {\n block: 0,\n hash: asHash('0'.repeat(64), true),\n index: 99,\n level: 42,\n} as const\n\n/**\n * Replaces concrete slot literals in a path with named `{placeholder}` segments.\n * Used to derive manifest path templates from the path builders so the two cannot drift.\n */\nexport function toPathTemplate(path: string, slots: { literal: string; name: string }[]): string {\n let result = path\n for (const { literal, name } of slots) {\n if (!result.includes(literal)) {\n throw new Error(`Template slot \"${literal}\" not found in path \"${path}\"`)\n }\n result = result.split(literal).join(`{${name}}`)\n }\n return result\n}\n\n/** Fills `{placeholder}` segments in a manifest path template. Used in conformance tests. */\nexport function interpolatePathTemplate(template: string, values: Record<string, string | number>): string {\n let result = template\n for (const [key, value] of Object.entries(values)) {\n result = result.split(`{${key}}`).join(String(value))\n }\n return result\n}\n\n/** Self-describing template for `blockNumberPath`. */\nexport const blockNumberPathTemplate = (): string =>\n toPathTemplate(blockNumberPath(TEMPLATE_SLOTS.block), [{ literal: String(TEMPLATE_SLOTS.block), name: 'block' }])\n\n/** Self-describing template for `blockHashPath`. */\nexport const blockHashPathTemplate = (): string =>\n toPathTemplate(blockHashPath(TEMPLATE_SLOTS.hash), [{ literal: TEMPLATE_SLOTS.hash, name: 'hash' }])\n\n/** Self-describing template for `payloadPath`. */\nexport const payloadPathTemplate = (): string =>\n toPathTemplate(payloadPath(TEMPLATE_SLOTS.hash), [{ literal: TEMPLATE_SLOTS.hash, name: 'hash' }])\n\n/** Self-describing templates for finalized + chain-state files carried in the chain manifest. */\nexport function chainManifestPathTemplates(): {\n blockByHash: string\n blockByNumber: string\n head: string\n payload: string\n} {\n return {\n blockByHash: blockHashPathTemplate(),\n blockByNumber: blockNumberPathTemplate(),\n head: headPath(),\n payload: payloadPathTemplate(),\n }\n}\n\n/** Self-describing template for one index summary family, e.g. `blocks/{level}/{index}.json`. */\nexport function indexSummaryPathTemplate(family: IndexSummaryFamily): string {\n const path = indexSummaryPath(family, TEMPLATE_SLOTS.level, TEMPLATE_SLOTS.index)\n return toPathTemplate(path, [\n { literal: String(TEMPLATE_SLOTS.level), name: 'level' },\n { literal: String(TEMPLATE_SLOTS.index), name: 'index' },\n ])\n}\n\n/** Self-describing template for the hash-addressed transaction-inclusion lookup. */\nexport function transactionInclusionPathTemplate(): string {\n return toPathTemplate(transactionInclusionPath(TEMPLATE_SLOTS.hash), [\n { literal: TEMPLATE_SLOTS.hash, name: 'hash' },\n ])\n}\n", "/**\n * Path builders for the chain-state (mutable) bucket.\n *\n * Paths are relative \u2014 no leading slash \u2014 and joined to a base URL by the consumer.\n */\n\n/** The mutable head pointer: the current head SignedHydratedBlockWithHashMeta. */\nexport const headPath = (): string => 'chain/head.json'\n\n/**\n * Immutable per-chain contract config (rewards contract, staking token, fork edge).\n * Sparse map keyed by chain id \u2014 the current chain's file is the entry point; fork\n * ancestors are sibling files under the same folder. `chainId` is normalized to lowercase.\n */\nexport const chainContractByIdPath = (chainId: string): string => `chain/contracts/${chainId.toLowerCase()}.json`\n", "/**\n * Path builders for the finalized (immutable) bucket.\n *\n * Paths are relative \u2014 no leading slash \u2014 and joined to a base URL by the consumer.\n */\n\n/** The finalized layout descriptor (path templates, encoding, version, earliest block). */\nexport const manifestPath = (): string => 'manifest.json'\n\n/** A block by number: SignedHydratedBlockWithHashMeta. */\nexport const blockNumberPath = (block: number): string => `block/number/${block}.json`\n\n/** A block by hash: the same content as its by-number twin. */\nexport const blockHashPath = (hash: string): string => `block/hash/${hash}.json`\n\n/** A payload by hash: WithHashMeta<Payload>. */\nexport const payloadPath = (hash: string): string => `payload/${hash}.json`\n", "import type { IndexSummaryFamily } from '#protocol-lib'\n\n/**\n * Path builders for the index bucket.\n *\n * The index is a separate, single-writer bucket holding completed step summaries for several\n * families. Paths are relative \u2014 no leading slash \u2014 and joined to a base URL by the consumer.\n */\n\n/** A completed frame's summary for a family, e.g. `blocks/2/5.json`. Immutable once written. */\nexport const indexSummaryPath = (family: IndexSummaryFamily, stepLevel: number, stepIndex: number): string =>\n `${family}/${stepLevel}/${stepIndex}.json`\n\n/** The index layout descriptor (families, max step, encoding, version). */\nexport const indexManifestPath = (): string => 'manifest.json'\n\n/** The indexer's progress watermark (highest block the index is complete through). */\nexport const indexHeadPath = (): string => 'head.json'\n", "import type { Hash } from '@ariestools/sdk'\n\nconst TRANSACTION_INCLUSION_ROOT = 'transactions'\n\n/** Path of one immutable transaction-hash to finalized-block inclusion record. */\nexport function transactionInclusionPath(transactionHash: Hash): string {\n return `${TRANSACTION_INCLUSION_ROOT}/by-hash/${transactionHash}.json`\n}\n\n/** Path of the mutable transaction-inclusion progress pointer. */\nexport function transactionInclusionHeadPath(): string {\n return `${TRANSACTION_INCLUSION_ROOT}/head.json`\n}\n\n/** Path of the transaction-inclusion layout descriptor. */\nexport function transactionInclusionManifestPath(): string {\n return `${TRANSACTION_INCLUSION_ROOT}/manifest.json`\n}\n", "import {\n EthAddressZod, HexRegExMinMaxMixedCaseWithPrefix,\n zodAsFactory,\n} from '@ariestools/sdk'\nimport { z } from 'zod/mini'\n\nconst EvmHashZod = z.string().check(z.regex(HexRegExMinMaxMixedCaseWithPrefix(32, 32)))\nconst EvmDataZod = z.string().check(z.regex(/^0x[\\dA-Fa-f]*$/))\n\n/** JSON-safe representation of one raw EVM contract log. */\nexport const EvmEventIndexLogZod = z.object({\n address: EthAddressZod,\n blockHash: EvmHashZod,\n blockNumber: z.number(),\n data: EvmDataZod,\n index: z.number(),\n topics: z.array(EvmHashZod),\n transactionHash: EvmHashZod,\n transactionIndex: z.number(),\n})\n\n/** Type for one raw EVM contract log in the event index. */\nexport type EvmEventIndexLog = z.infer<typeof EvmEventIndexLogZod>\n\n/** One immutable, address-scoped range of finalized EVM logs. */\nexport const EvmEventIndexFrameZod = z.object({\n fromBlock: z.number(),\n logs: z.array(EvmEventIndexLogZod),\n toBlock: z.number(),\n})\n\n/** Type for one immutable event-index frame. */\nexport type EvmEventIndexFrame = z.infer<typeof EvmEventIndexFrameZod>\n\n/** Static description of one contract event index. */\nexport const EvmEventIndexManifestZod = z.object({\n address: EthAddressZod,\n chainId: z.string(),\n deploymentBlock: z.number(),\n frameSize: z.number(),\n layout: z.literal('evm-contract-events-v1'),\n})\n\n/** Type for the event-index manifest document. */\nexport type EvmEventIndexManifest = z.infer<typeof EvmEventIndexManifestZod>\n\n/**\n * Mutable pointer written after all frames through `block` are durable.\n * Wire schema for the `EvmEventIndexHead` runner contract in `#protocol-lib`.\n */\nexport const EvmEventIndexHeadZod = z.object({\n address: EthAddressZod,\n block: z.number(),\n chainId: z.string(),\n hash: EvmHashZod,\n})\n\n/** Converts a value to EvmEventIndexFrame, throwing if invalid. */\nexport const asEvmEventIndexFrame = zodAsFactory(EvmEventIndexFrameZod, 'asEvmEventIndexFrame')\n/** Converts a value to EvmEventIndexHead, throwing if invalid. */\nexport const asEvmEventIndexHead = zodAsFactory(EvmEventIndexHeadZod, 'asEvmEventIndexHead')\n/** Converts a value to EvmEventIndexManifest, throwing if invalid. */\nexport const asEvmEventIndexManifest = zodAsFactory(EvmEventIndexManifestZod, 'asEvmEventIndexManifest')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { z } from 'zod'\n\nimport type { IndexSummaryFamily, IndexWatermark } from '#protocol-lib'\n\nimport { indexSummaryPathTemplate } from '../templates.ts'\n\n/** Bumped when the on-disk index layout changes shape, so readers can detect a mismatch. */\nexport const INDEX_LAYOUT_VERSION = 1\n\n/** Schema id for the index manifest document (the static layout descriptor). */\nexport const IndexManifestSchema = 'network.xyo.s3.index.manifest' as const\n/** Type literal for the index manifest schema. */\nexport type IndexManifestSchema = typeof IndexManifestSchema\n\n/** Schema id for the index head document (the progress watermark). */\nexport const IndexHeadSchema = 'network.xyo.s3.index.head' as const\n/** Type literal for the index head schema. */\nexport type IndexHeadSchema = typeof IndexHeadSchema\n\n/** Per-family descriptor carried in the manifest. */\nexport const IndexManifestFamilyZod = z.object({\n /** Highest step level published for this family. */\n maxStep: z.int().nonnegative(),\n /** Path template for the family's frames, e.g. `blocks/{level}/{index}.json`. */\n path: z.string(),\n})\n\n/** Type for one index manifest family descriptor. */\nexport type IndexManifestFamily = z.infer<typeof IndexManifestFamilyZod>\n\nconst indexFamiliesZod = z.object({\n balances: IndexManifestFamilyZod,\n blocks: IndexManifestFamilyZod,\n schemas: IndexManifestFamilyZod,\n transfers: IndexManifestFamilyZod,\n})\n\n/** Zod schema for the static index layout descriptor at `indexManifestPath()`. */\nexport const IndexManifestZod = z.object({\n families: indexFamiliesZod,\n schema: z.literal(IndexManifestSchema),\n version: z.int().positive(),\n})\n\n/** The static index layout descriptor at `indexManifestPath()`. */\nexport type IndexManifest = z.infer<typeof IndexManifestZod>\n\n/** Type guard that checks if a value is a valid IndexManifest. */\nexport const isIndexManifest = zodIsFactory(IndexManifestZod)\n/** Converts a value to IndexManifest, throwing if invalid. */\nexport const asIndexManifest = zodAsFactory(IndexManifestZod, 'asIndexManifest')\n/** Non-validating cast to IndexManifest. */\nexport const toIndexManifest = zodToFactory(IndexManifestZod, 'toIndexManifest')\n\n/** Completed frame counts per family in the index head watermark. */\nexport const IndexHeadFamiliesZod = z.object({\n balances: z.int().nonnegative(),\n blocks: z.int().nonnegative(),\n schemas: z.int().nonnegative(),\n transfers: z.int().nonnegative(),\n})\n\n/** Zod schema for the index progress watermark at `indexHeadPath()`. */\nexport const IndexHeadZod = z.object({\n /** Highest block the index is complete through. */\n block: z.int().nonnegative(),\n /** Completed frame counts per family. */\n families: IndexHeadFamiliesZod,\n /** Hash of that block. */\n hash: z.string(),\n schema: z.literal(IndexHeadSchema),\n /** ISO-8601 timestamp of the last update. */\n updatedAt: z.string(),\n version: z.int().positive(),\n})\n\n/** The index progress watermark at `indexHeadPath()`. */\nexport type IndexHead = z.infer<typeof IndexHeadZod>\n\n/** Type guard that checks if a value is a valid IndexHead. */\nexport const isIndexHead = zodIsFactory(IndexHeadZod)\n/** Converts a value to IndexHead, throwing if invalid. */\nexport const asIndexHead = zodAsFactory(IndexHeadZod, 'asIndexHead')\n/** Non-validating cast to IndexHead. */\nexport const toIndexHead = zodToFactory(IndexHeadZod, 'toIndexHead')\n\n/** Builds per-family manifest descriptors with path templates derived from the path builders. */\nexport function createIndexManifestFamilies(\n maxSteps: Record<IndexSummaryFamily, number>,\n): Record<IndexSummaryFamily, IndexManifestFamily> {\n return {\n balances: { maxStep: maxSteps.balances, path: indexSummaryPathTemplate('balances') },\n blocks: { maxStep: maxSteps.blocks, path: indexSummaryPathTemplate('blocks') },\n schemas: { maxStep: maxSteps.schemas, path: indexSummaryPathTemplate('schemas') },\n transfers: { maxStep: maxSteps.transfers, path: indexSummaryPathTemplate('transfers') },\n }\n}\n\n/** Builds a validated index manifest with path templates derived from the path builders. */\nexport function createIndexManifest(maxSteps: Record<IndexSummaryFamily, number>): IndexManifest {\n return asIndexManifest({\n families: createIndexManifestFamilies(maxSteps),\n schema: IndexManifestSchema,\n version: INDEX_LAYOUT_VERSION,\n }, true)\n}\n\n/** Builds a validated index head watermark from an indexer progress snapshot. */\nexport function createIndexHead(watermark: IndexWatermark, updatedAt?: string): IndexHead {\n const now = new Date()\n const resolvedUpdatedAt = updatedAt ?? now.toISOString()\n return asIndexHead({\n block: watermark.block,\n families: watermark.families,\n hash: watermark.hash,\n schema: IndexHeadSchema,\n updatedAt: resolvedUpdatedAt,\n version: INDEX_LAYOUT_VERSION,\n }, true)\n}\n", "import {\n HashZod, zodAsFactory, zodIsFactory,\n} from '@ariestools/sdk'\nimport { asSchema } from '@xyo-network/sdk'\nimport { z } from 'zod'\n\n/** Version of the durable network-stake rewards index layout. */\nexport const NETWORK_STAKE_REWARDS_INDEX_LAYOUT = 'network-stake-rewards-v1' as const\n/** Default reward policy identifier for protocol rewards without multipliers. */\nexport const NETWORK_STAKE_REWARDS_UNMULTIPLIED_POLICY = 'unmultiplied-v1' as const\n/** @deprecated Use NETWORK_STAKE_REWARDS_UNMULTIPLIED_POLICY. */\nexport const NETWORK_STAKE_REWARDS_BASE_POLICY = NETWORK_STAKE_REWARDS_UNMULTIPLIED_POLICY\n/** Schema of an immutable cumulative network-stake rewards snapshot payload. */\nexport const NetworkStakeRewardsIndexSnapshotSchema = asSchema('network.xyo.chain.stake.rewards.snapshot', true)\n\nconst DecimalBigIntZod = z.string().regex(/^(?:0|[1-9]\\d*)$/)\n/** Path-safe identifier for a deterministic reward policy. */\nexport const NetworkStakeRewardsPolicyIdZod = z.string().regex(/^[a-z0-9][a-z0-9._-]*$/)\nconst PositionRewardsZod = z.record(z.string().regex(/^(?:0|[1-9]\\d*)$/), DecimalBigIntZod)\nconst BlockRangeZod = z.tuple([z.number().int().nonnegative(), z.number().int().nonnegative()])\nconst StepIdentityJsonZod = z.object({\n block: z.number().int().nonnegative(),\n step: z.number().int().nonnegative(),\n})\n\n/** Static policy and source description for one rewards index tree. */\nexport const NetworkStakeRewardsIndexManifestZod = z.object({\n evmAddress: z.string(),\n evmChainId: z.string(),\n layout: z.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),\n policyId: NetworkStakeRewardsPolicyIdZod,\n stepLevels: z.array(z.number().int().nonnegative()),\n timeAnchor: z.object({\n externalGenesisTime: z.number().optional(),\n maxScanBlocks: z.number().optional(),\n }).optional(),\n})\n\n/** Static policy and source description for one rewards index tree. */\nexport type NetworkStakeRewardsIndexManifest = z.infer<typeof NetworkStakeRewardsIndexManifestZod>\n\n/** Immutable reward allocation for one completed XL1 reward step. */\nexport const NetworkStakeRewardsIndexStepZod = z.object({\n denominator: DecimalBigIntZod,\n externalRange: BlockRangeZod,\n layout: z.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),\n policyId: NetworkStakeRewardsPolicyIdZod,\n positionRewards: PositionRewardsZod,\n step: StepIdentityJsonZod,\n totalReward: DecimalBigIntZod,\n xl1Range: BlockRangeZod,\n})\n\n/** Immutable reward allocation for one completed XL1 reward step. */\nexport type NetworkStakeRewardsIndexStep = z.infer<typeof NetworkStakeRewardsIndexStepZod>\n\n/** Immutable cumulative position totals referenced by a mutable head. */\nexport const NetworkStakeRewardsIndexSnapshotZod = z.object({\n layout: z.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),\n policyId: NetworkStakeRewardsPolicyIdZod,\n positionRewards: PositionRewardsZod,\n schema: z.literal(NetworkStakeRewardsIndexSnapshotSchema),\n stepCount: z.number().int().nonnegative(),\n totalReward: DecimalBigIntZod,\n})\n\n/** Immutable cumulative position totals referenced by a mutable head. */\nexport type NetworkStakeRewardsIndexSnapshot = z.infer<typeof NetworkStakeRewardsIndexSnapshotZod>\n\n/** Mutable pointer written only after every referenced step and snapshot is durable. */\nexport const NetworkStakeRewardsIndexHeadZod = z.object({\n layout: z.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),\n policyId: NetworkStakeRewardsPolicyIdZod,\n positionCount: z.number().int().nonnegative(),\n processedThroughBlock: z.number().int().nonnegative(),\n snapshotHash: HashZod,\n source: z.object({\n evm: z.object({\n block: z.number().int().nonnegative(),\n hash: z.string(),\n }),\n xl1: z.object({\n block: z.number().int().nonnegative(),\n hash: z.string(),\n }),\n }),\n stepCount: z.number().int().nonnegative(),\n})\n\n/** Mutable pointer written only after every referenced step and snapshot is durable. */\nexport type NetworkStakeRewardsIndexHead = z.infer<typeof NetworkStakeRewardsIndexHeadZod>\n\n/** Checks whether a value is a valid rewards index manifest. */\nexport const isNetworkStakeRewardsIndexManifest = zodIsFactory(NetworkStakeRewardsIndexManifestZod)\n/** Converts a value to a rewards index manifest, throwing if invalid. */\nexport const asNetworkStakeRewardsIndexManifest = zodAsFactory(\n NetworkStakeRewardsIndexManifestZod,\n 'asNetworkStakeRewardsIndexManifest',\n)\n/** Converts a value to a rewards index step, throwing if invalid. */\nexport const asNetworkStakeRewardsIndexStep = zodAsFactory(\n NetworkStakeRewardsIndexStepZod,\n 'asNetworkStakeRewardsIndexStep',\n)\n/** Converts a value to a rewards index snapshot, throwing if invalid. */\nexport const asNetworkStakeRewardsIndexSnapshot = zodAsFactory(\n NetworkStakeRewardsIndexSnapshotZod,\n 'asNetworkStakeRewardsIndexSnapshot',\n)\n/** Converts a value to a rewards index head, throwing if invalid. */\nexport const asNetworkStakeRewardsIndexHead = zodAsFactory(\n NetworkStakeRewardsIndexHeadZod,\n 'asNetworkStakeRewardsIndexHead',\n)\n", "import {\n HashZod, zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { z } from 'zod'\n\nimport { ChainIdZod, XL1BlockNumberZod } from '#protocol-model'\n\nimport { transactionInclusionPathTemplate } from '../templates.ts'\n\n/** Versioned identifier for the finalized transaction-inclusion index layout. */\nexport const TRANSACTION_INCLUSION_INDEX_LAYOUT = 'transaction-inclusions-v1' as const\n\n/** Static descriptor for the transaction-inclusion index. */\nexport const TransactionInclusionManifestZod = z.object({\n /** XL1 chain whose finalized transactions are indexed. */\n chain: ChainIdZod,\n /** Versioned layout identifier. */\n layout: z.literal(TRANSACTION_INCLUSION_INDEX_LAYOUT),\n /** Hash-addressed path template, for example `transactions/by-hash/{hash}.json`. */\n path: z.string(),\n})\n\n/** Static descriptor for the transaction-inclusion index. */\nexport type TransactionInclusionManifest = z.infer<typeof TransactionInclusionManifestZod>\n\n/** Mutable pointer written after every transaction inclusion through `block` is durable. */\nexport const TransactionInclusionHeadZod = z.object({\n /** Highest finalized block fully represented by the lookup. */\n block: XL1BlockNumberZod,\n /** Hash of the highest finalized block fully represented by the lookup. */\n blockHash: HashZod,\n /** XL1 chain whose finalized transactions are indexed. */\n chain: ChainIdZod,\n /** Number of transaction-inclusion records represented through `block`. */\n entries: z.int().nonnegative(),\n /** Versioned layout identifier. */\n layout: z.literal(TRANSACTION_INCLUSION_INDEX_LAYOUT),\n})\n\n/** Mutable transaction-inclusion progress pointer. */\nexport type TransactionInclusionHead = z.infer<typeof TransactionInclusionHeadZod>\n\n/** Type guard that checks whether a value is a valid transaction-inclusion manifest. */\nexport const isTransactionInclusionManifest = zodIsFactory(TransactionInclusionManifestZod)\n/** Converts a value to a transaction-inclusion manifest, throwing when invalid. */\nexport const asTransactionInclusionManifest = zodAsFactory(\n TransactionInclusionManifestZod,\n 'asTransactionInclusionManifest',\n)\n/** Converts a value to a transaction-inclusion manifest, returning undefined when invalid. */\nexport const toTransactionInclusionManifest = zodToFactory(\n TransactionInclusionManifestZod,\n 'toTransactionInclusionManifest',\n)\n\n/** Type guard that checks whether a value is a valid transaction-inclusion head. */\nexport const isTransactionInclusionHead = zodIsFactory(TransactionInclusionHeadZod)\n/** Converts a value to a transaction-inclusion head, throwing when invalid. */\nexport const asTransactionInclusionHead = zodAsFactory(\n TransactionInclusionHeadZod,\n 'asTransactionInclusionHead',\n)\n/** Converts a value to a transaction-inclusion head, returning undefined when invalid. */\nexport const toTransactionInclusionHead = zodToFactory(\n TransactionInclusionHeadZod,\n 'toTransactionInclusionHead',\n)\n\n/** Builds the static descriptor for a chain's transaction-inclusion index. */\nexport function createTransactionInclusionManifest(\n chain: TransactionInclusionManifest['chain'],\n): TransactionInclusionManifest {\n return asTransactionInclusionManifest({\n chain,\n layout: TRANSACTION_INCLUSION_INDEX_LAYOUT,\n path: transactionInclusionPathTemplate(),\n }, true)\n}\n\n/** Builds the mutable progress pointer for a transaction-inclusion index. */\nexport function createTransactionInclusionHead(\n head: Omit<TransactionInclusionHead, 'layout'>,\n): TransactionInclusionHead {\n return asTransactionInclusionHead({\n ...head,\n layout: TRANSACTION_INCLUSION_INDEX_LAYOUT,\n }, true)\n}\n", "import type { EthAddress } from '@ariestools/sdk'\n\nfunction root(address: EthAddress): string {\n return `evm/events/${address.toLowerCase()}`\n}\n\n/** Path of one immutable event-index frame within the index bucket. */\nexport function evmEventIndexFramePath(address: EthAddress, frameIndex: number): string {\n return `${root(address)}/frames/${frameIndex}.json`\n}\n\n/** Path of the mutable event-index head pointer within the index bucket. */\nexport function evmEventIndexHeadPath(address: EthAddress): string {\n return `${root(address)}/head.json`\n}\n\n/** Path of the event-index manifest within the index bucket. */\nexport function evmEventIndexManifestPath(address: EthAddress): string {\n return `${root(address)}/manifest.json`\n}\n\n/** Path of the mutable partial-frame tail within the index bucket. */\nexport function evmEventIndexTailPath(address: EthAddress): string {\n return `${root(address)}/tail.json`\n}\n", "import type { Hash } from '@ariestools/sdk'\n\nimport type { StepIdentity } from '#protocol-model'\n\nfunction root(policyId: string): string {\n return `rewards/network-stake/v1/${policyId}`\n}\n\n/** Path of the mutable rewards-index head. */\nexport function networkStakeRewardsIndexHeadPath(policyId: string): string {\n return `${root(policyId)}/head.json`\n}\n\n/** Path of the static rewards-index manifest. */\nexport function networkStakeRewardsIndexManifestPath(policyId: string): string {\n return `${root(policyId)}/manifest.json`\n}\n\n/** Path of one immutable cumulative position snapshot. */\nexport function networkStakeRewardsIndexSnapshotPath(policyId: string, snapshotHash: Hash): string {\n return `${root(policyId)}/snapshots/${snapshotHash}.json`\n}\n\n/** Path of one immutable completed-step reward allocation. */\nexport function networkStakeRewardsIndexStepPath(policyId: string, step: StepIdentity): string {\n return `${root(policyId)}/steps/${step.step}/${step.block}.json`\n}\n", "import type { NetworkId } from '../models/index.ts'\n\n/** Builds URLs to pages on an XL1 chain explorer for a specific network. */\nexport class ExplorerLinks {\n /** Explorer origin with trailing slashes removed. */\n readonly explorerUrl: string\n /** Network identifier included in generated links. */\n readonly networkId: NetworkId\n\n /**\n * Creates a link builder for one explorer deployment and network.\n *\n * @param explorerUrl Base explorer URL, with or without trailing slashes.\n * @param networkId Network segment included in every generated URL.\n */\n constructor(explorerUrl: string, networkId: NetworkId) {\n this.explorerUrl = explorerUrl.replace(/\\/+$/, '')\n this.networkId = networkId\n }\n\n /** `{explorerUrl}/xl1/{networkId}/address/{address}` */\n address(address: string): string {\n return `${this.network()}/address/${address}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/addresses` */\n addresses(): string {\n return `${this.network()}/addresses`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/block/{blockHash}` */\n block(blockHash: string): string {\n return `${this.network()}/block/${blockHash}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/block/number/{blockNumber}` */\n blockByNumber(blockNumber: number | string): string {\n return `${this.network()}/block/number/${blockNumber}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/block/{blockHash}/payload/{payloadHash}[/{render}]` */\n blockPayload(blockHash: string, payloadHash: string, render?: string): string {\n const base = `${this.network()}/block/${blockHash}/payload/${payloadHash}`\n return render === undefined ? base : `${base}/${render}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/blocks` */\n blocks(): string {\n return `${this.network()}/blocks`\n }\n\n /** `{explorerUrl}/xl1/{networkId}` */\n network(): string {\n return `${this.explorerUrl}/xl1/${this.networkId}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/transaction/{txHash}` */\n transaction(txHash: string): string {\n return `${this.network()}/transaction/${txHash}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/transaction/{txHash}/payload/{payloadHash}[/{render}]` */\n transactionPayload(txHash: string, payloadHash: string, render?: string): string {\n const base = `${this.network()}/transaction/${txHash}/payload/${payloadHash}`\n return render === undefined ? base : `${base}/${render}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/transactions` */\n transactions(): string {\n return `${this.network()}/transactions`\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["networkNodeMap", "zodAsFactory", "zodIsFactory", "zodToFactory", "z", "z", "zodIsFactory", "zodAsFactory", "zodToFactory", "zodAsFactory", "z", "zodAsFactory", "zodIsFactory", "zodToFactory", "z", "z", "zodIsFactory", "zodAsFactory", "zodToFactory", "zodAsFactory", "zodIsFactory", "asSchema", "z", "HashZod", "zodAsFactory", "zodIsFactory", "zodToFactory", "z", "ChainIdZod", "z", "ChainIdZod", "HashZod", "zodIsFactory", "zodAsFactory", "zodToFactory", "root"]
|
|
3
|
+
"sources": ["../../src/modules/network-model/icons/local/local.svg", "../../src/modules/network-model/icons/mainnet/mainnet.svg", "../../src/modules/network-model/icons/sequence/testnet.svg", "../../src/modules/network-model/lib/Networks.ts", "../../src/modules/network-model/models/Bootstrap.ts", "../../src/modules/network-model/lib/NetworkDataLakeUrls.ts", "../../src/modules/network-model/modules/node/getNetworkNode.ts", "../../src/modules/network-model/manifest/network.json", "../../src/modules/network-model/manifest/networkManifest.ts", "../../src/modules/network-model/modules/node/getNetworkNodes.ts", "../../src/modules/network-model/modules/node/initNetworkNode.ts", "../../src/modules/network-model/staticRest/layout/chainContractManifest.ts", "../../src/modules/network-model/staticRest/layout/chainManifest.ts", "../../src/modules/network-model/staticRest/templates.ts", "../../src/modules/network-model/staticRest/paths/chainState.ts", "../../src/modules/network-model/staticRest/paths/finalized.ts", "../../src/modules/network-model/staticRest/paths/indexPaths.ts", "../../src/modules/network-model/staticRest/paths/transactionInclusionIndex.ts", "../../src/modules/network-model/staticRest/layout/chainParams.ts", "../../src/modules/network-model/staticRest/layout/chainParamsRules.ts", "../../src/modules/network-model/staticRest/layout/evmEventIndex.ts", "../../src/modules/network-model/staticRest/layout/indexManifest.ts", "../../src/modules/network-model/staticRest/layout/networkStakeRewardsIndex.ts", "../../src/modules/network-model/staticRest/layout/transactionInclusionIndex.ts", "../../src/modules/network-model/staticRest/layout/trustedPosture.ts", "../../src/modules/network-model/staticRest/paths/evmEventIndex.ts", "../../src/modules/network-model/staticRest/paths/networkStakeRewardsIndex.ts", "../../src/modules/network-model/utils/ExplorerLinks.ts"],
|
|
4
|
+
"sourcesContent": ["<svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\"><g style=\"opacity:.5;\"><path d=\"M154.71,97c.46,2.59,2.5,4.62,5.1,5.05l14.05,2.34,31.71-46.17c4.57-6.65-3.62-14.62-10.14-9.87l-43.68,31.83,2.97,16.82Z\" style=\"fill:#f47f00;\"/><path d=\"M173.86,151.62l-14.05,2.34c-2.6.43-4.64,2.45-5.1,5.05l-2.97,16.82,43.68,31.83c6.52,4.75,14.71-3.21,10.14-9.87l-31.71-46.17Z\" style=\"fill:#f47f00;\"/><path d=\"M82.14,104.38l14.05-2.34c2.6-.43,4.64-2.45,5.1-5.05l2.97-16.82-43.68-31.83c-6.52-4.75-14.71,3.21-10.14,9.87l31.71,46.17Z\" style=\"fill:#f47f00;\"/><path d=\"M101.29,159c-.46-2.59-2.5-4.62-5.1-5.05l-14.05-2.34-31.71,46.17c-4.57,6.65,3.62,14.62,10.14,9.87l43.68-31.83-2.97-16.82Z\" style=\"fill:#f47f00;\"/></g><path d=\"M107.33,104l15.94-90.32c.93-5.3,8.53-5.3,9.47,0l15.94,90.32c.35,2.01,1.94,3.57,3.95,3.91l92.24,15.35c5.36.89,5.36,8.59,0,9.49l-92.24,15.35c-2.01.33-3.59,1.9-3.95,3.91l-15.94,90.32c-.93,5.3-8.53,5.3-9.47,0l-15.94-90.32c-.35-2.01-1.94-3.57-3.95-3.91l-92.24-15.35c-5.36-.89-5.36-8.59,0-9.49l92.24-15.35c2.01-.33,3.59-1.9,3.95-3.91Z\" style=\"fill:#f47f00;\"/></svg>", "<svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\"><path d=\"M154.71,97c.46,2.59,2.5,4.62,5.1,5.05l14.05,2.34,31.71-46.17c4.57-6.65-3.62-14.62-10.14-9.87l-43.68,31.83,2.97,16.82Z\" style=\"fill:#8d8fc6;\"/><path d=\"M173.86,151.62l-14.05,2.34c-2.6.43-4.64,2.45-5.1,5.05l-2.97,16.82,43.68,31.83c6.52,4.75,14.71-3.21,10.14-9.87l-31.71-46.17Z\" style=\"fill:#eb407a;\"/><path d=\"M82.14,104.38l14.05-2.34c2.6-.43,4.64-2.45,5.1-5.05l2.97-16.82-43.68-31.83c-6.52-4.75-14.71,3.21-10.14,9.87l31.71,46.17Z\" style=\"fill:#579fd6;\"/><path d=\"M101.29,159c-.46-2.59-2.5-4.62-5.1-5.05l-14.05-2.34-31.71,46.17c-4.57,6.65,3.62,14.62,10.14,9.87l43.68-31.83-2.97-16.82Z\" style=\"fill:#f27046;\"/><path d=\"M107.33,104l15.94-90.32c.93-5.3,8.53-5.3,9.47,0l15.94,90.32c.35,2.01,1.94,3.57,3.95,3.91l92.24,15.35c5.36.89,5.36,8.59,0,9.49l-92.24,15.35c-2.01.33-3.59,1.9-3.95,3.91l-15.94,90.32c-.93,5.3-8.53,5.3-9.47,0l-15.94-90.32c-.35-2.01-1.94-3.57-3.95-3.91l-92.24-15.35c-5.36-.89-5.36-8.59,0-9.49l92.24-15.35c2.01-.33,3.59-1.9,3.95-3.91Z\" style=\"fill:#572aff;\"/></svg>", "<svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\"><g style=\"opacity:.5;\"><path d=\"M154.71,97c.46,2.59,2.5,4.62,5.1,5.05l14.05,2.34,31.71-46.17c4.57-6.65-3.62-14.62-10.14-9.87l-43.68,31.83,2.97,16.82Z\" style=\"fill:#579fd6;\"/><path d=\"M173.86,151.62l-14.05,2.34c-2.6.43-4.64,2.45-5.1,5.05l-2.97,16.82,43.68,31.83c6.52,4.75,14.71-3.21,10.14-9.87l-31.71-46.17Z\" style=\"fill:#579fd6;\"/><path d=\"M82.14,104.38l14.05-2.34c2.6-.43,4.64-2.45,5.1-5.05l2.97-16.82-43.68-31.83c-6.52-4.75-14.71,3.21-10.14,9.87l31.71,46.17Z\" style=\"fill:#579fd6;\"/><path d=\"M101.29,159c-.46-2.59-2.5-4.62-5.1-5.05l-14.05-2.34-31.71,46.17c-4.57,6.65,3.62,14.62,10.14,9.87l43.68-31.83-2.97-16.82Z\" style=\"fill:#579fd6;\"/></g><path d=\"M107.33,104l15.94-90.32c.93-5.3,8.53-5.3,9.47,0l15.94,90.32c.35,2.01,1.94,3.57,3.95,3.91l92.24,15.35c5.36.89,5.36,8.59,0,9.49l-92.24,15.35c-2.01.33-3.59,1.9-3.95,3.91l-15.94,90.32c-.93,5.3-8.53,5.3-9.47,0l-15.94-90.32c-.35-2.01-1.94-3.57-3.95-3.91l-92.24-15.35c-5.36-.89-5.36-8.59,0-9.49l92.24-15.35c2.01-.33,3.59-1.9,3.95-3.91Z\" style=\"fill:#579fd6;\"/></svg>", "import { asHex } from '@ariestools/sdk'\n\nimport {\n LocalNetworkIconString, MainNetworkIconString, SequenceNetworkIconString,\n} from '../icons/index.ts'\nimport type { NetworkBootstrap, NetworkId } from '../models/index.ts'\nimport { NetworkBootstrapSchema } from '../models/index.ts'\n\n/** Bootstrap configuration for the XYO Layer 1 mainnet. */\nexport const MainNetwork: NetworkBootstrap = {\n chain: asHex('319e667ced10452a117472811130444ded357f26', true),\n description: 'Main Network for XYO Layer 1',\n icon: MainNetworkIconString,\n id: 'mainnet' as NetworkId,\n name: 'Mainnet',\n schema: NetworkBootstrapSchema,\n symbol: 'XL1',\n url: 'https://api.chain.xyo.network',\n explorerUrl: 'https://explore.xyo.network',\n}\n\n/** Bootstrap configuration for the XYO Layer 1 sequence (test) network. */\nexport const SequenceNetwork: NetworkBootstrap = {\n chain: asHex('4b43a753c8024c0e5000e8ac948ac0063ac624bc', true),\n description: 'Test Network for XYO Layer 1',\n icon: SequenceNetworkIconString,\n id: 'sequence' as NetworkId,\n name: 'Sequence',\n schema: NetworkBootstrapSchema,\n symbol: 'XL1',\n url: 'https://beta.api.chain.xyo.network',\n explorerUrl: 'https://beta.explore.xyo.network',\n}\n\n/** Bootstrap configuration for a local development network. */\nexport const LocalNetwork: NetworkBootstrap = {\n description: 'Local Node',\n icon: LocalNetworkIconString,\n id: 'local' as NetworkId,\n name: 'Local',\n schema: NetworkBootstrapSchema,\n symbol: 'XL1',\n url: 'http://localhost:8080',\n explorerUrl: 'http://localhost:3000',\n}\n\n/** Default set of available XYO Layer 1 networks (mainnet, sequence, local). */\nexport const DefaultNetworks: NetworkBootstrap[] = [MainNetwork, SequenceNetwork, LocalNetwork]\n", "import type { Address } from '@ariestools/sdk'\nimport { AsObjectFactory } from '@ariestools/sdk'\nimport type { Payload } from '@xyo-network/sdk'\nimport { asSchema, isPayloadOfSchemaType } from '@xyo-network/sdk'\n\nimport type { ChainId } from '#protocol-lib'\n\nimport type { NetworkId } from './NetworkId.ts'\n\n/** Connection details for accessing a chain endpoint. */\nexport interface ChainConnection {\n /** Chain Identifier - can be a hex (eth contract address) or a string */\n chain?: ChainId\n /** Name of the chain */\n name: string\n /** URL for accessing the network */\n url: string\n}\n\n/** Schema identifier for network bootstrap payloads. */\nexport const NetworkBootstrapSchema = asSchema('network.xyo.network.bootstrap', true)\n/** Schema type for network bootstrap payloads. */\nexport type NetworkBootstrapSchema = typeof NetworkBootstrapSchema\n\n/** Fields describing a chain fork origin. */\nexport interface ChainForkFields {\n /** Block Number at which the chain was forked from */\n forkedAtLastBlockNumber?: string\n /** Hash in the last block the chain was forked from */\n forkedAtLastHash?: string\n /** Address of the forked chain */\n forkedChainId?: Address\n}\n\n/** Core fields describing an XYO network. */\nexport interface NetworkFields {\n /** Description of the network */\n description: string\n /** URL for accessing the network explorer */\n explorerUrl?: string\n /** string representation of the icon (SVG) */\n icon?: string\n /** Machine-readable identifier */\n id: NetworkId\n /** Schema identifier for this configuration or payload. */\n schema: NetworkBootstrapSchema\n /** Symbol of the network */\n symbol?: string\n}\n\n/** Optional Properties can be found walking the chain to the genesis block */\nexport interface NetworkBootstrapFields extends NetworkFields, ChainForkFields, ChainConnection {}\n\n/** A network bootstrap extended with a flag indicating whether it is a custom network. */\nexport interface Network extends NetworkBootstrap {\n /** Application-defined bootstrap configuration passed through unchanged. */\n custom: boolean\n}\n\n/** Payload type containing all network bootstrap configuration fields. */\nexport type NetworkBootstrap = Payload<NetworkBootstrapFields, NetworkBootstrapSchema>\n\n/** Type guard that checks whether a payload is a NetworkBootstrap. */\nexport const isNetworkBootstrap = isPayloadOfSchemaType<NetworkBootstrap>(NetworkBootstrapSchema)\n\n/** Optionally casts a value to a Network if it is a valid NetworkBootstrap. */\nexport const asOptionalNetwork = AsObjectFactory.createOptional(isNetworkBootstrap)\n", "import type { GatewayName } from '#protocol-lib'\n\nimport {\n LocalNetwork, MainNetwork, SequenceNetwork,\n} from './Networks.ts'\n\n/** Map of network IDs to their corresponding Data Lake API URLs. */\nexport const NetworkDataLakeUrls = {\n [MainNetwork.id]: 'https://api.archivist.xyo.network/dataLake',\n [SequenceNetwork.id]: 'https://beta.api.archivist.xyo.network/dataLake',\n [LocalNetwork.id]: 'http://localhost:8080/dataLake',\n} as const satisfies Record<GatewayName, string>\n", "import type { AttachableNodeInstance, WalletInstance } from '@xyo-network/sdk'\nimport { ManifestWrapper, ModuleFactoryLocator } from '@xyo-network/sdk'\n\nimport { NetworkNodeManifest } from '../../manifest/index.ts'\n\n/**\n * Creates a network node from the network manifest using the provided wallet.\n *\n * @deprecated Bootstrapping an XYO `NodeInstance` via manifest is no longer supported.\n * Use `connectArchivist` from `@xyo-network/xl1-protocol-sdk` for co-located archivist\n * access, or `GatewayBuilder` from `@xyo-network/xl1-gateway` for remote RPC access.\n */\nexport async function getNetworkNode(wallet: WalletInstance): Promise<AttachableNodeInstance> {\n const wrapper = new ManifestWrapper(NetworkNodeManifest, wallet, new ModuleFactoryLocator())\n const [node] = await wrapper.loadNodes()\n return node\n}\n", "{\n \"$schema\": \"https://raw.githubusercontent.com/XYOracleNetwork/sdk-xyo-client-js/main/packages/manifest/src/schema.json\",\n \"nodes\": [\n {\n \"config\": {\n \"accountPath\": \"44'/60'/1\",\n \"name\": \"Network\",\n \"schema\": \"network.xyo.node.config\"\n },\n \"modules\": {\n \"private\": [],\n \"public\": []\n }\n }\n ],\n \"schema\": \"network.xyo.manifest\"\n}", "import type { PackageManifestPayload } from '@xyo-network/sdk'\n\nimport node from './network.json' with { type: 'json' }\n\n/** @deprecated XYO Node manifest bootstrap is no longer used; wire providers via archivist bindings or JsonRpc instead. */\nexport const NetworkNodeManifest = node as unknown as PackageManifestPayload\n", "import type { AttachableNodeInstance } from '@xyo-network/sdk'\n\nconst networkNodeMap = new Map<string, AttachableNodeInstance>()\n\n/** @deprecated Internal cache for deprecated `initNetworkNode`; do not use. */\nexport const getNetworkNodes = () => {\n return networkNodeMap\n}\n", "import type { AttachableNodeInstance, WalletInstance } from '@xyo-network/sdk'\n\nimport type { NetworkBootstrap } from '../../models/index.ts'\nimport { getNetworkNode } from './getNetworkNode.ts'\nimport { getNetworkNodes } from './getNetworkNodes.ts'\n\n/** @deprecated Use `connectArchivist` archivist bindings (`@xyo-network/xl1-protocol-sdk`) or `GatewayBuilder` (`@xyo-network/xl1-gateway`) instead of bootstrapping an XYO NodeInstance. */\nexport const initNetworkNode = async (activeNetwork: NetworkBootstrap, wallet: WalletInstance): Promise<AttachableNodeInstance> => {\n const networkNodeMap = getNetworkNodes()\n if (networkNodeMap.has(activeNetwork.url)) return networkNodeMap.get(activeNetwork.url)!\n\n const activeNetworkNode = await getNetworkNode(wallet)\n networkNodeMap.set(activeNetwork.url, activeNetworkNode)\n\n return activeNetworkNode\n}\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { z } from 'zod'\n\nimport {\n ChainIdZod, NumberishZod, type XL1BlockNumber,\n} from '#protocol-lib'\n\nconst ChainContractBlockNumberZod = NumberishZod\n .pipe(z.int().nonnegative())\n .transform(value => value as XL1BlockNumber)\n\n/** Schema id for the chain-contract manifest document. */\nexport const ChainContractManifestSchema = 'network.xyo.s3.chain.contract' as const\n/** Type literal for the chain-contract manifest schema. */\nexport type ChainContractManifestSchema = typeof ChainContractManifestSchema\n\n/** Bumped when the manifest shape changes, so readers can detect a mismatch. */\nexport const CHAIN_CONTRACT_MANIFEST_VERSION = 1\n\n/**\n * Zod schema for the static per-chain config at `chainContractByIdPath(chainId)`: the reward\n * contract, staking token, minimum withdrawal window, and (optional) fork edge. Immutable\n * once published \u2014 does not change per block, unlike `chain/head.json`.\n */\nexport const ChainContractManifestZod = z.object({\n /** Self-identifying chain id (matches the path key). Optional for older fixtures. */\n chainId: z.optional(ChainIdZod),\n forkedAtBlockNumber: ChainContractBlockNumberZod.nullable().optional(),\n forkedAtHash: z.string().nullable().optional(),\n forkedChainId: z.nullable(ChainIdZod).optional(),\n minWithdrawalBlocks: NumberishZod.pipe(z.int().nonnegative()),\n rewardsContract: z.string(),\n schema: z.literal(ChainContractManifestSchema),\n stakingTokenAddress: z.string(),\n version: z.int().positive(),\n})\n\n/** The static per-chain contract config at `chainContractByIdPath(chainId)`. */\nexport type ChainContractManifest = z.infer<typeof ChainContractManifestZod>\n\n/** Numeric-input-tolerant shape accepted when creating a chain-contract manifest. */\nexport type ChainContractManifestInput = z.input<typeof ChainContractManifestZod>\n\n/** Type guard that checks if a value is a valid ChainContractManifest. */\nexport const isChainContractManifest = zodIsFactory(ChainContractManifestZod)\n/** Converts a value to ChainContractManifest, throwing if invalid. */\nexport const asChainContractManifest = zodAsFactory(ChainContractManifestZod, 'asChainContractManifest')\n/** Non-validating cast to ChainContractManifest. */\nexport const toChainContractManifest = zodToFactory(ChainContractManifestZod, 'toChainContractManifest')\n\n/** Builds a validated chain-contract manifest. */\nexport function createChainContractManifest(\n config: Omit<ChainContractManifestInput, 'schema' | 'version'>,\n): ChainContractManifest {\n return ChainContractManifestZod.parse({\n ...config,\n schema: ChainContractManifestSchema,\n version: CHAIN_CONTRACT_MANIFEST_VERSION,\n })\n}\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { z } from 'zod'\n\nimport { chainManifestPathTemplates } from '../templates.ts'\n\n/** Bumped when the finalized layout changes shape, so readers can detect a mismatch. */\nexport const CHAIN_LAYOUT_VERSION = 1\n\n/** Schema id for the finalized layout manifest document. */\nexport const ChainManifestSchema = 'network.xyo.s3.chain.manifest' as const\n/** Type literal for the chain manifest schema. */\nexport type ChainManifestSchema = typeof ChainManifestSchema\n\n/** Path templates for the finalized + chain-state files. */\nexport const ChainManifestPathsZod = z.object({\n blockByHash: z.string(),\n blockByNumber: z.string(),\n head: z.string(),\n payload: z.string(),\n})\n\n/** Type for chain manifest path templates. */\nexport type ChainManifestPaths = z.infer<typeof ChainManifestPathsZod>\n\n/** Zod schema for the finalized layout descriptor at `manifestPath()`. */\nexport const ChainManifestZod = z.object({\n /** Lowest block number available in the bucket (genesis until pruning exists). */\n earliestBlock: z.int().nonnegative(),\n /** Storage/wire encoding of the published files (also on each object's Content-Encoding). */\n encoding: z.string(),\n paths: ChainManifestPathsZod,\n schema: z.literal(ChainManifestSchema),\n version: z.int().positive(),\n})\n\n/** The finalized layout descriptor at `manifestPath()`. */\nexport type ChainManifest = z.infer<typeof ChainManifestZod>\n\n/** Type guard that checks if a value is a valid ChainManifest. */\nexport const isChainManifest = zodIsFactory(ChainManifestZod)\n/** Converts a value to ChainManifest, throwing if invalid. */\nexport const asChainManifest = zodAsFactory(ChainManifestZod, 'asChainManifest')\n/** Non-validating cast to ChainManifest. */\nexport const toChainManifest = zodToFactory(ChainManifestZod, 'toChainManifest')\n\n/** Builds a validated chain manifest with path templates derived from the path builders. */\nexport function createChainManifest(encoding: string, earliestBlock = 0): ChainManifest {\n return asChainManifest({\n earliestBlock,\n encoding,\n paths: chainManifestPathTemplates(),\n schema: ChainManifestSchema,\n version: CHAIN_LAYOUT_VERSION,\n }, true)\n}\n", "import { asHash } from '@ariestools/sdk'\n\nimport type { IndexSummaryFamily } from '#protocol-lib'\n\nimport { headPath } from './paths/chainState.ts'\nimport {\n blockHashPath, blockNumberPath, payloadPath,\n} from './paths/finalized.ts'\nimport { indexSummaryPath } from './paths/indexPaths.ts'\nimport { transactionInclusionPath } from './paths/transactionInclusionIndex.ts'\n\n/** Sentinel values used when deriving self-describing path templates from concrete builders. */\nconst TEMPLATE_SLOTS = {\n block: 0,\n hash: asHash('0'.repeat(64), true),\n index: 99,\n level: 42,\n} as const\n\n/**\n * Replaces concrete slot literals in a path with named `{placeholder}` segments.\n * Used to derive manifest path templates from the path builders so the two cannot drift.\n */\nexport function toPathTemplate(path: string, slots: { literal: string; name: string }[]): string {\n let result = path\n for (const { literal, name } of slots) {\n if (!result.includes(literal)) {\n throw new Error(`Template slot \"${literal}\" not found in path \"${path}\"`)\n }\n result = result.split(literal).join(`{${name}}`)\n }\n return result\n}\n\n/** Fills `{placeholder}` segments in a manifest path template. Used in conformance tests. */\nexport function interpolatePathTemplate(template: string, values: Record<string, string | number>): string {\n let result = template\n for (const [key, value] of Object.entries(values)) {\n result = result.split(`{${key}}`).join(String(value))\n }\n return result\n}\n\n/** Self-describing template for `blockNumberPath`. */\nexport const blockNumberPathTemplate = (): string =>\n toPathTemplate(blockNumberPath(TEMPLATE_SLOTS.block), [{ literal: String(TEMPLATE_SLOTS.block), name: 'block' }])\n\n/** Self-describing template for `blockHashPath`. */\nexport const blockHashPathTemplate = (): string =>\n toPathTemplate(blockHashPath(TEMPLATE_SLOTS.hash), [{ literal: TEMPLATE_SLOTS.hash, name: 'hash' }])\n\n/** Self-describing template for `payloadPath`. */\nexport const payloadPathTemplate = (): string =>\n toPathTemplate(payloadPath(TEMPLATE_SLOTS.hash), [{ literal: TEMPLATE_SLOTS.hash, name: 'hash' }])\n\n/** Self-describing templates for finalized + chain-state files carried in the chain manifest. */\nexport function chainManifestPathTemplates(): {\n blockByHash: string\n blockByNumber: string\n head: string\n payload: string\n} {\n return {\n blockByHash: blockHashPathTemplate(),\n blockByNumber: blockNumberPathTemplate(),\n head: headPath(),\n payload: payloadPathTemplate(),\n }\n}\n\n/** Self-describing template for one index summary family, e.g. `blocks/{level}/{index}.json`. */\nexport function indexSummaryPathTemplate(family: IndexSummaryFamily): string {\n const path = indexSummaryPath(family, TEMPLATE_SLOTS.level, TEMPLATE_SLOTS.index)\n return toPathTemplate(path, [\n { literal: String(TEMPLATE_SLOTS.level), name: 'level' },\n { literal: String(TEMPLATE_SLOTS.index), name: 'index' },\n ])\n}\n\n/** Self-describing template for the hash-addressed transaction-inclusion lookup. */\nexport function transactionInclusionPathTemplate(): string {\n return toPathTemplate(transactionInclusionPath(TEMPLATE_SLOTS.hash), [\n { literal: TEMPLATE_SLOTS.hash, name: 'hash' },\n ])\n}\n", "/**\n * Path builders for the chain-state (mutable) bucket.\n *\n * Paths are relative \u2014 no leading slash \u2014 and joined to a base URL by the consumer.\n */\n\n/** The mutable head pointer: the current head SignedHydratedBlockWithHashMeta. */\nexport const headPath = (): string => 'chain/head.json'\n\n/**\n * Immutable per-chain contract config (rewards contract, staking token, fork edge).\n * Sparse map keyed by chain id \u2014 the current chain's file is the entry point; fork\n * ancestors are sibling files under the same folder. `chainId` is normalized to lowercase.\n */\nexport const chainContractByIdPath = (chainId: string): string => `chain/contracts/${chainId.toLowerCase()}.json`\n\n/**\n * One immutable version of the chain parameter register. Versions are never rewritten, so a\n * reader that resolved one can keep using it.\n */\nexport const chainParamsVersionPath = (chainId: string, version: number): string =>\n `chain/params/${chainId.toLowerCase()}/v${version}.json`\n\n/** The mutable pointer naming the current register version for a chain. */\nexport const chainParamsHeadPath = (chainId: string): string => `chain/params/${chainId.toLowerCase()}/head.json`\n", "/**\n * Path builders for the finalized (immutable) bucket.\n *\n * Paths are relative \u2014 no leading slash \u2014 and joined to a base URL by the consumer.\n */\n\n/** The finalized layout descriptor (path templates, encoding, version, earliest block). */\nexport const manifestPath = (): string => 'manifest.json'\n\n/** A block by number: SignedHydratedBlockWithHashMeta. */\nexport const blockNumberPath = (block: number): string => `block/number/${block}.json`\n\n/** A block by hash: the same content as its by-number twin. */\nexport const blockHashPath = (hash: string): string => `block/hash/${hash}.json`\n\n/** A payload by hash: WithHashMeta<Payload>. */\nexport const payloadPath = (hash: string): string => `payload/${hash}.json`\n", "import type { IndexSummaryFamily } from '#protocol-lib'\n\n/**\n * Path builders for the index bucket.\n *\n * The index is a separate, single-writer bucket holding completed step summaries for several\n * families. Paths are relative \u2014 no leading slash \u2014 and joined to a base URL by the consumer.\n */\n\n/** A completed frame's summary for a family, e.g. `blocks/2/5.json`. Immutable once written. */\nexport const indexSummaryPath = (family: IndexSummaryFamily, stepLevel: number, stepIndex: number): string =>\n `${family}/${stepLevel}/${stepIndex}.json`\n\n/** The index layout descriptor (families, max step, encoding, version). */\nexport const indexManifestPath = (): string => 'manifest.json'\n\n/** The indexer's progress watermark (highest block the index is complete through). */\nexport const indexHeadPath = (): string => 'head.json'\n", "import type { Hash } from '@ariestools/sdk'\n\nconst TRANSACTION_INCLUSION_ROOT = 'transactions'\n\n/** Path of one immutable transaction-hash to finalized-block inclusion record. */\nexport function transactionInclusionPath(transactionHash: Hash): string {\n return `${TRANSACTION_INCLUSION_ROOT}/by-hash/${transactionHash}.json`\n}\n\n/** Path of the mutable transaction-inclusion progress pointer. */\nexport function transactionInclusionHeadPath(): string {\n return `${TRANSACTION_INCLUSION_ROOT}/head.json`\n}\n\n/** Path of the transaction-inclusion layout descriptor. */\nexport function transactionInclusionManifestPath(): string {\n return `${TRANSACTION_INCLUSION_ROOT}/manifest.json`\n}\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { asSchema } from '@xyo-network/sdk'\nimport { z } from 'zod'\n\nimport { ChainIdZod, NumberishZod } from '#protocol-lib'\nimport { OffenseCodes, RuleIds } from '#protocol-model'\n\n/** Schema id for the chain parameter register document. */\nexport const ChainParamsSchema = asSchema('network.xyo.s3.chain.params', true)\n/** Type literal for the chain parameter register schema. */\nexport type ChainParamsSchema = typeof ChainParamsSchema\n\n/** Bumped when the register shape changes, so readers can detect a mismatch. */\nexport const CHAIN_PARAMS_VERSION = 1\n\n// the register speaks full zod while the shared code list is zod/mini, so the enum is rebuilt here\nconst offenseCodeZod = z.enum(OffenseCodes)\n\n/** Zod schema for a rule identifier. */\nexport const RuleIdZod = z.enum(RuleIds)\n\nconst HeightZod = NumberishZod.pipe(z.int().nonnegative())\nconst HexAmountZod = z.string()\n\n/**\n * Zod schema for one version of the chain parameter register.\n *\n * The register is the control plane: which rules are on, from what height, and the numbers they\n * use. A register that activates nothing describes a network running exactly as it did before\n * any of this existed, which is what makes trusted operation a posture rather than an old build.\n */\nexport const ChainParamsZod = z.object({\n /** Rule id to the height it takes effect. */\n activations: z.partialRecord(RuleIdZod, HeightZod),\n /** Address whose adjudication records are honored. */\n arbiter: z.string(),\n /** Share of a step's reward pool paid to attestors, in basis points. */\n attestationRewardBps: z.int().nonnegative(),\n /** Absolute ceiling on any single bounty, in the smallest unit. */\n bountyCapAtto: HexAmountZod,\n /** Share of a slash offered as a bounty, in basis points. */\n bountyShareBps: z.int().nonnegative(),\n /** Minimum share of every slash that must be burned, in basis points. */\n burnFloorBps: z.int().positive(),\n /** Version of the offense catalog these parameters describe. */\n catalogVersion: z.int().positive(),\n /** Chain these parameters govern. */\n chainId: ChainIdZod,\n /** Window during which counter-evidence may be filed, in EVM blocks. */\n challengeWindowEvmBlocks: z.int().positive(),\n /** Rule id to the height it stops taking effect; re-activation needs a later version. */\n deactivations: z.optional(z.partialRecord(RuleIdZod, HeightZod)),\n /** Maximum age of an offense at report time, in EVM blocks. */\n evidenceFreshnessEvmBlocks: z.int().positive(),\n /** Operational floor on how long evidence is kept, in XL1 blocks. */\n evidenceRetentionXl1Blocks: z.int().positive(),\n /** Delay between a certificate being queued and executable, in EVM blocks. */\n executionDelayEvmBlocks: z.int().positive(),\n /** How far behind its own anchor a block's stake measurement may sit, in EVM blocks. */\n freshnessBandEvmBlocks: z.int().positive(),\n /** Blocks after an activation during which the rule is observed but not enforced. */\n graceBandXl1Blocks: z.int().nonnegative(),\n /** Confirmation depth an anchor must sit behind the EVM head, in EVM blocks. */\n maturityEvmBlocks: z.int().positive(),\n /** Minimum stake a producer must place on itself, in the smallest unit. */\n minProducerSelfBondAtto: HexAmountZod,\n /** Minimum stake on a producer address, in the smallest unit. */\n minProducerStakeAtto: HexAmountZod,\n /** Minimum age stake must reach before it counts toward participation, in EVM blocks. */\n minStakeAgeEvmBlocks: z.int().nonnegative(),\n /** Minimum stake a validator must hold, in the smallest unit. */\n minValidatorStakeAtto: HexAmountZod,\n /** Slack the timing budget carries for operations and stalls, in EVM blocks. */\n opsAllowanceEvmBlocks: z.int().positive(),\n /** Lowest protocol version a block may declare. */\n protocolMin: z.int().positive(),\n /** Refundable deposit a report must escrow, in the smallest unit. */\n reporterDepositAtto: HexAmountZod,\n /** Blocks a reveal must wait after its commitment. */\n revealDelayEvmBlocks: z.int().positive(),\n /** Blocks a reveal must wait after its commitment, on the XL1 clock. */\n revealDelayXl1Blocks: z.int().positive(),\n /** Blocks after which an unrevealed commitment expires. */\n revealWindowEvmBlocks: z.int().positive(),\n /** Blocks after which an unrevealed commitment expires, on the XL1 clock. */\n revealWindowXl1Blocks: z.int().positive(),\n /** Where the allowed block reward comes from. */\n rewardSource: z.enum(['schedule', 'contract']),\n schema: z.literal(ChainParamsSchema),\n /** Offense code to the share of at-risk stake it slashes, in basis points. */\n slashFractionsBps: z.partialRecord(offenseCodeZod, z.int().nonnegative()),\n /** Distinct validator signatures a slash certificate needs. */\n slashQuorumCount: z.int().positive(),\n /** Version of this register document. */\n version: z.int().positive(),\n})\n\n/** One version of the chain parameter register. */\nexport type ChainParams = z.infer<typeof ChainParamsZod>\n\n/** Numeric-input-tolerant shape accepted when creating a register version. */\nexport type ChainParamsInput = z.input<typeof ChainParamsZod>\n\n/** Type guard that checks if a value is a valid ChainParams. */\nexport const isChainParams = zodIsFactory(ChainParamsZod)\n/** Converts a value to ChainParams, throwing if invalid. */\nexport const asChainParams = zodAsFactory(ChainParamsZod, 'asChainParams')\n/** Non-validating cast to ChainParams. */\nexport const toChainParams = zodToFactory(ChainParamsZod, 'toChainParams')\n\n/** Schema id for the register head pointer. */\nexport const ChainParamsHeadSchema = asSchema('network.xyo.s3.chain.params.head', true)\n/** Type literal for the register head schema. */\nexport type ChainParamsHeadSchema = typeof ChainParamsHeadSchema\n\n/** Zod schema for the mutable pointer naming the current register version. */\nexport const ChainParamsHeadZod = z.object({\n /** Hash of the version document, so a reader can tell it got the one the head meant. */\n hash: z.string(),\n schema: z.literal(ChainParamsHeadSchema),\n /** Version number the pointer names. */\n version: z.int().positive(),\n})\n\n/** The mutable pointer naming the current register version. */\nexport type ChainParamsHead = z.infer<typeof ChainParamsHeadZod>\n\n/** Type guard that checks if a value is a valid ChainParamsHead. */\nexport const isChainParamsHead = zodIsFactory(ChainParamsHeadZod)\n/** Converts a value to ChainParamsHead, throwing if invalid. */\nexport const asChainParamsHead = zodAsFactory(ChainParamsHeadZod, 'asChainParamsHead')\n\n/** Builds a validated register version. */\nexport function createChainParams(config: Omit<ChainParamsInput, 'schema'>): ChainParams {\n return ChainParamsZod.parse({ ...config, schema: ChainParamsSchema })\n}\n\n/** Builds a validated register head pointer. */\nexport function createChainParamsHead(version: number, hash: string): ChainParamsHead {\n return ChainParamsHeadZod.parse({\n hash, schema: ChainParamsHeadSchema, version,\n })\n}\n", "import type {\n OffenseCode, RuleActivationState, RuleId,\n} from '#protocol-model'\nimport {\n adjudicableRuleId, isRuleObservedAt, reportableRuleId, ruleActivationStateAt,\n} from '#protocol-model'\n\nimport type { ChainParams } from './chainParams.ts'\n\n/** Whether reports naming an offense at a height may be recorded. */\nexport function isOffenseReportableAt(params: ChainParams, offense: OffenseCode, height: number): boolean {\n return isRuleObservedAt(params, reportableRuleId(offense), height)\n}\n\n/**\n * Where an offense stands for adjudication at a height.\n *\n * Callers need the three-way answer rather than a boolean: inside the grace band a report is\n * still verified and recorded, it simply cannot be confirmed against anyone.\n */\nexport function offenseAdjudicationStateAt(\n params: ChainParams,\n offense: OffenseCode,\n height: number,\n): RuleActivationState {\n return ruleActivationStateAt(params, adjudicableRuleId(offense), height)\n}\n\n/**\n * The lowest protocol version a block at this height may declare, or undefined when nothing is\n * required yet.\n *\n * The floor rides with the anchor rules, since that is the release the version stamp first has to\n * mean something. Before then `block.protocol` is declared but unchecked, and rejecting on it\n * would fail blocks that were valid when they were made.\n * @param params The register version in force\n * @param height The XL1 height being judged\n * @returns The minimum protocol version, or undefined when unenforced\n */\nexport function protocolMinAt(params: ChainParams, height: number): number | undefined {\n return isRuleObservedAt(params, 'anchor-rules', height) ? params.protocolMin : undefined\n}\n\n/**\n * Checks that a new register version may follow the one already published.\n *\n * The register is append-only over history: a version may add rules and move future heights, but\n * never rewrite what was true at a height the chain has already passed. Without that, a rule\n * could be made retroactive and blocks that were valid when produced would become offenses.\n * @param previous The currently published version, when there is one\n * @param next The version being published\n * @param finalizedHeight The current finalized head height\n * @returns The reasons the version may not be published, empty when it may\n */\nexport function chainParamsSuccessionErrors(\n previous: ChainParams | undefined,\n next: ChainParams,\n finalizedHeight: number,\n): string[] {\n if (previous === undefined) return []\n const errors: string[] = []\n if (next.version <= previous.version) {\n errors.push(`version must increase: ${previous.version} -> ${next.version}`)\n }\n if (next.chainId !== previous.chainId) {\n errors.push(`chainId must not change: ${previous.chainId} -> ${next.chainId}`)\n }\n for (const [ruleId, height] of Object.entries(previous.activations)) {\n if (height > finalizedHeight) continue\n if (next.activations[ruleId as RuleId] !== height) {\n errors.push(`activation for '${ruleId}' is already in force at ${height} and must not move`)\n }\n }\n for (const [ruleId, height] of Object.entries(next.deactivations ?? {})) {\n if (height < finalizedHeight) {\n errors.push(`deactivation for '${ruleId}' at ${height} is in the past`)\n }\n }\n return errors\n}\n", "import {\n EthAddressZod, HexRegExMinMaxMixedCaseWithPrefix,\n zodAsFactory,\n} from '@ariestools/sdk'\nimport { z } from 'zod/mini'\n\nconst EvmHashZod = z.string().check(z.regex(HexRegExMinMaxMixedCaseWithPrefix(32, 32)))\nconst EvmDataZod = z.string().check(z.regex(/^0x[\\dA-Fa-f]*$/))\n\n/** JSON-safe representation of one raw EVM contract log. */\nexport const EvmEventIndexLogZod = z.object({\n address: EthAddressZod,\n blockHash: EvmHashZod,\n blockNumber: z.number(),\n data: EvmDataZod,\n index: z.number(),\n topics: z.array(EvmHashZod),\n transactionHash: EvmHashZod,\n transactionIndex: z.number(),\n})\n\n/** Type for one raw EVM contract log in the event index. */\nexport type EvmEventIndexLog = z.infer<typeof EvmEventIndexLogZod>\n\n/** One immutable, address-scoped range of finalized EVM logs. */\nexport const EvmEventIndexFrameZod = z.object({\n fromBlock: z.number(),\n logs: z.array(EvmEventIndexLogZod),\n toBlock: z.number(),\n})\n\n/** Type for one immutable event-index frame. */\nexport type EvmEventIndexFrame = z.infer<typeof EvmEventIndexFrameZod>\n\n/** Static description of one contract event index. */\nexport const EvmEventIndexManifestZod = z.object({\n address: EthAddressZod,\n chainId: z.string(),\n deploymentBlock: z.number(),\n frameSize: z.number(),\n layout: z.literal('evm-contract-events-v1'),\n})\n\n/** Type for the event-index manifest document. */\nexport type EvmEventIndexManifest = z.infer<typeof EvmEventIndexManifestZod>\n\n/**\n * Mutable pointer written after all frames through `block` are durable.\n * Wire schema for the `EvmEventIndexHead` runner contract in `#protocol-lib`.\n */\nexport const EvmEventIndexHeadZod = z.object({\n address: EthAddressZod,\n block: z.number(),\n chainId: z.string(),\n hash: EvmHashZod,\n})\n\n/** Converts a value to EvmEventIndexFrame, throwing if invalid. */\nexport const asEvmEventIndexFrame = zodAsFactory(EvmEventIndexFrameZod, 'asEvmEventIndexFrame')\n/** Converts a value to EvmEventIndexHead, throwing if invalid. */\nexport const asEvmEventIndexHead = zodAsFactory(EvmEventIndexHeadZod, 'asEvmEventIndexHead')\n/** Converts a value to EvmEventIndexManifest, throwing if invalid. */\nexport const asEvmEventIndexManifest = zodAsFactory(EvmEventIndexManifestZod, 'asEvmEventIndexManifest')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { z } from 'zod'\n\nimport type { IndexSummaryFamily, IndexWatermark } from '#protocol-lib'\n\nimport { indexSummaryPathTemplate } from '../templates.ts'\n\n/** Bumped when the on-disk index layout changes shape, so readers can detect a mismatch. */\nexport const INDEX_LAYOUT_VERSION = 1\n\n/** Schema id for the index manifest document (the static layout descriptor). */\nexport const IndexManifestSchema = 'network.xyo.s3.index.manifest' as const\n/** Type literal for the index manifest schema. */\nexport type IndexManifestSchema = typeof IndexManifestSchema\n\n/** Schema id for the index head document (the progress watermark). */\nexport const IndexHeadSchema = 'network.xyo.s3.index.head' as const\n/** Type literal for the index head schema. */\nexport type IndexHeadSchema = typeof IndexHeadSchema\n\n/** Per-family descriptor carried in the manifest. */\nexport const IndexManifestFamilyZod = z.object({\n /** Highest step level published for this family. */\n maxStep: z.int().nonnegative(),\n /** Path template for the family's frames, e.g. `blocks/{level}/{index}.json`. */\n path: z.string(),\n})\n\n/** Type for one index manifest family descriptor. */\nexport type IndexManifestFamily = z.infer<typeof IndexManifestFamilyZod>\n\nconst indexFamiliesZod = z.object({\n balances: IndexManifestFamilyZod,\n blocks: IndexManifestFamilyZod,\n schemas: IndexManifestFamilyZod,\n transfers: IndexManifestFamilyZod,\n})\n\n/** Zod schema for the static index layout descriptor at `indexManifestPath()`. */\nexport const IndexManifestZod = z.object({\n families: indexFamiliesZod,\n schema: z.literal(IndexManifestSchema),\n version: z.int().positive(),\n})\n\n/** The static index layout descriptor at `indexManifestPath()`. */\nexport type IndexManifest = z.infer<typeof IndexManifestZod>\n\n/** Type guard that checks if a value is a valid IndexManifest. */\nexport const isIndexManifest = zodIsFactory(IndexManifestZod)\n/** Converts a value to IndexManifest, throwing if invalid. */\nexport const asIndexManifest = zodAsFactory(IndexManifestZod, 'asIndexManifest')\n/** Non-validating cast to IndexManifest. */\nexport const toIndexManifest = zodToFactory(IndexManifestZod, 'toIndexManifest')\n\n/** Completed frame counts per family in the index head watermark. */\nexport const IndexHeadFamiliesZod = z.object({\n balances: z.int().nonnegative(),\n blocks: z.int().nonnegative(),\n schemas: z.int().nonnegative(),\n transfers: z.int().nonnegative(),\n})\n\n/** Zod schema for the index progress watermark at `indexHeadPath()`. */\nexport const IndexHeadZod = z.object({\n /** Highest block the index is complete through. */\n block: z.int().nonnegative(),\n /** Completed frame counts per family. */\n families: IndexHeadFamiliesZod,\n /** Hash of that block. */\n hash: z.string(),\n schema: z.literal(IndexHeadSchema),\n /** ISO-8601 timestamp of the last update. */\n updatedAt: z.string(),\n version: z.int().positive(),\n})\n\n/** The index progress watermark at `indexHeadPath()`. */\nexport type IndexHead = z.infer<typeof IndexHeadZod>\n\n/** Type guard that checks if a value is a valid IndexHead. */\nexport const isIndexHead = zodIsFactory(IndexHeadZod)\n/** Converts a value to IndexHead, throwing if invalid. */\nexport const asIndexHead = zodAsFactory(IndexHeadZod, 'asIndexHead')\n/** Non-validating cast to IndexHead. */\nexport const toIndexHead = zodToFactory(IndexHeadZod, 'toIndexHead')\n\n/** Builds per-family manifest descriptors with path templates derived from the path builders. */\nexport function createIndexManifestFamilies(\n maxSteps: Record<IndexSummaryFamily, number>,\n): Record<IndexSummaryFamily, IndexManifestFamily> {\n return {\n balances: { maxStep: maxSteps.balances, path: indexSummaryPathTemplate('balances') },\n blocks: { maxStep: maxSteps.blocks, path: indexSummaryPathTemplate('blocks') },\n schemas: { maxStep: maxSteps.schemas, path: indexSummaryPathTemplate('schemas') },\n transfers: { maxStep: maxSteps.transfers, path: indexSummaryPathTemplate('transfers') },\n }\n}\n\n/** Builds a validated index manifest with path templates derived from the path builders. */\nexport function createIndexManifest(maxSteps: Record<IndexSummaryFamily, number>): IndexManifest {\n return asIndexManifest({\n families: createIndexManifestFamilies(maxSteps),\n schema: IndexManifestSchema,\n version: INDEX_LAYOUT_VERSION,\n }, true)\n}\n\n/** Builds a validated index head watermark from an indexer progress snapshot. */\nexport function createIndexHead(watermark: IndexWatermark, updatedAt?: string): IndexHead {\n const now = new Date()\n const resolvedUpdatedAt = updatedAt ?? now.toISOString()\n return asIndexHead({\n block: watermark.block,\n families: watermark.families,\n hash: watermark.hash,\n schema: IndexHeadSchema,\n updatedAt: resolvedUpdatedAt,\n version: INDEX_LAYOUT_VERSION,\n }, true)\n}\n", "import {\n HashZod, zodAsFactory, zodIsFactory,\n} from '@ariestools/sdk'\nimport { asSchema } from '@xyo-network/sdk'\nimport { z } from 'zod'\n\n/** Version of the durable network-stake rewards index layout. */\nexport const NETWORK_STAKE_REWARDS_INDEX_LAYOUT = 'network-stake-rewards-v1' as const\n/** Default reward policy identifier for protocol rewards without multipliers. */\nexport const NETWORK_STAKE_REWARDS_UNMULTIPLIED_POLICY = 'unmultiplied-v1' as const\n/** @deprecated Use NETWORK_STAKE_REWARDS_UNMULTIPLIED_POLICY. */\nexport const NETWORK_STAKE_REWARDS_BASE_POLICY = NETWORK_STAKE_REWARDS_UNMULTIPLIED_POLICY\n/** Schema of an immutable cumulative network-stake rewards snapshot payload. */\nexport const NetworkStakeRewardsIndexSnapshotSchema = asSchema('network.xyo.chain.stake.rewards.snapshot', true)\n\nconst DecimalBigIntZod = z.string().regex(/^(?:0|[1-9]\\d*)$/)\n/** Path-safe identifier for a deterministic reward policy. */\nexport const NetworkStakeRewardsPolicyIdZod = z.string().regex(/^[a-z0-9][a-z0-9._-]*$/)\nconst PositionRewardsZod = z.record(z.string().regex(/^(?:0|[1-9]\\d*)$/), DecimalBigIntZod)\nconst BlockRangeZod = z.tuple([z.number().int().nonnegative(), z.number().int().nonnegative()])\nconst StepIdentityJsonZod = z.object({\n block: z.number().int().nonnegative(),\n step: z.number().int().nonnegative(),\n})\n\n/** Static policy and source description for one rewards index tree. */\nexport const NetworkStakeRewardsIndexManifestZod = z.object({\n evmAddress: z.string(),\n evmChainId: z.string(),\n layout: z.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),\n policyId: NetworkStakeRewardsPolicyIdZod,\n stepLevels: z.array(z.number().int().nonnegative()),\n timeAnchor: z.object({\n externalGenesisTime: z.number().optional(),\n maxScanBlocks: z.number().optional(),\n }).optional(),\n})\n\n/** Static policy and source description for one rewards index tree. */\nexport type NetworkStakeRewardsIndexManifest = z.infer<typeof NetworkStakeRewardsIndexManifestZod>\n\n/** Immutable reward allocation for one completed XL1 reward step. */\nexport const NetworkStakeRewardsIndexStepZod = z.object({\n denominator: DecimalBigIntZod,\n externalRange: BlockRangeZod,\n layout: z.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),\n policyId: NetworkStakeRewardsPolicyIdZod,\n positionRewards: PositionRewardsZod,\n step: StepIdentityJsonZod,\n totalReward: DecimalBigIntZod,\n xl1Range: BlockRangeZod,\n})\n\n/** Immutable reward allocation for one completed XL1 reward step. */\nexport type NetworkStakeRewardsIndexStep = z.infer<typeof NetworkStakeRewardsIndexStepZod>\n\n/** Immutable cumulative position totals referenced by a mutable head. */\nexport const NetworkStakeRewardsIndexSnapshotZod = z.object({\n layout: z.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),\n policyId: NetworkStakeRewardsPolicyIdZod,\n positionRewards: PositionRewardsZod,\n schema: z.literal(NetworkStakeRewardsIndexSnapshotSchema),\n stepCount: z.number().int().nonnegative(),\n totalReward: DecimalBigIntZod,\n})\n\n/** Immutable cumulative position totals referenced by a mutable head. */\nexport type NetworkStakeRewardsIndexSnapshot = z.infer<typeof NetworkStakeRewardsIndexSnapshotZod>\n\n/** Mutable pointer written only after every referenced step and snapshot is durable. */\nexport const NetworkStakeRewardsIndexHeadZod = z.object({\n layout: z.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),\n policyId: NetworkStakeRewardsPolicyIdZod,\n positionCount: z.number().int().nonnegative(),\n processedThroughBlock: z.number().int().nonnegative(),\n snapshotHash: HashZod,\n source: z.object({\n evm: z.object({\n block: z.number().int().nonnegative(),\n hash: z.string(),\n }),\n xl1: z.object({\n block: z.number().int().nonnegative(),\n hash: z.string(),\n }),\n }),\n stepCount: z.number().int().nonnegative(),\n})\n\n/** Mutable pointer written only after every referenced step and snapshot is durable. */\nexport type NetworkStakeRewardsIndexHead = z.infer<typeof NetworkStakeRewardsIndexHeadZod>\n\n/** Checks whether a value is a valid rewards index manifest. */\nexport const isNetworkStakeRewardsIndexManifest = zodIsFactory(NetworkStakeRewardsIndexManifestZod)\n/** Converts a value to a rewards index manifest, throwing if invalid. */\nexport const asNetworkStakeRewardsIndexManifest = zodAsFactory(\n NetworkStakeRewardsIndexManifestZod,\n 'asNetworkStakeRewardsIndexManifest',\n)\n/** Converts a value to a rewards index step, throwing if invalid. */\nexport const asNetworkStakeRewardsIndexStep = zodAsFactory(\n NetworkStakeRewardsIndexStepZod,\n 'asNetworkStakeRewardsIndexStep',\n)\n/** Converts a value to a rewards index snapshot, throwing if invalid. */\nexport const asNetworkStakeRewardsIndexSnapshot = zodAsFactory(\n NetworkStakeRewardsIndexSnapshotZod,\n 'asNetworkStakeRewardsIndexSnapshot',\n)\n/** Converts a value to a rewards index head, throwing if invalid. */\nexport const asNetworkStakeRewardsIndexHead = zodAsFactory(\n NetworkStakeRewardsIndexHeadZod,\n 'asNetworkStakeRewardsIndexHead',\n)\n", "import {\n HashZod, zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { z } from 'zod'\n\nimport { ChainIdZod, XL1BlockNumberZod } from '#protocol-model'\n\nimport { transactionInclusionPathTemplate } from '../templates.ts'\n\n/** Versioned identifier for the finalized transaction-inclusion index layout. */\nexport const TRANSACTION_INCLUSION_INDEX_LAYOUT = 'transaction-inclusions-v1' as const\n\n/** Static descriptor for the transaction-inclusion index. */\nexport const TransactionInclusionManifestZod = z.object({\n /** XL1 chain whose finalized transactions are indexed. */\n chain: ChainIdZod,\n /** Versioned layout identifier. */\n layout: z.literal(TRANSACTION_INCLUSION_INDEX_LAYOUT),\n /** Hash-addressed path template, for example `transactions/by-hash/{hash}.json`. */\n path: z.string(),\n})\n\n/** Static descriptor for the transaction-inclusion index. */\nexport type TransactionInclusionManifest = z.infer<typeof TransactionInclusionManifestZod>\n\n/** Mutable pointer written after every transaction inclusion through `block` is durable. */\nexport const TransactionInclusionHeadZod = z.object({\n /** Highest finalized block fully represented by the lookup. */\n block: XL1BlockNumberZod,\n /** Hash of the highest finalized block fully represented by the lookup. */\n blockHash: HashZod,\n /** XL1 chain whose finalized transactions are indexed. */\n chain: ChainIdZod,\n /** Number of transaction-inclusion records represented through `block`. */\n entries: z.int().nonnegative(),\n /** Versioned layout identifier. */\n layout: z.literal(TRANSACTION_INCLUSION_INDEX_LAYOUT),\n})\n\n/** Mutable transaction-inclusion progress pointer. */\nexport type TransactionInclusionHead = z.infer<typeof TransactionInclusionHeadZod>\n\n/** Type guard that checks whether a value is a valid transaction-inclusion manifest. */\nexport const isTransactionInclusionManifest = zodIsFactory(TransactionInclusionManifestZod)\n/** Converts a value to a transaction-inclusion manifest, throwing when invalid. */\nexport const asTransactionInclusionManifest = zodAsFactory(\n TransactionInclusionManifestZod,\n 'asTransactionInclusionManifest',\n)\n/** Converts a value to a transaction-inclusion manifest, returning undefined when invalid. */\nexport const toTransactionInclusionManifest = zodToFactory(\n TransactionInclusionManifestZod,\n 'toTransactionInclusionManifest',\n)\n\n/** Type guard that checks whether a value is a valid transaction-inclusion head. */\nexport const isTransactionInclusionHead = zodIsFactory(TransactionInclusionHeadZod)\n/** Converts a value to a transaction-inclusion head, throwing when invalid. */\nexport const asTransactionInclusionHead = zodAsFactory(\n TransactionInclusionHeadZod,\n 'asTransactionInclusionHead',\n)\n/** Converts a value to a transaction-inclusion head, returning undefined when invalid. */\nexport const toTransactionInclusionHead = zodToFactory(\n TransactionInclusionHeadZod,\n 'toTransactionInclusionHead',\n)\n\n/** Builds the static descriptor for a chain's transaction-inclusion index. */\nexport function createTransactionInclusionManifest(\n chain: TransactionInclusionManifest['chain'],\n): TransactionInclusionManifest {\n return asTransactionInclusionManifest({\n chain,\n layout: TRANSACTION_INCLUSION_INDEX_LAYOUT,\n path: transactionInclusionPathTemplate(),\n }, true)\n}\n\n/** Builds the mutable progress pointer for a transaction-inclusion index. */\nexport function createTransactionInclusionHead(\n head: Omit<TransactionInclusionHead, 'layout'>,\n): TransactionInclusionHead {\n return asTransactionInclusionHead({\n ...head,\n layout: TRANSACTION_INCLUSION_INDEX_LAYOUT,\n }, true)\n}\n", "import type { ChainId } from '#protocol-lib'\n\nimport type { ChainParams } from './chainParams.ts'\nimport { createChainParams } from './chainParams.ts'\n\n/**\n * Planning values for the decentralization parameters.\n *\n * These are the numbers the papers propose, not values any network is bound to. They are carried\n * here so a register can be authored without inventing them, and so the one place they live is\n * the one place a governance change edits.\n *\n * The stake amounts are deliberately absent: they are denominated in the staking token's smallest\n * unit and are a governance decision per network, so a default would be a guess wearing a\n * default's clothing.\n */\nexport const DEFAULT_CHAIN_PARAMS = {\n attestationRewardBps: 1000,\n bountyShareBps: 1000,\n burnFloorBps: 9000,\n catalogVersion: 1,\n challengeWindowEvmBlocks: 14_400,\n evidenceFreshnessEvmBlocks: 21_600,\n evidenceRetentionXl1Blocks: 60_000,\n executionDelayEvmBlocks: 7200,\n freshnessBandEvmBlocks: 2048,\n graceBandXl1Blocks: 1440,\n maturityEvmBlocks: 32,\n minStakeAgeEvmBlocks: 100_800,\n opsAllowanceEvmBlocks: 7200,\n protocolMin: 1_003_000,\n revealDelayEvmBlocks: 60,\n revealDelayXl1Blocks: 10,\n revealWindowEvmBlocks: 7200,\n revealWindowXl1Blocks: 1440,\n slashFractionsBps: {\n 'equivocation': 1500,\n 'false-anchor': 750,\n 'false-attestation': 500,\n 'ineligible-production': 100,\n 'invalid-block': 500,\n 'invalid-slash-request': 750,\n 'reward-overmint': 1500,\n },\n slashQuorumCount: 5,\n}\n\n/** What a trusted-posture register needs beyond the planning defaults. */\nexport interface TrustedPostureConfig {\n /** Address whose adjudication records would be honored, once any rule is on. */\n arbiter: string\n /** Absolute bounty ceiling, in the smallest unit. */\n bountyCapAtto?: string\n /** Chain these parameters govern. */\n chainId: ChainId\n /** Minimum producer self-bond, in the smallest unit. */\n minProducerSelfBondAtto?: string\n /** Minimum producer stake, in the smallest unit. */\n minProducerStakeAtto?: string\n /** Minimum validator stake, in the smallest unit. */\n minValidatorStakeAtto?: string\n /** Refundable reporter deposit, in the smallest unit. */\n reporterDepositAtto?: string\n /** Where the allowed block reward comes from. */\n rewardSource?: 'schedule' | 'contract'\n /** Version number; the first published register is 1. */\n version?: number\n}\n\n/**\n * Builds a register describing a network that enforces nothing.\n *\n * This is the first version a network publishes, and it changes nothing about how that network\n * behaves: no rule has an activation height, so every gate reads as inactive and the chain runs\n * exactly as it did before the register existed. What it does provide is the control plane \u2014\n * somewhere for a later version to record an activation, and something for nodes to be reading\n * long before the first rule turns on.\n *\n * The stake amounts default to zero because they are meaningless while nothing consumes them. A\n * network that intends to enforce sets them in the version that first activates admission, when\n * they have been sized against the value an offense could extract.\n * @param config Chain identity and any amounts already decided\n * @returns A register version with no activations\n */\nexport function createTrustedPostureParams(config: TrustedPostureConfig): ChainParams {\n return createChainParams({\n ...DEFAULT_CHAIN_PARAMS,\n activations: {},\n arbiter: config.arbiter,\n bountyCapAtto: config.bountyCapAtto ?? '00',\n chainId: config.chainId,\n minProducerSelfBondAtto: config.minProducerSelfBondAtto ?? '00',\n minProducerStakeAtto: config.minProducerStakeAtto ?? '00',\n minValidatorStakeAtto: config.minValidatorStakeAtto ?? '00',\n reporterDepositAtto: config.reporterDepositAtto ?? '00',\n rewardSource: config.rewardSource ?? 'contract',\n version: config.version ?? 1,\n })\n}\n", "import type { EthAddress } from '@ariestools/sdk'\n\nfunction root(address: EthAddress): string {\n return `evm/events/${address.toLowerCase()}`\n}\n\n/** Path of one immutable event-index frame within the index bucket. */\nexport function evmEventIndexFramePath(address: EthAddress, frameIndex: number): string {\n return `${root(address)}/frames/${frameIndex}.json`\n}\n\n/** Path of the mutable event-index head pointer within the index bucket. */\nexport function evmEventIndexHeadPath(address: EthAddress): string {\n return `${root(address)}/head.json`\n}\n\n/** Path of the event-index manifest within the index bucket. */\nexport function evmEventIndexManifestPath(address: EthAddress): string {\n return `${root(address)}/manifest.json`\n}\n\n/** Path of the mutable partial-frame tail within the index bucket. */\nexport function evmEventIndexTailPath(address: EthAddress): string {\n return `${root(address)}/tail.json`\n}\n", "import type { Hash } from '@ariestools/sdk'\n\nimport type { StepIdentity } from '#protocol-model'\n\nfunction root(policyId: string): string {\n return `rewards/network-stake/v1/${policyId}`\n}\n\n/** Path of the mutable rewards-index head. */\nexport function networkStakeRewardsIndexHeadPath(policyId: string): string {\n return `${root(policyId)}/head.json`\n}\n\n/** Path of the static rewards-index manifest. */\nexport function networkStakeRewardsIndexManifestPath(policyId: string): string {\n return `${root(policyId)}/manifest.json`\n}\n\n/** Path of one immutable cumulative position snapshot. */\nexport function networkStakeRewardsIndexSnapshotPath(policyId: string, snapshotHash: Hash): string {\n return `${root(policyId)}/snapshots/${snapshotHash}.json`\n}\n\n/** Path of one immutable completed-step reward allocation. */\nexport function networkStakeRewardsIndexStepPath(policyId: string, step: StepIdentity): string {\n return `${root(policyId)}/steps/${step.step}/${step.block}.json`\n}\n", "import type { NetworkId } from '../models/index.ts'\n\n/** Builds URLs to pages on an XL1 chain explorer for a specific network. */\nexport class ExplorerLinks {\n /** Explorer origin with trailing slashes removed. */\n readonly explorerUrl: string\n /** Network identifier included in generated links. */\n readonly networkId: NetworkId\n\n /**\n * Creates a link builder for one explorer deployment and network.\n *\n * @param explorerUrl Base explorer URL, with or without trailing slashes.\n * @param networkId Network segment included in every generated URL.\n */\n constructor(explorerUrl: string, networkId: NetworkId) {\n this.explorerUrl = explorerUrl.replace(/\\/+$/, '')\n this.networkId = networkId\n }\n\n /** `{explorerUrl}/xl1/{networkId}/address/{address}` */\n address(address: string): string {\n return `${this.network()}/address/${address}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/addresses` */\n addresses(): string {\n return `${this.network()}/addresses`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/block/{blockHash}` */\n block(blockHash: string): string {\n return `${this.network()}/block/${blockHash}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/block/number/{blockNumber}` */\n blockByNumber(blockNumber: number | string): string {\n return `${this.network()}/block/number/${blockNumber}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/block/{blockHash}/payload/{payloadHash}[/{render}]` */\n blockPayload(blockHash: string, payloadHash: string, render?: string): string {\n const base = `${this.network()}/block/${blockHash}/payload/${payloadHash}`\n return render === undefined ? base : `${base}/${render}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/blocks` */\n blocks(): string {\n return `${this.network()}/blocks`\n }\n\n /** `{explorerUrl}/xl1/{networkId}` */\n network(): string {\n return `${this.explorerUrl}/xl1/${this.networkId}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/transaction/{txHash}` */\n transaction(txHash: string): string {\n return `${this.network()}/transaction/${txHash}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/transaction/{txHash}/payload/{payloadHash}[/{render}]` */\n transactionPayload(txHash: string, payloadHash: string, render?: string): string {\n const base = `${this.network()}/transaction/${txHash}/payload/${payloadHash}`\n return render === undefined ? base : `${base}/${render}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/transactions` */\n transactions(): string {\n return `${this.network()}/transactions`\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["networkNodeMap", "zodAsFactory", "zodIsFactory", "zodToFactory", "z", "z", "zodIsFactory", "zodAsFactory", "zodToFactory", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "z", "ChainIdZod", "NumberishZod", "zodAsFactory", "z", "zodAsFactory", "zodIsFactory", "zodToFactory", "z", "z", "zodIsFactory", "zodAsFactory", "zodToFactory", "zodAsFactory", "zodIsFactory", "asSchema", "z", "HashZod", "zodAsFactory", "zodIsFactory", "zodToFactory", "z", "ChainIdZod", "z", "ChainIdZod", "HashZod", "zodIsFactory", "zodAsFactory", "zodToFactory", "root"]
|
|
7
7
|
}
|
|
@@ -315,6 +315,19 @@ var isInBlockPayloadValidationError = (error) => {
|
|
|
315
315
|
return error.name === InBlockPayloadValidationError.name;
|
|
316
316
|
};
|
|
317
317
|
|
|
318
|
+
// src/modules/protocol-lib/validation/payload/ruleGate.ts
|
|
319
|
+
import { isRuleActiveAt } from "#protocol-model";
|
|
320
|
+
async function resolveRuleParams(context, height) {
|
|
321
|
+
return await context.paramsAtHeight?.(height);
|
|
322
|
+
}
|
|
323
|
+
function requireRuleActive(params, ruleId, height, subject) {
|
|
324
|
+
if (params === void 0) return `parameter register unresolved: ${subject} not admissible`;
|
|
325
|
+
if (!isRuleActiveAt(params, ruleId, height)) {
|
|
326
|
+
return `${subject} not admissible: rule '${ruleId}' is not active at height ${height}`;
|
|
327
|
+
}
|
|
328
|
+
return void 0;
|
|
329
|
+
}
|
|
330
|
+
|
|
318
331
|
// src/modules/protocol-lib/validation/transaction/error.ts
|
|
319
332
|
var HydratedTransactionValidationError = class extends ValidationError {
|
|
320
333
|
};
|
|
@@ -366,6 +379,9 @@ var BlockValidationViewerMoniker = "BlockValidationViewer";
|
|
|
366
379
|
// src/modules/protocol-lib/viewers/ChainContract.ts
|
|
367
380
|
var ChainContractViewerMoniker = "ChainContractViewer";
|
|
368
381
|
|
|
382
|
+
// src/modules/protocol-lib/viewers/ChainParams.ts
|
|
383
|
+
var ChainParamsViewerMoniker = "ChainParamsViewer";
|
|
384
|
+
|
|
369
385
|
// src/modules/protocol-lib/viewers/ChainStakeViewer.ts
|
|
370
386
|
var ChainStakeViewerMoniker = "ChainStakeViewer";
|
|
371
387
|
|
|
@@ -549,6 +565,7 @@ export {
|
|
|
549
565
|
BoundWitnessValidationError,
|
|
550
566
|
CandidatePairsOptionsZod,
|
|
551
567
|
ChainContractViewerMoniker,
|
|
568
|
+
ChainParamsViewerMoniker,
|
|
552
569
|
ChainStakeViewerMoniker,
|
|
553
570
|
ChainStatePublishRunnerMoniker,
|
|
554
571
|
ChainStateViewerMoniker,
|
|
@@ -652,6 +669,8 @@ export {
|
|
|
652
669
|
isTransactionValidationConfig,
|
|
653
670
|
isValidationError,
|
|
654
671
|
isXyoJwtSignerMethods,
|
|
672
|
+
requireRuleActive,
|
|
673
|
+
resolveRuleParams,
|
|
655
674
|
resolveStepPlacement,
|
|
656
675
|
rewardAddressFromStepIdentity,
|
|
657
676
|
sentinelAddressFromSchema,
|