@xyo-network/xl1-protocol 1.25.23 → 1.25.24

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/amount/splitOnDecimal.ts","../../src/amount/splitOnDecimalToString.ts","../../src/amount/ShiftedBigInt.ts","../../src/amount/XL1Amount.ts","../../src/xl1/isXL1Factory.ts","../../src/xl1/xl1MaxValue.ts","../../src/xl1/XL1Units.ts","../../src/xl1/AttoXL1.ts","../../src/xl1/FemtoXL1.ts","../../src/xl1/MicroXL1.ts","../../src/xl1/MilliXL1.ts","../../src/xl1/NanoXL1.ts","../../src/xl1/PicoXL1.ts","../../src/xl1/XL1.ts","../../src/block/AllowedBlockPayload.ts","../../src/payload/elevatable/Bridge/BridgeDestinationObservation.ts","../../src/payload/elevatable/Bridge/BridgeDetails.ts","../../src/payload/elevatable/Bridge/BridgeIntent.ts","../../src/payload/elevatable/Bridge/BridgeSourceObservation.ts","../../src/payload/elevatable/ChainStakeIntent.ts","../../src/payload/elevatable/Executable.ts","../../src/payload/elevatable/Hash.ts","../../src/payload/elevatable/StepComplete.ts","../../src/payload/elevatable/Time.ts","../../src/payload/StepIdentityPayload.ts","../../src/Step/StepIdentity.ts","../../src/BlockNumber/BlockNumber.ts","../../src/BlockNumber/Numberish.ts","../../src/BlockNumber/EthBlockNumber.ts","../../src/BlockNumber/XL1BlockNumber.ts","../../src/Step/StepSizes.ts","../../src/transaction/TransactionBoundWitness.ts","../../src/chain/Chain.ts","../../src/transaction/TransactionFees.ts","../../src/transaction/TransactionGasCosts.ts","../../src/TransferPayload.ts","../../src/block/BlockBoundWitness.ts","../../src/block/HydratedBlock.ts","../../src/block/signed/SignedBlockBoundWitness.ts","../../src/block/signed/SignedBlockBoundWitnessWithHashMeta.ts","../../src/block/signed/SignedBlockBoundWitnessWithStorageMeta.ts","../../src/block/unsigned/UnsignedBlockBoundWitness.ts","../../src/fields/BlockNumber.ts","../../src/model/AccountBalance.ts","../../src/model/ChainQualification.ts","../../src/model/BlockRange/BlockRange.ts","../../src/model/BlockRange/EthBlockRange.ts","../../src/model/BlockRange/Range.ts","../../src/model/BlockRange/XL1BlockRange.ts","../../src/model/addresses.ts","../../src/model/ArrayBuffer.ts","../../src/model/BlockRate.ts","../../src/model/Context/BaseContext.zod.ts","../../src/model/Context/BlockContext.zod.ts","../../src/model/Context/CachingContext.zod.ts","../../src/model/Context/HeadContext.zod.ts","../../src/model/Context/ChainContext.zod.ts","../../src/model/defaultRewardRatio.ts","../../src/model/minTransactionFees.ts","../../src/model/defaultTransactionFees.ts","../../src/model/HydratedTransaction.ts","../../src/model/OpCodes.ts","../../src/model/Permission.ts","../../src/model/rewards.ts","../../src/model/RewardsRangeOptions.ts","../../src/model/Sequence.ts","../../src/model/Stake.ts","../../src/model/TimeDomain.ts","../../src/model/TransferPair.ts","../../src/model/version.ts","../../src/network/Status.ts","../../src/provider/ProviderMoniker.ts","../../src/providers/DataLake/Runner.ts","../../src/providers/DataLake/Viewer.ts","../../src/providers/signer/XyoSigner.ts","../../src/providers/XyoConnection.ts","../../src/providers/XyoGateway.ts","../../src/providers/XyoGatewayRunner.ts","../../src/providers/XyoRunner.ts","../../src/runners/Block.ts","../../src/runners/Finalization.ts","../../src/runners/Mempool.ts","../../src/validation/error.ts","../../src/validation/block/error.ts","../../src/validation/boundwitness/error.ts","../../src/validation/payload/error.ts","../../src/validation/transaction/error.ts","../../src/viewers/Block.ts","../../src/viewers/BlockInvalidation.ts","../../src/viewers/BlockReward.ts","../../src/viewers/BlockValidation.ts","../../src/viewers/ChainContract.ts","../../src/viewers/ChainStakeViewer.ts","../../src/viewers/Finalization.ts","../../src/viewers/Mempool.ts","../../src/viewers/NetworkStake/NetworkStakeViewer.ts","../../src/viewers/NetworkStake/Rewards/ByPositionViewer.ts","../../src/viewers/NetworkStake/Rewards/ByStakerViewer.ts","../../src/viewers/NetworkStake/Rewards/ByStepViewer.ts","../../src/viewers/NetworkStake/Rewards/TotalViewer.ts","../../src/viewers/NetworkStake/Rewards/Viewer.ts","../../src/viewers/NetworkStakeStepReward.ts","../../src/viewers/Stake.ts","../../src/viewers/StakeEvents.ts","../../src/viewers/StakeTotals.ts","../../src/viewers/StepStake.ts","../../src/viewers/StepViewer.ts","../../src/viewers/TimeSync.ts","../../src/viewers/Transaction.ts","../../src/viewers/TransactionInvalidation.ts","../../src/viewers/TransactionValidation.ts","../../src/viewers/TransferBalance.ts","../../src/viewers/WindowedBlock.ts","../../src/viewers/XyoViewer.ts"],"sourcesContent":["export const splitOnDecimal = (value: bigint, places = 18): [bigint, bigint] => {\n const whole = value / BigInt(10 ** places)\n const decimal = value % BigInt(10 ** places)\n return [whole, decimal]\n}\n","import { splitOnDecimal } from './splitOnDecimal.ts'\n\nexport const splitOnDecimalToString = (\n value: bigint,\n places = 18,\n maxDecimal = places,\n maxCharacters = 9,\n minDecimals = 1,\n locale: Intl.LocalesArgument = 'en-US',\n): string => {\n const [whole, decimal] = splitOnDecimal(value, places)\n const remainderLength = decimal.toString().length\n const precedingZerosInDecimal = places - remainderLength\n if (whole === 0n && precedingZerosInDecimal >= maxDecimal && decimal !== 0n) return '< 0.'.padEnd(maxDecimal + 5, '0') + '1'\n\n const wholeCharacters = whole.toString(10).length\n const calcMaxDecimalCharacters = maxCharacters === -1 ? places : wholeCharacters > maxCharacters ? 0 : maxCharacters - wholeCharacters\n const maxDecimalCharacters = Math.min(maxDecimal, calcMaxDecimalCharacters)\n\n // Format whole number with thousand separators according to locale\n const formattedWhole = new Intl.NumberFormat(locale, {\n maximumFractionDigits: 0,\n useGrouping: true,\n }).format(whole)\n\n // Get decimal separator for the locale\n const decimalSeparator = new Intl.NumberFormat(locale)\n .formatToParts(1.1)\n .find(part => part.type === 'decimal')?.value ?? '.'\n\n // Pad decimal part to correct number of places\n let paddedDecimal = decimal.toString().padStart(places, '0').slice(0, maxDecimalCharacters)\n // remove unneeded trailing zeros (honoring minDecimals)\n while (paddedDecimal.length > minDecimals && paddedDecimal.endsWith('0')) {\n paddedDecimal = paddedDecimal.slice(0, -1)\n }\n\n return `${formattedWhole}${paddedDecimal.length > 0 ? decimalSeparator : ''}${paddedDecimal}`\n}\n","import type { ShiftedBigIntConfig } from './ShiftedBigIntConfig.ts'\nimport { splitOnDecimalToString } from './splitOnDecimalToString.ts'\n\nexport class ShiftedBigInt {\n static readonly defaultConfig: ShiftedBigIntConfig = {\n places: 18,\n maxDecimal: 18,\n maxCharacters: 9,\n minDecimals: 1,\n locale: 'en-US',\n }\n\n config: ShiftedBigIntConfig\n value: bigint\n\n constructor(\n value: bigint | ShiftedBigInt,\n config: Partial<ShiftedBigIntConfig> = {},\n ) {\n this.value = typeof value === 'bigint' ? value : value.value\n this.config = {\n ...ShiftedBigInt.defaultConfig, ...(typeof value === 'bigint' ? {} : value.config), ...config,\n }\n }\n\n get locale(): Intl.LocalesArgument {\n return this.config.locale ?? 'en-US'\n }\n\n get maxCharacters(): number {\n return this.config.maxCharacters ?? 9\n }\n\n get maxDecimal(): number {\n return this.config.maxDecimal ?? this.places\n }\n\n get minDecimals(): number {\n return this.config.minDecimals ?? 1\n }\n\n get places(): number {\n return this.config.places ?? 18\n }\n\n toFullString(): string {\n return splitOnDecimalToString(\n this.value,\n this.places,\n this.places,\n Infinity,\n this.places,\n this.locale,\n )\n }\n\n toShortString(): string {\n return splitOnDecimalToString(\n this.value,\n this.places,\n this.maxDecimal,\n this.maxCharacters,\n this.minDecimals,\n this.locale,\n )\n }\n\n toString(): string {\n return this.toFullString()\n }\n}\n","/* eslint-disable @typescript-eslint/member-ordering */\nimport { assertEx } from '@xylabs/sdk-js'\n\nimport {\n AttoXL1, FemtoXL1, MicroXL1, MilliXL1, NanoXL1, PicoXL1, XL1,\n XL1Places,\n} from '../xl1/index.ts'\nimport { ShiftedBigInt } from './ShiftedBigInt.ts'\nimport type { ShiftedBigIntConfig } from './ShiftedBigIntConfig.ts'\n\nconst MAX_XL1_AMOUNT = 2n ** 256n - 1n\nconst allowedPlaces = Object.values(XL1Places)\n\nexport interface XL1AmountInstance {\n value: AttoXL1\n\n to(places: bigint | number): bigint\n\n milli: MilliXL1\n\n micro: MicroXL1\n\n nano: NanoXL1\n\n pico: PicoXL1\n\n femto: FemtoXL1\n\n atto: AttoXL1\n\n xl1: XL1\n\n toString(places: number, config: Partial<ShiftedBigIntConfig>): string\n}\n\nexport class XL1Amount implements XL1AmountInstance {\n value: AttoXL1\n private locale: Intl.LocalesArgument\n\n constructor(value: bigint, locale: Intl.LocalesArgument = 'en-US') {\n this.locale = locale\n this.value = AttoXL1(value > MAX_XL1_AMOUNT ? MAX_XL1_AMOUNT : value < 0n ? 0n : value)\n }\n\n static from(value: bigint, places: bigint = XL1Places.atto) {\n assertEx(allowedPlaces.includes(places), () => `Invalid conversion places (${places} not in ${allowedPlaces})`)\n return new XL1Amount(value * 10n ** BigInt(places))\n }\n\n static fromMilli(value: MilliXL1) {\n return this.from(value, XL1Places.milli)\n }\n\n static fromMicro(value: MicroXL1) {\n return this.from(value, XL1Places.micro)\n }\n\n static fromNano(value: NanoXL1) {\n return this.from(value, XL1Places.nano)\n }\n\n static fromPico(value: PicoXL1) {\n return this.from(value, XL1Places.pico)\n }\n\n static fromFemto(value: FemtoXL1) {\n return this.from(value, XL1Places.femto)\n }\n\n static fromAtto(value: AttoXL1) {\n return this.from(value, XL1Places.atto)\n }\n\n static fromXL1(value: XL1) {\n return this.from(value, XL1Places.xl1)\n }\n\n to(places: number | bigint = XL1Places.atto) {\n return this.value / 10n ** BigInt(places)\n }\n\n get milli() {\n return MilliXL1(this.to(XL1Places.milli))\n }\n\n get micro() {\n return MicroXL1(this.to(XL1Places.micro))\n }\n\n get nano() {\n return NanoXL1(this.to(XL1Places.nano))\n }\n\n get pico() {\n return PicoXL1(this.to(XL1Places.pico))\n }\n\n get femto() {\n return FemtoXL1(this.to(XL1Places.femto))\n }\n\n get atto() {\n return AttoXL1(this.to(XL1Places.atto))\n }\n\n get xl1() {\n return XL1(this.to(XL1Places.xl1))\n }\n\n toString(places: number = Number(XL1Places.atto), config: Partial<ShiftedBigIntConfig> = {}): string {\n assertEx(allowedPlaces.includes(BigInt(places)), () => `Invalid conversion places (${places} not in ${allowedPlaces})`)\n return new ShiftedBigInt(\n this.value,\n {\n places,\n locale: this.locale,\n maxDecimal: places,\n minDecimals: 0,\n maxCharacters: places,\n ...config,\n },\n ).toShortString()\n }\n}\n","import { z } from 'zod'\n\nimport { xl1MaxValue } from './xl1MaxValue.ts'\n\nexport const isXL1Factory = <T extends bigint>(places: bigint) => (val: unknown): val is T => {\n if (typeof val !== 'bigint') return false\n return val >= 0n && val <= xl1MaxValue(places)\n}\n\nexport const XL1ZodFactory = <T extends bigint>(places: bigint, name: string) => {\n const is = isXL1Factory<T>(places)\n const message = `Invalid value for ${name}, must be between 0 and ${xl1MaxValue(places)}`\n return z.bigint().refine(\n (x) => {\n const result = is(x)\n return result\n },\n { message },\n )\n}\n\nexport const XL1TransformZodFactory = <T extends bigint>(places: bigint, name: string) => {\n const is = isXL1Factory<T>(places)\n const message = `Invalid value for ${name}, must be between 0 and ${xl1MaxValue(places)}`\n return z.union([z.bigint(), z.number(), z.string(), z.boolean()]).transform(val => BigInt(val) as T).refine(\n (x) => {\n const result = is(x)\n return result\n },\n { message },\n )\n}\n\nexport const asXL1Factory = <T extends bigint>(places: bigint) => {\n const zod = XL1ZodFactory<T>(places, 'local')\n return (val: unknown): T => {\n const result = zod.safeParse(val)\n if (result.success) {\n return result.data as T\n }\n throw result.error\n }\n}\n\nexport const toXL1Factory = <T extends bigint>(places: bigint) => {\n const zod = XL1TransformZodFactory<T>(places, 'local')\n return (val: unknown): T | undefined => {\n const result = zod.safeParse(val)\n return result.success ? result.data as T : undefined\n }\n}\n","export const xl1MaxValue = (places: bigint) => 10n ** (32n - places) - 1n\n","type XL1Units = 'xl1' | 'milli' | 'micro' | 'nano' | 'pico' | 'femto' | 'atto'\n\nexport const XL1Places: Record<XL1Units, bigint> = {\n xl1: 18n,\n milli: 15n,\n micro: 12n,\n nano: 9n,\n pico: 6n,\n femto: 3n,\n atto: 0n,\n} as const\n\n/**\n * Convert factor by which a respective unit is multiplied to convert it to AttoXL1 or\n * by which AttoXL1 is divided to convert it to respective unit is multiplied.\n */\nexport const AttoXL1ConvertFactor: Record<XL1Units, bigint> = {\n xl1: 10n ** XL1Places.xl1,\n milli: 10n ** XL1Places.milli,\n micro: 10n ** XL1Places.micro,\n nano: 10n ** XL1Places.nano,\n pico: 10n ** XL1Places.pico,\n femto: 10n ** XL1Places.femto,\n atto: 10n ** XL1Places.atto,\n} as const\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const AttoXL1MaxValue = xl1MaxValue(XL1Places.atto)\nexport type AttoXL1 = bigint & { readonly _tag: 'AttoXL1' }\nexport const isAttoXL1 = isXL1Factory<AttoXL1>(XL1Places.atto)\nexport const asAttoXL1 = asXL1Factory<AttoXL1>(XL1Places.atto)\nexport const toAttoXL1 = toXL1Factory<AttoXL1>(XL1Places.atto)\n\nexport const AttoXL1 = asAttoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const FemtoXL1MaxValue = xl1MaxValue(XL1Places.femto)\nexport type FemtoXL1 = bigint & { readonly _tag: 'FemtoXL1' }\nexport const isFemtoXL1 = isXL1Factory<FemtoXL1>(XL1Places.femto)\nexport const asFemtoXL1 = asXL1Factory<FemtoXL1>(XL1Places.femto)\n\nexport const toFemtoXL1 = toXL1Factory<FemtoXL1>(XL1Places.femto)\n\nexport const FemtoXL1 = asFemtoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const MicroXL1MaxValue = xl1MaxValue(XL1Places.micro)\nexport type MicroXL1 = bigint & { readonly _tag: 'MicroXL1' }\nexport const isMicroXL1 = isXL1Factory<MicroXL1>(XL1Places.micro)\nexport const asMicroXL1 = asXL1Factory<MicroXL1>(XL1Places.micro)\n\nexport const toMicroXL1 = toXL1Factory<MicroXL1>(XL1Places.micro)\n\nexport const MicroXL1 = asMicroXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const MilliXL1MaxValue = xl1MaxValue(XL1Places.milli)\nexport type MilliXL1 = bigint & { readonly _tag: 'MilliXL1' }\nexport const isMilliXL1 = isXL1Factory<MilliXL1>(XL1Places.milli)\nexport const asMilliXL1 = asXL1Factory<MilliXL1>(XL1Places.milli)\n\nexport const toMilliXL1 = toXL1Factory<MilliXL1>(XL1Places.milli)\n\nexport const MilliXL1 = asMilliXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const NanoXL1MaxValue = xl1MaxValue(XL1Places.nano)\nexport type NanoXL1 = bigint & { readonly _tag: 'NanoXL1' }\nexport const isNanoXL1 = isXL1Factory<NanoXL1>(XL1Places.nano)\nexport const asNanoXL1 = asXL1Factory<NanoXL1>(XL1Places.nano)\n\nexport const toNanoXL1 = toXL1Factory<NanoXL1>(XL1Places.nano)\n\nexport const NanoXL1 = asNanoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const PicoXL1MaxValue = xl1MaxValue(XL1Places.pico)\nexport type PicoXL1 = bigint & { readonly _tag: 'PicoXL1' }\nexport const isPicoXL1 = isXL1Factory<PicoXL1>(XL1Places.pico)\nexport const asPicoXL1 = asXL1Factory<PicoXL1>(XL1Places.pico)\n\nexport const toPicoXL1 = toXL1Factory<PicoXL1>(XL1Places.pico)\n\nexport const PicoXL1 = asPicoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const XL1MaxValue = xl1MaxValue(XL1Places.xl1)\nexport type XL1 = bigint & { readonly _tag: 'XL1' }\nexport const isXL1 = isXL1Factory<XL1>(XL1Places.xl1)\nexport const asXL1 = asXL1Factory<XL1>(XL1Places.xl1)\n\nexport const toXL1 = toXL1Factory<XL1>(XL1Places.xl1)\n\nexport const XL1 = asXL1\n","import { zodIsFactory } from '@xylabs/sdk-js'\nimport type {\n Schema, SchemaPayload, WithStorageMeta,\n} from '@xyo-network/sdk-js'\nimport {\n BoundWitnessSchema, isHashMeta, isSchemaPayload, SchemaSchema,\n} from '@xyo-network/sdk-js'\nimport { z } from 'zod'\n\nimport type {\n BridgeDestinationObservation, BridgeIntent, BridgeSourceObservation, ChainStakeIntent, HashPayload, StepComplete, TimePayload,\n} from '../payload/index.ts'\nimport {\n BridgeDestinationObservationSchema, BridgeIntentSchema, BridgeSourceObservationSchema, ChainStakeIntentSchema, HashSchema,\n isBridgeDestinationObservation, isBridgeIntent, isBridgeSourceObservation, isChainStakeIntent, isHashPayload, isTimePayload, StepCompleteSchema,\n TimeSchema,\n} from '../payload/index.ts'\nimport { isTransactionBoundWitness, type TransactionBoundWitness } from '../transaction/index.ts'\nimport {\n isTransfer, type Transfer, TransferSchema,\n} from '../TransferPayload.ts'\n\nexport type AllowedBlockPayload\n = | BridgeDestinationObservation\n | BridgeIntent\n | BridgeSourceObservation\n | ChainStakeIntent\n | HashPayload\n | SchemaPayload\n | StepComplete\n | TimePayload\n | TransactionBoundWitness\n | Transfer\n\nexport const AllowedBlockPayloadSchemas = [\n BoundWitnessSchema,\n BridgeDestinationObservationSchema,\n BridgeIntentSchema,\n BridgeSourceObservationSchema,\n ChainStakeIntentSchema,\n HashSchema,\n SchemaSchema,\n StepCompleteSchema,\n TimeSchema,\n TransferSchema,\n] satisfies Schema[]\n\nexport const AllowedBlockPayloadSchemaZod = z.enum(AllowedBlockPayloadSchemas)\nexport type AllowedBlockPayloadSchema = z.infer<typeof AllowedBlockPayloadSchemaZod>\nexport const isAllowedBlockPayloadSchema = zodIsFactory(AllowedBlockPayloadSchemaZod)\n\nexport const isAllowedBlockPayload = <T>(value: T): value is AllowedBlockPayload & T => {\n return isTransfer(value)\n || isBridgeDestinationObservation(value)\n || isBridgeIntent(value)\n || isBridgeSourceObservation(value)\n || isChainStakeIntent(value)\n || isHashPayload(value)\n || isSchemaPayload(value)\n || isTimePayload(value)\n || isTransactionBoundWitness(value)\n}\n\nexport const isAllowedBlockPayloadWithHashMeta = <T>(value: T): value is WithStorageMeta<AllowedBlockPayload & T> => {\n return isAllowedBlockPayload(value) && isHashMeta(value)\n}\n","import { AsObjectFactory, HexZod } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport { asSchema, isPayloadOfZodType } from '@xyo-network/sdk-js'\nimport type { z } from 'zod'\n\nimport { BridgeDetailsFieldsZod } from './BridgeDetails.ts'\n\nexport const BridgeDestinationObservationSchema = asSchema('network.xyo.chain.bridge.observation.destination', true)\nexport type BridgeDestinationObservationSchema = typeof BridgeDestinationObservationSchema\n\n/**\n * Represents an observation that confirms a bridge action occurred on the destination chain.\n */\nexport const BridgeDestinationObservationFieldsZod = BridgeDetailsFieldsZod.extend({\n /**\n * Destination chain confirmation\n */\n destConfirmation: HexZod.optional().describe('Destination chain confirmation'),\n})\n\nexport type BridgeDestinationObservationFields = z.infer<typeof BridgeDestinationObservationFieldsZod>\n\n/**\n * Represents an observation that confirms a bridge action occurred on the destination chain.\n */\nexport type BridgeDestinationObservation = Payload<BridgeDestinationObservationFields, BridgeDestinationObservationSchema>\n\nexport const isBridgeDestinationObservation = isPayloadOfZodType<BridgeDestinationObservation>(\n BridgeDestinationObservationFieldsZod,\n BridgeDestinationObservationSchema,\n)\n\nexport const asBridgeDestinationObservation = AsObjectFactory.create(isBridgeDestinationObservation)\n","import { HexZod } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\n/**\n * Represents a transfer destination\n */\nexport const BridgeDetailsDestinationFieldsZod = z.object({\n /**\n * Destination network\n */\n dest: HexZod.describe('The destination network identifier'),\n /**\n * Destination address (EOA or contract)\n */\n destAddress: HexZod.describe('The destination address (EOA or contract)'),\n /**\n * Token amount to bridge to destination\n */\n destAmount: HexZod.describe('The token amount to bridge to destination'),\n /**\n * Token being bridged to\n */\n destToken: HexZod.describe('The token being bridged to'),\n})\n\n/**\n * Represents a transfer destination\n */\nexport type BridgeDetailsDestinationFields = z.infer<typeof BridgeDetailsDestinationFieldsZod>\n\n/**\n * Represents a transfer source\n */\nexport const BridgeDetailsSourceFieldsZod = z.object({\n /**\n * Source network\n */\n src: HexZod.describe('The source network identifier'),\n\n /**\n * Source address (EOA or contract)\n */\n srcAddress: HexZod.describe('The source address (EOA or contract)'),\n /**\n * Token amount to bridge from source\n */\n srcAmount: HexZod.describe('The token amount to bridge from source'),\n /**\n * Token being bridged from\n */\n srcToken: HexZod.describe('The token being bridged from'),\n})\n\n/**\n * Represents a transfer source\n */\nexport type BridgeDetailsSourceFields = z.infer<typeof BridgeDetailsSourceFieldsZod>\n\n/**\n * Represents a transfer from a source chain/token/address/amount to a destination chain/token/address/amount.\n */\nexport const BridgeDetailsFieldsZod = BridgeDetailsSourceFieldsZod.extend(\n BridgeDetailsDestinationFieldsZod.shape,\n)\n\n/**\n * Represents a transfer from a source chain/token/address/amount to a destination chain/token/address/amount.\n */\nexport type BridgeDetailsFields = z.infer<typeof BridgeDetailsFieldsZod>\n","import { AsObjectFactory } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport { asSchema, isPayloadOfZodType } from '@xyo-network/sdk-js'\nimport { z } from 'zod'\n\nimport { BridgeDetailsFieldsZod } from './BridgeDetails.ts'\n\nexport const BridgeIntentSchema = asSchema('network.xyo.chain.bridge.intent', true)\nexport type BridgeIntentSchema = typeof BridgeIntentSchema\n\n/**\n * Represents an Address's intent to initiate a token bridge.\n */\nexport const BridgeIntentFieldsZod = BridgeDetailsFieldsZod.extend({\n /**\n * Unique identifier for replay protection\n */\n nonce: z.string().describe('Unique identifier for replay protection'),\n})\n\nexport type BridgeIntentFields = z.infer<typeof BridgeIntentFieldsZod>\n\nexport type BridgeIntent = Payload<BridgeIntentFields, BridgeIntentSchema>\n\nexport const isBridgeIntent = isPayloadOfZodType<BridgeIntent>(\n BridgeIntentFieldsZod,\n BridgeIntentSchema,\n)\n\nexport const asBridgeIntent = AsObjectFactory.create(isBridgeIntent)\n","import { AsObjectFactory, HexZod } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport { asSchema, isPayloadOfZodType } from '@xyo-network/sdk-js'\nimport type { z } from 'zod'\n\nimport { BridgeDetailsFieldsZod } from './BridgeDetails.ts'\n\nexport const BridgeSourceObservationSchema = asSchema('network.xyo.chain.bridge.observation.source', true)\nexport type BridgeSourceObservationSchema = typeof BridgeSourceObservationSchema\n\n/**\n * Represents an observation that confirms a bridge action occurred on the source chain.\n */\nexport const BridgeSourceObservationFieldsZod = BridgeDetailsFieldsZod.extend({\n /**\n * Source chain confirmation\n */\n srcConfirmation: HexZod.optional().describe('Source chain confirmation'),\n})\n\nexport type BridgeSourceObservationFields = z.infer<typeof BridgeSourceObservationFieldsZod>\n/**\n * Represents an observation that confirms a bridge action occurred on the source chain.\n */\nexport type BridgeSourceObservation = Payload<BridgeSourceObservationFields, BridgeSourceObservationSchema>\n\nexport const isBridgeSourceObservation = isPayloadOfZodType<BridgeSourceObservation>(\n BridgeSourceObservationFieldsZod,\n BridgeSourceObservationSchema,\n)\n\nexport const asBridgeSourceObservation = AsObjectFactory.create(isBridgeSourceObservation)\n","import { AsObjectFactory } from '@xylabs/sdk-js'\nimport type { Payload, WithStorageMeta } from '@xyo-network/sdk-js'\nimport {\n asSchema, isPayloadOfSchemaType, isStorageMeta,\n} from '@xyo-network/sdk-js'\n\nimport type { BlockDuration } from '../../fields/index.ts'\nimport type { FromFields } from './Executable.ts'\n\nexport const ChainStakeIntentSchema = asSchema('network.xyo.chain.stake.intent', true)\nexport type ChainStakeIntentSchema = typeof ChainStakeIntentSchema\n\nexport type Intent = 'producer' // | 'bank'\n\nexport interface ChainStakeIntentFields extends BlockDuration, FromFields {\n /*\n * The intent of the staking\n */\n intent: Intent\n}\n\nexport type ChainStakeIntent = Payload<ChainStakeIntentFields, ChainStakeIntentSchema>\n\nexport const isChainStakeIntent = (x?: unknown | null): x is ChainStakeIntent => {\n return isPayloadOfSchemaType<ChainStakeIntent>(ChainStakeIntentSchema)(x)\n && asNonNegativeInteger(x.nbf) !== undefined\n && asNonNegativeInteger(x.exp) !== undefined\n}\nexport const asChainStakeIntent = AsObjectFactory.create(isChainStakeIntent)\n\nexport const isChainStakeIntentWithStorageMeta = (x?: unknown | null): x is WithStorageMeta<ChainStakeIntent> => {\n return isChainStakeIntent(x) && isStorageMeta(x)\n}\n\nconst asNonNegativeInteger = (num: number) => {\n return (Number.isInteger(num) && num >= 0) ? num : undefined\n}\n","import type { Address, EmptyObject } from '@xylabs/sdk-js'\nimport { isAnyPayload } from '@xyo-network/sdk-js'\n\nexport interface FromFields {\n // the address that is treated as the source of this action\n from: Address\n}\n\nexport const hasFrom = (value: unknown): value is FromFields => {\n return (value as FromFields).from !== undefined\n}\n\nexport interface ExecutableFields {\n script: string[]\n}\n\nexport type Executable<T extends EmptyObject = EmptyObject> = T & ExecutableFields\nexport type OptionalExecutable<T extends EmptyObject = EmptyObject> = T & Partial<ExecutableFields>\n\nexport const isExecutable = <T extends EmptyObject>(value: T | undefined): value is Executable<T> => {\n return isAnyPayload(value) && Array.isArray((value as unknown as ExecutableFields).script)\n}\n\nexport const asExecutable = <T extends EmptyObject>(value: T | undefined): Executable<T> | undefined => {\n return isExecutable(value)\n ? value as unknown as Executable<T>\n : undefined\n}\n","import type { Hash } from '@xylabs/sdk-js'\nimport { AsObjectFactory } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport { asSchema, isPayloadOfSchemaType } from '@xyo-network/sdk-js'\n\nexport const HashSchema = asSchema('network.xyo.hash', true)\nexport type HashSchema = typeof HashSchema\n\nexport interface HashFields {\n hash: Hash\n}\n\nexport type HashPayload = Payload<HashFields, HashSchema>\n\nexport const isHashPayload = isPayloadOfSchemaType<HashPayload>(HashSchema)\n\nexport const asHashPayload = AsObjectFactory.create(isHashPayload)\nexport const asHashPayloadWithStorageMeta = AsObjectFactory.create(isHashPayload)\n","import type { Hash } from '@xylabs/sdk-js'\nimport { AsObjectFactory } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport { asSchema, isPayloadOfSchemaType } from '@xyo-network/sdk-js'\n\nimport type { FromFields } from './Executable.ts'\n\nexport const StepCompleteSchema = asSchema('network.xyo.chain.step.complete', true)\nexport type StepCompleteSchema = typeof StepCompleteSchema\n\n/* This records the completion of a step in the network - needed for network staking rewards */\n/* We will only write these for steps that are eligible for rewards Step 3 (2311) */\n\nexport interface StepCompleteFields extends FromFields {\n block: number /* The block number on the XL1 network */\n hash: Hash /* The Step Hash */\n size: number /* The size of the step */\n stakeBlock: number /* The block number on ethereum or other staking system */\n}\n\n// if this payload is included in a boundwitness, it needs to be available for inspection to be included in block\nexport type StepComplete = Payload<StepCompleteFields, StepCompleteSchema>\n\nexport const isStepComplete = isPayloadOfSchemaType<StepComplete>(StepCompleteSchema)\n\nexport const asStepComplete = AsObjectFactory.create(isStepComplete)\n","import { AsObjectFactory, HashZod } from '@xylabs/sdk-js'\nimport {\n asSchema, isPayloadOfSchemaType, PayloadZodOfSchema,\n} from '@xyo-network/sdk-js'\nimport { z } from 'zod'\n\n// xl1 = xl1 block number, epoch = epoch number, ethereum = ethereum block number\nexport type TimeDomain = 'xl1' | 'epoch' | 'ethereum'\n\nexport const TimeSchema = asSchema('network.xyo.time', true)\nexport type TimeSchema = typeof TimeSchema\n\nexport const XL1TimeFieldsZod = z.object({\n // block number\n xl1: z.number().optional(),\n // block hash\n xl1Hash: HashZod.optional(),\n})\n\nexport const EthereumTimeFieldsZod = z.object({\n // block number\n ethereum: z.number().optional(),\n // block hash\n ethereumHash: HashZod.optional(),\n})\n\nexport const EpochTimeFieldsZod = z.object({\n // in milliseconds\n epoch: z.number(),\n})\n\nexport const TimeFieldsZod = XL1TimeFieldsZod.extend(XL1TimeFieldsZod.shape).extend(EthereumTimeFieldsZod.shape).extend(EpochTimeFieldsZod.shape)\n\nexport const TimePayloadZod = PayloadZodOfSchema(TimeSchema).extend(TimeFieldsZod.shape)\n\nexport type TimePayload = z.infer<typeof TimePayloadZod>\n\n// to prevent scaling problems, we use double the current time as a max safe epoch\nexport const isSafeEpoch = (value: unknown): value is number => {\n return typeof value === 'number' && value < 2 * Date.now()\n}\n\nexport const isTimePayload = (value: unknown): value is TimePayload => {\n return isPayloadOfSchemaType<TimePayload>(TimeSchema)(value) && isSafeEpoch(value.epoch)\n}\n\nexport const asTimePayload = AsObjectFactory.create(isTimePayload)\nexport const asTimePayloadWithStorageMeta = AsObjectFactory.create(isTimePayload)\n","import { AsObjectFactory } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport { asSchema, isPayloadOfZodType } from '@xyo-network/sdk-js'\nimport type { z } from 'zod'\n\nimport { StepIdentityZod } from '../Step/index.ts'\n\nexport const StepIdentitySchema = asSchema('network.xyo.chain.step.identity', true)\nexport type StepIdentitySchema = typeof StepIdentitySchema\n\nexport type StepIdentityFields = z.infer<typeof StepIdentityZod>\n\n/**\n * A Step Identity Payload\n */\nexport type StepIdentityPayload = Payload<StepIdentityFields, StepIdentitySchema>\n\nexport const isStepIdentityPayload = isPayloadOfZodType<StepIdentityPayload>(StepIdentityZod, StepIdentitySchema)\n\nexport const asStepIdentityPayload = AsObjectFactory.create(isStepIdentityPayload)\n","import { type Brand, isUndefined } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport { toXL1BlockNumber, XL1BlockNumberZod } from '../BlockNumber/index.ts'\n\nexport const StepIdentityZod = z.object({\n block: XL1BlockNumberZod.describe('The block number at which the step occurs'),\n step: z.number().int().nonnegative().describe('The index of the step into the StepSize array'),\n})\nexport type StepIdentity = z.infer<typeof StepIdentityZod>\n\n/** @deprecated use StepIdentity instead */\nexport interface StepContext extends StepIdentity {}\n\n// this string is the block and the step separated by a pipe\nexport type StepIdentityString = Brand<string, { readonly __stepIdentityString: true }>\n\nfunction tryParseInt(value: string): number | undefined {\n // Prevent coercion of empty strings to 0\n if (value === '') return undefined\n // Parse number\n const num = Number(value)\n // Check if integer\n return Number.isInteger(num) ? num : undefined\n}\n\nexport const asStepIdentity = (stepIdentityString: string): StepIdentity | undefined => {\n try {\n const [blockNumberString, stepString] = stepIdentityString.split('|')\n if (isUndefined(blockNumberString) || isUndefined(stepString)) {\n return undefined\n }\n const step = tryParseInt(stepString)\n const block = toXL1BlockNumber(blockNumberString)\n if (isUndefined(block) || isUndefined(step)) {\n return undefined\n }\n\n return { block, step }\n } catch {\n return undefined\n }\n}\n","import { type Brand } from '@xylabs/sdk-js'\nimport { zodAsFactory, zodToFactory } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport { NumberishZod } from './Numberish.ts'\n\nexport type BlockNumber = Brand<number, { readonly __blockNumber: true }>\n\nexport const BlockNumberZod = z.number().transform(v => v as BlockNumber)\nexport const BlockNumberishZod = NumberishZod.transform(v => v as BlockNumber)\n\nexport type BlockNumberish = z.input<typeof BlockNumberishZod>\n\nexport const asBlockNumber = zodAsFactory<BlockNumber>(BlockNumberZod, 'asBlockNumber')\nexport const toBlockNumber = zodToFactory<BlockNumber>(BlockNumberishZod, 'toBlockNumber')\n\nexport const BLOCK_NUMBER_ZERO = asBlockNumber(0)\n","import { z } from 'zod'\n\nexport const NumberishZod = z.union([z.number(), z.string(), z.bigint()])\n .transform(v => (typeof v === 'bigint' ? Number(v) : typeof v === 'string' ? Number(v) : v))\n .pipe(z.number())\n\nexport type Numberish = z.input<typeof NumberishZod>\n","import { type Brand } from '@xylabs/sdk-js'\nimport { zodAsFactory, zodToFactory } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport type { BlockNumber } from './BlockNumber.ts'\nimport { BlockNumberishZod } from './BlockNumber.ts'\n\nexport type EthBlockNumber = Brand<BlockNumber, { readonly __ethBlockNumber: true }>\n\nexport const EthBlockNumberZod = z.number().transform(v => v as EthBlockNumber)\nexport const EthBlockNumberishZod = BlockNumberishZod.transform(v => v as EthBlockNumber)\n\nexport type EthBlockNumberish = z.input<typeof EthBlockNumberishZod>\n\nexport const asEthBlockNumber = zodAsFactory<EthBlockNumber>(EthBlockNumberZod, 'asEthBlockNumber')\nexport const toEthBlockNumber = zodToFactory<EthBlockNumber>(EthBlockNumberishZod, 'toEthBlockNumber')\n\nexport const ETH_BLOCK_NUMBER_ZERO = asEthBlockNumber(0)\n","import { type Brand } from '@xylabs/sdk-js'\nimport { zodAsFactory, zodToFactory } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport type { BlockNumber } from './BlockNumber.ts'\nimport { BlockNumberishZod } from './BlockNumber.ts'\n\nexport type XL1BlockNumber = Brand<BlockNumber, { readonly __xl1BlockNumber: true }>\n\nexport const XL1BlockNumberZod = z.number().transform(v => v as XL1BlockNumber)\nexport const XL1BlockNumberishZod = BlockNumberishZod.transform(v => v as XL1BlockNumber)\n\nexport type XL1BlockNumberish = z.input<typeof XL1BlockNumberishZod>\n\nexport const asXL1BlockNumber = zodAsFactory<XL1BlockNumber>(XL1BlockNumberZod, 'asXL1BlockNumber')\nexport const toXL1BlockNumber = zodToFactory<XL1BlockNumber>(XL1BlockNumberishZod, 'toXL1BlockNumber')\n\nexport const XL1_BLOCK_NUMBER_ZERO = asXL1BlockNumber(0)\n","import { AsTypeFactory } from '@xylabs/sdk-js'\n\nimport { asXL1BlockNumber, type XL1BlockNumber } from '../BlockNumber/index.ts'\n\n// StepsV2 are primorial(n+2) + 1, where n is the index of the step size\n// primorial(n+2) = 2 → 2×3=6 → 6×5=30 → 30×7=210 → 210×11=2310\n\nexport const StepSizes: XL1BlockNumber[] = [\n asXL1BlockNumber(7, true),\n asXL1BlockNumber(31, true),\n asXL1BlockNumber(211, true),\n asXL1BlockNumber(2311, true),\n asXL1BlockNumber(30_031, true),\n asXL1BlockNumber(510_511, true),\n asXL1BlockNumber(9_699_691, true),\n asXL1BlockNumber(223_092_871, true),\n asXL1BlockNumber(6_469_693_231, true),\n]\n\nexport function isValidStep(step: unknown): step is number {\n if (typeof step === 'number' && Number.isInteger(step)) {\n return ((step >= 0) && (step < StepSizes.length))\n }\n return false\n}\n\nexport const asValidStep = AsTypeFactory.create<number>(isValidStep)\n\nexport function stepSize(step: number): number {\n const validatedStep = asValidStep(step, () => `Invalid step (${step}), must be an integer between 0 and ${StepSizes.length - 1}`, { required: true })\n return StepSizes[validatedStep]\n}\n\nexport const StepRewardFractions = [\n [0n, 1n], // 0%\n [0n, 1n], // 0%\n [0n, 1n], // 0%\n [1n, 10_000n], // 0.01%\n [2n, 1000n], // 0.2%\n [3n, 100n], // 3%\n [45n, 100n], // 45%\n] as const\n","import {\n AddressZod,\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport {\n BoundWitnessZod, HashMetaZod, SignedBoundWitnessZod, StorageMetaZod,\n UnsignedBoundWitnessZod,\n WithHashMetaZod,\n WithStorageMetaZod,\n} from '@xyo-network/sdk-js'\nimport { z } from 'zod'\n\nimport { XL1BlockNumberZod } from '../BlockNumber/index.ts'\nimport { ChainZod } from '../chain/index.ts'\nimport { TransactionFeesHexZod } from './TransactionFees.ts'\n\nexport const BlockStartZod = z.object({ nbf: XL1BlockNumberZod })\nexport const BlockEndZod = z.object({ exp: XL1BlockNumberZod })\nexport const BlockDurationZod = z.object({ nbf: XL1BlockNumberZod, exp: XL1BlockNumberZod })\nexport const BlockScriptsZod = z.object({ script: z.array(z.string()).optional() })\n\nexport const TransactionFeesZod = z.object({ fees: TransactionFeesHexZod })\n\nexport const TransactionBoundWitnessIdentityFields = z.object({ chain: ChainZod, from: AddressZod })\n\nexport const TransactionBoundWitnessFieldsZod = z.object()\n .safeExtend(BlockDurationZod.shape)\n .safeExtend(TransactionFeesZod.shape)\n .safeExtend(TransactionBoundWitnessIdentityFields.shape)\n .safeExtend(BlockScriptsZod.shape)\n\nexport type TransactionBoundWitnessFields = z.infer<typeof TransactionBoundWitnessFieldsZod>\n\nexport const TransactionBoundWitnessZod = BoundWitnessZod\n .safeExtend(TransactionBoundWitnessFieldsZod.shape)\n\nexport type TransactionBoundWitness = z.infer<typeof TransactionBoundWitnessZod>\n\nexport const isTransactionBoundWitness = zodIsFactory(TransactionBoundWitnessZod)\nexport const asTransactionBoundWitness = zodAsFactory(TransactionBoundWitnessZod, 'asTransactionBoundWitness')\nexport const toTransactionBoundWitness = zodToFactory(TransactionBoundWitnessZod, 'toTransactionBoundWitness')\n\nexport const TransactionBoundWitnessWithHashMetaZod = TransactionBoundWitnessZod\n .safeExtend(HashMetaZod.shape)\n\nexport type TransactionBoundWitnessWithHashMeta = z.infer<typeof TransactionBoundWitnessWithHashMetaZod>\n\nexport const isTransactionBoundWitnessWithHashMeta = zodIsFactory(TransactionBoundWitnessWithHashMetaZod)\nexport const asTransactionBoundWitnessWithHashMeta = zodAsFactory(TransactionBoundWitnessWithHashMetaZod, 'asTransactionBoundWitnessWithHashMeta')\nexport const toTransactionBoundWitnessWithHashMeta = zodToFactory(TransactionBoundWitnessWithHashMetaZod, 'toTransactionBoundWitnessWithHashMeta')\n\nexport const TransactionBoundWitnessWithStorageMetaZod = TransactionBoundWitnessZod\n .safeExtend(StorageMetaZod.shape)\n\nexport type TransactionBoundWitnessWithStorageMeta = z.infer<typeof TransactionBoundWitnessWithStorageMetaZod>\n\nexport const isTransactionBoundWitnessWithStorageMeta = zodIsFactory(TransactionBoundWitnessWithStorageMetaZod)\nexport const asTransactionBoundWitnessWithStorageMeta = zodAsFactory(TransactionBoundWitnessWithStorageMetaZod, 'asTransactionBoundWitnessWithStorageMeta')\nexport const toTransactionBoundWitnessWithStorageMeta = zodToFactory(TransactionBoundWitnessWithStorageMetaZod, 'toTransactionBoundWitnessWithStorageMeta')\n\nexport const UnsignedTransactionBoundWitnessZod = UnsignedBoundWitnessZod\n .safeExtend(TransactionBoundWitnessFieldsZod.shape)\n\nexport type UnsignedTransactionBoundWitness = z.infer<typeof UnsignedTransactionBoundWitnessZod>\n\nexport const isUnsignedTransactionBoundWitness = zodIsFactory(UnsignedTransactionBoundWitnessZod)\nexport const asUnsignedTransactionBoundWitness = zodAsFactory(UnsignedTransactionBoundWitnessZod, 'asUnsignedTransactionBoundWitness')\nexport const toUnsignedTransactionBoundWitness = zodToFactory(UnsignedTransactionBoundWitnessZod, 'toUnsignedTransactionBoundWitness')\n\nexport const UnsignedTransactionBoundWitnessWithHashMetaZod = UnsignedTransactionBoundWitnessZod.safeExtend(HashMetaZod.shape)\n\nexport type UnsignedTransactionBoundWitnessWithHashMeta = z.infer<typeof UnsignedTransactionBoundWitnessWithHashMetaZod>\n\nexport const isUnsignedTransactionBoundWitnessWithHashMeta = zodIsFactory(UnsignedTransactionBoundWitnessWithHashMetaZod)\nexport const asUnsignedTransactionBoundWitnessWithHashMeta = zodAsFactory(\n UnsignedTransactionBoundWitnessWithHashMetaZod,\n 'asUnsignedTransactionBoundWitnessWithHashMeta',\n)\nexport const toUnsignedTransactionBoundWitnessWithHashMeta = zodToFactory(\n UnsignedTransactionBoundWitnessWithHashMetaZod,\n 'toUnsignedTransactionBoundWitnessWithHashMeta',\n)\n\nexport const UnsignedTransactionBoundWitnessWithStorageMetaZod = UnsignedTransactionBoundWitnessZod\n .safeExtend(StorageMetaZod.shape)\n\nexport type UnsignedTransactionBoundWitnessWithStorageMeta = z.infer<typeof UnsignedTransactionBoundWitnessWithStorageMetaZod>\n\nexport const isUnsignedTransactionBoundWitnessWithStorageMeta = zodIsFactory(UnsignedTransactionBoundWitnessWithStorageMetaZod)\nexport const asUnsignedTransactionBoundWitnessWithStorageMeta = zodAsFactory(\n UnsignedTransactionBoundWitnessWithStorageMetaZod,\n 'asUnsignedTransactionBoundWitnessWithStorageMeta',\n)\nexport const toUnsignedTransactionBoundWitnessWithStorageMeta = zodToFactory(\n UnsignedTransactionBoundWitnessWithStorageMetaZod,\n 'toUnsignedTransactionBoundWitnessWithStorageMeta',\n)\n\nexport const SignedTransactionBoundWitnessZod = SignedBoundWitnessZod\n .safeExtend(TransactionBoundWitnessFieldsZod.shape)\n\nexport type SignedTransactionBoundWitness = z.infer<typeof SignedTransactionBoundWitnessZod>\n\nexport const isSignedTransactionBoundWitness = zodIsFactory(SignedTransactionBoundWitnessZod)\nexport const asSignedTransactionBoundWitness = zodAsFactory(SignedTransactionBoundWitnessZod, 'asSignedTransactionBoundWitness')\nexport const toSignedTransactionBoundWitness = zodToFactory(SignedTransactionBoundWitnessZod, 'toSignedTransactionBoundWitness')\n\nexport const SignedTransactionBoundWitnessWithHashMetaZod = WithHashMetaZod(SignedTransactionBoundWitnessZod)\n\nexport type SignedTransactionBoundWitnessWithHashMeta = z.infer<typeof SignedTransactionBoundWitnessWithHashMetaZod>\n\nexport const isSignedTransactionBoundWitnessWithHashMeta = zodIsFactory(SignedTransactionBoundWitnessWithHashMetaZod)\nexport const asSignedTransactionBoundWitnessWithHashMeta = zodAsFactory(\n SignedTransactionBoundWitnessWithHashMetaZod,\n 'asSignedTransactionBoundWitnessWithHashMeta',\n)\nexport const toSignedTransactionBoundWitnessWithHashMeta = zodToFactory(\n SignedTransactionBoundWitnessWithHashMetaZod,\n 'toSignedTransactionBoundWitnessWithHashMeta',\n)\n\nexport const SignedTransactionBoundWitnessWithStorageMetaZod = WithStorageMetaZod(SignedTransactionBoundWitnessZod)\n\nexport type SignedTransactionBoundWitnessWithStorageMeta = z.infer<typeof SignedTransactionBoundWitnessWithStorageMetaZod>\n\nexport const isSignedTransactionBoundWitnessWithStorageMeta = zodIsFactory(SignedTransactionBoundWitnessWithStorageMetaZod)\nexport const asSignedTransactionBoundWitnessWithStorageMeta = zodAsFactory(\n SignedTransactionBoundWitnessWithStorageMetaZod,\n 'asSignedTransactionBoundWitnessWithStorageMeta',\n)\nexport const toSignedTransactionBoundWitnessWithStorageMeta = zodToFactory(\n SignedTransactionBoundWitnessWithStorageMetaZod,\n 'toSignedTransactionBoundWitnessWithStorageMeta',\n)\n","import { AddressRegEx, toAddress } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport type { ChainId } from './ChainId.ts'\n\nexport const ChainZod = z.string().toLowerCase().regex(AddressRegEx).transform<ChainId>(v => toAddress(v) as ChainId)\n","import {\n BigIntToJsonZod, HexZod, JsonToBigIntZod,\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport { asAttoXL1 } from '../xl1/index.ts'\n\nexport const AttoZod = z.bigint()\nexport const JsonToAttoZod = JsonToBigIntZod.transform(v => asAttoXL1(v))\n// eslint-disable-next-line unicorn/prefer-export-from\nexport const AttoToJsonZod = BigIntToJsonZod\n\nexport const TransactionFeesHexZod = z.object({\n base: HexZod,\n gasLimit: HexZod,\n gasPrice: HexZod,\n priority: HexZod,\n})\n\nexport type TransactionFeesHex = z.infer<typeof TransactionFeesHexZod>\n\nexport const isTransactionFeesHex = zodIsFactory(TransactionFeesHexZod)\nexport const asTransactionFeesHex = zodAsFactory(TransactionFeesHexZod, 'asTransactionFeesHex')\nexport const toTransactionFeesHex = zodToFactory(TransactionFeesHexZod, 'toTransactionFeesHex')\n\nexport const TransactionFeesBigIntZod = z.object({\n base: AttoZod,\n gasLimit: AttoZod,\n gasPrice: AttoZod,\n priority: AttoZod,\n})\n\nexport type TransactionFeesBigInt = z.infer<typeof TransactionFeesBigIntZod>\n\nexport const isTransactionFeesBigInt = zodIsFactory(TransactionFeesBigIntZod)\nexport const asTransactionFeesBigInt = zodAsFactory(TransactionFeesBigIntZod, 'asTransactionFeesBigInt')\nexport const toTransactionFeesBigInt = zodToFactory(TransactionFeesBigIntZod, 'toTransactionFeesBigInt')\n\nexport const TransactionFeesJsonToBigIntZod = TransactionFeesHexZod.transform(val => ({\n base: JsonToBigIntZod.parse(val.base),\n gasLimit: JsonToBigIntZod.parse(val.gasLimit),\n gasPrice: JsonToBigIntZod.parse(val.gasPrice),\n priority: JsonToBigIntZod.parse(val.priority),\n}))\n\nexport const TransactionFeesBigIntToJsonZod = TransactionFeesBigIntZod.transform(val => ({\n base: BigIntToJsonZod.parse(val.base),\n gasLimit: BigIntToJsonZod.parse(val.gasLimit),\n gasPrice: BigIntToJsonZod.parse(val.gasPrice),\n priority: BigIntToJsonZod.parse(val.priority),\n}))\n\nexport type TransactionFeesJsonToBigIntZodType = z.infer<typeof TransactionFeesJsonToBigIntZod>\nexport type TransactionFeesBigIntToJsonZodType = z.infer<typeof TransactionFeesBigIntToJsonZod>\n","export const TransactionGasCosts = {\n /**\n * The cost of storing each character that is added to the chain\n * This includes the transaction JSON and all the elevated payloads' JSON\n */\n characterStorage: 10n,\n\n /** The cost of static validating every payload that will be included in the chain */\n payloadValidation: 1000n,\n\n /** The cost of validating each signature that will be included in the chain */\n signatureValidation: 1000n,\n\n /** The cost of validating each hash that will be included in the chain */\n hashValidation: 100n,\n\n /** The cost of validating a balance state, triggered by a Transfer payload or gas collection */\n balanceValidation: 100n,\n} as const\n\n/** Gas Calculation\n *\n * 1 Million microXL1 (mXL1) = 1 XL1\n *\n * Gas amount is calculated as follows:\n *\n * 1. Each byte in the transaction cost 10 gas\n * 2. Each payload validation in the transaction costs 1000 gas\n * 3. Each signature verification in the transaction costs 1000 gas\n * 4. Each hash validation in the transaction costs 100 gas\n * 5. Each balance validation in the transaction costs 100 gas\n * 6. Processing/Compute/Storage Cost?\n * 7. operation Costs?\n *\n * The total gas cost is calculated by multiplying the gas amount by the gas price.\n *\n * minGasPrice is initially set to 100 mXL1\n * minBase is initially set to 1000 mXL1\n * minPriority is always 0 mXL1, but can be set to increase the priority of the transaction\n *\n */\n","import {\n AddressZod,\n AsObjectFactory, HexZod, JsonObjectZod,\n} from '@xylabs/sdk-js'\nimport {\n asSchema, isPayloadOfSchemaType, PayloadZodOfSchema,\n} from '@xyo-network/sdk-js'\nimport { z } from 'zod'\n\nexport const TransferSchema = asSchema('network.xyo.transfer', true)\nexport type TransferSchema = typeof TransferSchema\n\nexport const TransferFieldsZod = z.object({\n // Removed as only transaction have opCodes\n // $opCodes: z.array(z.string()).optional(),\n context: JsonObjectZod.optional(),\n epoch: z.number(),\n from: AddressZod,\n transfers: z.record(AddressZod, HexZod),\n})\n\nexport const TransferZod = PayloadZodOfSchema(TransferSchema).extend(TransferFieldsZod.shape)\n\nexport type Transfer = z.infer<typeof TransferZod>\n\nexport const isTransfer = isPayloadOfSchemaType<Transfer>(TransferSchema)\n\nexport const asTransfer = AsObjectFactory.create(isTransfer)\n","import {\n HashZod,\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport {\n BoundWitnessZod,\n WithHashMetaZod,\n WithStorageMetaZod,\n} from '@xyo-network/sdk-js'\nimport { z } from 'zod'\n\nimport { XL1BlockNumberZod } from '../BlockNumber/index.ts'\nimport { ChainZod } from '../chain/index.ts'\n\nexport const BlockBoundWitnessFieldsZod = z.object({\n block: XL1BlockNumberZod,\n chain: ChainZod,\n previous: HashZod.nullable(),\n protocol: z.number().optional(),\n step_hashes: z.array(HashZod).optional(),\n})\n\nexport const BlockBoundWitnessMetaZod = z.object({ $epoch: z.number() })\n\nexport const BlockBoundWitnessZod = z.object({\n ...BoundWitnessZod.shape,\n ...BlockBoundWitnessFieldsZod.shape,\n ...BlockBoundWitnessMetaZod.shape,\n})\n\nexport type BlockBoundWitness = z.infer<typeof BlockBoundWitnessZod>\n\nexport const isBlockBoundWitness = zodIsFactory(BlockBoundWitnessZod)\nexport const asBlockBoundWitness = zodAsFactory(BlockBoundWitnessZod, 'asBlockBoundWitness')\nexport const toBlockBoundWitness = zodToFactory(BlockBoundWitnessZod, 'toBlockBoundWitness')\n\n/** @deprecated use WithHashMetaZod(BlockBoundWitnessZod) instead */\nexport const BlockBoundWitnessWithHashMetaZod = WithHashMetaZod(BlockBoundWitnessZod)\n\n/** @deprecated use WithHashMeta(BlockBoundWitness) instead */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport type BlockBoundWitnessWithHashMeta = z.infer<typeof BlockBoundWitnessWithHashMetaZod>\n\nexport const isBlockBoundWitnessWithHashMeta = zodIsFactory(WithHashMetaZod(BlockBoundWitnessZod))\nexport const asBlockBoundWitnessWithHashMeta = zodAsFactory(WithHashMetaZod(BlockBoundWitnessZod), 'asBlockBoundWitnessWithHashMeta')\nexport const toBlockBoundWitnessWithHashMeta = zodToFactory(WithHashMetaZod(BlockBoundWitnessZod), 'toBlockBoundWitnessWithHashMeta')\n\n/** @deprecated use WithStorageMetaZod(BlockBoundWitnessZod) instead */\nexport const BlockBoundWitnessWithStorageMetaZod = WithStorageMetaZod(BlockBoundWitnessZod)\n\n/** @deprecated use WithStorageMeta(BlockBoundWitness) instead */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport type BlockBoundWitnessWithStorageMeta = z.infer<typeof BlockBoundWitnessWithStorageMetaZod>\n\nexport const isBlockBoundWitnessWithStorageMeta = zodIsFactory(WithStorageMetaZod(BlockBoundWitnessZod))\nexport const asBlockBoundWitnessWithStorageMeta = zodAsFactory(WithStorageMetaZod(BlockBoundWitnessZod), 'asBlockBoundWitnessWithStorageMeta')\nexport const toBlockBoundWitnessWithStorageMeta = zodToFactory(WithStorageMetaZod(BlockBoundWitnessZod), 'toBlockBoundWitnessWithStorageMeta')\n","import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport {\n PayloadZod,\n PayloadZodLoose, WithHashMetaZod, WithStorageMetaZod,\n} from '@xyo-network/sdk-js'\nimport { z } from 'zod'\n\nimport { BlockBoundWitnessZod } from './BlockBoundWitness.ts'\nimport { SignedBlockBoundWitnessZod } from './signed/index.ts'\n\nexport const HydratedBlockZod = z.tuple([\n BlockBoundWitnessZod,\n z.array(PayloadZodLoose),\n])\n\nexport type HydratedBlock = z.infer<typeof HydratedBlockZod>\n\nexport const isHydratedBlock = zodIsFactory(HydratedBlockZod)\nexport const asHydratedBlock = zodAsFactory(HydratedBlockZod, 'asHydratedBlock')\nexport const toHydratedBlock = zodToFactory(HydratedBlockZod, 'toHydratedBlock')\n\nexport const HydratedBlockWithHashMetaZod = z.tuple([\n WithHashMetaZod(BlockBoundWitnessZod),\n z.array(WithHashMetaZod(PayloadZod).loose()),\n])\n\nexport type HydratedBlockWithHashMeta = z.infer<typeof HydratedBlockWithHashMetaZod>\n\nexport const isHydratedBlockWithHashMeta = zodIsFactory(HydratedBlockWithHashMetaZod)\nexport const asHydratedBlockWithHashMeta = zodAsFactory(HydratedBlockWithHashMetaZod, 'asHydratedBlockWithHashMeta')\nexport const toHydratedBlockWithHashMeta = zodToFactory(HydratedBlockWithHashMetaZod, 'toHydratedBlockWithHashMeta')\n\nexport const HydratedBlockWithStorageMetaZod = z.tuple([\n WithStorageMetaZod(BlockBoundWitnessZod),\n z.array(WithStorageMetaZod(PayloadZod).loose()),\n])\n\nexport type HydratedBlockWithStorageMeta = z.infer<typeof HydratedBlockWithStorageMetaZod>\n\nexport const isHydratedBlockWithStorageMeta = zodIsFactory(HydratedBlockWithStorageMetaZod)\nexport const asHydratedBlockWithStorageMeta = zodAsFactory(HydratedBlockWithStorageMetaZod, 'asHydratedBlockWithStorageMeta')\nexport const toHydratedBlockWithStorageMeta = zodToFactory(HydratedBlockWithStorageMetaZod, 'toHydratedBlockWithStorageMeta')\n\nexport const SignedHydratedBlockZod = z.tuple([\n SignedBlockBoundWitnessZod,\n z.array(PayloadZod.loose()),\n])\n\nexport type SignedHydratedBlock = z.infer<typeof SignedHydratedBlockZod>\n\nexport const isSignedHydratedBlock = zodIsFactory(SignedHydratedBlockZod)\nexport const asSignedHydratedBlock = zodAsFactory(SignedHydratedBlockZod, 'asSignedHydratedBlock')\nexport const toSignedHydratedBlock = zodToFactory(SignedHydratedBlockZod, 'toSignedHydratedBlock')\n\nexport const SignedHydratedBlockToJsonZod = z.tuple([\n SignedBlockBoundWitnessZod,\n z.array(PayloadZod.loose()),\n])\n\nexport type SignedHydratedBlockToJson = z.infer<typeof SignedHydratedBlockToJsonZod>\n\nexport const isSignedHydratedBlockToJson = zodIsFactory(SignedHydratedBlockToJsonZod)\nexport const asSignedHydratedBlockToJson = zodAsFactory(SignedHydratedBlockToJsonZod, 'asSignedHydratedBlockToJson')\nexport const toSignedHydratedBlockToJson = zodToFactory(SignedHydratedBlockToJsonZod, 'toSignedHydratedBlockToJson')\n\nexport const SignedHydratedBlockWithHashMetaZod = z.tuple([\n WithHashMetaZod(SignedBlockBoundWitnessZod),\n z.array(WithHashMetaZod(PayloadZod).loose()),\n])\n\nexport type SignedHydratedBlockWithHashMeta = z.infer<typeof SignedHydratedBlockWithHashMetaZod>\n\nexport const SignedHydratedBlockWithHashMetaishZod = z.tuple([\n z.union([WithHashMetaZod(SignedBlockBoundWitnessZod)]),\n z.array(WithHashMetaZod(PayloadZod).loose()),\n])\n\nexport const isSignedHydratedBlockWithHashMeta = zodIsFactory(SignedHydratedBlockWithHashMetaZod)\nexport const asSignedHydratedBlockWithHashMeta = zodAsFactory(SignedHydratedBlockWithHashMetaZod, 'asSignedHydratedBlockWithHashMeta')\n\nexport const toSignedHydratedBlockWithHashMeta = zodToFactory(SignedHydratedBlockWithHashMetaZod, 'toSignedHydratedBlockWithHashMeta')\n\nexport const SignedHydratedBlockWithStorageMetaZod = z.tuple([\n WithStorageMetaZod(SignedBlockBoundWitnessZod),\n z.array(WithStorageMetaZod(PayloadZod).loose()),\n])\nexport type SignedHydratedBlockWithStorageMeta = z.infer<typeof SignedHydratedBlockWithStorageMetaZod>\n\nexport const isSignedHydratedBlockWithStorageMeta = zodIsFactory(SignedHydratedBlockWithStorageMetaZod)\nexport const asSignedHydratedBlockWithStorageMeta = zodAsFactory(SignedHydratedBlockWithStorageMetaZod, 'asSignedHydratedBlockWithStorageMeta')\nexport const toSignedHydratedBlockWithStorageMeta = zodToFactory(SignedHydratedBlockWithStorageMetaZod, 'toSignedHydratedBlockWithStorageMeta')\n\nexport const SignedHydratedBlockWithStorageMetaishZod = z.tuple([\n z.union([WithStorageMetaZod(SignedBlockBoundWitnessZod)]),\n z.array(WithStorageMetaZod(PayloadZod).loose()),\n])\n","import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { SignedBoundWitnessZod } from '@xyo-network/sdk-js'\nimport type { z } from 'zod'\n\nimport { BlockBoundWitnessFieldsZod, BlockBoundWitnessMetaZod } from '../BlockBoundWitness.ts'\n\nexport const SignedBlockBoundWitnessZod = SignedBoundWitnessZod\n .safeExtend(BlockBoundWitnessFieldsZod.shape)\n .safeExtend(BlockBoundWitnessMetaZod.shape)\n\nexport type SignedBlockBoundWitness = z.infer<typeof SignedBlockBoundWitnessZod>\n\nexport const isSignedBlockBoundWitness = zodIsFactory(SignedBlockBoundWitnessZod)\nexport const asSignedBlockBoundWitness = zodAsFactory(SignedBlockBoundWitnessZod, 'asSignedBlockBoundWitness')\nexport const toSignedBlockBoundWitness = zodToFactory(SignedBlockBoundWitnessZod, 'toSignedBlockBoundWitness')\n","import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { PayloadBuilder, WithHashMetaZod } from '@xyo-network/sdk-js'\nimport type { z } from 'zod'\n\nimport { isSignedBlockBoundWitness, SignedBlockBoundWitnessZod } from './SignedBlockBoundWitness.ts'\n\nexport const SignedBlockBoundWitnessWithHashMetaZod = WithHashMetaZod(SignedBlockBoundWitnessZod)\n\nexport type SignedBlockBoundWitnessWithHashMeta = z.infer<typeof SignedBlockBoundWitnessWithHashMetaZod>\n\nexport const isSignedBlockBoundWitnessWithHashMeta = zodIsFactory(SignedBlockBoundWitnessWithHashMetaZod)\nexport const asSignedBlockBoundWitnessWithHashMeta = zodAsFactory(SignedBlockBoundWitnessWithHashMetaZod, 'asSignedBlockBoundWitnessWithHashMeta')\n\nexport const SignedBlockBoundWitnessWithHashMetaishZod = SignedBlockBoundWitnessZod.transform(async (data) => {\n if (isSignedBlockBoundWitnessWithHashMeta(data)) {\n return data\n }\n if (isSignedBlockBoundWitness(data)) {\n return await PayloadBuilder.addHashMeta(data)\n }\n throw new Error('Invalid SignedBlockBoundWitnessWithHashMetaish format')\n})\n\nexport type SignedBlockBoundWitnessWithHashMetaish = z.input<typeof SignedBlockBoundWitnessWithHashMetaishZod>\n\nexport const toSignedBlockBoundWitnessWithHashMeta = zodToFactory(SignedBlockBoundWitnessWithHashMetaZod, 'toSignedBlockBoundWitnessWithHashMeta')\n","import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { PayloadBuilder, WithStorageMetaZod } from '@xyo-network/sdk-js'\nimport type { z } from 'zod'\n\nimport { isSignedBlockBoundWitness, SignedBlockBoundWitnessZod } from './SignedBlockBoundWitness.ts'\n\nexport const SignedBlockBoundWitnessWithStorageMetaZod = WithStorageMetaZod(SignedBlockBoundWitnessZod)\n\nexport type SignedBlockBoundWitnessWithStorageMeta = z.infer<typeof SignedBlockBoundWitnessWithStorageMetaZod>\n\nexport const isSignedBlockBoundWitnessWithStorageMeta = zodIsFactory(SignedBlockBoundWitnessWithStorageMetaZod)\nexport const asSignedBlockBoundWitnessWithStorageMeta = zodAsFactory(\n SignedBlockBoundWitnessWithStorageMetaZod,\n 'asSignedBlockBoundWitnessWithStorageMeta',\n)\n\nexport const SignedBlockBoundWitnessWithStorageMetaishZod = SignedBlockBoundWitnessZod.transform(async (data) => {\n if (isSignedBlockBoundWitnessWithStorageMeta(data)) {\n return data\n }\n if (isSignedBlockBoundWitness(data)) {\n return await PayloadBuilder.addStorageMeta(data)\n }\n throw new Error('Invalid SignedBlockBoundWitnessWithStorageMetaish format')\n})\n\nexport type SignedBlockBoundWitnessWithStorageMetaish = z.input<typeof SignedBlockBoundWitnessWithStorageMetaishZod>\n\nexport const toSignedBlockBoundWitnessWithStorageMeta = zodToFactory(\n SignedBlockBoundWitnessWithStorageMetaishZod,\n 'toSignedBlockBoundWitnessWithStorageMeta',\n)\n","import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { UnsignedBoundWitnessZod } from '@xyo-network/sdk-js'\nimport type { z } from 'zod'\n\nimport { BlockBoundWitnessFieldsZod, BlockBoundWitnessMetaZod } from '../BlockBoundWitness.ts'\n\nexport const UnsignedBlockBoundWitnessZod = UnsignedBoundWitnessZod\n .safeExtend(BlockBoundWitnessFieldsZod.shape)\n .safeExtend(BlockBoundWitnessMetaZod.shape)\n\nexport type UnsignedBlockBoundWitness = z.infer<typeof UnsignedBlockBoundWitnessZod>\n\nexport const isUnsignedBlockBoundWitness = zodIsFactory(UnsignedBlockBoundWitnessZod)\nexport const asUnsignedBlockBoundWitness = zodAsFactory(UnsignedBlockBoundWitnessZod, 'asUnsignedBlockBoundWitness')\nexport const toUnsignedBlockBoundWitness = zodToFactory(UnsignedBlockBoundWitnessZod, 'toUnsignedBlockBoundWitness')\n","import { AsObjectFactory } from '@xylabs/sdk-js'\nimport type { Payload, WithSources } from '@xyo-network/sdk-js'\nimport {\n asSchema,\n isPayloadOfSchemaType,\n isPayloadOfSchemaTypeWithSources,\n} from '@xyo-network/sdk-js'\n\nimport type { XL1BlockNumber } from '../BlockNumber/index.ts'\n\nexport const BlockNumberSchema = asSchema('network.xyo.chain.block.number', true)\nexport type BlockNumberSchema = typeof BlockNumberSchema\n\nexport interface BlockNumberFields {\n /**\n * The block number\n */\n block: XL1BlockNumber\n}\n/**\n * The number of a block\n */\nexport type BlockNumberPayload = Payload<BlockNumberFields, BlockNumberSchema>\n\n/**\n * Identity function for determining if an object is a BlockNumber\n */\nexport const isBlockNumberPayload = isPayloadOfSchemaType<BlockNumberPayload>(BlockNumberSchema)\nexport const asBlockNumberPayload = AsObjectFactory.create<BlockNumberPayload>(isBlockNumberPayload)\n\n/**\n * Identity function for determining if an object is a BlockNumber with sources\n */\nexport const isBlockNumberPayloadWithSources = isPayloadOfSchemaTypeWithSources<BlockNumberPayload>(BlockNumberSchema)\nexport const asBlockNumberPayloadWithSources = AsObjectFactory.create<WithSources<BlockNumberPayload>>(isBlockNumberPayloadWithSources)\n","import { type Address, type Promisable } from '@xylabs/sdk-js'\nimport { zodIsFactory } from '@xylabs/sdk-js'\nimport { WithHashMetaZod } from '@xyo-network/sdk-js'\nimport { z } from 'zod'\n\nimport { BlockBoundWitnessZod } from '../block/index.ts'\nimport type { Provider } from '../provider/index.ts'\nimport { TransactionBoundWitnessZod } from '../transaction/index.ts'\nimport { TransferZod } from '../TransferPayload.ts'\nimport type { AttoXL1 } from '../xl1/index.ts'\nimport type { ChainQualified } from './ChainQualification.ts'\nimport { ChainQualificationZod, ChainQualifiedConfigZod } from './ChainQualification.ts'\n\nexport const AccountBalanceHistoryItemZod = z.tuple([\n WithHashMetaZod(BlockBoundWitnessZod),\n WithHashMetaZod(TransactionBoundWitnessZod).nullable(),\n WithHashMetaZod(TransferZod),\n])\n\nexport type AccountBalanceHistoryItem = z.infer<typeof AccountBalanceHistoryItemZod>\n\nexport const AccountBalanceQualificationZod = ChainQualificationZod\nexport type AccountBalanceQualification = z.infer<typeof AccountBalanceQualificationZod>\nexport const isAccountBalanceQualification = zodIsFactory(AccountBalanceQualificationZod)\n\nexport const AccountBalanceConfigZod = ChainQualifiedConfigZod\nexport type AccountBalanceConfig = z.infer<typeof AccountBalanceConfigZod>\nexport const isAccountBalanceConfig = zodIsFactory(AccountBalanceConfigZod)\n\nexport interface AccountBalanceViewerMethods {\n qualifiedAccountBalanceHistories(\n address: Address[],\n config: AccountBalanceConfig\n ): Promisable<ChainQualified<Record<Address, AccountBalanceHistoryItem[]>>>\n qualifiedAccountBalances(address: Address[], config: AccountBalanceConfig): Promisable<ChainQualified<Record<Address, AttoXL1>>>\n}\n\nexport interface AccountBalanceViewer extends AccountBalanceViewerMethods, Provider<AccountBalanceViewerMoniker> {\n accountBalance(address: Address, config?: AccountBalanceConfig): Promisable<AttoXL1>\n accountBalanceHistories(address: Address[], config?: AccountBalanceConfig): Promisable<Record<Address, AccountBalanceHistoryItem[]>>\n accountBalanceHistory(address: Address, config?: AccountBalanceConfig): Promisable<AccountBalanceHistoryItem[]>\n accountBalances(address: Address[], config?: AccountBalanceConfig): Promisable<Record<Address, AttoXL1>>\n}\n\nexport const AccountBalanceViewerMoniker = 'AccountBalanceViewer' as const\nexport type AccountBalanceViewerMoniker = typeof AccountBalanceViewerMoniker\n","import { HashZod, zodIsFactory } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport { XL1BlockRangeZod } from './BlockRange/index.ts'\n\nexport const ChainQualificationZod = z.object({ head: HashZod, range: XL1BlockRangeZod })\nexport type ChainQualification = z.infer<typeof ChainQualificationZod>\nexport const isChainQualification = zodIsFactory(ChainQualificationZod)\n\nexport const ChainQualifiedRangeConfigZod = z.object({ range: XL1BlockRangeZod })\nexport type ChainQualifiedRangeConfig = z.infer<typeof ChainQualifiedRangeConfigZod>\nexport const isChainQualifiedRangeConfig = zodIsFactory(ChainQualifiedRangeConfigZod)\n\nexport const ChainQualifiedHeadConfigZod = z.object({ head: HashZod })\nexport type ChainQualifiedHeadConfig = z.infer<typeof ChainQualifiedHeadConfigZod>\nexport const isChainQualifiedHeadConfig = zodIsFactory(ChainQualifiedHeadConfigZod)\n\nexport const ChainQualifiedConfigZod = z.union([ChainQualifiedRangeConfigZod, ChainQualifiedHeadConfigZod, z.object({})])\nexport type ChainQualifiedConfig = z.infer<typeof ChainQualifiedConfigZod>\nexport const isChainQualifiedConfig = zodIsFactory(ChainQualifiedConfigZod)\n\nexport const ExtendChainQualifiedConfigZod = (<T>(zodType: z.ZodType<T>) => {\n return z.union([\n ChainQualifiedRangeConfigZod.extend(zodType),\n ChainQualifiedHeadConfigZod.extend(zodType),\n zodType,\n ])\n}) as <T>(zodType: z.ZodType<T>) => z.ZodType<T & ChainQualifiedConfig>\n\nexport type ChainQualified<T> = [T, ChainQualification]\nexport const ChainQualifiedZod = <T>(zodType: z.ZodType<T>) => {\n return z.tuple([zodType, ChainQualificationZod])\n}\n","import type { AssertConfig, Brand } from '@xylabs/sdk-js'\nimport {\n assertError,\n isDefined, zodAsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport {\n asBlockNumber,\n type BlockNumber, BlockNumberishZod, BlockNumberZod,\n} from '../../BlockNumber/index.ts'\n\nexport type BlockRange = [BlockNumber, BlockNumber]\n\nexport const BlockRangeZod = z.tuple([BlockNumberZod, BlockNumberZod])\nexport const BlockRangeishZod = z.tuple([BlockNumberishZod, BlockNumberishZod])\n\nexport type BlockRangeish = z.input<typeof BlockRangeishZod>\n\nexport const asBlockRange = zodAsFactory<BlockRange>(BlockRangeZod, 'BlockRange')\nexport const toBlockRange = zodToFactory<BlockRange>(BlockRangeishZod, 'BlockRange')\n\nexport type BlockRangeKey = Brand<string, { readonly __blockRangeKey: true }>\nexport const toBlockNumberKey = (range: BlockRange) => `${range[0]}|${range[1]}` as BlockRangeKey\n\nexport function fromBlockNumberKey(key: BlockRangeKey): BlockRange | undefined\nexport function fromBlockNumberKey(key: BlockRangeKey, assert: AssertConfig): BlockRange\nexport function fromBlockNumberKey(key: BlockRangeKey, assert?: AssertConfig): BlockRange | undefined {\n const [start, end] = key.split('|').map(v => asBlockNumber(Number(v)))\n const result = (isDefined(start) && isDefined(end)) ? [start, end] : undefined\n return assertError(result, assert, `Invalid BlockRangeKey: ${key}`)\n}\n","import type { AssertConfig, Brand } from '@xylabs/sdk-js'\nimport {\n assertError,\n isDefined, zodAsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport {\n asEthBlockNumber,\n type EthBlockNumber, EthBlockNumberishZod, EthBlockNumberZod,\n} from '../../BlockNumber/index.ts'\n\nexport type EthBlockRange = [EthBlockNumber, EthBlockNumber]\n\nexport const EthBlockRangeZod = z.tuple([EthBlockNumberZod, EthBlockNumberZod])\nexport const EthBlockRangeishZod = z.tuple([EthBlockNumberishZod, EthBlockNumberishZod])\n\nexport type EthBlockRangeish = z.input<typeof EthBlockRangeishZod>\n\nexport const asEthBlockRange = zodAsFactory<EthBlockRange>(EthBlockRangeZod, 'EthBlockRange')\nexport const toEthBlockRange = zodToFactory<EthBlockRange>(EthBlockRangeishZod, 'EthBlockRange')\n\nexport type EthBlockRangeKey = Brand<string, { readonly __ethBlockRangeKey: true }>\nexport const toEthBlockNumberKey = (range: EthBlockRange) => `${range[0]}|${range[1]}` as EthBlockRangeKey\n\nexport function fromEthBlockNumberKey(key: EthBlockRangeKey): EthBlockRange | undefined\nexport function fromEthBlockNumberKey(key: EthBlockRangeKey, assert: AssertConfig): EthBlockRange\nexport function fromEthBlockNumberKey(key: EthBlockRangeKey, assert?: AssertConfig): EthBlockRange | undefined {\n const [start, end] = key.split('|').map(v => asEthBlockNumber(Number(v)))\n const result = (isDefined(start) && isDefined(end)) ? [start, end] : undefined\n return assertError(result, assert, `Invalid EthBlockRangeKey: ${key}`)\n}\n","import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nexport const RangeZod = z.tuple([z.number(), z.number()])\n\nexport type Range = z.infer<typeof RangeZod>\n\nexport const isRange = zodIsFactory<Range>(RangeZod)\nexport const asRange = zodAsFactory<Range>(RangeZod, 'Range')\nexport const toRange = zodToFactory<Range>(RangeZod, 'Range')\n","import type { AssertConfig, Brand } from '@xylabs/sdk-js'\nimport {\n assertError,\n isDefined, zodAsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport {\n asXL1BlockNumber,\n type XL1BlockNumber, XL1BlockNumberishZod, XL1BlockNumberZod,\n} from '../../BlockNumber/index.ts'\n\nexport type XL1BlockRange = [XL1BlockNumber, XL1BlockNumber]\n\nexport const XL1BlockRangeZod = z.tuple([XL1BlockNumberZod, XL1BlockNumberZod])\nexport const XL1BlockRangeishZod = z.tuple([XL1BlockNumberishZod, XL1BlockNumberishZod])\n\nexport type XL1BlockRangeish = z.input<typeof XL1BlockRangeishZod>\n\nexport const asXL1BlockRange = zodAsFactory<XL1BlockRange>(XL1BlockRangeZod, 'XL1BlockRange')\nexport const toXL1BlockRange = zodToFactory<XL1BlockRange>(XL1BlockRangeishZod, 'XL1BlockRange')\n\nexport type XL1BlockRangeKey = Brand<string, { readonly __xl1BlockRangeKey: true }>\nexport const toXL1BlockNumberKey = (range: XL1BlockRange) => `${range[0]}|${range[1]}` as XL1BlockRangeKey\n\nexport function fromXL1BlockNumberKey(key: XL1BlockRangeKey): XL1BlockRange | undefined\nexport function fromXL1BlockNumberKey(key: XL1BlockRangeKey, assert: AssertConfig): XL1BlockRange\nexport function fromXL1BlockNumberKey(key: XL1BlockRangeKey, assert?: AssertConfig): XL1BlockRange | undefined {\n const [start, end] = key.split('|').map(v => asXL1BlockNumber(Number(v)))\n const result = (isDefined(start) && isDefined(end)) ? [start, end] : undefined\n return assertError(result, assert, `Invalid XL1BlockRangeKey: ${key}`)\n}\n","import type { Address, EthAddress } from '@xylabs/sdk-js'\n\n/**\n * The Zero Address is used as a marker address for various protocol operations.\n */\nexport const XYO_ZERO_ADDRESS = '0000000000000000000000000000000000000000' as const as Address\n\n/**\n * The Bridge Address is used as a marker address for bridge transactions.\n */\nexport const XYO_BRIDGE_ADDRESS = '3012193230121932301219323012193230121932' as const as Address\n\n/**\n * The Network Staking Address is used as a marker address for staking the network.\n */\nexport const XYO_NETWORK_STAKING_ADDRESS = '1969196919691969196919691969196919691969' as const as Address\n\n/**\n * The Step Reward Address is used as a marker address for step rewards.\n */\nexport const XYO_STEP_REWARD_ADDRESS = '1216197612161976121619761216197612161976' as const as Address\n\nexport const XL1_ETH_MAIN_ERC20_CONTRACT_ADDRESS = '0xf72aE3E0DA743033AbD7A407557D684c1aE66aed' as const as EthAddress\n\nexport const XL1_ETH_MAIN_SUB_GOVERNOR_ADDRESS = '0xbA296Bc5D0949C0484f08c56c30FB95CC4675A29' as const as EthAddress\n\nexport const XL1_ETH_MAIN_REWARDS_ADDRESS = '0x1a546e091FB4EFb274DC584334a28b8754c4ece7' as const as EthAddress\n\nexport const XL1_ETH_MAIN_STAKED_XYO_CHAIN_ADDRESS = '0x319e667cED10452A117472811130444dED357F26' as const as EthAddress\n\nexport const XL1_ETH_MAIN_GOVERNANCE_ADDRESS = '0x7595710956d6B14b4f2F51a8dF41379eEeC9074E' as const as EthAddress\n","import { z } from 'zod'\n\nfunction base64Encode(u8: Uint8Array): string {\n // Node\n if (typeof Buffer !== 'undefined' && typeof Buffer.from === 'function') {\n return Buffer.from(u8).toString('base64')\n }\n\n // Browser\n let binary = ''\n const chunk = 0x80_00\n for (let i = 0; i < u8.length; i += chunk) {\n // eslint-disable-next-line unicorn/prefer-code-point\n binary += String.fromCharCode(...u8.subarray(i, i + chunk))\n }\n return btoa(binary)\n}\n\n/** Base64 decode that works in Node and browsers -> Uint8Array */\nfunction base64Decode(b64: string): Uint8Array {\n // Node\n if (typeof Buffer !== 'undefined' && typeof Buffer.from === 'function') {\n return new Uint8Array(Buffer.from(b64, 'base64'))\n }\n\n // Browser\n const binary = atob(b64)\n const u8 = new Uint8Array(binary.length)\n // eslint-disable-next-line unicorn/prefer-code-point\n for (let i = 0; i < binary.length; i++) u8[i] = binary.charCodeAt(i)\n return u8\n}\n\nexport const ArrayBufferToJsonZod = z.instanceof(ArrayBuffer).transform((x) => {\n const u8 = new Uint8Array(x)\n return base64Encode(u8)\n})\n\nexport const JsonToArrayBufferZod = z.string().transform((x) => {\n const u8 = base64Decode(x)\n return u8.buffer\n})\n","import { zodAsFactory, zodIsFactory } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport type { EthBlockNumber, XL1BlockNumber } from '../BlockNumber/index.ts'\nimport { StepSizes } from '../Step/index.ts'\nimport { XL1BlockRangeZod } from './BlockRange/index.ts'\n\nexport const TimeDurationsZod = z.object({\n millis: z.number().nonnegative(),\n seconds: z.number().nonnegative(),\n minutes: z.number().nonnegative(),\n hours: z.number().nonnegative(),\n days: z.number().nonnegative(),\n weeks: z.number().nonnegative(),\n})\n\nexport const isTimeDurations = zodIsFactory(TimeDurationsZod)\nexport const asTimeDurations = zodAsFactory(TimeDurationsZod, 'asTimeDurations')\nexport const toTimeDurations = zodAsFactory(TimeDurationsZod, 'toTimeDurations')\n\nexport type TimeDurations = z.infer<typeof TimeDurationsZod>\n\nexport const BlockRateZod = z.object({\n range: XL1BlockRangeZod.describe('the block range the rate was calculated over'),\n rate: z.number().nonnegative().describe('rate of blocks per specified time unit'),\n timeUnit: TimeDurationsZod.keyof().describe('the unit of time for the rate and timePerBlock'),\n span: z.int().nonnegative().describe('number of blocks the rate was calculated over'),\n timeDifference: z.number().nonnegative().describe('time difference from start and end block'),\n timePerBlock: z.number().nonnegative().describe('average time per block for the given range'),\n})\n\nexport type BlockRate = z.infer<typeof BlockRateZod>\n\nexport type GenericBlockRate<TBlockNumber extends number> = Omit<BlockRate, 'range'> & {\n range: [TBlockNumber, TBlockNumber]\n}\n\nexport interface XL1BlockRate extends GenericBlockRate<XL1BlockNumber> {}\nexport interface EthBlockRate extends GenericBlockRate<EthBlockNumber> {}\n\nexport const isBlockRate = zodIsFactory(BlockRateZod)\nexport const asBlockRate = zodAsFactory(BlockRateZod, 'asBlockRate')\nexport const toBlockRate = zodAsFactory(BlockRateZod, 'toBlockRate')\n\nexport const CountZod = z.int().nonnegative().describe('A non-negative integer count')\nexport type Count = z.infer<typeof CountZod>\n\nexport const StepIndexZod = z.int().min(0).max(StepSizes.length).describe('A non-negative integer step index')\nexport type StepIndex = z.infer<typeof StepIndexZod>\n\nconst timeUnitSchema = z.number().positive()\n\nexport const TimeConfigZod = z.object({\n minutes: timeUnitSchema.optional(),\n hours: timeUnitSchema.optional(),\n days: timeUnitSchema.optional(),\n weeks: timeUnitSchema.optional(),\n months: timeUnitSchema.optional(),\n years: timeUnitSchema.optional(),\n}).describe('Time configuration with optional time units')\n\nexport type TimeConfig = z.infer<typeof TimeConfigZod>\n\nexport const isTimeConfig = zodIsFactory(TimeConfigZod)\nexport const asTimeConfig = zodAsFactory(TimeConfigZod, 'asTimeConfig')\nexport const toTimeConfig = zodAsFactory(TimeConfigZod, 'toTimeConfig')\n\nexport const SingleTimeConfigZod = z.union([\n z.object({ minutes: timeUnitSchema }),\n z.object({ hours: timeUnitSchema }),\n z.object({ days: timeUnitSchema }),\n z.object({ weeks: timeUnitSchema }),\n z.object({ months: timeUnitSchema }),\n z.object({ years: timeUnitSchema }),\n]).describe('Time configuration with exactly one time unit')\n\nexport type SingleTimeConfig = z.infer<typeof SingleTimeConfigZod>\n\nexport const isSingleTimeConfig = zodIsFactory(SingleTimeConfigZod)\nexport const asSingleTimeConfig = zodAsFactory(SingleTimeConfigZod, 'asSingleTimeConfig')\nexport const toSingleTimeConfig = zodAsFactory(SingleTimeConfigZod, 'toSingleTimeConfig')\n","import type { MeterProvider, TracerProvider } from '@opentelemetry/api'\nimport type { Logger } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport type { MapType } from '../../map/index.ts'\n\nexport const CachesZod = z.record(\n z.string(),\n z.custom<MapType<string, unknown>>(val => val && typeof val === 'object' && ('get' in val || 'set' in val)),\n)\n\nexport const SingletonsZod = z.record(z.union([z.string(), z.symbol()]), z.unknown())\n\nexport const LoggerZod = z.custom<Logger>(val => val && typeof val === 'object' && 'info' in val && 'error' in val)\n\nexport const MeterProviderZod = z.custom<MeterProvider>(val => val && typeof val === 'object' && 'getMeter' in val)\n\nexport const TracerProviderZod = z.custom<TracerProvider>(val => val && typeof val === 'object' && 'getTracer' in val)\n\nexport const TimeBudgetLimitZod = z.number()\n\nexport const BaseContextZod = z.object({\n caches: CachesZod.optional(),\n logger: LoggerZod.optional(),\n meterProvider: MeterProviderZod.optional(),\n singletons: SingletonsZod,\n timeBudgetLimit: TimeBudgetLimitZod.optional(),\n traceProvider: TracerProviderZod.optional(),\n})\n","import type {\n Payload,\n ReadArchivist, WriteArchivist,\n} from '@xyo-network/sdk-js'\nimport z from 'zod'\n\nimport { CachingContextZod } from './CachingContext.zod.ts'\n\nexport const BlockContextReadZod = CachingContextZod.extend(\n { chainMap: z.custom<ReadArchivist<Payload>>(val => val && typeof val === 'object' && ('get' in val)) },\n)\n\nexport const BlockContextWriteZod = CachingContextZod.extend(\n { chainMap: z.custom<WriteArchivist<Payload>>(val => val && typeof val === 'object' && ('get' in val && 'insert' in val)) },\n)\n\nexport const BlockContextZod = BlockContextWriteZod\n","import { BaseContextZod, CachesZod } from './BaseContext.zod.ts'\n\nexport const CachingContextZod = BaseContextZod.extend({ caches: CachesZod })\n","import { WithHashMetaZod } from '@xyo-network/sdk-js'\nimport z from 'zod'\n\nimport { BlockBoundWitnessZod } from '../../block/index.ts'\nimport { CachingContextZod } from './CachingContext.zod.ts'\n\nexport const HeadContextBaseZod = z.object(\n { head: WithHashMetaZod(BlockBoundWitnessZod) },\n)\n\nexport const HeadContextZod = CachingContextZod.safeExtend(HeadContextBaseZod.shape)\n","import {\n BlockContextReadZod, BlockContextWriteZod, BlockContextZod,\n} from './BlockContext.zod.ts'\nimport { HeadContextBaseZod } from './HeadContext.zod.ts'\n\nexport const ChainContextReadZod = BlockContextReadZod.safeExtend(HeadContextBaseZod.shape)\n\nexport const ChainContextWriteZod = BlockContextWriteZod.safeExtend(\n HeadContextBaseZod.shape,\n)\n\nexport const ChainContextZod = BlockContextZod.safeExtend(\n HeadContextBaseZod.shape,\n)\n","// the percent of the block rewards the producer gets\nexport const defaultRewardRatio = 0.05 as const // 5.0% goes to block producer\n","import type { TransactionFeesBigInt } from '../transaction/index.ts'\nimport { AttoXL1, AttoXL1ConvertFactor } from '../xl1/index.ts'\n\nexport const minTransactionFees: TransactionFeesBigInt = {\n base: AttoXL1(1000n * AttoXL1ConvertFactor.nano),\n gasPrice: AttoXL1(10n * AttoXL1ConvertFactor.nano),\n gasLimit: AttoXL1(1_000_000n * AttoXL1ConvertFactor.nano),\n priority: AttoXL1(0n * AttoXL1ConvertFactor.nano),\n} as const\n","import type { TransactionFeesBigInt } from '../transaction/index.ts'\nimport { AttoXL1, AttoXL1ConvertFactor } from '../xl1/index.ts'\nimport { minTransactionFees } from './minTransactionFees.ts'\n\nexport const defaultTransactionFees: TransactionFeesBigInt = {\n base: minTransactionFees.base,\n gasPrice: AttoXL1(10n * AttoXL1ConvertFactor.nano),\n gasLimit: AttoXL1(1_000_000n * AttoXL1ConvertFactor.nano),\n priority: minTransactionFees.priority,\n} as const\n","import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport {\n PayloadZod,\n PayloadZodLoose, WithHashMetaZod,\n WithStorageMetaZod,\n} from '@xyo-network/sdk-js'\nimport { z } from 'zod'\n\nimport {\n SignedTransactionBoundWitnessZod, TransactionBoundWitnessZod, UnsignedTransactionBoundWitnessZod,\n} from '../transaction/index.ts'\n\nexport const HydratedTransactionZod = z.tuple([\n TransactionBoundWitnessZod,\n z.array(PayloadZodLoose),\n])\n\nexport type HydratedTransaction = z.infer<typeof HydratedTransactionZod>\n\nexport const isHydratedTransaction = zodIsFactory(HydratedTransactionZod)\nexport const asHydratedTransaction = zodAsFactory(HydratedTransactionZod, 'asHydratedTransaction')\nexport const toHydratedTransaction = zodToFactory(HydratedTransactionZod, 'toHydratedTransaction')\n\nexport const HydratedTransactionWithHashMetaZod = z.tuple([\n WithHashMetaZod(TransactionBoundWitnessZod),\n z.array(WithHashMetaZod(PayloadZod).loose()),\n])\n\nexport type HydratedTransactionWithHashMeta = z.infer<typeof HydratedTransactionWithHashMetaZod>\n\nexport const isHydratedTransactionWithHashMeta = zodIsFactory(HydratedTransactionWithHashMetaZod)\nexport const asHydratedTransactionWithHashMeta = zodAsFactory(HydratedTransactionWithHashMetaZod, 'asHydratedTransactionWithHashMeta')\nexport const toHydratedTransactionWithHashMeta = zodToFactory(HydratedTransactionWithHashMetaZod, 'toHydratedTransactionWithHashMeta')\n\nexport const HydratedTransactionWithStorageMetaZod = z.tuple([\n WithStorageMetaZod(TransactionBoundWitnessZod),\n z.array(WithStorageMetaZod(PayloadZod).loose()),\n])\n\nexport type HydratedTransactionWithStorageMeta = z.infer<typeof HydratedTransactionWithStorageMetaZod>\n\nexport const isHydratedTransactionWithStorageMeta = zodIsFactory(HydratedTransactionWithStorageMetaZod)\nexport const asHydratedTransactionWithStorageMeta = zodAsFactory(HydratedTransactionWithStorageMetaZod, 'asHydratedTransactionWithStorageMeta')\nexport const toHydratedTransactionWithStorageMeta = zodToFactory(HydratedTransactionWithStorageMetaZod, 'toHydratedTransactionWithStorageMeta')\n\nexport const UnsignedHydratedTransactionZod = z.tuple([\n UnsignedTransactionBoundWitnessZod,\n z.array(PayloadZodLoose),\n])\n\nexport type UnsignedHydratedTransaction = z.infer<typeof UnsignedHydratedTransactionZod>\n\nexport const isUnsignedHydratedTransaction = zodIsFactory(UnsignedHydratedTransactionZod)\nexport const asUnsignedHydratedTransaction = zodAsFactory(UnsignedHydratedTransactionZod, 'asUnsignedHydratedTransaction')\nexport const toUnsignedHydratedTransaction = zodToFactory(UnsignedHydratedTransactionZod, 'toUnsignedHydratedTransaction')\n\nexport const UnsignedHydratedTransactionWithHashMetaZod = z.tuple([\n WithHashMetaZod(UnsignedTransactionBoundWitnessZod),\n z.array(WithHashMetaZod(PayloadZod).loose()),\n])\n\nexport type UnsignedHydratedTransactionWithHashMeta = z.infer<typeof UnsignedHydratedTransactionWithHashMetaZod>\n\nexport const isUnsignedHydratedTransactionWithHashMeta = zodIsFactory(UnsignedHydratedTransactionWithHashMetaZod)\nexport const asUnsignedHydratedTransactionWithHashMeta = zodAsFactory(UnsignedHydratedTransactionWithHashMetaZod, 'asUnsignedHydratedTransactionWithHashMeta')\nexport const toUnsignedHydratedTransactionWithHashMeta = zodToFactory(UnsignedHydratedTransactionWithHashMetaZod, 'toUnsignedHydratedTransactionWithHashMeta')\n\nexport const UnsignedHydratedTransactionWithStorageMetaZod = z.tuple([\n WithStorageMetaZod(UnsignedTransactionBoundWitnessZod),\n z.array(WithStorageMetaZod(PayloadZod).loose()),\n])\n\nexport type UnsignedHydratedTransactionWithStorageMeta = z.infer<typeof UnsignedHydratedTransactionWithStorageMetaZod>\n\nexport const isUnsignedHydratedTransactionWithStorageMeta = zodIsFactory(UnsignedHydratedTransactionWithStorageMetaZod)\nexport const asUnsignedHydratedTransactionWithStorageMeta = zodAsFactory(\n UnsignedHydratedTransactionWithStorageMetaZod,\n 'asUnsignedHydratedTransactionWithStorageMeta',\n)\nexport const toUnsignedHydratedTransactionWithStorageMeta = zodToFactory(\n UnsignedHydratedTransactionWithStorageMetaZod,\n 'toUnsignedHydratedTransactionWithStorageMeta',\n)\n\nexport const SignedHydratedTransactionZod = z.tuple([\n SignedTransactionBoundWitnessZod,\n z.array(PayloadZodLoose),\n])\n\nexport type SignedHydratedTransaction = z.infer<typeof SignedHydratedTransactionZod>\n\nexport const isSignedHydratedTransaction = zodIsFactory(SignedHydratedTransactionZod)\nexport const asSignedHydratedTransaction = zodAsFactory(SignedHydratedTransactionZod, 'asSignedHydratedTransaction')\nexport const toSignedHydratedTransaction = zodToFactory(SignedHydratedTransactionZod, 'toSignedHydratedTransaction')\n\nexport const SignedHydratedTransactionWithHashMetaZod = z.tuple([\n WithHashMetaZod(SignedTransactionBoundWitnessZod),\n z.array(WithHashMetaZod(PayloadZod).loose()),\n])\n\nexport type SignedHydratedTransactionWithHashMeta = z.infer<typeof SignedHydratedTransactionWithHashMetaZod>\n\nexport const isSignedHydratedTransactionWithHashMeta = zodIsFactory(SignedHydratedTransactionWithHashMetaZod)\nexport const asSignedHydratedTransactionWithHashMeta = zodAsFactory(SignedHydratedTransactionWithHashMetaZod, 'asSignedHydratedTransactionWithHashMeta')\nexport const toSignedHydratedTransactionWithHashMeta = zodToFactory(SignedHydratedTransactionWithHashMetaZod, 'toSignedHydratedTransactionWithHashMeta')\n\nexport const SignedHydratedTransactionWithStorageMetaZod = z.tuple([\n WithStorageMetaZod(SignedTransactionBoundWitnessZod),\n z.array(WithStorageMetaZod(PayloadZod).loose()),\n])\n\nexport type SignedHydratedTransactionWithStorageMeta = z.infer<typeof SignedHydratedTransactionWithStorageMetaZod>\n\nexport const isSignedHydratedTransactionWithStorageMeta = zodIsFactory(SignedHydratedTransactionWithStorageMetaZod)\nexport const asSignedHydratedTransactionWithStorageMeta = zodAsFactory(\n SignedHydratedTransactionWithStorageMetaZod,\n 'asSignedHydratedTransactionWithStorageMeta',\n)\nexport const toSignedHydratedTransactionWithStorageMeta = zodToFactory(\n SignedHydratedTransactionWithStorageMetaZod,\n 'toSignedHydratedTransactionWithStorageMeta',\n)\n","export const ELEVATE_OPCODE = 'elevate'\n","import { z } from 'zod'\n\nexport const CaveatTypesZod = z.enum(['chain', 'expiration', 'filteredResponse', 'rateLimit', 'restrictReturnedAccounts'])\n\nexport const CaveatsZod = z.object({\n type: CaveatTypesZod,\n value: z.json(),\n})\n\nexport const PermissionZod = z.object({\n parentCapability: z.string(),\n caveats: CaveatsZod.array().optional(),\n invoker: z.string(),\n})\n\nexport const InvokerPermissionZod = PermissionZod.safeExtend({ date: z.number().optional() })\n\nexport const PermissionRequestZod = z.record(z.string(), z.record(z.string(), z.any()))\n\nexport const RequestedPermissionZod = z.object({\n parentCapability: z.string(),\n date: z.number().optional(),\n})\n","import { toFixedPoint } from '@xylabs/sdk-js'\n\nimport { asAttoXL1 } from '../xl1/index.ts'\n\nexport const XL1_REWARDS_PLACES = 18 as const\nexport const XL1_REWARDS_STARTING_REWARD = asAttoXL1(toFixedPoint(500n, XL1_REWARDS_PLACES))\nexport const XL1_REWARDS_BLOCKS_PER_STEP = 1_000_000\nexport const XL1_REWARDS_STEP_FACTOR_NUMERATOR = 95n\nexport const XL1_REWARDS_STEP_FACTOR_DENOMINATOR = 100n\nexport const XL1_REWARDS_MIN_BLOCK_REWARD = asAttoXL1(toFixedPoint(10n, XL1_REWARDS_PLACES))\nexport const XL1_REWARDS_CREATOR_REWARD = asAttoXL1(toFixedPoint(20_000_000_000n, XL1_REWARDS_PLACES))\n","import { AddressZod } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport { StepIdentityZod } from '../Step/index.ts'\nimport { BlockRangeZod } from './BlockRange/index.ts'\n\nexport const RewardsRangeOptionsZod = z.object({\n positions: z.array(z.number()).optional(),\n range: BlockRangeZod.optional(),\n steps: z.array(StepIdentityZod).optional(),\n stakers: z.array(AddressZod).optional(),\n})\n","import { HexRegExMinMax, toHex } from '@xylabs/sdk-js'\nimport type { LocalSequence, QualifiedSequence } from '@xyo-network/sdk-js'\nimport { SequenceConstants } from '@xyo-network/sdk-js'\nimport { z } from 'zod'\n\nconst LocalSequenceRegex = new RegExp(HexRegExMinMax(SequenceConstants.localSequenceBytes, SequenceConstants.localSequenceBytes))\nexport const LocalSequenceToStringZod = z.string().regex(LocalSequenceRegex)\nexport const LocalSequenceFromStringZod = z.string().regex(LocalSequenceRegex).transform<LocalSequence>(v => toHex(v) as LocalSequence)\n\nconst QualifiedSequenceRegex = new RegExp(HexRegExMinMax(SequenceConstants.qualifiedSequenceBytes, SequenceConstants.qualifiedSequenceBytes))\nexport const QualifiedSequenceToStringZod = z.string().regex(QualifiedSequenceRegex)\nexport const QualifiedSequenceFromStringZod = z.string().regex(QualifiedSequenceRegex).transform<QualifiedSequence>(v => toHex(v) as QualifiedSequence)\n\nexport const SequenceToStringZod = z.union([LocalSequenceToStringZod, QualifiedSequenceToStringZod])\nexport const SequenceFromStringZod = z.union([LocalSequenceFromStringZod, QualifiedSequenceFromStringZod])\n","import { AddressZod, HexZod } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport {\n AttoToJsonZod, AttoZod, JsonToAttoZod,\n} from '../transaction/index.ts'\nimport type { PositionId } from './PositionId.ts'\n\nexport const StakeZod = z.object({\n amount: AttoZod,\n // the block number when the stake was added\n addBlock: z.number(),\n // the unique id for the stake item\n id: z.number(),\n // the block number when the stake was removed (set to 0 if not removed)\n removeBlock: z.number(),\n // the address that is being staked\n staked: AddressZod,\n // the address that owns the stake\n staker: AddressZod,\n // the block number when the stake was withdrawn (set to 0 if not withdrawn)\n withdrawBlock: z.number(),\n})\n\nexport const StakeToJsonZod = StakeZod.transform(val => ({\n addBlock: val.addBlock,\n amount: AttoToJsonZod.parse(val.amount),\n id: val.id,\n removeBlock: val.removeBlock,\n staked: AddressZod.parse(val.staked),\n staker: AddressZod.parse(val.staker),\n withdrawBlock: val.withdrawBlock,\n}))\n\n// we intentionally use extend and not safeExtend here to ensure all fields are present\nexport const JsonToStakeZod = StakeZod.extend({ amount: HexZod }).transform(val => ({\n addBlock: val.addBlock,\n amount: JsonToAttoZod.parse(val.amount),\n id: val.id as PositionId,\n removeBlock: val.removeBlock,\n staked: val.staked,\n staker: val.staker,\n withdrawBlock: val.withdrawBlock,\n}))\n","import { z } from 'zod'\n\nexport const TimeDomainZod = z.union([\n z.literal('xl1'),\n z.literal('epoch'),\n z.literal('ethereum'),\n])\n","import { AddressZod } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nexport const TransferPairZod = z.tuple([\n AddressZod, AddressZod,\n])\n","export const XL1_PROTOCOL_VERSION_MAJOR = 1 as const\nexport const XL1_PROTOCOL_VERSION_MINOR = 2 as const\nexport const XL1_PROTOCOL_VERSION_PATCH = 0 as const\nexport const XL1_PROTOCOL_VERSION_STRING = `${XL1_PROTOCOL_VERSION_MAJOR}.${XL1_PROTOCOL_VERSION_MINOR}.${XL1_PROTOCOL_VERSION_PATCH}` as const\nexport const XL1_PROTOCOL_VERSION = XL1_PROTOCOL_VERSION_MAJOR * 1_000_000 + XL1_PROTOCOL_VERSION_MINOR * 1000 + XL1_PROTOCOL_VERSION_PATCH\n","import type { Payload } from '@xyo-network/sdk-js'\nimport { asSchema, isPayloadOfSchemaType } from '@xyo-network/sdk-js'\n\nexport const NetworkStatusSchema = asSchema('network.xyo.chain.status', true)\nexport type NetworkStatusSchema = typeof NetworkStatusSchema\n\nexport type NetworkStatusState = 'online' | 'offline' | 'degraded' | 'unknown'\n\nexport type NetworkStatusUpdate = {\n end: number\n start: number\n update: string\n}\n\nexport interface NetworkStatusFields {\n description: string\n state: NetworkStatusState\n updates?: NetworkStatusUpdate[]\n}\n\nexport type NetworkStatus = Payload<NetworkStatusFields, NetworkStatusSchema>\n\nexport const isNetworkStatus = isPayloadOfSchemaType<NetworkStatus>(NetworkStatusSchema)\n","import { assertEx, isString } from '@xylabs/sdk-js'\n\nexport type ProviderMoniker = string\n\nexport const asProviderMoniker = <T>(value: T) => {\n const moniker = isString(value) ? (value as unknown as ProviderMoniker) : undefined\n return assertEx(moniker)\n}\n\nexport const DefaultProviderMoniker = 'Provider' as const\nexport type DefaultProviderMoniker = typeof DefaultProviderMoniker\n","import type { Hash } from '@xylabs/sdk-js'\nimport type { WriteArchivistFunctions } from '@xyo-network/sdk-js'\n\nimport type { DataLakeData, DataLakeProvider } from './Provider.ts'\nimport type { DataLakeViewer, DataLakeViewerMethods } from './Viewer.ts'\n\nexport const DataLakeRunnerMoniker = 'DataLakeRunner' as const\nexport type DataLakeRunnerMoniker = typeof DataLakeRunnerMoniker\n\nexport interface DataLakeRunnerMethods extends WriteArchivistFunctions<DataLakeData, DataLakeData, DataLakeData, Hash>, DataLakeViewerMethods {}\n\nexport interface DataLakeRunner extends DataLakeProvider<DataLakeRunnerMoniker>, DataLakeRunnerMethods, Omit<DataLakeViewer, 'moniker'> {}\n","import type { Hash } from '@xylabs/sdk-js'\nimport type { ReadArchivistFunctions, Sequence } from '@xyo-network/sdk-js'\n\nimport type { DataLakeData, DataLakeProvider } from './Provider.ts'\n\nexport const DataLakeViewerMoniker = 'DataLakeViewer' as const\nexport type DataLakeViewerMoniker = typeof DataLakeViewerMoniker\n\nexport interface DataLakeViewerMethods extends ReadArchivistFunctions<DataLakeData, Hash, Sequence> {}\n\nexport interface DataLakeViewer extends DataLakeProvider<DataLakeViewerMoniker>, DataLakeViewerMethods {\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type { Payload, Signed } from '@xyo-network/sdk-js'\n\nimport type { AllowedBlockPayload } from '../../block/index.ts'\nimport type { ChainId } from '../../chain/index.ts'\nimport type { SignedHydratedTransactionWithHashMeta } from '../../model/index.ts'\nimport type { Provider } from '../../provider/index.ts'\nimport type { TransactionBoundWitness, TransactionFeesBigInt } from '../../transaction/index.ts'\n\nexport const XyoSignerMoniker = 'XyoSigner' as const\nexport type XyoSignerMoniker = typeof XyoSignerMoniker\n\nexport interface XyoSignerMethods {\n address(): Promisable<Address>\n // The tx passed in must have all the payloads (on and off chain) in the payloads array\n // Returns the signed transaction and the payloads array excluding the off-chain payloads.\n // The return value is ready to be broadcast to block producers\n signTransaction(tx: [TransactionBoundWitness, Payload[]]): Promisable<SignedHydratedTransactionWithHashMeta>\n}\n\nexport interface XyoSigner extends XyoSignerMethods, Provider<XyoSignerMoniker> {}\n\nexport interface XyoSignerDeprecated {\n /** @deprecated use signTransaction instead */\n createSignedTransaction(\n chain: ChainId,\n elevatedPayloads: AllowedBlockPayload[],\n additionalPayloads: Payload[],\n nbf: number,\n exp: number,\n fees: TransactionFeesBigInt,\n from?: Address,\n ): Promisable<Signed<TransactionBoundWitness>>\n}\n","import type { Provider } from '../provider/index.ts'\nimport type { NetworkStakeViewer, XyoViewer } from '../viewers/index.ts'\nimport type { DataLakeRunner, DataLakeViewer } from './DataLake/index.ts'\nimport type { XyoNetwork } from './XyoNetwork.ts'\nimport type { XyoRunner } from './XyoRunner.ts'\n\nexport const XyoConnectionMoniker = 'XyoConnection' as const\nexport type XyoConnectionMoniker = typeof XyoConnectionMoniker\n\nexport interface XyoConnection extends Provider<XyoConnectionMoniker> {\n network?: XyoNetwork\n networkStake?: NetworkStakeViewer\n runner?: XyoRunner\n storage?: DataLakeRunner | DataLakeViewer | (DataLakeRunner & DataLakeViewer)\n viewer?: XyoViewer\n}\n","import type { Provider, ProviderMoniker } from '../provider/index.ts'\nimport type { XyoConnection } from './XyoConnection.ts'\n\nexport const XyoGatewayMoniker = 'XyoGateway' as const\nexport type XyoGatewayMoniker = typeof XyoGatewayMoniker\n\nexport interface XyoGatewayMethods {}\n\nexport interface XyoGatewayProvider<\n TMoniker extends ProviderMoniker = ProviderMoniker> extends XyoGatewayMethods, Provider<TMoniker> {\n /**\n * Returns the connection provider for this gateway.\n */\n connection: XyoConnection\n}\n\nexport interface XyoGateway extends XyoGatewayProvider<XyoGatewayMoniker>, Provider<XyoGatewayMoniker> {\n}\n","import type {\n Address, Hash, Logger, Promisable,\n} from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\n\nimport type { AllowedBlockPayload } from '../block/index.ts'\nimport type { XL1BlockNumber } from '../BlockNumber/index.ts'\nimport type { ChainId } from '../chain/index.ts'\nimport type {\n SignedHydratedTransaction, SignedHydratedTransactionWithHashMeta,\n UnsignedHydratedTransaction,\n} from '../model/index.ts'\nimport type { TransactionFeesBigInt } from '../transaction/index.ts'\nimport type { AttoXL1 } from '../xl1/index.ts'\nimport type { XyoSigner } from './signer/index.ts'\nimport type { XyoGatewayProvider } from './XyoGateway.ts'\n\nexport type ConfirmSubmittedTransactionOptions = {\n /**\n * Number of attempts to confirm the transaction.\n * Defaults to 20.\n */\n attempts?: number\n /**\n * Delay in milliseconds between confirmation attempts.\n * Defaults to 1000 (1 second).\n */\n delay?: number\n /**\n * Optional logger instance for logging progress.\n */\n logger?: Logger\n}\n\nexport interface TransactionOptions {\n chain?: ChainId\n exp?: XL1BlockNumber\n fees?: TransactionFeesBigInt\n from?: Address\n nbf?: XL1BlockNumber\n}\n\nexport const XyoGatewayRunnerMoniker = 'XyoGatewayRunner' as const\nexport type XyoGatewayRunnerMoniker = typeof XyoGatewayRunnerMoniker\n\nexport interface XyoGatewayRunnerMethods {\n\n addPayloadsToChain(\n onChain: AllowedBlockPayload[],\n offChain: Payload[],\n options?: TransactionOptions\n ): Promisable<[Hash, SignedHydratedTransactionWithHashMeta]>\n\n addTransactionToChain(\n tx: UnsignedHydratedTransaction | SignedHydratedTransaction,\n offChain?: Payload[]\n ): Promisable<[Hash, SignedHydratedTransactionWithHashMeta]>\n\n confirmSubmittedTransaction(txHash: Hash, options?: ConfirmSubmittedTransactionOptions): Promisable<SignedHydratedTransaction>\n\n send(to: Address, amount: AttoXL1, options?: TransactionOptions): Promisable<Hash>\n sendMany(transfers: Record<Address, AttoXL1>, options?: TransactionOptions): Promisable<Hash>\n}\n\nexport interface XyoGatewayRunner extends XyoGatewayRunnerMethods, XyoGatewayProvider<XyoGatewayRunnerMoniker> {\n /**\n * Returns the signer for this gateway.\n */\n signer: XyoSigner\n}\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\n\nimport type { SignedHydratedTransaction } from '../model/index.ts'\nimport type { Provider } from '../provider/index.ts'\nimport type { MempoolRunner } from '../runners/index.ts'\n\nexport interface XyoRunnerMethods {\n broadcastTransaction(transaction: SignedHydratedTransaction): Promisable<Hash>\n}\n\nexport const XyoRunnerMoniker = 'XyoRunner' as const\nexport type XyoRunnerMoniker = typeof XyoRunnerMoniker\n\nexport interface XyoRunner extends XyoRunnerMethods, Provider<XyoRunnerMoniker> {\n mempool: MempoolRunner\n}\n","import type { WithHashMeta } from '@xyo-network/sdk-js'\n\nimport type {\n BlockBoundWitness, SignedBlockBoundWitnessWithHashMeta, SignedHydratedBlockWithHashMeta,\n} from '../block/index.ts'\nimport type { Provider } from '../provider/index.ts'\n\nexport interface BlockRunnerMethods {\n produceNextBlock(head: SignedBlockBoundWitnessWithHashMeta, force: true): Promise<SignedHydratedBlockWithHashMeta>\n produceNextBlock(head: SignedBlockBoundWitnessWithHashMeta, force?: false): Promise<SignedHydratedBlockWithHashMeta | undefined>\n}\n\nexport const BlockRunnerMoniker = 'BlockRunner' as const\nexport type BlockRunnerMoniker = typeof BlockRunnerMoniker\n\nexport interface BlockRunner extends BlockRunnerMethods, Provider<BlockRunnerMoniker> {\n next(head: WithHashMeta<BlockBoundWitness>): Promise<SignedHydratedBlockWithHashMeta | undefined>\n}\n","import type { Hash } from '@xylabs/sdk-js'\n\nimport type { SignedHydratedBlockWithHashMeta } from '../block/index.ts'\nimport type { Provider } from '../provider/index.ts'\n\nexport interface FinalizationRunnerMethods {\n finalizeBlocks(blocks: SignedHydratedBlockWithHashMeta[]): Promise<Hash[]>\n}\n\nexport const FinalizationRunnerMoniker = 'FinalizationRunner' as const\nexport type FinalizationRunnerMoniker = typeof FinalizationRunnerMoniker\n\nexport interface FinalizationRunner extends FinalizationRunnerMethods, Provider<FinalizationRunnerMoniker> {\n finalizeBlock(block: SignedHydratedBlockWithHashMeta): Promise<Hash>\n}\n","import type { Hash } from '@xylabs/sdk-js'\n\nimport type { SignedHydratedBlock } from '../block/index.ts'\nimport type { SignedHydratedTransaction } from '../model/index.ts'\nimport type { Provider } from '../provider/index.ts'\n\nexport interface MempoolRunnerMethods {\n submitBlocks(blocks: SignedHydratedBlock[]): Promise<Hash[]>\n submitTransactions(transactions: SignedHydratedTransaction[]): Promise<Hash[]>\n}\n\nexport const MempoolRunnerMoniker = 'MempoolRunner' as const\nexport type MempoolRunnerMoniker = typeof MempoolRunnerMoniker\n\nexport const DEFAULT_MAX_EXP_AHEAD = 1000\n\nexport interface MempoolPruneOptions {\n batchSize?: number\n maxCheck?: number\n maxPrune?: number\n}\n\nexport interface MempoolRunner extends MempoolRunnerMethods, Provider<MempoolRunnerMoniker> {\n prunePendingBlocks(options?: MempoolPruneOptions): Promise<[number, number]>\n prunePendingTransactions(options?: MempoolPruneOptions): Promise<[number, number]>\n}\n","import { type Hash, isHash } from '@xylabs/sdk-js'\nimport { isError } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\n\nexport class ValidationError<TValue = Payload> extends Error {\n hash: Hash\n value: TValue\n constructor(hash: Hash, value: TValue, message?: string, cause?: unknown) {\n super(message)\n this.hash = hash\n this.name = this.constructor.name\n this.value = value\n this.cause = cause\n }\n}\n\nexport const isValidationError = <TValue = Payload>(\n error: unknown,\n): error is ValidationError<TValue> => {\n return (\n isError(error) && isHash((error as ValidationError<TValue>)?.hash) && (error as ValidationError<TValue>)?.value !== undefined\n )\n}\n","import type { Hash } from '@xylabs/sdk-js'\n\nimport type { BlockBoundWitness, HydratedBlock } from '../../block/index.ts'\nimport type { ChainId } from '../../chain/index.ts'\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class BlockValidationError extends ValidationError<BlockBoundWitness> {}\n\nexport const isBlockValidationError = (\n error: unknown,\n): error is BlockValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === BlockValidationError.constructor.name\n )\n}\n\nexport class HydratedBlockValidationError extends ValidationError<HydratedBlock> {}\n\nexport const isHydratedBlockValidationError = (\n error: unknown,\n): error is HydratedBlockValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedBlockValidationError.constructor.name\n )\n}\n\nexport class HydratedBlockStateValidationError extends ValidationError<HydratedBlock> {\n chainId: ChainId\n constructor(hash: Hash, chainId: ChainId, value: HydratedBlock, message?: string, cause?: unknown) {\n super(hash, value, message, cause)\n this.chainId = chainId\n }\n}\n\nexport const isHydratedBlockStateValidationError = (\n error: unknown,\n): error is HydratedBlockStateValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedBlockStateValidationError.constructor.name\n )\n}\n","import type { BoundWitness, HydratedBoundWitness } from '@xyo-network/sdk-js'\n\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class BoundWitnessValidationError extends ValidationError<BoundWitness> {}\n\nexport const isBoundWitnessValidationError = (\n error: unknown,\n): error is BoundWitnessValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === BoundWitnessValidationError.constructor.name\n )\n}\n\nexport class HydratedBoundWitnessValidationError extends ValidationError<HydratedBoundWitness> {}\n\nexport const isHydratedBoundWitnessValidationError = (\n error: unknown,\n): error is HydratedBoundWitnessValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedBoundWitnessValidationError.constructor.name\n )\n}\n","import type { Hash } from '@xylabs/sdk-js'\nimport { type Payload } from '@xyo-network/sdk-js'\n\nimport type { HydratedBlock } from '../../block/index.ts'\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class InBlockPayloadValidationError extends ValidationError<Payload> {\n block: HydratedBlock\n constructor(hash: Hash, block: HydratedBlock, value: Payload, message?: string, cause?: unknown) {\n super(hash, value, message, cause)\n this.block = block\n }\n}\n\nexport const isInBlockPayloadValidationError = (\n error: unknown,\n): error is InBlockPayloadValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === InBlockPayloadValidationError.constructor.name\n )\n}\n","import type { HydratedTransaction } from '../../model/index.ts'\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class HydratedTransactionValidationError extends ValidationError<HydratedTransaction> {}\n\nexport const isHydratedTransactionValidationError = (\n error: unknown,\n): error is HydratedTransactionValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedTransactionValidationError.constructor.name\n )\n}\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\nimport type { Payload, WithHashMeta } from '@xyo-network/sdk-js'\n\nimport type { SignedHydratedBlockWithHashMeta } from '../block/index.ts'\nimport type { XL1BlockNumber } from '../BlockNumber/index.ts'\nimport type { ChainId } from '../chain/index.ts'\nimport type {\n BlockRate, SingleTimeConfig, TimeDurations, XL1BlockRange,\n} from '../model/index.ts'\nimport type { Provider, ProviderMoniker } from '../provider/index.ts'\n\nexport interface BlockViewerMethods {\n blocksByHash(hash: Hash, limit?: number): Promisable<SignedHydratedBlockWithHashMeta[]>\n blocksByNumber(block: XL1BlockNumber, limit?: number): Promisable<SignedHydratedBlockWithHashMeta[]>\n currentBlock(): Promisable<SignedHydratedBlockWithHashMeta>\n payloadsByHash(hashes: Hash[]): Promisable<WithHashMeta<Payload>[]>\n}\n\nexport const BlockViewerMoniker = 'BlockViewer' as const\nexport type BlockViewerMoniker = typeof BlockViewerMoniker\n\nexport interface BlockViewer<TMoniker extends ProviderMoniker = BlockViewerMoniker> extends BlockViewerMethods, Provider<TMoniker> {\n blockByHash(hash: Hash): Promisable<SignedHydratedBlockWithHashMeta | null>\n blockByNumber(block: XL1BlockNumber): Promisable<SignedHydratedBlockWithHashMeta | null>\n chainId(): Promisable<ChainId>\n chainId(blockNumber: XL1BlockNumber): Promisable<ChainId>\n chainId(blockNumber: 'latest'): Promisable<ChainId>\n currentBlockHash(): Promisable<Hash>\n currentBlockNumber(): Promisable<XL1BlockNumber>\n payloadByHash(hash: Hash): Promisable<WithHashMeta<Payload> | null>\n rate(range: XL1BlockRange, timeUnit?: keyof TimeDurations): Promisable<BlockRate>\n stepSizeRate(start: XL1BlockNumber, stepIndex: number, count?: number, timeUnit?: keyof TimeDurations): Promisable<BlockRate>\n timeDurationRate(\n timeConfig: SingleTimeConfig,\n startBlockNumber?: XL1BlockNumber,\n timeUnit?: keyof TimeDurations,\n toleranceMs?: number,\n maxAttempts?: number,\n ): Promisable<BlockRate>\n}\n","import { type Promisable } from '@xylabs/sdk-js'\nimport { zodIsFactory } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport type { SignedHydratedBlock, SignedHydratedBlockWithHashMeta } from '../block/index.ts'\nimport {\n ChainQualificationZod, ChainQualifiedHeadConfigZod, ChainQualifiedRangeConfigZod,\n} from '../model/index.ts'\nimport type { Provider } from '../provider/index.ts'\nimport type { HydratedBlockValidationError } from '../validation/index.ts'\n\nexport const BlockInvalidationQualificationZod = ChainQualificationZod\nexport type BlockInvalidationQualification = z.infer<typeof BlockInvalidationQualificationZod>\nexport const isBlockInvalidationQualification = zodIsFactory(BlockInvalidationQualificationZod)\n\nexport const BlockInvalidationConfigFieldsZod = z.object({\n state: z.boolean().optional(),\n value: z.boolean().optional(),\n})\n\nexport const BlockInvalidationConfigZod = z.union([\n BlockInvalidationConfigFieldsZod.extend(ChainQualifiedHeadConfigZod.shape),\n BlockInvalidationConfigFieldsZod.extend(ChainQualifiedRangeConfigZod.shape),\n BlockInvalidationConfigFieldsZod,\n z.object({}),\n])\n\nexport type BlockInvalidationConfig = z.infer<typeof BlockInvalidationConfigZod>\nexport const isBlockInvalidationConfig = zodIsFactory(BlockInvalidationConfigZod)\n\n/**\n * Checks if blocks are invalid (impossible to ever become valid) according to protocol rules.\n */\n\nexport interface BlockInvalidationViewerMethods {\n qualifiedInvalidateBlocks(\n blocks: SignedHydratedBlock[],\n config?: BlockInvalidationConfig\n ): Promisable<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockInvalidationQualification]>\n\n qualifiedInvalidateUncle(\n blocks: SignedHydratedBlock[],\n config?: BlockInvalidationConfig\n ): Promisable<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockInvalidationQualification]>\n}\n\nexport const BlockInvalidationViewerMoniker = 'BlockInvalidationViewer' as const\nexport type BlockInvalidationViewerMoniker = typeof BlockInvalidationViewerMoniker\n\nexport interface BlockInvalidationViewer extends BlockInvalidationViewerMethods, Provider<BlockInvalidationViewerMoniker> {\n invalidateBlock(\n block: SignedHydratedBlock,\n config?: BlockInvalidationConfig\n ): Promisable<HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta>\n\n invalidateBlocks(\n blocks: SignedHydratedBlock[],\n config?: BlockInvalidationConfig\n ): Promisable<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>\n\n invalidateUncle(\n blocks: SignedHydratedBlock[],\n config?: BlockInvalidationConfig\n ): Promisable<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>\n\n qualifiedInvalidateBlock(\n block: SignedHydratedBlock,\n config?: BlockInvalidationConfig\n ): Promisable<[HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta, BlockInvalidationQualification]>\n}\n","import type { Promisable } from '@xylabs/sdk-js'\n\nimport type { XL1BlockNumber } from '../BlockNumber/index.ts'\nimport type { Provider } from '../provider/index.ts'\nimport type { AttoXL1 } from '../xl1/index.ts'\n\nexport interface BlockRewardViewerMethods {\n // The amount of xl1 to send to the producer from the block reward\n allowedRewardForBlock(block: XL1BlockNumber): Promisable<AttoXL1>\n}\n\nexport const BlockRewardViewerMoniker = 'BlockRewardViewer' as const\nexport type BlockRewardViewerMoniker = typeof BlockRewardViewerMoniker\n\nexport interface BlockRewardViewer extends BlockRewardViewerMethods, Provider<BlockRewardViewerMoniker> {}\n","import { type Promisable } from '@xylabs/sdk-js'\nimport { zodIsFactory } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport type { SignedHydratedBlock, SignedHydratedBlockWithHashMeta } from '../block/index.ts'\nimport {\n ChainQualificationZod, ChainQualifiedHeadConfigZod, ChainQualifiedRangeConfigZod,\n} from '../model/index.ts'\nimport type { Provider } from '../provider/index.ts'\nimport type { HydratedBlockValidationError } from '../validation/index.ts'\n\nexport const BlockValidationQualificationZod = ChainQualificationZod\nexport type BlockValidationQualification = z.infer<typeof BlockValidationQualificationZod>\nexport const isBlockValidationQualification = zodIsFactory(BlockValidationQualificationZod)\n\nexport const BlockValidationConfigFieldsZod = z.object({\n value: z.boolean().optional(),\n state: z.boolean().optional(),\n})\n\nexport const BlockValidationConfigZod = z.union([\n BlockValidationConfigFieldsZod.extend(ChainQualifiedHeadConfigZod.shape),\n BlockValidationConfigFieldsZod.extend(ChainQualifiedRangeConfigZod.shape),\n BlockValidationConfigFieldsZod,\n z.object({}),\n])\n\nexport type BlockValidationConfig = z.infer<typeof BlockValidationConfigZod>\nexport const isBlockValidationConfig = zodIsFactory(BlockValidationConfigZod)\n\nexport interface BlockValidationViewerMethods {\n qualifiedValidateBlocks(\n blocks: SignedHydratedBlock[],\n config?: BlockValidationConfig\n ): Promisable<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockValidationQualification]>\n\n qualifiedValidateUncle(\n blocks: SignedHydratedBlock[],\n config?: BlockValidationConfig\n ): Promisable<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockValidationQualification]>\n}\n\nexport const BlockValidationViewerMoniker = 'BlockValidationViewer' as const\nexport type BlockValidationViewerMoniker = typeof BlockValidationViewerMoniker\n\n/**\n * Checks if blocks are valid (currently valid) according to protocol rules. In the case that they are not valid, they may still become valid in the future.\n */\n\nexport interface BlockValidationViewer extends BlockValidationViewerMethods, Provider<BlockValidationViewerMoniker> {\n qualifiedValidateBlock(\n block: SignedHydratedBlock,\n config?: BlockValidationConfig\n ): Promisable<[HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta, BlockValidationQualification]>\n\n validateBlock(\n block: SignedHydratedBlock,\n config?: BlockValidationConfig\n ): Promisable<HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta>\n\n validateBlocks(\n blocks: SignedHydratedBlock[],\n config?: BlockValidationConfig\n ): Promisable<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>\n\n validateUncle(\n blocks: SignedHydratedBlock[],\n config?: BlockValidationConfig\n ): Promisable<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>\n}\n","import type {\n Address, Hash, Promisable,\n} from '@xylabs/sdk-js'\n\nimport type { XL1BlockNumber } from '../BlockNumber/index.ts'\nimport type { ChainId } from '../chain/index.ts'\nimport type { Provider } from '../provider/index.ts'\n\nexport interface ChainContractViewerMethods {\n chainId(): Promisable<ChainId>\n forkedAtBlockNumber(): Promisable<XL1BlockNumber | null>\n forkedAtHash(): Promisable<Hash | null>\n forkedChainId(): Promisable<ChainId | null>\n minWithdrawalBlocks(): Promisable<number>\n rewardsContract(): Promisable<Address>\n stakingTokenAddress(): Promisable<Address>\n}\n\nexport const ChainContractViewerMoniker = 'ChainContractViewer' as const\nexport type ChainContractViewerMoniker = typeof ChainContractViewerMoniker\n\nexport interface ChainContractViewer extends ChainContractViewerMethods, Provider<ChainContractViewerMoniker> {\n chainIdAtBlockNumber(blockNumber: XL1BlockNumber | 'latest'): Promisable<ChainId>\n forkedChainContractViewer(): Promisable<ChainContractViewer | null>\n}\n","import type { Provider } from '../provider/index.ts'\nimport type { ChainContractViewer } from './ChainContract.ts'\nimport type { StakeTotalsViewer } from './StakeTotals.ts'\n\nexport const ChainStakeViewerMoniker = 'ChainStakeViewer' as const\nexport type ChainStakeViewerMoniker = typeof ChainStakeViewerMoniker\n\nexport interface ChainStakeViewer extends Omit<ChainContractViewer, 'moniker'>, Omit<StakeTotalsViewer, 'moniker'>,\n Provider<ChainStakeViewerMoniker> {\n\n}\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\n\nimport type { SignedBlockBoundWitnessWithHashMeta, SignedHydratedBlockWithHashMeta } from '../block/index.ts'\nimport type { XL1BlockNumber } from '../BlockNumber/index.ts'\nimport type { ChainId } from '../chain/index.ts'\nimport type { Provider } from '../provider/index.ts'\n\nexport interface FinalizationViewerMethods {\n head(): Promisable<SignedHydratedBlockWithHashMeta>\n}\n\nexport const FinalizationViewerMoniker = 'FinalizationViewer' as const\nexport type FinalizationViewerMoniker = typeof FinalizationViewerMoniker\n\nexport interface FinalizationViewer extends FinalizationViewerMethods, Provider<FinalizationViewerMoniker> {\n chainId(): Promisable<ChainId>\n headBlock(): Promisable<SignedBlockBoundWitnessWithHashMeta>\n headHash(): Promisable<Hash>\n headNumber(): Promisable<XL1BlockNumber>\n}\n","import { HashZod } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport type { SignedHydratedBlockWithHashMeta } from '../block/index.ts'\nimport type { SignedHydratedTransactionWithHashMeta } from '../model/index.ts'\nimport { XL1BlockRangeZod } from '../model/index.ts'\nimport type { Provider } from '../provider/index.ts'\n\nexport const PendingTransactionsOptionsZod = z.object({\n cursor: HashZod.optional(),\n limit: z.number().int().positive().optional(),\n window: XL1BlockRangeZod.optional(),\n})\n\nexport type PendingTransactionsOptions = z.infer<typeof PendingTransactionsOptionsZod>\n\nexport const PendingBlocksOptionsZod = z.object({\n cursor: HashZod.optional(),\n limit: z.number().int().positive().optional(),\n window: XL1BlockRangeZod.optional(),\n})\n\nexport type PendingBlocksOptions = z.infer<typeof PendingBlocksOptionsZod>\n\nexport interface MempoolViewerMethods {\n pendingBlocks(options?: PendingBlocksOptions): Promise<SignedHydratedBlockWithHashMeta[]>\n pendingTransactions(options?: PendingTransactionsOptions): Promise<SignedHydratedTransactionWithHashMeta[]>\n}\n\nexport const MempoolViewerMoniker = 'MempoolViewer' as const\nexport type MempoolViewerMoniker = typeof MempoolViewerMoniker\n\nexport interface MempoolViewer extends MempoolViewerMethods, Provider<MempoolViewerMoniker> {}\n","import type { Promisable } from '@xylabs/sdk-js'\n\nimport type { Provider } from '../../provider/index.ts'\nimport type { NetworkStakeStepRewardsViewer } from './Rewards/index.ts'\n\nexport interface NetworkStakeViewerMethods {\n /** @returns the active stake and the number of active validators [active, block] */\n active(blockNumber?: number): Promisable<[bigint, number]>\n}\n\nexport const NetworkStakeViewerMoniker = 'NetworkStakeViewer' as const\nexport type NetworkStakeViewerMoniker = typeof NetworkStakeViewerMoniker\n\nexport interface NetworkStakeViewer extends NetworkStakeViewerMethods, Provider<NetworkStakeViewerMoniker> {\n stepRewards?: NetworkStakeStepRewardsViewer\n}\n","import type { Provider } from '../../../provider/index.ts'\nimport type { NetworkStakeStepRewardsByPositionViewerOptions } from './Options.ts'\nimport type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './templates/index.ts'\n\n// Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.\n\nexport interface NetworkStakeStepRewardsByPositionViewerMethods extends\n NetworkStakeStepRewardsByIndexViewerMethodsTemplate<NetworkStakeStepRewardsByPositionViewerOptions, number> {}\n\nexport const NetworkStakeStepRewardsByPositionViewerMoniker = 'NetworkStakeStepRewardsByPositionViewer' as const\nexport type NetworkStakeStepRewardsByPositionViewerMoniker = typeof NetworkStakeStepRewardsByPositionViewerMoniker\n\nexport interface NetworkStakeStepRewardsByPositionViewer extends NetworkStakeStepRewardsByPositionViewerMethods,\n Provider<NetworkStakeStepRewardsByPositionViewerMoniker> {}\n","import type { Address } from '@xylabs/sdk-js'\n\nimport type { Provider } from '../../../provider/index.ts'\nimport type { NetworkStakeStepRewardsByStakerViewerOptions } from './Options.ts'\nimport type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './templates/index.ts'\n\n// Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.\n\nexport interface NetworkStakeStepRewardsByStakerViewerMethods\n extends NetworkStakeStepRewardsByIndexViewerMethodsTemplate<NetworkStakeStepRewardsByStakerViewerOptions, Address> {}\n\nexport const NetworkStakeStepRewardsByStakerViewerMoniker = 'NetworkStakeStepRewardsByStakerViewer' as const\nexport type NetworkStakeStepRewardsByStakerViewerMoniker = typeof NetworkStakeStepRewardsByStakerViewerMoniker\n\nexport interface NetworkStakeStepRewardsByStakerViewer extends NetworkStakeStepRewardsByStakerViewerMethods,\n Provider<NetworkStakeStepRewardsByStakerViewerMoniker> {}\n","import type { Provider } from '../../../provider/index.ts'\nimport type { StepIdentityString } from '../../../Step/index.ts'\nimport type { NetworkStakeStepRewardsByStepViewerOptions } from './Options.ts'\nimport type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './templates/index.ts'\n\n// Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.\n\nexport interface NetworkStakeStepRewardsByStepViewerMethods extends\n NetworkStakeStepRewardsByIndexViewerMethodsTemplate<NetworkStakeStepRewardsByStepViewerOptions, StepIdentityString> {}\n\nexport const NetworkStakeStepRewardsByStepViewerMoniker = 'NetworkStakeStepRewardsByStepViewer' as const\nexport type NetworkStakeStepRewardsByStepViewerMoniker = typeof NetworkStakeStepRewardsByStepViewerMoniker\n\nexport interface NetworkStakeStepRewardsByStepViewer extends NetworkStakeStepRewardsByStepViewerMethods, Provider<NetworkStakeStepRewardsByStepViewerMoniker> {}\n","import type { Provider } from '../../../provider/index.ts'\nimport type { AttoXL1 } from '../../../xl1/index.ts'\nimport type { NetworkStakeStepRewardsRangeOptions } from './Options.ts'\nimport type { NetworkStakeStepRewardsViewerMethodsTemplate } from './templates/index.ts'\n\n// Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.\n\nexport interface NetworkStakeStepRewardsTotalViewerMethods extends NetworkStakeStepRewardsViewerMethodsTemplate<NetworkStakeStepRewardsRangeOptions, AttoXL1> {}\n\nexport const NetworkStakeStepRewardsTotalViewerMoniker = 'NetworkStakeStepRewardsTotalViewer' as const\nexport type NetworkStakeStepRewardsTotalViewerMoniker = typeof NetworkStakeStepRewardsTotalViewerMoniker\n\nexport interface NetworkStakeStepRewardsTotalViewer extends NetworkStakeStepRewardsTotalViewerMethods, Provider<NetworkStakeStepRewardsTotalViewerMoniker> {}\n","import type { Provider } from '../../../provider/index.ts'\nimport type { NetworkStakeStepRewardsByPositionViewer } from './ByPositionViewer.ts'\nimport type { NetworkStakeStepRewardsByStakerViewer } from './ByStakerViewer.ts'\nimport type { NetworkStakeStepRewardsByStepViewer } from './ByStepViewer.ts'\nimport type { NetworkStakeStepRewardsTotalViewer } from './TotalViewer.ts'\n\nexport interface NetworkStakeStepRewardsViewerMethods {}\n\nexport const NetworkStakeStepRewardsViewerMoniker = 'NetworkStakeStepRewardsViewer' as const\nexport type NetworkStakeStepRewardsViewerMoniker = typeof NetworkStakeStepRewardsViewerMoniker\n\nexport interface NetworkStakeStepRewardsViewer extends NetworkStakeStepRewardsViewerMethods, Provider<NetworkStakeStepRewardsViewerMoniker> {\n position?: NetworkStakeStepRewardsByPositionViewer\n staker?: NetworkStakeStepRewardsByStakerViewer\n step?: NetworkStakeStepRewardsByStepViewer\n total?: NetworkStakeStepRewardsTotalViewer\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\n\nimport type { Provider } from '../provider/index.ts'\nimport type { StepIdentity, StepIdentityString } from '../Step/index.ts'\nimport type { AttoXL1 } from '../xl1/index.ts'\n\nexport interface NetworkStakeStepAddressRewardViewerMethods {\n // the step rewards for a specific network stakers for all of history\n networkStakeStepRewardAddressHistory(address: Address): Promisable<Record<Address, AttoXL1>>\n\n // the step rewards for a specific network stakers for a given step and block\n networkStakeStepRewardAddressReward(context: StepIdentity, address: Address): Promisable<Record<Address, AttoXL1>>\n\n // the shares for a specific network staker for a given step and block\n networkStakeStepRewardAddressShare(context: StepIdentity, address: Address): Promisable<[/* address shares */bigint, /* total shares */bigint]>\n\n // estimate the current reward weight for a given address at a given step\n networkStakeStepRewardWeightForAddress(context: StepIdentity, address: Address): Promisable<bigint>\n}\n\nexport interface NetworkStakeStepPoolRewardViewerMethods {\n\n // all the step rewards for all the network stakers for a given step and block\n networkStakeStepRewardPoolRewards(context: StepIdentity): Promisable<Record<Address, AttoXL1>>\n\n // all the shares for all the network stakers for a given step and block\n networkStakeStepRewardPoolShares(context: StepIdentity): Promisable<Record<Address, bigint>>\n}\n\nexport interface NetworkStakeStepRewardPositionViewerMethods {\n // estimate the current weight for a given position at a given step\n networkStakeStepRewardPositionWeight(context: StepIdentity, position: number): Promisable<bigint>\n\n // estimate the potential loss for removing a given position at a given step\n networkStakeStepRewardPotentialPositionLoss(context: StepIdentity, position: number): Promisable<AttoXL1>\n}\n\nexport interface NetworkStakeStepRewardViewerMethods extends\n NetworkStakeStepPoolRewardViewerMethods,\n NetworkStakeStepAddressRewardViewerMethods,\n NetworkStakeStepRewardPositionViewerMethods\n{\n networkStakeStepRewardClaimedByAddress(address: Address): Promisable<AttoXL1>\n\n // the share & total rewards for a given position\n networkStakeStepRewardForPosition(position: number, range: [number, number]): Promisable<[AttoXL1, AttoXL1]>\n\n // estimate the total possible block rewards for a given step\n networkStakeStepRewardForStep(context: StepIdentity): Promisable<AttoXL1>\n\n // the share & total rewards for a given step and block for a given position\n networkStakeStepRewardForStepForPosition(context: StepIdentity, position: number): Promisable<[AttoXL1, AttoXL1]>\n\n // the predictable random number for a given step and block\n networkStakeStepRewardRandomizer(context: StepIdentity): Promisable<AttoXL1>\n\n // the total number of stakers for a given step and block\n networkStakeStepRewardStakerCount(context: StepIdentity): Promisable<number>\n\n networkStakeStepRewardUnclaimedByAddress(address: Address): Promisable<AttoXL1>\n\n // the share & total rewards for a given position for each step in range\n networkStakeStepRewardsForPosition(position: number,\n range: [number, number]): Promisable<Record<StepIdentityString, [AttoXL1, AttoXL1]>>\n\n // the total rewards for a given range\n networkStakeStepRewardsForRange(range: [number, number]): Promisable<AttoXL1>\n\n // the total rewards for a given range and step level\n networkStakeStepRewardsForStepLevel(stepLevel: number, range: [number, number]): Promisable<AttoXL1>\n}\n\nexport const NetworkStakeStepRewardViewerMoniker = 'NetworkStakeStepRewardViewer' as const\nexport type NetworkStakeStepRewardViewerMoniker = typeof NetworkStakeStepRewardViewerMoniker\n\nexport interface NetworkStakeStepRewardViewer extends NetworkStakeStepRewardViewerMethods, Provider<NetworkStakeStepRewardViewerMoniker> {}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\n\nimport type { Position } from '../model/index.ts'\nimport type { Provider } from '../provider/index.ts'\nimport type { StakeEventsViewer } from './StakeEvents.ts'\n\nexport interface StakeViewerProperties {\n stakeEvents: StakeEventsViewer\n}\n\nexport interface StakeViewerMethods {\n minWithdrawalBlocks(): Promisable<number>\n rewardsContract(): Promisable<Address>\n stakeById(id: number): Promisable<Position>\n stakeByStaker(staker: Address, slot: number): Promisable<Position>\n stakesByStaked(staked: Address): Promisable<Position[]>\n stakesByStaker(staker: Address): Promisable<Position[]>\n stakingTokenAddress(): Promisable<Address>\n}\n\nexport const StakeViewerMoniker = 'StakeViewer' as const\nexport type StakeViewerMoniker = typeof StakeViewerMoniker\n\nexport interface StakeViewer extends StakeViewerMethods, StakeViewerProperties, Provider<StakeViewerMoniker> {\n activeStakes(): Promisable<Position[]>\n removedStakes(): Promisable<Position[]>\n withdrawnStakes(): Promisable<Position[]>\n}\n\nexport const StakeRunnerMoniker = 'StakeRunner' as const\nexport type StakeRunnerMoniker = typeof StakeRunnerMoniker\n\nexport interface StakeRunner extends Provider<StakeRunnerMoniker> {\n addStake(staked: string, amount: bigint): Promise<boolean>\n removeStake(slot: bigint): Promise<boolean>\n withdrawStake(slot: bigint): Promise<boolean>\n}\n","import type {\n Address, JsonObject, Promisable,\n} from '@xylabs/sdk-js'\n\nimport type { Provider } from '../provider/index.ts'\n\nexport const StakeEventNames = ['StakeAdded', 'StakeRemoved', 'StakeWithdrawn'] as const\nexport type StakeEventName = typeof StakeEventNames[number]\n\nexport interface ExternalEvent<TName extends string = string, TArgs extends JsonObject = {}> {\n args: TArgs\n name: TName\n time: number // usually block number\n}\n\nexport interface EventFilter<TName extends string = string> {\n name?: TName\n time?: [number, number]\n}\n\nexport interface StakeEventArgs {\n amount: bigint\n id: number\n staked: Address\n staker: Address\n}\n\nexport type StakeEventFilterArgs = Partial<Pick<StakeEventArgs, 'staker' | 'staked' | 'id'>>\n\nexport interface StakeEventFilter<TName extends StakeEventName = StakeEventName> extends EventFilter<TName> {\n args?: StakeEventFilterArgs\n}\n\nexport interface StakeEvent<TName extends StakeEventName = StakeEventName> extends ExternalEvent<TName> {\n args: StakeEventArgs\n}\n\nexport const StakeEventsViewerMoniker = 'StakeEventsViewer' as const\nexport type StakeEventsViewerMoniker = typeof StakeEventsViewerMoniker\n\nexport interface StakeEventsViewer extends Provider<StakeEventsViewerMoniker> {\n positionCount(range: [number, number | 'latest']): Promisable<number>\n stakeEvents<TName extends StakeEventName>(range: [number, number | 'latest'], filter?: StakeEventFilter<TName>): Promisable<StakeEvent<TName>[]>\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\n\nimport type { Provider } from '../provider/index.ts'\n\nexport interface StakeTotalsViewerMethods {\n active(time?: number): Promisable<bigint>\n activeByStaked(staked: Address, time?: number): Promisable<bigint>\n activeByStaker(address: Address, time?: number): Promisable<bigint>\n pending(time?: number): Promisable<bigint>\n pendingByStaker(staker: Address, time?: number): Promisable<bigint>\n withdrawn(time?: number): Promisable<bigint>\n withdrawnByStaker(staker: Address, time?: number): Promisable<bigint>\n}\n\nexport const StakeTotalsViewerMoniker = 'StakeTotalsViewer' as const\nexport type StakeTotalsViewerMoniker = typeof StakeTotalsViewerMoniker\n\nexport interface StakeTotalsViewer extends StakeTotalsViewerMethods, Provider<StakeTotalsViewerMoniker> {}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\n\nimport type { Provider } from '../provider/index.ts'\nimport type { StepIdentity } from '../Step/index.ts'\n\nexport interface StepStakeViewerMethods {\n // this is the prorated stake for all addresses in the step\n stepStake: (step: StepIdentity) => Promisable<Record<Address, bigint>>\n\n // this is the prorated stake for a specific address in the step\n stepStakeForAddress: (address: Address, step: StepIdentity) => Promisable<bigint>\n}\n\n/* Prorated stake is the amount of stake that is allocated to a specific step\n based on the total stake and the number of steps. This is used to ensure\n that the stake is distributed fairly among all steps.\n\n The simplest way to calculate it is to enumerate every XL1 block in the step add the current stake at that point to a counter.\n For example, if an Address had a stake of 100 for the entire time, then the prorated stake would be 100 * number of blocks in the step.\n*/\n\nexport const StepStakeViewerMoniker = 'StepStakeViewer' as const\nexport type StepStakeViewerMoniker = typeof StepStakeViewerMoniker\n\nexport interface StepStakeViewer extends StepStakeViewerMethods, Provider<StepStakeViewerMoniker> {}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\n\nimport type { Position, PositionId } from '../model/index.ts'\nimport type { Provider } from '../provider/index.ts'\nimport type { StepIdentity } from '../Step/index.ts'\nimport type { NetworkStakeStepRewardsViewer } from './NetworkStake/index.ts'\n\nexport interface PagedPositionsOptions {\n cursor?: PositionId\n limit?: number\n}\n\nexport interface PagedStakersOptions {\n cursor?: Address\n limit?: number\n}\n\nexport interface StepStatistics {\n endTime: number\n startTime: number\n}\n\nexport interface StepViewerMethods {\n\n // the total number of positions for a given step\n positionCount(step: StepIdentity): Promisable<number>\n\n positions(step: StepIdentity, options?: PagedPositionsOptions): Promisable<Position[]>\n\n // the predictable random number for a given step\n randomizer(step: StepIdentity): Promisable<bigint>\n\n // total amount staked during a given step\n stake(step: StepIdentity): Promisable<bigint>\n\n // the total number of stakers for a given step\n stakerCount(step: StepIdentity): Promisable<number>\n\n stakers(step: StepIdentity, options?: PagedStakersOptions): Promisable<Address[]>\n\n // if no positionId is supplied, returns the total stake weight for the step\n weight(step: StepIdentity, positionId?: PositionId): Promisable<bigint>\n}\n\nexport const StepViewerMoniker = 'StepViewer' as const\nexport type StepViewerMoniker = typeof StepViewerMoniker\n\nexport interface StepViewer extends StepViewerMethods, Provider<StepViewerMoniker> {\n rewards?: NetworkStakeStepRewardsViewer\n}\n","import type { Promisable } from '@xylabs/sdk-js'\n\nimport type { TimeDomain, TimePayload } from '../payload/index.ts'\nimport type { Provider } from '../provider/index.ts'\n\nexport interface TimeSyncViewerMethods {\n /** Convert time between different domains */\n convertTime(fromDomain: TimeDomain, toDomain: TimeDomain, from: number): Promisable<number>\n\n /** Get the current time for a given domain */\n currentTime(domain: TimeDomain): Promisable<[string, number]>\n\n /** Get the current time for a given domain */\n currentTimeAndHash(domain: TimeDomain): Promisable<[number, string | null]>\n\n /** Create a TimePayload with the current time from all configured domains */\n currentTimePayload(): Promisable<TimePayload>\n}\n\nexport const TimeSyncViewerMoniker = 'TimeSyncViewer' as const\nexport type TimeSyncViewerMoniker = typeof TimeSyncViewerMoniker\n\nexport interface TimeSyncViewer extends TimeSyncViewerMethods, Provider<TimeSyncViewerMoniker> {}\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\n\nimport type { SignedHydratedTransaction, SignedHydratedTransactionWithHashMeta } from '../model/index.ts'\nimport type { Provider, ProviderMoniker } from '../provider/index.ts'\n\nexport interface TransactionViewerMethods {\n byHash(transactionHash: Hash): Promisable<SignedHydratedTransactionWithHashMeta | null>\n\n /** @deprecated use .byBlockHashAndIndex instead */\n transactionByBlockHashAndIndex(blockHash: Hash, transactionIndex: number): Promisable<SignedHydratedTransaction | null>\n /** @deprecated use .byBlockNumberAndIndex instead */\n transactionByBlockNumberAndIndex(blockNumber: number, transactionIndex: number): Promisable<SignedHydratedTransaction | null>\n /** @deprecated use .byHash instead */\n transactionByHash(transactionHash: Hash): Promisable<SignedHydratedTransaction | null>\n}\n\nexport const TransactionViewerMoniker = 'TransactionViewer' as const\nexport type TransactionViewerMoniker = typeof TransactionViewerMoniker\n\nexport interface TransactionViewer<TMoniker extends ProviderMoniker = TransactionViewerMoniker> extends TransactionViewerMethods, Provider<TMoniker> {\n byBlockHashAndIndex(blockHash: Hash, transactionIndex: number): Promisable<SignedHydratedTransactionWithHashMeta | null>\n byBlockNumberAndIndex(blockNumber: number, transactionIndex: number): Promisable<SignedHydratedTransactionWithHashMeta | null>\n}\n","import { type Promisable } from '@xylabs/sdk-js'\nimport { zodIsFactory } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport type { SignedHydratedTransaction, SignedHydratedTransactionWithHashMeta } from '../model/index.ts'\nimport {\n ChainQualificationZod, ChainQualifiedHeadConfigZod, ChainQualifiedRangeConfigZod,\n} from '../model/index.ts'\nimport type { Provider } from '../provider/index.ts'\nimport type { HydratedTransactionValidationError } from '../validation/index.ts'\n\nexport const TransactionInvalidationQualificationZod = ChainQualificationZod\nexport type TransactionInvalidationQualification = z.infer<typeof TransactionInvalidationQualificationZod>\nexport const isTransactionInvalidationQualification = zodIsFactory(TransactionInvalidationQualificationZod)\n\nexport const TransactionInvalidationConfigFieldsZod = z.object({\n state: z.boolean().optional(),\n value: z.boolean().optional(),\n})\n\nexport const TransactionInvalidationConfigZod = z.union([\n TransactionInvalidationConfigFieldsZod.extend(ChainQualifiedHeadConfigZod.shape),\n TransactionInvalidationConfigFieldsZod.extend(ChainQualifiedRangeConfigZod.shape),\n TransactionInvalidationConfigFieldsZod,\n z.object({}),\n])\n\nexport type TransactionInvalidationConfig = z.infer<typeof TransactionInvalidationConfigZod>\nexport const isTransactionInvalidationConfig = zodIsFactory(TransactionInvalidationConfigZod)\n\n/**\n * Checks if transactions are invalid (impossible to ever become valid) according to protocol rules.\n */\n\nexport interface TransactionInvalidationViewerMethods {\n qualifiedInvalidateTransactions(\n blocks: SignedHydratedTransaction[],\n config?: TransactionInvalidationConfig\n ): Promisable<[(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[], TransactionInvalidationQualification]>\n}\n\nexport const TransactionInvalidationViewerMoniker = 'TransactionInvalidationViewer' as const\nexport type TransactionInvalidationViewerMoniker = typeof TransactionInvalidationViewerMoniker\n\nexport interface TransactionInvalidationViewer extends TransactionInvalidationViewerMethods, Provider<TransactionInvalidationViewerMoniker> {\n invalidateTransaction(\n block: SignedHydratedTransaction,\n config?: TransactionInvalidationConfig\n ): Promisable<HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta>\n\n invalidateTransactions(\n blocks: SignedHydratedTransaction[],\n config?: TransactionInvalidationConfig\n ): Promisable<(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[]>\n\n qualifiedInvalidateTransaction(\n block: SignedHydratedTransaction,\n config?: TransactionInvalidationConfig\n ): Promisable<[HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta, TransactionInvalidationQualification]>\n}\n","import { type Promisable } from '@xylabs/sdk-js'\nimport { zodIsFactory } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport type { SignedHydratedTransaction, SignedHydratedTransactionWithHashMeta } from '../model/index.ts'\nimport {\n ChainQualificationZod, ChainQualifiedHeadConfigZod, ChainQualifiedRangeConfigZod,\n} from '../model/index.ts'\nimport type { Provider } from '../provider/index.ts'\nimport type { HydratedTransactionValidationError } from '../validation/index.ts'\n\nexport const TransactionValidationQualificationZod = ChainQualificationZod\nexport type TransactionValidationQualification = z.infer<typeof TransactionValidationQualificationZod>\nexport const isTransactionValidationQualification = zodIsFactory(TransactionValidationQualificationZod)\n\nexport const TransactionValidationConfigFieldsZod = z.object({\n value: z.boolean().optional(),\n state: z.boolean().optional(),\n})\n\nexport const TransactionValidationConfigZod = z.union([\n TransactionValidationConfigFieldsZod.extend(ChainQualifiedHeadConfigZod.shape),\n TransactionValidationConfigFieldsZod.extend(ChainQualifiedRangeConfigZod.shape),\n TransactionValidationConfigFieldsZod,\n z.object({}),\n])\n\nexport type TransactionValidationConfig = z.infer<typeof TransactionValidationConfigZod>\nexport const isTransactionValidationConfig = zodIsFactory(TransactionValidationConfigZod)\n\nexport interface TransactionValidationViewerMethods {\n qualifiedValidateTransactions(\n blocks: SignedHydratedTransaction[],\n config?: TransactionValidationConfig\n ): Promisable<[(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[], TransactionValidationQualification]>\n}\n\nexport const TransactionValidationViewerMoniker = 'TransactionValidationViewer' as const\nexport type TransactionValidationViewerMoniker = typeof TransactionValidationViewerMoniker\n\n/**\n * Checks if transactions are valid (currently valid) according to protocol rules.\n * In the case that they are not valid, they may still become valid in the future.\n */\n\nexport interface TransactionValidationViewer extends TransactionValidationViewerMethods, Provider<TransactionValidationViewerMoniker> {\n qualifiedValidateTransaction(\n block: SignedHydratedTransaction,\n config?: TransactionValidationConfig\n ): Promisable<[HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta, TransactionValidationQualification]>\n\n validateTransaction(\n block: SignedHydratedTransaction,\n config?: TransactionValidationConfig\n ): Promisable<HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta>\n\n validateTransactions(\n blocks: SignedHydratedTransaction[],\n config?: TransactionValidationConfig\n ): Promisable<(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[]>\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type { Signed } from '@xyo-network/sdk-js'\n\nimport type { BlockBoundWitness } from '../block/index.ts'\nimport type { XL1BlockRange } from '../model/index.ts'\nimport type { Provider } from '../provider/index.ts'\nimport type { TransactionBoundWitness } from '../transaction/index.ts'\nimport type { Transfer } from '../TransferPayload.ts'\nimport type { AttoXL1 } from '../xl1/index.ts'\n\nexport type TransferBalanceHistoryItem = [\n Signed<BlockBoundWitness> /* block */,\n Signed<TransactionBoundWitness> | null,\n Transfer, /* the actual transfer payload */\n]\nexport type TransferPair = [Address, Address]\n\nexport interface TransferBalancesViewerMethods {\n transferBalances(address: Address[]): Promisable<Partial<Record<Address, Record<Address, AttoXL1>>>>\n transferBalancesHistories(address: Address[]): Promisable<Partial<Record<Address, Record<Address, TransferBalanceHistoryItem[]>>>>\n transferPairBalances(address: TransferPair[]): Promisable<Partial<Record<Address, Record<Address, AttoXL1>>>>\n transferPairBalancesHistories(address: TransferPair[]): Promisable<Partial<Record<Address, Record<Address, TransferBalanceHistoryItem[]>>>>\n}\n\nexport const TransferBalanceViewerMoniker = 'TransferBalanceViewer' as const\nexport type TransferBalanceViewerMoniker = typeof TransferBalanceViewerMoniker\n\nexport interface TransferBalanceViewer extends TransferBalancesViewerMethods, Provider<TransferBalanceViewerMoniker> {\n transferBalance(address: Address): Promisable<AttoXL1>\n transferBalanceHistory(address: Address, range?: XL1BlockRange): Promisable<TransferBalanceHistoryItem[]>\n transferPairBalance(address: TransferPair): Promisable<AttoXL1>\n transferPairBalanceHistory(address: TransferPair): Promisable<TransferBalanceHistoryItem[]>\n}\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\n\nimport type { HydratedBlockWithHashMeta } from '../block/index.ts'\nimport type { Provider, ProviderMoniker } from '../provider/index.ts'\nimport type { BlockViewerMethods } from './Block.ts'\n\ntype ExtendableBlockViewerMethods = Omit<BlockViewerMethods, 'rate' | 'stepSizeRate' | 'timeDurationRate'>\n\nexport interface WindowedBlockViewerMethods extends ExtendableBlockViewerMethods {\n blocksByTransactionHashes(hashes: Hash[]): Promisable<HydratedBlockWithHashMeta[]>\n}\n\nexport const WindowedBlockViewerMoniker = 'WindowedBlockViewer' as const\nexport type WindowedBlockViewerMoniker = typeof WindowedBlockViewerMoniker\n\nexport interface WindowedBlockViewer<TMoniker extends ProviderMoniker = WindowedBlockViewerMoniker> extends WindowedBlockViewerMethods, Provider<TMoniker> {\n blockByTransactionHash(hash: Hash): Promisable<HydratedBlockWithHashMeta | null>\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\n\nimport type {\n AccountBalanceHistoryItem, AccountBalanceViewer, ChainQualifiedConfig,\n} from '../model/index.ts'\nimport type { Provider } from '../provider/index.ts'\nimport type { AttoXL1 } from '../xl1/index.ts'\nimport type { BlockViewer, BlockViewerMethods } from './Block.ts'\nimport type { ForkViewerMethods } from './Fork.ts'\nimport type { MempoolViewer } from './Mempool.ts'\nimport type { NetworkStakeViewer } from './NetworkStake/index.ts'\nimport type { NetworkStakeStepRewardViewerMethods } from './NetworkStakeStepReward.ts'\nimport type { StakeViewer, StakeViewerMethods } from './Stake.ts'\nimport type { StepViewer } from './StepViewer.ts'\nimport type { TimeSyncViewer } from './TimeSync.ts'\nimport type { TransactionViewer, TransactionViewerMethods } from './Transaction.ts'\n\nexport interface XyoViewerMethods extends\n NetworkStakeStepRewardViewerMethods, BlockViewerMethods,\n Omit<TransactionViewerMethods, 'byHash'>, Omit<\n StakeViewerMethods, 'minWithdrawalBlocks' | 'rewardsContract' | 'stakingTokenAddress' | 'active'\n | 'activeByAddressStaked' | 'activeByStaker' | 'pending' | 'pendingByStaker' | 'withdrawn' | 'withdrawnByStaker'\n >, ForkViewerMethods {\n /** @deprecated Use .account.balance.accountBalance instead */\n accountBalance(address: Address, config?: ChainQualifiedConfig): Promisable<AttoXL1>\n /** @deprecated Use .account.balance.accountBalanceHistory instead */\n accountBalanceHistory(address: Address, config?: ChainQualifiedConfig): Promisable<AccountBalanceHistoryItem[]>\n}\n\nexport interface XyoViewerMethodsV2 {\n\n}\n\nexport const XyoViewerMoniker = 'XyoViewer' as const\nexport type XyoViewerMoniker = typeof XyoViewerMoniker\n\nexport interface XyoViewer extends Omit<BlockViewer, 'moniker'>, XyoViewerMethods,\n Omit<\n StakeViewerMethods, 'moniker' | 'minWithdrawalBlocks' | 'rewardsContract' | 'stakingTokenAddress' | 'active'\n | 'activeByAddressStaked' | 'activeByStaker' | 'pending' | 'pendingByStaker' | 'withdrawn' | 'withdrawnByStaker'\n >, Provider<XyoViewerMoniker> {\n account: {\n balance: AccountBalanceViewer\n }\n block: BlockViewer\n mempool: MempoolViewer\n networkStake: NetworkStakeViewer\n stake: StakeViewer\n step: StepViewer\n time: TimeSyncViewer\n transaction: TransactionViewer\n}\n\nexport interface XyoViewerV2 extends XyoViewerMethodsV2, Provider<XyoViewerMoniker> {\n account: {\n balance: AccountBalanceViewer\n }\n block: BlockViewer\n mempool: MempoolViewer\n networkStake: NetworkStakeViewer\n stake: StakeViewer\n step: StepViewer\n time: TimeSyncViewer\n transaction: TransactionViewer\n}\n"],"mappings":"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","names":["zodIsFactory","z","HexZod","z","HexZod","AsObjectFactory","asSchema","isPayloadOfZodType","z","asSchema","z","isPayloadOfZodType","AsObjectFactory","AsObjectFactory","HexZod","asSchema","isPayloadOfZodType","asSchema","HexZod","isPayloadOfZodType","AsObjectFactory","AsObjectFactory","asSchema","AsObjectFactory","asSchema","isPayloadOfSchemaType","AsObjectFactory","asSchema","isPayloadOfSchemaType","AsObjectFactory","asSchema","isPayloadOfSchemaType","z","AsObjectFactory","asSchema","isPayloadOfZodType","z","z","z","z","zodAsFactory","zodToFactory","z","z","zodAsFactory","zodToFactory","zodAsFactory","zodToFactory","z","z","zodAsFactory","zodToFactory","z","asSchema","isPayloadOfZodType","AsObjectFactory","zodAsFactory","zodIsFactory","zodToFactory","z","z","HexZod","zodAsFactory","zodToFactory","z","z","HexZod","zodAsFactory","zodToFactory","z","zodIsFactory","zodAsFactory","zodToFactory","AddressZod","AsObjectFactory","HexZod","asSchema","isPayloadOfSchemaType","PayloadZodOfSchema","z","z","zodIsFactory","HashZod","zodAsFactory","zodIsFactory","zodToFactory","BoundWitnessZod","WithHashMetaZod","WithStorageMetaZod","z","z","HashZod","BoundWitnessZod","zodIsFactory","zodAsFactory","zodToFactory","WithHashMetaZod","WithStorageMetaZod","zodAsFactory","zodIsFactory","zodToFactory","WithHashMetaZod","WithStorageMetaZod","z","zodAsFactory","zodIsFactory","zodToFactory","SignedBoundWitnessZod","SignedBoundWitnessZod","zodIsFactory","zodAsFactory","zodToFactory","zodAsFactory","zodIsFactory","zodToFactory","WithHashMetaZod","WithHashMetaZod","zodIsFactory","zodAsFactory","zodToFactory","zodAsFactory","zodIsFactory","zodToFactory","PayloadBuilder","WithStorageMetaZod","WithStorageMetaZod","zodIsFactory","zodAsFactory","PayloadBuilder","zodToFactory","z","zodIsFactory","zodAsFactory","zodToFactory","WithHashMetaZod","WithStorageMetaZod","zodAsFactory","zodIsFactory","zodToFactory","UnsignedBoundWitnessZod","UnsignedBoundWitnessZod","zodIsFactory","zodAsFactory","zodToFactory","AsObjectFactory","asSchema","isPayloadOfSchemaType","zodIsFactory","WithHashMetaZod","z","HashZod","zodIsFactory","z","zodAsFactory","zodToFactory","z","z","zodAsFactory","zodToFactory","assertError","isDefined","zodAsFactory","zodToFactory","z","z","zodAsFactory","zodToFactory","isDefined","assertError","zodAsFactory","zodIsFactory","zodToFactory","z","assertError","isDefined","zodAsFactory","zodToFactory","z","z","zodAsFactory","zodToFactory","isDefined","assertError","z","HashZod","zodIsFactory","z","WithHashMetaZod","zodIsFactory","z","zodAsFactory","zodIsFactory","z","z","zodIsFactory","zodAsFactory","z","z","z","WithHashMetaZod","z","z","WithHashMetaZod","zodAsFactory","zodIsFactory","zodToFactory","PayloadZod","PayloadZodLoose","WithHashMetaZod","WithStorageMetaZod","z","z","PayloadZodLoose","zodIsFactory","zodAsFactory","zodToFactory","WithHashMetaZod","PayloadZod","WithStorageMetaZod","z","AddressZod","z","z","AddressZod","z","AddressZod","HexZod","z","z","AddressZod","HexZod","z","AddressZod","z","asSchema","isPayloadOfSchemaType","assertEx","zodIsFactory","z","zodIsFactory","z","zodIsFactory","z","zodIsFactory","z","HashZod","z","z","HashZod","zodIsFactory","z","zodIsFactory","z","zodIsFactory","z","zodIsFactory","z"]}
1
+ {"version":3,"sources":["../../src/amount/splitOnDecimal.ts","../../src/amount/splitOnDecimalToString.ts","../../src/amount/ShiftedBigInt.ts","../../src/amount/XL1Amount.ts","../../src/xl1/isXL1Factory.ts","../../src/xl1/xl1MaxValue.ts","../../src/xl1/XL1Units.ts","../../src/xl1/AttoXL1.ts","../../src/xl1/FemtoXL1.ts","../../src/xl1/MicroXL1.ts","../../src/xl1/MilliXL1.ts","../../src/xl1/NanoXL1.ts","../../src/xl1/PicoXL1.ts","../../src/xl1/XL1.ts","../../src/block/AllowedBlockPayload.ts","../../src/payload/elevatable/Bridge/BridgeDestinationObservation.ts","../../src/payload/elevatable/Bridge/BridgeDetails.ts","../../src/payload/elevatable/Bridge/BridgeIntent.ts","../../src/payload/elevatable/Bridge/BridgeSourceObservation.ts","../../src/payload/elevatable/ChainStakeIntent.ts","../../src/payload/elevatable/Executable.ts","../../src/payload/elevatable/Hash.ts","../../src/payload/elevatable/StepComplete.ts","../../src/payload/elevatable/Time.ts","../../src/payload/StepIdentityPayload.ts","../../src/Step/StepIdentity.ts","../../src/BlockNumber/BlockNumber.ts","../../src/BlockNumber/Numberish.ts","../../src/BlockNumber/EthBlockNumber.ts","../../src/BlockNumber/XL1BlockNumber.ts","../../src/Step/StepSizes.ts","../../src/transaction/TransactionBoundWitness.ts","../../src/chain/Chain.ts","../../src/transaction/TransactionFees.ts","../../src/transaction/TransactionGasCosts.ts","../../src/TransferPayload.ts","../../src/block/BlockBoundWitness.ts","../../src/block/HydratedBlock.ts","../../src/block/signed/SignedBlockBoundWitness.ts","../../src/block/signed/SignedBlockBoundWitnessWithHashMeta.ts","../../src/block/signed/SignedBlockBoundWitnessWithStorageMeta.ts","../../src/block/unsigned/UnsignedBlockBoundWitness.ts","../../src/fields/BlockNumber.ts","../../src/model/AccountBalance.ts","../../src/model/ChainQualification.ts","../../src/model/BlockRange/BlockRange.ts","../../src/model/BlockRange/EthBlockRange.ts","../../src/model/BlockRange/Range.ts","../../src/model/BlockRange/XL1BlockRange.ts","../../src/model/addresses.ts","../../src/model/ArrayBuffer.ts","../../src/model/BlockRate.ts","../../src/model/Context/BaseContext.zod.ts","../../src/model/Context/BlockContext.zod.ts","../../src/model/Context/CachingContext.zod.ts","../../src/model/Context/HeadContext.zod.ts","../../src/model/Context/ChainContext.zod.ts","../../src/model/defaultRewardRatio.ts","../../src/model/minTransactionFees.ts","../../src/model/defaultTransactionFees.ts","../../src/model/HydratedTransaction.ts","../../src/model/OpCodes.ts","../../src/model/Permission.ts","../../src/model/rewards.ts","../../src/model/RewardsRangeOptions.ts","../../src/model/Sequence.ts","../../src/model/Stake.ts","../../src/model/TimeDomain.ts","../../src/model/TransferPair.ts","../../src/model/version.ts","../../src/network/Status.ts","../../src/provider/ProviderMoniker.ts","../../src/providers/DataLake/Runner.ts","../../src/providers/DataLake/Viewer.ts","../../src/providers/signer/XyoSigner.ts","../../src/providers/XyoConnection.ts","../../src/providers/XyoGateway.ts","../../src/providers/XyoGatewayRunner.ts","../../src/providers/XyoRunner.ts","../../src/runners/Block.ts","../../src/runners/Finalization.ts","../../src/runners/Mempool.ts","../../src/validation/error.ts","../../src/validation/block/error.ts","../../src/validation/boundwitness/error.ts","../../src/validation/payload/error.ts","../../src/validation/transaction/error.ts","../../src/viewers/Block.ts","../../src/viewers/BlockInvalidation.ts","../../src/viewers/BlockReward.ts","../../src/viewers/BlockValidation.ts","../../src/viewers/ChainContract.ts","../../src/viewers/ChainStakeViewer.ts","../../src/viewers/Finalization.ts","../../src/viewers/Mempool.ts","../../src/viewers/NetworkStake/NetworkStakeViewer.ts","../../src/viewers/NetworkStake/Rewards/ByPositionViewer.ts","../../src/viewers/NetworkStake/Rewards/ByStakerViewer.ts","../../src/viewers/NetworkStake/Rewards/ByStepViewer.ts","../../src/viewers/NetworkStake/Rewards/TotalViewer.ts","../../src/viewers/NetworkStake/Rewards/Viewer.ts","../../src/viewers/NetworkStakeStepReward.ts","../../src/viewers/Stake.ts","../../src/viewers/StakeEvents.ts","../../src/viewers/StakeTotals.ts","../../src/viewers/StepStake.ts","../../src/viewers/StepViewer.ts","../../src/viewers/TimeSync.ts","../../src/viewers/Transaction.ts","../../src/viewers/TransactionInvalidation.ts","../../src/viewers/TransactionValidation.ts","../../src/viewers/TransferBalance.ts","../../src/viewers/WindowedBlock.ts","../../src/viewers/XyoViewer.ts"],"sourcesContent":["export const splitOnDecimal = (value: bigint, places = 18): [bigint, bigint] => {\n const whole = value / BigInt(10 ** places)\n const decimal = value % BigInt(10 ** places)\n return [whole, decimal]\n}\n","import { splitOnDecimal } from './splitOnDecimal.ts'\n\nexport const splitOnDecimalToString = (\n value: bigint,\n places = 18,\n maxDecimal = places,\n maxCharacters = 9,\n minDecimals = 1,\n locale: Intl.LocalesArgument = 'en-US',\n): string => {\n const [whole, decimal] = splitOnDecimal(value, places)\n const remainderLength = decimal.toString().length\n const precedingZerosInDecimal = places - remainderLength\n if (whole === 0n && precedingZerosInDecimal >= maxDecimal && decimal !== 0n) return '< 0.'.padEnd(maxDecimal + 5, '0') + '1'\n\n const wholeCharacters = whole.toString(10).length\n const calcMaxDecimalCharacters = maxCharacters === -1 ? places : wholeCharacters > maxCharacters ? 0 : maxCharacters - wholeCharacters\n const maxDecimalCharacters = Math.min(maxDecimal, calcMaxDecimalCharacters)\n\n // Format whole number with thousand separators according to locale\n const formattedWhole = new Intl.NumberFormat(locale, {\n maximumFractionDigits: 0,\n useGrouping: true,\n }).format(whole)\n\n // Get decimal separator for the locale\n const decimalSeparator = new Intl.NumberFormat(locale)\n .formatToParts(1.1)\n .find(part => part.type === 'decimal')?.value ?? '.'\n\n // Pad decimal part to correct number of places\n let paddedDecimal = decimal.toString().padStart(places, '0').slice(0, maxDecimalCharacters)\n // remove unneeded trailing zeros (honoring minDecimals)\n while (paddedDecimal.length > minDecimals && paddedDecimal.endsWith('0')) {\n paddedDecimal = paddedDecimal.slice(0, -1)\n }\n\n return `${formattedWhole}${paddedDecimal.length > 0 ? decimalSeparator : ''}${paddedDecimal}`\n}\n","import type { ShiftedBigIntConfig } from './ShiftedBigIntConfig.ts'\nimport { splitOnDecimalToString } from './splitOnDecimalToString.ts'\n\nexport class ShiftedBigInt {\n static readonly defaultConfig: ShiftedBigIntConfig = {\n places: 18,\n maxDecimal: 18,\n maxCharacters: 9,\n minDecimals: 1,\n locale: 'en-US',\n }\n\n config: ShiftedBigIntConfig\n value: bigint\n\n constructor(\n value: bigint | ShiftedBigInt,\n config: Partial<ShiftedBigIntConfig> = {},\n ) {\n this.value = typeof value === 'bigint' ? value : value.value\n this.config = {\n ...ShiftedBigInt.defaultConfig, ...(typeof value === 'bigint' ? {} : value.config), ...config,\n }\n }\n\n get locale(): Intl.LocalesArgument {\n return this.config.locale ?? 'en-US'\n }\n\n get maxCharacters(): number {\n return this.config.maxCharacters ?? 9\n }\n\n get maxDecimal(): number {\n return this.config.maxDecimal ?? this.places\n }\n\n get minDecimals(): number {\n return this.config.minDecimals ?? 1\n }\n\n get places(): number {\n return this.config.places ?? 18\n }\n\n toFullString(): string {\n return splitOnDecimalToString(\n this.value,\n this.places,\n this.places,\n Infinity,\n this.places,\n this.locale,\n )\n }\n\n toShortString(): string {\n return splitOnDecimalToString(\n this.value,\n this.places,\n this.maxDecimal,\n this.maxCharacters,\n this.minDecimals,\n this.locale,\n )\n }\n\n toString(): string {\n return this.toFullString()\n }\n}\n","/* eslint-disable @typescript-eslint/member-ordering */\nimport { assertEx } from '@xylabs/sdk-js'\n\nimport {\n AttoXL1, FemtoXL1, MicroXL1, MilliXL1, NanoXL1, PicoXL1, XL1,\n XL1Places,\n} from '../xl1/index.ts'\nimport { ShiftedBigInt } from './ShiftedBigInt.ts'\nimport type { ShiftedBigIntConfig } from './ShiftedBigIntConfig.ts'\n\nconst MAX_XL1_AMOUNT = 2n ** 256n - 1n\nconst allowedPlaces = Object.values(XL1Places)\n\nexport interface XL1AmountInstance {\n value: AttoXL1\n\n to(places: bigint | number): bigint\n\n milli: MilliXL1\n\n micro: MicroXL1\n\n nano: NanoXL1\n\n pico: PicoXL1\n\n femto: FemtoXL1\n\n atto: AttoXL1\n\n xl1: XL1\n\n toString(places: number, config: Partial<ShiftedBigIntConfig>): string\n}\n\nexport class XL1Amount implements XL1AmountInstance {\n value: AttoXL1\n private locale: Intl.LocalesArgument\n\n constructor(value: bigint, locale: Intl.LocalesArgument = 'en-US') {\n this.locale = locale\n this.value = AttoXL1(value > MAX_XL1_AMOUNT ? MAX_XL1_AMOUNT : value < 0n ? 0n : value)\n }\n\n static from(value: bigint, places: bigint = XL1Places.atto) {\n assertEx(allowedPlaces.includes(places), () => `Invalid conversion places (${places} not in ${allowedPlaces})`)\n return new XL1Amount(value * 10n ** BigInt(places))\n }\n\n static fromMilli(value: MilliXL1) {\n return this.from(value, XL1Places.milli)\n }\n\n static fromMicro(value: MicroXL1) {\n return this.from(value, XL1Places.micro)\n }\n\n static fromNano(value: NanoXL1) {\n return this.from(value, XL1Places.nano)\n }\n\n static fromPico(value: PicoXL1) {\n return this.from(value, XL1Places.pico)\n }\n\n static fromFemto(value: FemtoXL1) {\n return this.from(value, XL1Places.femto)\n }\n\n static fromAtto(value: AttoXL1) {\n return this.from(value, XL1Places.atto)\n }\n\n static fromXL1(value: XL1) {\n return this.from(value, XL1Places.xl1)\n }\n\n to(places: number | bigint = XL1Places.atto) {\n return this.value / 10n ** BigInt(places)\n }\n\n get milli() {\n return MilliXL1(this.to(XL1Places.milli))\n }\n\n get micro() {\n return MicroXL1(this.to(XL1Places.micro))\n }\n\n get nano() {\n return NanoXL1(this.to(XL1Places.nano))\n }\n\n get pico() {\n return PicoXL1(this.to(XL1Places.pico))\n }\n\n get femto() {\n return FemtoXL1(this.to(XL1Places.femto))\n }\n\n get atto() {\n return AttoXL1(this.to(XL1Places.atto))\n }\n\n get xl1() {\n return XL1(this.to(XL1Places.xl1))\n }\n\n toString(places: number = Number(XL1Places.atto), config: Partial<ShiftedBigIntConfig> = {}): string {\n assertEx(allowedPlaces.includes(BigInt(places)), () => `Invalid conversion places (${places} not in ${allowedPlaces})`)\n return new ShiftedBigInt(\n this.value,\n {\n places,\n locale: this.locale,\n maxDecimal: places,\n minDecimals: 0,\n maxCharacters: places,\n ...config,\n },\n ).toShortString()\n }\n}\n","import { z } from 'zod'\n\nimport { xl1MaxValue } from './xl1MaxValue.ts'\n\nexport const isXL1Factory = <T extends bigint>(places: bigint) => (val: unknown): val is T => {\n if (typeof val !== 'bigint') return false\n return val >= 0n && val <= xl1MaxValue(places)\n}\n\nexport const XL1ZodFactory = <T extends bigint>(places: bigint, name: string) => {\n const is = isXL1Factory<T>(places)\n const message = `Invalid value for ${name}, must be between 0 and ${xl1MaxValue(places)}`\n return z.bigint().refine(\n (x) => {\n const result = is(x)\n return result\n },\n { message },\n )\n}\n\nexport const XL1TransformZodFactory = <T extends bigint>(places: bigint, name: string) => {\n const is = isXL1Factory<T>(places)\n const message = `Invalid value for ${name}, must be between 0 and ${xl1MaxValue(places)}`\n return z.union([z.bigint(), z.number(), z.string(), z.boolean()]).transform(val => BigInt(val) as T).refine(\n (x) => {\n const result = is(x)\n return result\n },\n { message },\n )\n}\n\nexport const asXL1Factory = <T extends bigint>(places: bigint) => {\n const zod = XL1ZodFactory<T>(places, 'local')\n return (val: unknown): T => {\n const result = zod.safeParse(val)\n if (result.success) {\n return result.data as T\n }\n throw result.error\n }\n}\n\nexport const toXL1Factory = <T extends bigint>(places: bigint) => {\n const zod = XL1TransformZodFactory<T>(places, 'local')\n return (val: unknown): T | undefined => {\n const result = zod.safeParse(val)\n return result.success ? result.data as T : undefined\n }\n}\n","export const xl1MaxValue = (places: bigint) => 10n ** (32n - places) - 1n\n","type XL1Units = 'xl1' | 'milli' | 'micro' | 'nano' | 'pico' | 'femto' | 'atto'\n\nexport const XL1Places: Record<XL1Units, bigint> = {\n xl1: 18n,\n milli: 15n,\n micro: 12n,\n nano: 9n,\n pico: 6n,\n femto: 3n,\n atto: 0n,\n} as const\n\n/**\n * Convert factor by which a respective unit is multiplied to convert it to AttoXL1 or\n * by which AttoXL1 is divided to convert it to respective unit is multiplied.\n */\nexport const AttoXL1ConvertFactor: Record<XL1Units, bigint> = {\n xl1: 10n ** XL1Places.xl1,\n milli: 10n ** XL1Places.milli,\n micro: 10n ** XL1Places.micro,\n nano: 10n ** XL1Places.nano,\n pico: 10n ** XL1Places.pico,\n femto: 10n ** XL1Places.femto,\n atto: 10n ** XL1Places.atto,\n} as const\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const AttoXL1MaxValue = xl1MaxValue(XL1Places.atto)\nexport type AttoXL1 = bigint & { readonly _tag: 'AttoXL1' }\nexport const isAttoXL1 = isXL1Factory<AttoXL1>(XL1Places.atto)\nexport const asAttoXL1 = asXL1Factory<AttoXL1>(XL1Places.atto)\nexport const toAttoXL1 = toXL1Factory<AttoXL1>(XL1Places.atto)\n\nexport const AttoXL1 = asAttoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const FemtoXL1MaxValue = xl1MaxValue(XL1Places.femto)\nexport type FemtoXL1 = bigint & { readonly _tag: 'FemtoXL1' }\nexport const isFemtoXL1 = isXL1Factory<FemtoXL1>(XL1Places.femto)\nexport const asFemtoXL1 = asXL1Factory<FemtoXL1>(XL1Places.femto)\n\nexport const toFemtoXL1 = toXL1Factory<FemtoXL1>(XL1Places.femto)\n\nexport const FemtoXL1 = asFemtoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const MicroXL1MaxValue = xl1MaxValue(XL1Places.micro)\nexport type MicroXL1 = bigint & { readonly _tag: 'MicroXL1' }\nexport const isMicroXL1 = isXL1Factory<MicroXL1>(XL1Places.micro)\nexport const asMicroXL1 = asXL1Factory<MicroXL1>(XL1Places.micro)\n\nexport const toMicroXL1 = toXL1Factory<MicroXL1>(XL1Places.micro)\n\nexport const MicroXL1 = asMicroXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const MilliXL1MaxValue = xl1MaxValue(XL1Places.milli)\nexport type MilliXL1 = bigint & { readonly _tag: 'MilliXL1' }\nexport const isMilliXL1 = isXL1Factory<MilliXL1>(XL1Places.milli)\nexport const asMilliXL1 = asXL1Factory<MilliXL1>(XL1Places.milli)\n\nexport const toMilliXL1 = toXL1Factory<MilliXL1>(XL1Places.milli)\n\nexport const MilliXL1 = asMilliXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const NanoXL1MaxValue = xl1MaxValue(XL1Places.nano)\nexport type NanoXL1 = bigint & { readonly _tag: 'NanoXL1' }\nexport const isNanoXL1 = isXL1Factory<NanoXL1>(XL1Places.nano)\nexport const asNanoXL1 = asXL1Factory<NanoXL1>(XL1Places.nano)\n\nexport const toNanoXL1 = toXL1Factory<NanoXL1>(XL1Places.nano)\n\nexport const NanoXL1 = asNanoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const PicoXL1MaxValue = xl1MaxValue(XL1Places.pico)\nexport type PicoXL1 = bigint & { readonly _tag: 'PicoXL1' }\nexport const isPicoXL1 = isXL1Factory<PicoXL1>(XL1Places.pico)\nexport const asPicoXL1 = asXL1Factory<PicoXL1>(XL1Places.pico)\n\nexport const toPicoXL1 = toXL1Factory<PicoXL1>(XL1Places.pico)\n\nexport const PicoXL1 = asPicoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const XL1MaxValue = xl1MaxValue(XL1Places.xl1)\nexport type XL1 = bigint & { readonly _tag: 'XL1' }\nexport const isXL1 = isXL1Factory<XL1>(XL1Places.xl1)\nexport const asXL1 = asXL1Factory<XL1>(XL1Places.xl1)\n\nexport const toXL1 = toXL1Factory<XL1>(XL1Places.xl1)\n\nexport const XL1 = asXL1\n","import { zodIsFactory } from '@xylabs/sdk-js'\nimport type {\n Schema, SchemaPayload, WithStorageMeta,\n} from '@xyo-network/sdk-js'\nimport {\n BoundWitnessSchema, isHashMeta, isSchemaPayload, SchemaSchema,\n} from '@xyo-network/sdk-js'\nimport { z } from 'zod'\n\nimport type {\n BridgeDestinationObservation, BridgeIntent, BridgeSourceObservation, ChainStakeIntent, HashPayload, StepComplete, TimePayload,\n} from '../payload/index.ts'\nimport {\n BridgeDestinationObservationSchema, BridgeIntentSchema, BridgeSourceObservationSchema, ChainStakeIntentSchema, HashSchema,\n isBridgeDestinationObservation, isBridgeIntent, isBridgeSourceObservation, isChainStakeIntent, isHashPayload, isTimePayload, StepCompleteSchema,\n TimeSchema,\n} from '../payload/index.ts'\nimport { isTransactionBoundWitness, type TransactionBoundWitness } from '../transaction/index.ts'\nimport {\n isTransfer, type Transfer, TransferSchema,\n} from '../TransferPayload.ts'\n\nexport type AllowedBlockPayload\n = | BridgeDestinationObservation\n | BridgeIntent\n | BridgeSourceObservation\n | ChainStakeIntent\n | HashPayload\n | SchemaPayload\n | StepComplete\n | TimePayload\n | TransactionBoundWitness\n | Transfer\n\nexport const AllowedBlockPayloadSchemas = [\n BoundWitnessSchema,\n BridgeDestinationObservationSchema,\n BridgeIntentSchema,\n BridgeSourceObservationSchema,\n ChainStakeIntentSchema,\n HashSchema,\n SchemaSchema,\n StepCompleteSchema,\n TimeSchema,\n TransferSchema,\n] satisfies Schema[]\n\nexport const AllowedBlockPayloadSchemaZod = z.enum(AllowedBlockPayloadSchemas)\nexport type AllowedBlockPayloadSchema = z.infer<typeof AllowedBlockPayloadSchemaZod>\nexport const isAllowedBlockPayloadSchema = zodIsFactory(AllowedBlockPayloadSchemaZod)\n\nexport const isAllowedBlockPayload = <T>(value: T): value is AllowedBlockPayload & T => {\n return isTransfer(value)\n || isBridgeDestinationObservation(value)\n || isBridgeIntent(value)\n || isBridgeSourceObservation(value)\n || isChainStakeIntent(value)\n || isHashPayload(value)\n || isSchemaPayload(value)\n || isTimePayload(value)\n || isTransactionBoundWitness(value)\n}\n\nexport const isAllowedBlockPayloadWithHashMeta = <T>(value: T): value is WithStorageMeta<AllowedBlockPayload & T> => {\n return isAllowedBlockPayload(value) && isHashMeta(value)\n}\n","import { AsObjectFactory, HexZod } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport { asSchema, isPayloadOfZodType } from '@xyo-network/sdk-js'\nimport type { z } from 'zod'\n\nimport { BridgeDetailsFieldsZod } from './BridgeDetails.ts'\n\nexport const BridgeDestinationObservationSchema = asSchema('network.xyo.chain.bridge.observation.destination', true)\nexport type BridgeDestinationObservationSchema = typeof BridgeDestinationObservationSchema\n\n/**\n * Represents an observation that confirms a bridge action occurred on the destination chain.\n */\nexport const BridgeDestinationObservationFieldsZod = BridgeDetailsFieldsZod.extend({\n /**\n * Destination chain confirmation\n */\n destConfirmation: HexZod.optional().describe('Destination chain confirmation'),\n})\n\nexport type BridgeDestinationObservationFields = z.infer<typeof BridgeDestinationObservationFieldsZod>\n\n/**\n * Represents an observation that confirms a bridge action occurred on the destination chain.\n */\nexport type BridgeDestinationObservation = Payload<BridgeDestinationObservationFields, BridgeDestinationObservationSchema>\n\nexport const isBridgeDestinationObservation = isPayloadOfZodType<BridgeDestinationObservation>(\n BridgeDestinationObservationFieldsZod,\n BridgeDestinationObservationSchema,\n)\n\nexport const asBridgeDestinationObservation = AsObjectFactory.create(isBridgeDestinationObservation)\n","import { HexZod } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\n/**\n * Represents a transfer destination\n */\nexport const BridgeDetailsDestinationFieldsZod = z.object({\n /**\n * Destination network\n */\n dest: HexZod.describe('The destination network identifier'),\n /**\n * Destination address (EOA or contract)\n */\n destAddress: HexZod.describe('The destination address (EOA or contract)'),\n /**\n * Token amount to bridge to destination\n */\n destAmount: HexZod.describe('The token amount to bridge to destination'),\n /**\n * Token being bridged to\n */\n destToken: HexZod.describe('The token being bridged to'),\n})\n\n/**\n * Represents a transfer destination\n */\nexport type BridgeDetailsDestinationFields = z.infer<typeof BridgeDetailsDestinationFieldsZod>\n\n/**\n * Represents a transfer source\n */\nexport const BridgeDetailsSourceFieldsZod = z.object({\n /**\n * Source network\n */\n src: HexZod.describe('The source network identifier'),\n\n /**\n * Source address (EOA or contract)\n */\n srcAddress: HexZod.describe('The source address (EOA or contract)'),\n /**\n * Token amount to bridge from source\n */\n srcAmount: HexZod.describe('The token amount to bridge from source'),\n /**\n * Token being bridged from\n */\n srcToken: HexZod.describe('The token being bridged from'),\n})\n\n/**\n * Represents a transfer source\n */\nexport type BridgeDetailsSourceFields = z.infer<typeof BridgeDetailsSourceFieldsZod>\n\n/**\n * Represents a transfer from a source chain/token/address/amount to a destination chain/token/address/amount.\n */\nexport const BridgeDetailsFieldsZod = BridgeDetailsSourceFieldsZod.extend(\n BridgeDetailsDestinationFieldsZod.shape,\n)\n\n/**\n * Represents a transfer from a source chain/token/address/amount to a destination chain/token/address/amount.\n */\nexport type BridgeDetailsFields = z.infer<typeof BridgeDetailsFieldsZod>\n","import { AsObjectFactory } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport { asSchema, isPayloadOfZodType } from '@xyo-network/sdk-js'\nimport { z } from 'zod'\n\nimport { BridgeDetailsFieldsZod } from './BridgeDetails.ts'\n\nexport const BridgeIntentSchema = asSchema('network.xyo.chain.bridge.intent', true)\nexport type BridgeIntentSchema = typeof BridgeIntentSchema\n\n/**\n * Represents an Address's intent to initiate a token bridge.\n */\nexport const BridgeIntentFieldsZod = BridgeDetailsFieldsZod.extend({\n /**\n * Unique identifier for replay protection\n */\n nonce: z.string().describe('Unique identifier for replay protection'),\n})\n\nexport type BridgeIntentFields = z.infer<typeof BridgeIntentFieldsZod>\n\nexport type BridgeIntent = Payload<BridgeIntentFields, BridgeIntentSchema>\n\nexport const isBridgeIntent = isPayloadOfZodType<BridgeIntent>(\n BridgeIntentFieldsZod,\n BridgeIntentSchema,\n)\n\nexport const asBridgeIntent = AsObjectFactory.create(isBridgeIntent)\n","import { AsObjectFactory, HexZod } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport { asSchema, isPayloadOfZodType } from '@xyo-network/sdk-js'\nimport type { z } from 'zod'\n\nimport { BridgeDetailsFieldsZod } from './BridgeDetails.ts'\n\nexport const BridgeSourceObservationSchema = asSchema('network.xyo.chain.bridge.observation.source', true)\nexport type BridgeSourceObservationSchema = typeof BridgeSourceObservationSchema\n\n/**\n * Represents an observation that confirms a bridge action occurred on the source chain.\n */\nexport const BridgeSourceObservationFieldsZod = BridgeDetailsFieldsZod.extend({\n /**\n * Source chain confirmation\n */\n srcConfirmation: HexZod.optional().describe('Source chain confirmation'),\n})\n\nexport type BridgeSourceObservationFields = z.infer<typeof BridgeSourceObservationFieldsZod>\n/**\n * Represents an observation that confirms a bridge action occurred on the source chain.\n */\nexport type BridgeSourceObservation = Payload<BridgeSourceObservationFields, BridgeSourceObservationSchema>\n\nexport const isBridgeSourceObservation = isPayloadOfZodType<BridgeSourceObservation>(\n BridgeSourceObservationFieldsZod,\n BridgeSourceObservationSchema,\n)\n\nexport const asBridgeSourceObservation = AsObjectFactory.create(isBridgeSourceObservation)\n","import { AsObjectFactory } from '@xylabs/sdk-js'\nimport type { Payload, WithStorageMeta } from '@xyo-network/sdk-js'\nimport {\n asSchema, isPayloadOfSchemaType, isStorageMeta,\n} from '@xyo-network/sdk-js'\n\nimport type { BlockDuration } from '../../fields/index.ts'\nimport type { FromFields } from './Executable.ts'\n\nexport const ChainStakeIntentSchema = asSchema('network.xyo.chain.stake.intent', true)\nexport type ChainStakeIntentSchema = typeof ChainStakeIntentSchema\n\nexport type Intent = 'producer' // | 'bank'\n\nexport interface ChainStakeIntentFields extends BlockDuration, FromFields {\n /*\n * The intent of the staking\n */\n intent: Intent\n}\n\nexport type ChainStakeIntent = Payload<ChainStakeIntentFields, ChainStakeIntentSchema>\n\nexport const isChainStakeIntent = (x?: unknown | null): x is ChainStakeIntent => {\n return isPayloadOfSchemaType<ChainStakeIntent>(ChainStakeIntentSchema)(x)\n && asNonNegativeInteger(x.nbf) !== undefined\n && asNonNegativeInteger(x.exp) !== undefined\n}\nexport const asChainStakeIntent = AsObjectFactory.create(isChainStakeIntent)\n\nexport const isChainStakeIntentWithStorageMeta = (x?: unknown | null): x is WithStorageMeta<ChainStakeIntent> => {\n return isChainStakeIntent(x) && isStorageMeta(x)\n}\n\nconst asNonNegativeInteger = (num: number) => {\n return (Number.isInteger(num) && num >= 0) ? num : undefined\n}\n","import type { Address, EmptyObject } from '@xylabs/sdk-js'\nimport { isAnyPayload } from '@xyo-network/sdk-js'\n\nexport interface FromFields {\n // the address that is treated as the source of this action\n from: Address\n}\n\nexport const hasFrom = (value: unknown): value is FromFields => {\n return (value as FromFields).from !== undefined\n}\n\nexport interface ExecutableFields {\n script: string[]\n}\n\nexport type Executable<T extends EmptyObject = EmptyObject> = T & ExecutableFields\nexport type OptionalExecutable<T extends EmptyObject = EmptyObject> = T & Partial<ExecutableFields>\n\nexport const isExecutable = <T extends EmptyObject>(value: T | undefined): value is Executable<T> => {\n return isAnyPayload(value) && Array.isArray((value as unknown as ExecutableFields).script)\n}\n\nexport const asExecutable = <T extends EmptyObject>(value: T | undefined): Executable<T> | undefined => {\n return isExecutable(value)\n ? value as unknown as Executable<T>\n : undefined\n}\n","import type { Hash } from '@xylabs/sdk-js'\nimport { AsObjectFactory } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport { asSchema, isPayloadOfSchemaType } from '@xyo-network/sdk-js'\n\nexport const HashSchema = asSchema('network.xyo.hash', true)\nexport type HashSchema = typeof HashSchema\n\nexport interface HashFields {\n hash: Hash\n}\n\nexport type HashPayload = Payload<HashFields, HashSchema>\n\nexport const isHashPayload = isPayloadOfSchemaType<HashPayload>(HashSchema)\n\nexport const asHashPayload = AsObjectFactory.create(isHashPayload)\nexport const asHashPayloadWithStorageMeta = AsObjectFactory.create(isHashPayload)\n","import type { Hash } from '@xylabs/sdk-js'\nimport { AsObjectFactory } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport { asSchema, isPayloadOfSchemaType } from '@xyo-network/sdk-js'\n\nimport type { FromFields } from './Executable.ts'\n\nexport const StepCompleteSchema = asSchema('network.xyo.chain.step.complete', true)\nexport type StepCompleteSchema = typeof StepCompleteSchema\n\n/* This records the completion of a step in the network - needed for network staking rewards */\n/* We will only write these for steps that are eligible for rewards Step 3 (2311) */\n\nexport interface StepCompleteFields extends FromFields {\n block: number /* The block number on the XL1 network */\n hash: Hash /* The Step Hash */\n size: number /* The size of the step */\n stakeBlock: number /* The block number on ethereum or other staking system */\n}\n\n// if this payload is included in a boundwitness, it needs to be available for inspection to be included in block\nexport type StepComplete = Payload<StepCompleteFields, StepCompleteSchema>\n\nexport const isStepComplete = isPayloadOfSchemaType<StepComplete>(StepCompleteSchema)\n\nexport const asStepComplete = AsObjectFactory.create(isStepComplete)\n","import { AsObjectFactory, HashZod } from '@xylabs/sdk-js'\nimport {\n asSchema, isPayloadOfSchemaType, PayloadZodOfSchema,\n} from '@xyo-network/sdk-js'\nimport { z } from 'zod'\n\n// xl1 = xl1 block number, epoch = epoch number, ethereum = ethereum block number\nexport type TimeDomain = 'xl1' | 'epoch' | 'ethereum'\n\nexport const TimeSchema = asSchema('network.xyo.time', true)\nexport type TimeSchema = typeof TimeSchema\n\nexport const XL1TimeFieldsZod = z.object({\n // block number\n xl1: z.number().optional(),\n // block hash\n xl1Hash: HashZod.optional(),\n})\n\nexport const EthereumTimeFieldsZod = z.object({\n // block number\n ethereum: z.number().optional(),\n // block hash\n ethereumHash: HashZod.optional(),\n})\n\nexport const EpochTimeFieldsZod = z.object({\n // in milliseconds\n epoch: z.number(),\n})\n\nexport const TimeFieldsZod = XL1TimeFieldsZod.extend(XL1TimeFieldsZod.shape).extend(EthereumTimeFieldsZod.shape).extend(EpochTimeFieldsZod.shape)\n\nexport const TimePayloadZod = PayloadZodOfSchema(TimeSchema).extend(TimeFieldsZod.shape)\n\nexport type TimePayload = z.infer<typeof TimePayloadZod>\n\n// to prevent scaling problems, we use double the current time as a max safe epoch\nexport const isSafeEpoch = (value: unknown): value is number => {\n return typeof value === 'number' && value < 2 * Date.now()\n}\n\nexport const isTimePayload = (value: unknown): value is TimePayload => {\n return isPayloadOfSchemaType<TimePayload>(TimeSchema)(value) && isSafeEpoch(value.epoch)\n}\n\nexport const asTimePayload = AsObjectFactory.create(isTimePayload)\nexport const asTimePayloadWithStorageMeta = AsObjectFactory.create(isTimePayload)\n","import { AsObjectFactory } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport { asSchema, isPayloadOfZodType } from '@xyo-network/sdk-js'\nimport type { z } from 'zod'\n\nimport { StepIdentityZod } from '../Step/index.ts'\n\nexport const StepIdentitySchema = asSchema('network.xyo.chain.step.identity', true)\nexport type StepIdentitySchema = typeof StepIdentitySchema\n\nexport type StepIdentityFields = z.infer<typeof StepIdentityZod>\n\n/**\n * A Step Identity Payload\n */\nexport type StepIdentityPayload = Payload<StepIdentityFields, StepIdentitySchema>\n\nexport const isStepIdentityPayload = isPayloadOfZodType<StepIdentityPayload>(StepIdentityZod, StepIdentitySchema)\n\nexport const asStepIdentityPayload = AsObjectFactory.create(isStepIdentityPayload)\n","import { type Brand, isUndefined } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport { toXL1BlockNumber, XL1BlockNumberZod } from '../BlockNumber/index.ts'\n\nexport const StepIdentityZod = z.object({\n block: XL1BlockNumberZod.describe('The block number at which the step occurs'),\n step: z.number().int().nonnegative().describe('The index of the step into the StepSize array'),\n})\nexport type StepIdentity = z.infer<typeof StepIdentityZod>\n\n/** @deprecated use StepIdentity instead */\nexport interface StepContext extends StepIdentity {}\n\n// this string is the block and the step separated by a pipe\nexport type StepIdentityString = Brand<string, { readonly __stepIdentityString: true }>\n\nfunction tryParseInt(value: string): number | undefined {\n // Prevent coercion of empty strings to 0\n if (value === '') return undefined\n // Parse number\n const num = Number(value)\n // Check if integer\n return Number.isInteger(num) ? num : undefined\n}\n\nexport const asStepIdentity = (stepIdentityString: string): StepIdentity | undefined => {\n try {\n const [blockNumberString, stepString] = stepIdentityString.split('|')\n if (isUndefined(blockNumberString) || isUndefined(stepString)) {\n return undefined\n }\n const step = tryParseInt(stepString)\n const block = toXL1BlockNumber(blockNumberString)\n if (isUndefined(block) || isUndefined(step)) {\n return undefined\n }\n\n return { block, step }\n } catch {\n return undefined\n }\n}\n","import { type Brand } from '@xylabs/sdk-js'\nimport { zodAsFactory, zodToFactory } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport { NumberishZod } from './Numberish.ts'\n\nexport type BlockNumber = Brand<number, { readonly __blockNumber: true }>\n\nexport const BlockNumberZod = z.number().transform(v => v as BlockNumber)\nexport const BlockNumberishZod = NumberishZod.transform(v => v as BlockNumber)\n\nexport type BlockNumberish = z.input<typeof BlockNumberishZod>\n\nexport const asBlockNumber = zodAsFactory<BlockNumber>(BlockNumberZod, 'asBlockNumber')\nexport const toBlockNumber = zodToFactory<BlockNumber>(BlockNumberishZod, 'toBlockNumber')\n\nexport const BLOCK_NUMBER_ZERO = asBlockNumber(0)\n","import { z } from 'zod'\n\nexport const NumberishZod = z.union([z.number(), z.string(), z.bigint()])\n .transform(v => (typeof v === 'bigint' ? Number(v) : typeof v === 'string' ? Number(v) : v))\n .pipe(z.number())\n\nexport type Numberish = z.input<typeof NumberishZod>\n","import { type Brand } from '@xylabs/sdk-js'\nimport { zodAsFactory, zodToFactory } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport type { BlockNumber } from './BlockNumber.ts'\nimport { BlockNumberishZod } from './BlockNumber.ts'\n\nexport type EthBlockNumber = Brand<BlockNumber, { readonly __ethBlockNumber: true }>\n\nexport const EthBlockNumberZod = z.number().transform(v => v as EthBlockNumber)\nexport const EthBlockNumberishZod = BlockNumberishZod.transform(v => v as EthBlockNumber)\n\nexport type EthBlockNumberish = z.input<typeof EthBlockNumberishZod>\n\nexport const asEthBlockNumber = zodAsFactory<EthBlockNumber>(EthBlockNumberZod, 'asEthBlockNumber')\nexport const toEthBlockNumber = zodToFactory<EthBlockNumber>(EthBlockNumberishZod, 'toEthBlockNumber')\n\nexport const ETH_BLOCK_NUMBER_ZERO = asEthBlockNumber(0)\n","import { type Brand } from '@xylabs/sdk-js'\nimport { zodAsFactory, zodToFactory } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport type { BlockNumber } from './BlockNumber.ts'\nimport { BlockNumberishZod } from './BlockNumber.ts'\n\nexport type XL1BlockNumber = Brand<BlockNumber, { readonly __xl1BlockNumber: true }>\n\nexport const XL1BlockNumberZod = z.number().transform(v => v as XL1BlockNumber)\nexport const XL1BlockNumberishZod = BlockNumberishZod.transform(v => v as XL1BlockNumber)\n\nexport type XL1BlockNumberish = z.input<typeof XL1BlockNumberishZod>\n\nexport const asXL1BlockNumber = zodAsFactory<XL1BlockNumber>(XL1BlockNumberZod, 'asXL1BlockNumber')\nexport const toXL1BlockNumber = zodToFactory<XL1BlockNumber>(XL1BlockNumberishZod, 'toXL1BlockNumber')\n\nexport const XL1_BLOCK_NUMBER_ZERO = asXL1BlockNumber(0)\n","import { AsTypeFactory } from '@xylabs/sdk-js'\n\nimport { asXL1BlockNumber, type XL1BlockNumber } from '../BlockNumber/index.ts'\n\n// StepsV2 are primorial(n+2) + 1, where n is the index of the step size\n// primorial(n+2) = 2 → 2×3=6 → 6×5=30 → 30×7=210 → 210×11=2310\n\nexport const StepSizes: XL1BlockNumber[] = [\n asXL1BlockNumber(7, true),\n asXL1BlockNumber(31, true),\n asXL1BlockNumber(211, true),\n asXL1BlockNumber(2311, true),\n asXL1BlockNumber(30_031, true),\n asXL1BlockNumber(510_511, true),\n asXL1BlockNumber(9_699_691, true),\n asXL1BlockNumber(223_092_871, true),\n asXL1BlockNumber(6_469_693_231, true),\n]\n\nexport function isValidStep(step: unknown): step is number {\n if (typeof step === 'number' && Number.isInteger(step)) {\n return ((step >= 0) && (step < StepSizes.length))\n }\n return false\n}\n\nexport const asValidStep = AsTypeFactory.create<number>(isValidStep)\n\nexport function stepSize(step: number): number {\n const validatedStep = asValidStep(step, () => `Invalid step (${step}), must be an integer between 0 and ${StepSizes.length - 1}`, { required: true })\n return StepSizes[validatedStep]\n}\n\nexport const StepRewardFractions = [\n [0n, 1n], // 0%\n [0n, 1n], // 0%\n [0n, 1n], // 0%\n [1n, 10_000n], // 0.01%\n [2n, 1000n], // 0.2%\n [3n, 100n], // 3%\n [45n, 100n], // 45%\n] as const\n","import {\n AddressZod,\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport {\n BoundWitnessZod, HashMetaZod, SignedBoundWitnessZod, StorageMetaZod,\n UnsignedBoundWitnessZod,\n WithHashMetaZod,\n WithStorageMetaZod,\n} from '@xyo-network/sdk-js'\nimport { z } from 'zod'\n\nimport { XL1BlockNumberZod } from '../BlockNumber/index.ts'\nimport { ChainZod } from '../chain/index.ts'\nimport { TransactionFeesHexZod } from './TransactionFees.ts'\n\nexport const BlockStartZod = z.object({ nbf: XL1BlockNumberZod })\nexport const BlockEndZod = z.object({ exp: XL1BlockNumberZod })\nexport const BlockDurationZod = z.object({ nbf: XL1BlockNumberZod, exp: XL1BlockNumberZod })\nexport const BlockScriptsZod = z.object({ script: z.array(z.string()).optional() })\n\nexport const TransactionFeesZod = z.object({ fees: TransactionFeesHexZod })\n\nexport const TransactionBoundWitnessIdentityFields = z.object({ chain: ChainZod, from: AddressZod })\n\nexport const TransactionBoundWitnessFieldsZod = z.object()\n .safeExtend(BlockDurationZod.shape)\n .safeExtend(TransactionFeesZod.shape)\n .safeExtend(TransactionBoundWitnessIdentityFields.shape)\n .safeExtend(BlockScriptsZod.shape)\n\nexport type TransactionBoundWitnessFields = z.infer<typeof TransactionBoundWitnessFieldsZod>\n\nexport const TransactionBoundWitnessZod = BoundWitnessZod\n .safeExtend(TransactionBoundWitnessFieldsZod.shape)\n\nexport type TransactionBoundWitness = z.infer<typeof TransactionBoundWitnessZod>\n\nexport const isTransactionBoundWitness = zodIsFactory(TransactionBoundWitnessZod)\nexport const asTransactionBoundWitness = zodAsFactory(TransactionBoundWitnessZod, 'asTransactionBoundWitness')\nexport const toTransactionBoundWitness = zodToFactory(TransactionBoundWitnessZod, 'toTransactionBoundWitness')\n\nexport const TransactionBoundWitnessWithHashMetaZod = TransactionBoundWitnessZod\n .safeExtend(HashMetaZod.shape)\n\nexport type TransactionBoundWitnessWithHashMeta = z.infer<typeof TransactionBoundWitnessWithHashMetaZod>\n\nexport const isTransactionBoundWitnessWithHashMeta = zodIsFactory(TransactionBoundWitnessWithHashMetaZod)\nexport const asTransactionBoundWitnessWithHashMeta = zodAsFactory(TransactionBoundWitnessWithHashMetaZod, 'asTransactionBoundWitnessWithHashMeta')\nexport const toTransactionBoundWitnessWithHashMeta = zodToFactory(TransactionBoundWitnessWithHashMetaZod, 'toTransactionBoundWitnessWithHashMeta')\n\nexport const TransactionBoundWitnessWithStorageMetaZod = TransactionBoundWitnessZod\n .safeExtend(StorageMetaZod.shape)\n\nexport type TransactionBoundWitnessWithStorageMeta = z.infer<typeof TransactionBoundWitnessWithStorageMetaZod>\n\nexport const isTransactionBoundWitnessWithStorageMeta = zodIsFactory(TransactionBoundWitnessWithStorageMetaZod)\nexport const asTransactionBoundWitnessWithStorageMeta = zodAsFactory(TransactionBoundWitnessWithStorageMetaZod, 'asTransactionBoundWitnessWithStorageMeta')\nexport const toTransactionBoundWitnessWithStorageMeta = zodToFactory(TransactionBoundWitnessWithStorageMetaZod, 'toTransactionBoundWitnessWithStorageMeta')\n\nexport const UnsignedTransactionBoundWitnessZod = UnsignedBoundWitnessZod\n .safeExtend(TransactionBoundWitnessFieldsZod.shape)\n\nexport type UnsignedTransactionBoundWitness = z.infer<typeof UnsignedTransactionBoundWitnessZod>\n\nexport const isUnsignedTransactionBoundWitness = zodIsFactory(UnsignedTransactionBoundWitnessZod)\nexport const asUnsignedTransactionBoundWitness = zodAsFactory(UnsignedTransactionBoundWitnessZod, 'asUnsignedTransactionBoundWitness')\nexport const toUnsignedTransactionBoundWitness = zodToFactory(UnsignedTransactionBoundWitnessZod, 'toUnsignedTransactionBoundWitness')\n\nexport const UnsignedTransactionBoundWitnessWithHashMetaZod = UnsignedTransactionBoundWitnessZod.safeExtend(HashMetaZod.shape)\n\nexport type UnsignedTransactionBoundWitnessWithHashMeta = z.infer<typeof UnsignedTransactionBoundWitnessWithHashMetaZod>\n\nexport const isUnsignedTransactionBoundWitnessWithHashMeta = zodIsFactory(UnsignedTransactionBoundWitnessWithHashMetaZod)\nexport const asUnsignedTransactionBoundWitnessWithHashMeta = zodAsFactory(\n UnsignedTransactionBoundWitnessWithHashMetaZod,\n 'asUnsignedTransactionBoundWitnessWithHashMeta',\n)\nexport const toUnsignedTransactionBoundWitnessWithHashMeta = zodToFactory(\n UnsignedTransactionBoundWitnessWithHashMetaZod,\n 'toUnsignedTransactionBoundWitnessWithHashMeta',\n)\n\nexport const UnsignedTransactionBoundWitnessWithStorageMetaZod = UnsignedTransactionBoundWitnessZod\n .safeExtend(StorageMetaZod.shape)\n\nexport type UnsignedTransactionBoundWitnessWithStorageMeta = z.infer<typeof UnsignedTransactionBoundWitnessWithStorageMetaZod>\n\nexport const isUnsignedTransactionBoundWitnessWithStorageMeta = zodIsFactory(UnsignedTransactionBoundWitnessWithStorageMetaZod)\nexport const asUnsignedTransactionBoundWitnessWithStorageMeta = zodAsFactory(\n UnsignedTransactionBoundWitnessWithStorageMetaZod,\n 'asUnsignedTransactionBoundWitnessWithStorageMeta',\n)\nexport const toUnsignedTransactionBoundWitnessWithStorageMeta = zodToFactory(\n UnsignedTransactionBoundWitnessWithStorageMetaZod,\n 'toUnsignedTransactionBoundWitnessWithStorageMeta',\n)\n\nexport const SignedTransactionBoundWitnessZod = SignedBoundWitnessZod\n .safeExtend(TransactionBoundWitnessFieldsZod.shape)\n\nexport type SignedTransactionBoundWitness = z.infer<typeof SignedTransactionBoundWitnessZod>\n\nexport const isSignedTransactionBoundWitness = zodIsFactory(SignedTransactionBoundWitnessZod)\nexport const asSignedTransactionBoundWitness = zodAsFactory(SignedTransactionBoundWitnessZod, 'asSignedTransactionBoundWitness')\nexport const toSignedTransactionBoundWitness = zodToFactory(SignedTransactionBoundWitnessZod, 'toSignedTransactionBoundWitness')\n\nexport const SignedTransactionBoundWitnessWithHashMetaZod = WithHashMetaZod(SignedTransactionBoundWitnessZod)\n\nexport type SignedTransactionBoundWitnessWithHashMeta = z.infer<typeof SignedTransactionBoundWitnessWithHashMetaZod>\n\nexport const isSignedTransactionBoundWitnessWithHashMeta = zodIsFactory(SignedTransactionBoundWitnessWithHashMetaZod)\nexport const asSignedTransactionBoundWitnessWithHashMeta = zodAsFactory(\n SignedTransactionBoundWitnessWithHashMetaZod,\n 'asSignedTransactionBoundWitnessWithHashMeta',\n)\nexport const toSignedTransactionBoundWitnessWithHashMeta = zodToFactory(\n SignedTransactionBoundWitnessWithHashMetaZod,\n 'toSignedTransactionBoundWitnessWithHashMeta',\n)\n\nexport const SignedTransactionBoundWitnessWithStorageMetaZod = WithStorageMetaZod(SignedTransactionBoundWitnessZod)\n\nexport type SignedTransactionBoundWitnessWithStorageMeta = z.infer<typeof SignedTransactionBoundWitnessWithStorageMetaZod>\n\nexport const isSignedTransactionBoundWitnessWithStorageMeta = zodIsFactory(SignedTransactionBoundWitnessWithStorageMetaZod)\nexport const asSignedTransactionBoundWitnessWithStorageMeta = zodAsFactory(\n SignedTransactionBoundWitnessWithStorageMetaZod,\n 'asSignedTransactionBoundWitnessWithStorageMeta',\n)\nexport const toSignedTransactionBoundWitnessWithStorageMeta = zodToFactory(\n SignedTransactionBoundWitnessWithStorageMetaZod,\n 'toSignedTransactionBoundWitnessWithStorageMeta',\n)\n","import { AddressRegEx, toAddress } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport type { ChainId } from './ChainId.ts'\n\nexport const ChainZod = z.string().toLowerCase().regex(AddressRegEx).transform<ChainId>(v => toAddress(v) as ChainId)\n","import {\n BigIntToJsonZod, HexZod, JsonToBigIntZod,\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport { asAttoXL1 } from '../xl1/index.ts'\n\nexport const AttoZod = z.bigint()\nexport const JsonToAttoZod = JsonToBigIntZod.transform(v => asAttoXL1(v))\n// eslint-disable-next-line unicorn/prefer-export-from\nexport const AttoToJsonZod = BigIntToJsonZod\n\nexport const TransactionFeesHexZod = z.object({\n base: HexZod,\n gasLimit: HexZod,\n gasPrice: HexZod,\n priority: HexZod,\n})\n\nexport type TransactionFeesHex = z.infer<typeof TransactionFeesHexZod>\n\nexport const isTransactionFeesHex = zodIsFactory(TransactionFeesHexZod)\nexport const asTransactionFeesHex = zodAsFactory(TransactionFeesHexZod, 'asTransactionFeesHex')\nexport const toTransactionFeesHex = zodToFactory(TransactionFeesHexZod, 'toTransactionFeesHex')\n\nexport const TransactionFeesBigIntZod = z.object({\n base: AttoZod,\n gasLimit: AttoZod,\n gasPrice: AttoZod,\n priority: AttoZod,\n})\n\nexport type TransactionFeesBigInt = z.infer<typeof TransactionFeesBigIntZod>\n\nexport const isTransactionFeesBigInt = zodIsFactory(TransactionFeesBigIntZod)\nexport const asTransactionFeesBigInt = zodAsFactory(TransactionFeesBigIntZod, 'asTransactionFeesBigInt')\nexport const toTransactionFeesBigInt = zodToFactory(TransactionFeesBigIntZod, 'toTransactionFeesBigInt')\n\nexport const TransactionFeesJsonToBigIntZod = TransactionFeesHexZod.transform(val => ({\n base: JsonToBigIntZod.parse(val.base),\n gasLimit: JsonToBigIntZod.parse(val.gasLimit),\n gasPrice: JsonToBigIntZod.parse(val.gasPrice),\n priority: JsonToBigIntZod.parse(val.priority),\n}))\n\nexport const TransactionFeesBigIntToJsonZod = TransactionFeesBigIntZod.transform(val => ({\n base: BigIntToJsonZod.parse(val.base),\n gasLimit: BigIntToJsonZod.parse(val.gasLimit),\n gasPrice: BigIntToJsonZod.parse(val.gasPrice),\n priority: BigIntToJsonZod.parse(val.priority),\n}))\n\nexport type TransactionFeesJsonToBigIntZodType = z.infer<typeof TransactionFeesJsonToBigIntZod>\nexport type TransactionFeesBigIntToJsonZodType = z.infer<typeof TransactionFeesBigIntToJsonZod>\n","export const TransactionGasCosts = {\n /**\n * The cost of storing each character that is added to the chain\n * This includes the transaction JSON and all the elevated payloads' JSON\n */\n characterStorage: 10n,\n\n /** The cost of static validating every payload that will be included in the chain */\n payloadValidation: 1000n,\n\n /** The cost of validating each signature that will be included in the chain */\n signatureValidation: 1000n,\n\n /** The cost of validating each hash that will be included in the chain */\n hashValidation: 100n,\n\n /** The cost of validating a balance state, triggered by a Transfer payload or gas collection */\n balanceValidation: 100n,\n} as const\n\n/** Gas Calculation\n *\n * 1 Million microXL1 (mXL1) = 1 XL1\n *\n * Gas amount is calculated as follows:\n *\n * 1. Each byte in the transaction cost 10 gas\n * 2. Each payload validation in the transaction costs 1000 gas\n * 3. Each signature verification in the transaction costs 1000 gas\n * 4. Each hash validation in the transaction costs 100 gas\n * 5. Each balance validation in the transaction costs 100 gas\n * 6. Processing/Compute/Storage Cost?\n * 7. operation Costs?\n *\n * The total gas cost is calculated by multiplying the gas amount by the gas price.\n *\n * minGasPrice is initially set to 100 mXL1\n * minBase is initially set to 1000 mXL1\n * minPriority is always 0 mXL1, but can be set to increase the priority of the transaction\n *\n */\n","import {\n AddressZod,\n AsObjectFactory, HexZod, JsonObjectZod,\n} from '@xylabs/sdk-js'\nimport {\n asSchema, isPayloadOfSchemaType, PayloadZodOfSchema,\n} from '@xyo-network/sdk-js'\nimport { z } from 'zod'\n\nexport const TransferSchema = asSchema('network.xyo.transfer', true)\nexport type TransferSchema = typeof TransferSchema\n\nexport const TransferFieldsZod = z.object({\n // Removed as only transaction have opCodes\n // $opCodes: z.array(z.string()).optional(),\n context: JsonObjectZod.optional(),\n epoch: z.number(),\n from: AddressZod,\n transfers: z.record(AddressZod, HexZod),\n})\n\nexport const TransferZod = PayloadZodOfSchema(TransferSchema).extend(TransferFieldsZod.shape)\n\nexport type Transfer = z.infer<typeof TransferZod>\n\nexport const isTransfer = isPayloadOfSchemaType<Transfer>(TransferSchema)\n\nexport const asTransfer = AsObjectFactory.create(isTransfer)\n","import {\n HashZod,\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport {\n BoundWitnessZod,\n WithHashMetaZod,\n WithStorageMetaZod,\n} from '@xyo-network/sdk-js'\nimport { z } from 'zod'\n\nimport { XL1BlockNumberZod } from '../BlockNumber/index.ts'\nimport { ChainZod } from '../chain/index.ts'\n\nexport const BlockBoundWitnessFieldsZod = z.object({\n block: XL1BlockNumberZod,\n chain: ChainZod,\n previous: HashZod.nullable(),\n protocol: z.number().optional(),\n step_hashes: z.array(HashZod).optional(),\n})\n\nexport const BlockBoundWitnessMetaZod = z.object({ $epoch: z.number() })\n\nexport const BlockBoundWitnessZod = z.object({\n ...BoundWitnessZod.shape,\n ...BlockBoundWitnessFieldsZod.shape,\n ...BlockBoundWitnessMetaZod.shape,\n})\n\nexport type BlockBoundWitness = z.infer<typeof BlockBoundWitnessZod>\n\nexport const isBlockBoundWitness = zodIsFactory(BlockBoundWitnessZod)\nexport const asBlockBoundWitness = zodAsFactory(BlockBoundWitnessZod, 'asBlockBoundWitness')\nexport const toBlockBoundWitness = zodToFactory(BlockBoundWitnessZod, 'toBlockBoundWitness')\n\n/** @deprecated use WithHashMetaZod(BlockBoundWitnessZod) instead */\nexport const BlockBoundWitnessWithHashMetaZod = WithHashMetaZod(BlockBoundWitnessZod)\n\n/** @deprecated use WithHashMeta(BlockBoundWitness) instead */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport type BlockBoundWitnessWithHashMeta = z.infer<typeof BlockBoundWitnessWithHashMetaZod>\n\nexport const isBlockBoundWitnessWithHashMeta = zodIsFactory(WithHashMetaZod(BlockBoundWitnessZod))\nexport const asBlockBoundWitnessWithHashMeta = zodAsFactory(WithHashMetaZod(BlockBoundWitnessZod), 'asBlockBoundWitnessWithHashMeta')\nexport const toBlockBoundWitnessWithHashMeta = zodToFactory(WithHashMetaZod(BlockBoundWitnessZod), 'toBlockBoundWitnessWithHashMeta')\n\n/** @deprecated use WithStorageMetaZod(BlockBoundWitnessZod) instead */\nexport const BlockBoundWitnessWithStorageMetaZod = WithStorageMetaZod(BlockBoundWitnessZod)\n\n/** @deprecated use WithStorageMeta(BlockBoundWitness) instead */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport type BlockBoundWitnessWithStorageMeta = z.infer<typeof BlockBoundWitnessWithStorageMetaZod>\n\nexport const isBlockBoundWitnessWithStorageMeta = zodIsFactory(WithStorageMetaZod(BlockBoundWitnessZod))\nexport const asBlockBoundWitnessWithStorageMeta = zodAsFactory(WithStorageMetaZod(BlockBoundWitnessZod), 'asBlockBoundWitnessWithStorageMeta')\nexport const toBlockBoundWitnessWithStorageMeta = zodToFactory(WithStorageMetaZod(BlockBoundWitnessZod), 'toBlockBoundWitnessWithStorageMeta')\n","import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport {\n PayloadZod,\n PayloadZodLoose, WithHashMetaZod, WithStorageMetaZod,\n} from '@xyo-network/sdk-js'\nimport { z } from 'zod'\n\nimport { BlockBoundWitnessZod } from './BlockBoundWitness.ts'\nimport { SignedBlockBoundWitnessZod } from './signed/index.ts'\n\nexport const HydratedBlockZod = z.tuple([\n BlockBoundWitnessZod,\n z.array(PayloadZodLoose),\n])\n\nexport type HydratedBlock = z.infer<typeof HydratedBlockZod>\n\nexport const isHydratedBlock = zodIsFactory(HydratedBlockZod)\nexport const asHydratedBlock = zodAsFactory(HydratedBlockZod, 'asHydratedBlock')\nexport const toHydratedBlock = zodToFactory(HydratedBlockZod, 'toHydratedBlock')\n\nexport const HydratedBlockWithHashMetaZod = z.tuple([\n WithHashMetaZod(BlockBoundWitnessZod),\n z.array(WithHashMetaZod(PayloadZod).loose()),\n])\n\nexport type HydratedBlockWithHashMeta = z.infer<typeof HydratedBlockWithHashMetaZod>\n\nexport const isHydratedBlockWithHashMeta = zodIsFactory(HydratedBlockWithHashMetaZod)\nexport const asHydratedBlockWithHashMeta = zodAsFactory(HydratedBlockWithHashMetaZod, 'asHydratedBlockWithHashMeta')\nexport const toHydratedBlockWithHashMeta = zodToFactory(HydratedBlockWithHashMetaZod, 'toHydratedBlockWithHashMeta')\n\nexport const HydratedBlockWithStorageMetaZod = z.tuple([\n WithStorageMetaZod(BlockBoundWitnessZod),\n z.array(WithStorageMetaZod(PayloadZod).loose()),\n])\n\nexport type HydratedBlockWithStorageMeta = z.infer<typeof HydratedBlockWithStorageMetaZod>\n\nexport const isHydratedBlockWithStorageMeta = zodIsFactory(HydratedBlockWithStorageMetaZod)\nexport const asHydratedBlockWithStorageMeta = zodAsFactory(HydratedBlockWithStorageMetaZod, 'asHydratedBlockWithStorageMeta')\nexport const toHydratedBlockWithStorageMeta = zodToFactory(HydratedBlockWithStorageMetaZod, 'toHydratedBlockWithStorageMeta')\n\nexport const SignedHydratedBlockZod = z.tuple([\n SignedBlockBoundWitnessZod,\n z.array(PayloadZod.loose()),\n])\n\nexport type SignedHydratedBlock = z.infer<typeof SignedHydratedBlockZod>\n\nexport const isSignedHydratedBlock = zodIsFactory(SignedHydratedBlockZod)\nexport const asSignedHydratedBlock = zodAsFactory(SignedHydratedBlockZod, 'asSignedHydratedBlock')\nexport const toSignedHydratedBlock = zodToFactory(SignedHydratedBlockZod, 'toSignedHydratedBlock')\n\nexport const SignedHydratedBlockToJsonZod = z.tuple([\n SignedBlockBoundWitnessZod,\n z.array(PayloadZod.loose()),\n])\n\nexport type SignedHydratedBlockToJson = z.infer<typeof SignedHydratedBlockToJsonZod>\n\nexport const isSignedHydratedBlockToJson = zodIsFactory(SignedHydratedBlockToJsonZod)\nexport const asSignedHydratedBlockToJson = zodAsFactory(SignedHydratedBlockToJsonZod, 'asSignedHydratedBlockToJson')\nexport const toSignedHydratedBlockToJson = zodToFactory(SignedHydratedBlockToJsonZod, 'toSignedHydratedBlockToJson')\n\nexport const SignedHydratedBlockWithHashMetaZod = z.tuple([\n WithHashMetaZod(SignedBlockBoundWitnessZod),\n z.array(WithHashMetaZod(PayloadZod).loose()),\n])\n\nexport type SignedHydratedBlockWithHashMeta = z.infer<typeof SignedHydratedBlockWithHashMetaZod>\n\nexport const SignedHydratedBlockWithHashMetaishZod = z.tuple([\n z.union([WithHashMetaZod(SignedBlockBoundWitnessZod)]),\n z.array(WithHashMetaZod(PayloadZod).loose()),\n])\n\nexport const isSignedHydratedBlockWithHashMeta = zodIsFactory(SignedHydratedBlockWithHashMetaZod)\nexport const asSignedHydratedBlockWithHashMeta = zodAsFactory(SignedHydratedBlockWithHashMetaZod, 'asSignedHydratedBlockWithHashMeta')\n\nexport const toSignedHydratedBlockWithHashMeta = zodToFactory(SignedHydratedBlockWithHashMetaZod, 'toSignedHydratedBlockWithHashMeta')\n\nexport const SignedHydratedBlockWithStorageMetaZod = z.tuple([\n WithStorageMetaZod(SignedBlockBoundWitnessZod),\n z.array(WithStorageMetaZod(PayloadZod).loose()),\n])\nexport type SignedHydratedBlockWithStorageMeta = z.infer<typeof SignedHydratedBlockWithStorageMetaZod>\n\nexport const isSignedHydratedBlockWithStorageMeta = zodIsFactory(SignedHydratedBlockWithStorageMetaZod)\nexport const asSignedHydratedBlockWithStorageMeta = zodAsFactory(SignedHydratedBlockWithStorageMetaZod, 'asSignedHydratedBlockWithStorageMeta')\nexport const toSignedHydratedBlockWithStorageMeta = zodToFactory(SignedHydratedBlockWithStorageMetaZod, 'toSignedHydratedBlockWithStorageMeta')\n\nexport const SignedHydratedBlockWithStorageMetaishZod = z.tuple([\n z.union([WithStorageMetaZod(SignedBlockBoundWitnessZod)]),\n z.array(WithStorageMetaZod(PayloadZod).loose()),\n])\n","import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { SignedBoundWitnessZod } from '@xyo-network/sdk-js'\nimport type { z } from 'zod'\n\nimport { BlockBoundWitnessFieldsZod, BlockBoundWitnessMetaZod } from '../BlockBoundWitness.ts'\n\nexport const SignedBlockBoundWitnessZod = SignedBoundWitnessZod\n .safeExtend(BlockBoundWitnessFieldsZod.shape)\n .safeExtend(BlockBoundWitnessMetaZod.shape)\n\nexport type SignedBlockBoundWitness = z.infer<typeof SignedBlockBoundWitnessZod>\n\nexport const isSignedBlockBoundWitness = zodIsFactory(SignedBlockBoundWitnessZod)\nexport const asSignedBlockBoundWitness = zodAsFactory(SignedBlockBoundWitnessZod, 'asSignedBlockBoundWitness')\nexport const toSignedBlockBoundWitness = zodToFactory(SignedBlockBoundWitnessZod, 'toSignedBlockBoundWitness')\n","import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { PayloadBuilder, WithHashMetaZod } from '@xyo-network/sdk-js'\nimport type { z } from 'zod'\n\nimport { isSignedBlockBoundWitness, SignedBlockBoundWitnessZod } from './SignedBlockBoundWitness.ts'\n\nexport const SignedBlockBoundWitnessWithHashMetaZod = WithHashMetaZod(SignedBlockBoundWitnessZod)\n\nexport type SignedBlockBoundWitnessWithHashMeta = z.infer<typeof SignedBlockBoundWitnessWithHashMetaZod>\n\nexport const isSignedBlockBoundWitnessWithHashMeta = zodIsFactory(SignedBlockBoundWitnessWithHashMetaZod)\nexport const asSignedBlockBoundWitnessWithHashMeta = zodAsFactory(SignedBlockBoundWitnessWithHashMetaZod, 'asSignedBlockBoundWitnessWithHashMeta')\n\nexport const SignedBlockBoundWitnessWithHashMetaishZod = SignedBlockBoundWitnessZod.transform(async (data) => {\n if (isSignedBlockBoundWitnessWithHashMeta(data)) {\n return data\n }\n if (isSignedBlockBoundWitness(data)) {\n return await PayloadBuilder.addHashMeta(data)\n }\n throw new Error('Invalid SignedBlockBoundWitnessWithHashMetaish format')\n})\n\nexport type SignedBlockBoundWitnessWithHashMetaish = z.input<typeof SignedBlockBoundWitnessWithHashMetaishZod>\n\nexport const toSignedBlockBoundWitnessWithHashMeta = zodToFactory(SignedBlockBoundWitnessWithHashMetaZod, 'toSignedBlockBoundWitnessWithHashMeta')\n","import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { PayloadBuilder, WithStorageMetaZod } from '@xyo-network/sdk-js'\nimport type { z } from 'zod'\n\nimport { isSignedBlockBoundWitness, SignedBlockBoundWitnessZod } from './SignedBlockBoundWitness.ts'\n\nexport const SignedBlockBoundWitnessWithStorageMetaZod = WithStorageMetaZod(SignedBlockBoundWitnessZod)\n\nexport type SignedBlockBoundWitnessWithStorageMeta = z.infer<typeof SignedBlockBoundWitnessWithStorageMetaZod>\n\nexport const isSignedBlockBoundWitnessWithStorageMeta = zodIsFactory(SignedBlockBoundWitnessWithStorageMetaZod)\nexport const asSignedBlockBoundWitnessWithStorageMeta = zodAsFactory(\n SignedBlockBoundWitnessWithStorageMetaZod,\n 'asSignedBlockBoundWitnessWithStorageMeta',\n)\n\nexport const SignedBlockBoundWitnessWithStorageMetaishZod = SignedBlockBoundWitnessZod.transform(async (data) => {\n if (isSignedBlockBoundWitnessWithStorageMeta(data)) {\n return data\n }\n if (isSignedBlockBoundWitness(data)) {\n return await PayloadBuilder.addStorageMeta(data)\n }\n throw new Error('Invalid SignedBlockBoundWitnessWithStorageMetaish format')\n})\n\nexport type SignedBlockBoundWitnessWithStorageMetaish = z.input<typeof SignedBlockBoundWitnessWithStorageMetaishZod>\n\nexport const toSignedBlockBoundWitnessWithStorageMeta = zodToFactory(\n SignedBlockBoundWitnessWithStorageMetaishZod,\n 'toSignedBlockBoundWitnessWithStorageMeta',\n)\n","import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { UnsignedBoundWitnessZod } from '@xyo-network/sdk-js'\nimport type { z } from 'zod'\n\nimport { BlockBoundWitnessFieldsZod, BlockBoundWitnessMetaZod } from '../BlockBoundWitness.ts'\n\nexport const UnsignedBlockBoundWitnessZod = UnsignedBoundWitnessZod\n .safeExtend(BlockBoundWitnessFieldsZod.shape)\n .safeExtend(BlockBoundWitnessMetaZod.shape)\n\nexport type UnsignedBlockBoundWitness = z.infer<typeof UnsignedBlockBoundWitnessZod>\n\nexport const isUnsignedBlockBoundWitness = zodIsFactory(UnsignedBlockBoundWitnessZod)\nexport const asUnsignedBlockBoundWitness = zodAsFactory(UnsignedBlockBoundWitnessZod, 'asUnsignedBlockBoundWitness')\nexport const toUnsignedBlockBoundWitness = zodToFactory(UnsignedBlockBoundWitnessZod, 'toUnsignedBlockBoundWitness')\n","import { AsObjectFactory } from '@xylabs/sdk-js'\nimport type { Payload, WithSources } from '@xyo-network/sdk-js'\nimport {\n asSchema,\n isPayloadOfSchemaType,\n isPayloadOfSchemaTypeWithSources,\n} from '@xyo-network/sdk-js'\n\nimport type { XL1BlockNumber } from '../BlockNumber/index.ts'\n\nexport const BlockNumberSchema = asSchema('network.xyo.chain.block.number', true)\nexport type BlockNumberSchema = typeof BlockNumberSchema\n\nexport interface BlockNumberFields {\n /**\n * The block number\n */\n block: XL1BlockNumber\n}\n/**\n * The number of a block\n */\nexport type BlockNumberPayload = Payload<BlockNumberFields, BlockNumberSchema>\n\n/**\n * Identity function for determining if an object is a BlockNumber\n */\nexport const isBlockNumberPayload = isPayloadOfSchemaType<BlockNumberPayload>(BlockNumberSchema)\nexport const asBlockNumberPayload = AsObjectFactory.create<BlockNumberPayload>(isBlockNumberPayload)\n\n/**\n * Identity function for determining if an object is a BlockNumber with sources\n */\nexport const isBlockNumberPayloadWithSources = isPayloadOfSchemaTypeWithSources<BlockNumberPayload>(BlockNumberSchema)\nexport const asBlockNumberPayloadWithSources = AsObjectFactory.create<WithSources<BlockNumberPayload>>(isBlockNumberPayloadWithSources)\n","import { type Address, type Promisable } from '@xylabs/sdk-js'\nimport { zodIsFactory } from '@xylabs/sdk-js'\nimport { WithHashMetaZod } from '@xyo-network/sdk-js'\nimport { z } from 'zod'\n\nimport { BlockBoundWitnessZod } from '../block/index.ts'\nimport type { Provider } from '../provider/index.ts'\nimport { TransactionBoundWitnessZod } from '../transaction/index.ts'\nimport { TransferZod } from '../TransferPayload.ts'\nimport type { AttoXL1 } from '../xl1/index.ts'\nimport type { ChainQualified } from './ChainQualification.ts'\nimport { ChainQualificationZod, ChainQualifiedConfigZod } from './ChainQualification.ts'\n\nexport const AccountBalanceHistoryItemZod = z.tuple([\n WithHashMetaZod(BlockBoundWitnessZod),\n WithHashMetaZod(TransactionBoundWitnessZod).nullable(),\n WithHashMetaZod(TransferZod),\n])\n\nexport type AccountBalanceHistoryItem = z.infer<typeof AccountBalanceHistoryItemZod>\n\nexport const AccountBalanceQualificationZod = ChainQualificationZod\nexport type AccountBalanceQualification = z.infer<typeof AccountBalanceQualificationZod>\nexport const isAccountBalanceQualification = zodIsFactory(AccountBalanceQualificationZod)\n\nexport const AccountBalanceConfigZod = ChainQualifiedConfigZod\nexport type AccountBalanceConfig = z.infer<typeof AccountBalanceConfigZod>\nexport const isAccountBalanceConfig = zodIsFactory(AccountBalanceConfigZod)\n\nexport interface AccountBalanceViewerMethods {\n qualifiedAccountBalanceHistories(\n address: Address[],\n config: AccountBalanceConfig\n ): Promisable<ChainQualified<Record<Address, AccountBalanceHistoryItem[]>>>\n qualifiedAccountBalances(address: Address[], config: AccountBalanceConfig): Promisable<ChainQualified<Record<Address, AttoXL1>>>\n}\n\nexport interface AccountBalanceViewer extends AccountBalanceViewerMethods, Provider<AccountBalanceViewerMoniker> {\n accountBalance(address: Address, config?: AccountBalanceConfig): Promisable<AttoXL1>\n accountBalanceHistories(address: Address[], config?: AccountBalanceConfig): Promisable<Record<Address, AccountBalanceHistoryItem[]>>\n accountBalanceHistory(address: Address, config?: AccountBalanceConfig): Promisable<AccountBalanceHistoryItem[]>\n accountBalances(address: Address[], config?: AccountBalanceConfig): Promisable<Record<Address, AttoXL1>>\n}\n\nexport const AccountBalanceViewerMoniker = 'AccountBalanceViewer' as const\nexport type AccountBalanceViewerMoniker = typeof AccountBalanceViewerMoniker\n","import { HashZod, zodIsFactory } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport { XL1BlockRangeZod } from './BlockRange/index.ts'\n\nexport const ChainQualificationZod = z.object({ head: HashZod, range: XL1BlockRangeZod })\nexport type ChainQualification = z.infer<typeof ChainQualificationZod>\nexport const isChainQualification = zodIsFactory(ChainQualificationZod)\n\nexport const ChainQualifiedRangeConfigZod = z.object({ range: XL1BlockRangeZod })\nexport type ChainQualifiedRangeConfig = z.infer<typeof ChainQualifiedRangeConfigZod>\nexport const isChainQualifiedRangeConfig = zodIsFactory(ChainQualifiedRangeConfigZod)\n\nexport const ChainQualifiedHeadConfigZod = z.object({ head: HashZod })\nexport type ChainQualifiedHeadConfig = z.infer<typeof ChainQualifiedHeadConfigZod>\nexport const isChainQualifiedHeadConfig = zodIsFactory(ChainQualifiedHeadConfigZod)\n\nexport const ChainQualifiedConfigZod = z.union([ChainQualifiedRangeConfigZod, ChainQualifiedHeadConfigZod, z.object({})])\nexport type ChainQualifiedConfig = z.infer<typeof ChainQualifiedConfigZod>\nexport const isChainQualifiedConfig = zodIsFactory(ChainQualifiedConfigZod)\n\nexport const ExtendChainQualifiedConfigZod = (<T>(zodType: z.ZodType<T>) => {\n return z.union([\n ChainQualifiedRangeConfigZod.extend(zodType),\n ChainQualifiedHeadConfigZod.extend(zodType),\n zodType,\n ])\n}) as <T>(zodType: z.ZodType<T>) => z.ZodType<T & ChainQualifiedConfig>\n\nexport type ChainQualified<T> = [T, ChainQualification]\nexport const ChainQualifiedZod = <T>(zodType: z.ZodType<T>) => {\n return z.tuple([zodType, ChainQualificationZod])\n}\n","import type { AssertConfig, Brand } from '@xylabs/sdk-js'\nimport {\n assertError,\n isDefined, zodAsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport {\n asBlockNumber,\n type BlockNumber, BlockNumberishZod, BlockNumberZod,\n} from '../../BlockNumber/index.ts'\n\nexport type BlockRange = [BlockNumber, BlockNumber]\n\nexport const BlockRangeZod = z.tuple([BlockNumberZod, BlockNumberZod])\nexport const BlockRangeishZod = z.tuple([BlockNumberishZod, BlockNumberishZod])\n\nexport type BlockRangeish = z.input<typeof BlockRangeishZod>\n\nexport const asBlockRange = zodAsFactory<BlockRange>(BlockRangeZod, 'BlockRange')\nexport const toBlockRange = zodToFactory<BlockRange>(BlockRangeishZod, 'BlockRange')\n\nexport type BlockRangeKey = Brand<string, { readonly __blockRangeKey: true }>\nexport const toBlockNumberKey = (range: BlockRange) => `${range[0]}|${range[1]}` as BlockRangeKey\n\nexport function fromBlockNumberKey(key: BlockRangeKey): BlockRange | undefined\nexport function fromBlockNumberKey(key: BlockRangeKey, assert: AssertConfig): BlockRange\nexport function fromBlockNumberKey(key: BlockRangeKey, assert?: AssertConfig): BlockRange | undefined {\n const [start, end] = key.split('|').map(v => asBlockNumber(Number(v)))\n const result = (isDefined(start) && isDefined(end)) ? [start, end] : undefined\n return assertError(result, assert, `Invalid BlockRangeKey: ${key}`)\n}\n","import type { AssertConfig, Brand } from '@xylabs/sdk-js'\nimport {\n assertError,\n isDefined, zodAsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport {\n asEthBlockNumber,\n type EthBlockNumber, EthBlockNumberishZod, EthBlockNumberZod,\n} from '../../BlockNumber/index.ts'\n\nexport type EthBlockRange = [EthBlockNumber, EthBlockNumber]\n\nexport const EthBlockRangeZod = z.tuple([EthBlockNumberZod, EthBlockNumberZod])\nexport const EthBlockRangeishZod = z.tuple([EthBlockNumberishZod, EthBlockNumberishZod])\n\nexport type EthBlockRangeish = z.input<typeof EthBlockRangeishZod>\n\nexport const asEthBlockRange = zodAsFactory<EthBlockRange>(EthBlockRangeZod, 'EthBlockRange')\nexport const toEthBlockRange = zodToFactory<EthBlockRange>(EthBlockRangeishZod, 'EthBlockRange')\n\nexport type EthBlockRangeKey = Brand<string, { readonly __ethBlockRangeKey: true }>\nexport const toEthBlockNumberKey = (range: EthBlockRange) => `${range[0]}|${range[1]}` as EthBlockRangeKey\n\nexport function fromEthBlockNumberKey(key: EthBlockRangeKey): EthBlockRange | undefined\nexport function fromEthBlockNumberKey(key: EthBlockRangeKey, assert: AssertConfig): EthBlockRange\nexport function fromEthBlockNumberKey(key: EthBlockRangeKey, assert?: AssertConfig): EthBlockRange | undefined {\n const [start, end] = key.split('|').map(v => asEthBlockNumber(Number(v)))\n const result = (isDefined(start) && isDefined(end)) ? [start, end] : undefined\n return assertError(result, assert, `Invalid EthBlockRangeKey: ${key}`)\n}\n","import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nexport const RangeZod = z.tuple([z.number(), z.number()])\n\nexport type Range = z.infer<typeof RangeZod>\n\nexport const isRange = zodIsFactory<Range>(RangeZod)\nexport const asRange = zodAsFactory<Range>(RangeZod, 'Range')\nexport const toRange = zodToFactory<Range>(RangeZod, 'Range')\n","import type { AssertConfig, Brand } from '@xylabs/sdk-js'\nimport {\n assertError,\n isDefined, zodAsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport {\n asXL1BlockNumber,\n type XL1BlockNumber, XL1BlockNumberishZod, XL1BlockNumberZod,\n} from '../../BlockNumber/index.ts'\n\nexport type XL1BlockRange = [XL1BlockNumber, XL1BlockNumber]\n\nexport const XL1BlockRangeZod = z.tuple([XL1BlockNumberZod, XL1BlockNumberZod])\nexport const XL1BlockRangeishZod = z.tuple([XL1BlockNumberishZod, XL1BlockNumberishZod])\n\nexport type XL1BlockRangeish = z.input<typeof XL1BlockRangeishZod>\n\nexport const asXL1BlockRange = zodAsFactory<XL1BlockRange>(XL1BlockRangeZod, 'XL1BlockRange')\nexport const toXL1BlockRange = zodToFactory<XL1BlockRange>(XL1BlockRangeishZod, 'XL1BlockRange')\n\nexport type XL1BlockRangeKey = Brand<string, { readonly __xl1BlockRangeKey: true }>\nexport const toXL1BlockNumberKey = (range: XL1BlockRange) => `${range[0]}|${range[1]}` as XL1BlockRangeKey\n\nexport function fromXL1BlockNumberKey(key: XL1BlockRangeKey): XL1BlockRange | undefined\nexport function fromXL1BlockNumberKey(key: XL1BlockRangeKey, assert: AssertConfig): XL1BlockRange\nexport function fromXL1BlockNumberKey(key: XL1BlockRangeKey, assert?: AssertConfig): XL1BlockRange | undefined {\n const [start, end] = key.split('|').map(v => asXL1BlockNumber(Number(v)))\n const result = (isDefined(start) && isDefined(end)) ? [start, end] : undefined\n return assertError(result, assert, `Invalid XL1BlockRangeKey: ${key}`)\n}\n","import type { Address, EthAddress } from '@xylabs/sdk-js'\n\n/**\n * The Zero Address is used as a marker address for various protocol operations.\n */\nexport const XYO_ZERO_ADDRESS = '0000000000000000000000000000000000000000' as const as Address\n\n/**\n * The Bridge Address is used as a marker address for bridge transactions.\n */\nexport const XYO_BRIDGE_ADDRESS = '3012193230121932301219323012193230121932' as const as Address\n\n/**\n * The Network Staking Address is used as a marker address for staking the network.\n */\nexport const XYO_NETWORK_STAKING_ADDRESS = '1969196919691969196919691969196919691969' as const as Address\n\n/**\n * The Step Reward Address is used as a marker address for step rewards.\n */\nexport const XYO_STEP_REWARD_ADDRESS = '1216197612161976121619761216197612161976' as const as Address\n\nexport const XL1_ETH_MAIN_ERC20_CONTRACT_ADDRESS = '0xf72aE3E0DA743033AbD7A407557D684c1aE66aed' as const as EthAddress\n\nexport const XL1_ETH_MAIN_SUB_GOVERNOR_ADDRESS = '0xbA296Bc5D0949C0484f08c56c30FB95CC4675A29' as const as EthAddress\n\nexport const XL1_ETH_MAIN_REWARDS_ADDRESS = '0x1a546e091FB4EFb274DC584334a28b8754c4ece7' as const as EthAddress\n\nexport const XL1_ETH_MAIN_STAKED_XYO_CHAIN_ADDRESS = '0x319e667cED10452A117472811130444dED357F26' as const as EthAddress\n\nexport const XL1_ETH_MAIN_GOVERNANCE_ADDRESS = '0x7595710956d6B14b4f2F51a8dF41379eEeC9074E' as const as EthAddress\n","import { z } from 'zod'\n\nfunction base64Encode(u8: Uint8Array): string {\n // Node\n if (typeof Buffer !== 'undefined' && typeof Buffer.from === 'function') {\n return Buffer.from(u8).toString('base64')\n }\n\n // Browser\n let binary = ''\n const chunk = 0x80_00\n for (let i = 0; i < u8.length; i += chunk) {\n // eslint-disable-next-line unicorn/prefer-code-point\n binary += String.fromCharCode(...u8.subarray(i, i + chunk))\n }\n return btoa(binary)\n}\n\n/** Base64 decode that works in Node and browsers -> Uint8Array */\nfunction base64Decode(b64: string): Uint8Array {\n // Node\n if (typeof Buffer !== 'undefined' && typeof Buffer.from === 'function') {\n return new Uint8Array(Buffer.from(b64, 'base64'))\n }\n\n // Browser\n const binary = atob(b64)\n const u8 = new Uint8Array(binary.length)\n // eslint-disable-next-line unicorn/prefer-code-point\n for (let i = 0; i < binary.length; i++) u8[i] = binary.charCodeAt(i)\n return u8\n}\n\nexport const ArrayBufferToJsonZod = z.instanceof(ArrayBuffer).transform((x) => {\n const u8 = new Uint8Array(x)\n return base64Encode(u8)\n})\n\nexport const JsonToArrayBufferZod = z.string().transform((x) => {\n const u8 = base64Decode(x)\n return u8.buffer\n})\n","import { zodAsFactory, zodIsFactory } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport type { EthBlockNumber, XL1BlockNumber } from '../BlockNumber/index.ts'\nimport { StepSizes } from '../Step/index.ts'\nimport { XL1BlockRangeZod } from './BlockRange/index.ts'\n\nexport const TimeDurationsZod = z.object({\n millis: z.number().nonnegative(),\n seconds: z.number().nonnegative(),\n minutes: z.number().nonnegative(),\n hours: z.number().nonnegative(),\n days: z.number().nonnegative(),\n weeks: z.number().nonnegative(),\n})\n\nexport const isTimeDurations = zodIsFactory(TimeDurationsZod)\nexport const asTimeDurations = zodAsFactory(TimeDurationsZod, 'asTimeDurations')\nexport const toTimeDurations = zodAsFactory(TimeDurationsZod, 'toTimeDurations')\n\nexport type TimeDurations = z.infer<typeof TimeDurationsZod>\n\nexport const BlockRateZod = z.object({\n range: XL1BlockRangeZod.describe('the block range the rate was calculated over'),\n rate: z.number().nonnegative().describe('rate of blocks per specified time unit'),\n timeUnit: TimeDurationsZod.keyof().describe('the unit of time for the rate and timePerBlock'),\n span: z.int().nonnegative().describe('number of blocks the rate was calculated over'),\n timeDifference: z.number().nonnegative().describe('time difference from start and end block'),\n timePerBlock: z.number().nonnegative().describe('average time per block for the given range'),\n})\n\nexport type BlockRate = z.infer<typeof BlockRateZod>\n\nexport type GenericBlockRate<TBlockNumber extends number> = Omit<BlockRate, 'range'> & {\n range: [TBlockNumber, TBlockNumber]\n}\n\nexport interface XL1BlockRate extends GenericBlockRate<XL1BlockNumber> {}\nexport interface EthBlockRate extends GenericBlockRate<EthBlockNumber> {}\n\nexport const isBlockRate = zodIsFactory(BlockRateZod)\nexport const asBlockRate = zodAsFactory(BlockRateZod, 'asBlockRate')\nexport const toBlockRate = zodAsFactory(BlockRateZod, 'toBlockRate')\n\nexport const CountZod = z.int().nonnegative().describe('A non-negative integer count')\nexport type Count = z.infer<typeof CountZod>\n\nexport const StepIndexZod = z.int().min(0).max(StepSizes.length).describe('A non-negative integer step index')\nexport type StepIndex = z.infer<typeof StepIndexZod>\n\nconst timeUnitSchema = z.number().positive()\n\nexport const TimeConfigZod = z.object({\n minutes: timeUnitSchema.optional(),\n hours: timeUnitSchema.optional(),\n days: timeUnitSchema.optional(),\n weeks: timeUnitSchema.optional(),\n months: timeUnitSchema.optional(),\n years: timeUnitSchema.optional(),\n}).describe('Time configuration with optional time units')\n\nexport type TimeConfig = z.infer<typeof TimeConfigZod>\n\nexport const isTimeConfig = zodIsFactory(TimeConfigZod)\nexport const asTimeConfig = zodAsFactory(TimeConfigZod, 'asTimeConfig')\nexport const toTimeConfig = zodAsFactory(TimeConfigZod, 'toTimeConfig')\n\nexport const SingleTimeConfigZod = z.union([\n z.object({ minutes: timeUnitSchema }),\n z.object({ hours: timeUnitSchema }),\n z.object({ days: timeUnitSchema }),\n z.object({ weeks: timeUnitSchema }),\n z.object({ months: timeUnitSchema }),\n z.object({ years: timeUnitSchema }),\n]).describe('Time configuration with exactly one time unit')\n\nexport type SingleTimeConfig = z.infer<typeof SingleTimeConfigZod>\n\nexport const isSingleTimeConfig = zodIsFactory(SingleTimeConfigZod)\nexport const asSingleTimeConfig = zodAsFactory(SingleTimeConfigZod, 'asSingleTimeConfig')\nexport const toSingleTimeConfig = zodAsFactory(SingleTimeConfigZod, 'toSingleTimeConfig')\n","import type { MeterProvider, TracerProvider } from '@opentelemetry/api'\nimport type { Logger } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport type { MapType } from '../../map/index.ts'\n\nexport const CachesZod = z.record(\n z.string(),\n z.custom<MapType<string, unknown>>(val => val && typeof val === 'object' && ('get' in val || 'set' in val)),\n)\n\nexport const SingletonsZod = z.record(z.union([z.string(), z.symbol()]), z.unknown())\n\nexport const LoggerZod = z.custom<Logger>(val => val && typeof val === 'object' && 'info' in val && 'error' in val)\n\nexport const MeterProviderZod = z.custom<MeterProvider>(val => val && typeof val === 'object' && 'getMeter' in val)\n\nexport const TracerProviderZod = z.custom<TracerProvider>(val => val && typeof val === 'object' && 'getTracer' in val)\n\nexport const TimeBudgetLimitZod = z.number()\n\nexport const BaseContextZod = z.object({\n caches: CachesZod.optional(),\n logger: LoggerZod.optional(),\n meterProvider: MeterProviderZod.optional(),\n singletons: SingletonsZod,\n timeBudgetLimit: TimeBudgetLimitZod.optional(),\n traceProvider: TracerProviderZod.optional(),\n})\n","import type {\n Payload,\n ReadArchivist, WriteArchivist,\n} from '@xyo-network/sdk-js'\nimport z from 'zod'\n\nimport { CachingContextZod } from './CachingContext.zod.ts'\n\nexport const BlockContextReadZod = CachingContextZod.extend(\n { chainMap: z.custom<ReadArchivist<Payload>>(val => val && typeof val === 'object' && ('get' in val)) },\n)\n\nexport const BlockContextWriteZod = CachingContextZod.extend(\n { chainMap: z.custom<WriteArchivist<Payload>>(val => val && typeof val === 'object' && ('get' in val && 'insert' in val)) },\n)\n\nexport const BlockContextZod = BlockContextWriteZod\n","import { BaseContextZod, CachesZod } from './BaseContext.zod.ts'\n\nexport const CachingContextZod = BaseContextZod.extend({ caches: CachesZod })\n","import { WithHashMetaZod } from '@xyo-network/sdk-js'\nimport z from 'zod'\n\nimport { BlockBoundWitnessZod } from '../../block/index.ts'\nimport { CachingContextZod } from './CachingContext.zod.ts'\n\nexport const HeadContextBaseZod = z.object(\n { head: WithHashMetaZod(BlockBoundWitnessZod) },\n)\n\nexport const HeadContextZod = CachingContextZod.safeExtend(HeadContextBaseZod.shape)\n","import {\n BlockContextReadZod, BlockContextWriteZod, BlockContextZod,\n} from './BlockContext.zod.ts'\nimport { HeadContextBaseZod } from './HeadContext.zod.ts'\n\nexport const ChainContextReadZod = BlockContextReadZod.safeExtend(HeadContextBaseZod.shape)\n\nexport const ChainContextWriteZod = BlockContextWriteZod.safeExtend(\n HeadContextBaseZod.shape,\n)\n\nexport const ChainContextZod = BlockContextZod.safeExtend(\n HeadContextBaseZod.shape,\n)\n","// the percent of the block rewards the producer gets\nexport const defaultRewardRatio = 0.05 as const // 5.0% goes to block producer\n","import type { TransactionFeesBigInt } from '../transaction/index.ts'\nimport { AttoXL1, AttoXL1ConvertFactor } from '../xl1/index.ts'\n\nexport const minTransactionFees: TransactionFeesBigInt = {\n base: AttoXL1(1000n * AttoXL1ConvertFactor.nano),\n gasPrice: AttoXL1(10n * AttoXL1ConvertFactor.nano),\n gasLimit: AttoXL1(1_000_000n * AttoXL1ConvertFactor.nano),\n priority: AttoXL1(0n * AttoXL1ConvertFactor.nano),\n} as const\n","import type { TransactionFeesBigInt } from '../transaction/index.ts'\nimport { AttoXL1, AttoXL1ConvertFactor } from '../xl1/index.ts'\nimport { minTransactionFees } from './minTransactionFees.ts'\n\nexport const defaultTransactionFees: TransactionFeesBigInt = {\n base: minTransactionFees.base,\n gasPrice: AttoXL1(10n * AttoXL1ConvertFactor.nano),\n gasLimit: AttoXL1(1_000_000n * AttoXL1ConvertFactor.nano),\n priority: minTransactionFees.priority,\n} as const\n","import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport {\n PayloadZod,\n PayloadZodLoose, WithHashMetaZod,\n WithStorageMetaZod,\n} from '@xyo-network/sdk-js'\nimport { z } from 'zod'\n\nimport {\n SignedTransactionBoundWitnessZod, TransactionBoundWitnessZod, UnsignedTransactionBoundWitnessZod,\n} from '../transaction/index.ts'\n\nexport const HydratedTransactionZod = z.tuple([\n TransactionBoundWitnessZod,\n z.array(PayloadZodLoose),\n])\n\nexport type HydratedTransaction = z.infer<typeof HydratedTransactionZod>\n\nexport const isHydratedTransaction = zodIsFactory(HydratedTransactionZod)\nexport const asHydratedTransaction = zodAsFactory(HydratedTransactionZod, 'asHydratedTransaction')\nexport const toHydratedTransaction = zodToFactory(HydratedTransactionZod, 'toHydratedTransaction')\n\nexport const HydratedTransactionWithHashMetaZod = z.tuple([\n WithHashMetaZod(TransactionBoundWitnessZod),\n z.array(WithHashMetaZod(PayloadZod).loose()),\n])\n\nexport type HydratedTransactionWithHashMeta = z.infer<typeof HydratedTransactionWithHashMetaZod>\n\nexport const isHydratedTransactionWithHashMeta = zodIsFactory(HydratedTransactionWithHashMetaZod)\nexport const asHydratedTransactionWithHashMeta = zodAsFactory(HydratedTransactionWithHashMetaZod, 'asHydratedTransactionWithHashMeta')\nexport const toHydratedTransactionWithHashMeta = zodToFactory(HydratedTransactionWithHashMetaZod, 'toHydratedTransactionWithHashMeta')\n\nexport const HydratedTransactionWithStorageMetaZod = z.tuple([\n WithStorageMetaZod(TransactionBoundWitnessZod),\n z.array(WithStorageMetaZod(PayloadZod).loose()),\n])\n\nexport type HydratedTransactionWithStorageMeta = z.infer<typeof HydratedTransactionWithStorageMetaZod>\n\nexport const isHydratedTransactionWithStorageMeta = zodIsFactory(HydratedTransactionWithStorageMetaZod)\nexport const asHydratedTransactionWithStorageMeta = zodAsFactory(HydratedTransactionWithStorageMetaZod, 'asHydratedTransactionWithStorageMeta')\nexport const toHydratedTransactionWithStorageMeta = zodToFactory(HydratedTransactionWithStorageMetaZod, 'toHydratedTransactionWithStorageMeta')\n\nexport const UnsignedHydratedTransactionZod = z.tuple([\n UnsignedTransactionBoundWitnessZod,\n z.array(PayloadZodLoose),\n])\n\nexport type UnsignedHydratedTransaction = z.infer<typeof UnsignedHydratedTransactionZod>\n\nexport const isUnsignedHydratedTransaction = zodIsFactory(UnsignedHydratedTransactionZod)\nexport const asUnsignedHydratedTransaction = zodAsFactory(UnsignedHydratedTransactionZod, 'asUnsignedHydratedTransaction')\nexport const toUnsignedHydratedTransaction = zodToFactory(UnsignedHydratedTransactionZod, 'toUnsignedHydratedTransaction')\n\nexport const UnsignedHydratedTransactionWithHashMetaZod = z.tuple([\n WithHashMetaZod(UnsignedTransactionBoundWitnessZod),\n z.array(WithHashMetaZod(PayloadZod).loose()),\n])\n\nexport type UnsignedHydratedTransactionWithHashMeta = z.infer<typeof UnsignedHydratedTransactionWithHashMetaZod>\n\nexport const isUnsignedHydratedTransactionWithHashMeta = zodIsFactory(UnsignedHydratedTransactionWithHashMetaZod)\nexport const asUnsignedHydratedTransactionWithHashMeta = zodAsFactory(UnsignedHydratedTransactionWithHashMetaZod, 'asUnsignedHydratedTransactionWithHashMeta')\nexport const toUnsignedHydratedTransactionWithHashMeta = zodToFactory(UnsignedHydratedTransactionWithHashMetaZod, 'toUnsignedHydratedTransactionWithHashMeta')\n\nexport const UnsignedHydratedTransactionWithStorageMetaZod = z.tuple([\n WithStorageMetaZod(UnsignedTransactionBoundWitnessZod),\n z.array(WithStorageMetaZod(PayloadZod).loose()),\n])\n\nexport type UnsignedHydratedTransactionWithStorageMeta = z.infer<typeof UnsignedHydratedTransactionWithStorageMetaZod>\n\nexport const isUnsignedHydratedTransactionWithStorageMeta = zodIsFactory(UnsignedHydratedTransactionWithStorageMetaZod)\nexport const asUnsignedHydratedTransactionWithStorageMeta = zodAsFactory(\n UnsignedHydratedTransactionWithStorageMetaZod,\n 'asUnsignedHydratedTransactionWithStorageMeta',\n)\nexport const toUnsignedHydratedTransactionWithStorageMeta = zodToFactory(\n UnsignedHydratedTransactionWithStorageMetaZod,\n 'toUnsignedHydratedTransactionWithStorageMeta',\n)\n\nexport const SignedHydratedTransactionZod = z.tuple([\n SignedTransactionBoundWitnessZod,\n z.array(PayloadZodLoose),\n])\n\nexport type SignedHydratedTransaction = z.infer<typeof SignedHydratedTransactionZod>\n\nexport const isSignedHydratedTransaction = zodIsFactory(SignedHydratedTransactionZod)\nexport const asSignedHydratedTransaction = zodAsFactory(SignedHydratedTransactionZod, 'asSignedHydratedTransaction')\nexport const toSignedHydratedTransaction = zodToFactory(SignedHydratedTransactionZod, 'toSignedHydratedTransaction')\n\nexport const SignedHydratedTransactionWithHashMetaZod = z.tuple([\n WithHashMetaZod(SignedTransactionBoundWitnessZod),\n z.array(WithHashMetaZod(PayloadZod).loose()),\n])\n\nexport type SignedHydratedTransactionWithHashMeta = z.infer<typeof SignedHydratedTransactionWithHashMetaZod>\n\nexport const isSignedHydratedTransactionWithHashMeta = zodIsFactory(SignedHydratedTransactionWithHashMetaZod)\nexport const asSignedHydratedTransactionWithHashMeta = zodAsFactory(SignedHydratedTransactionWithHashMetaZod, 'asSignedHydratedTransactionWithHashMeta')\nexport const toSignedHydratedTransactionWithHashMeta = zodToFactory(SignedHydratedTransactionWithHashMetaZod, 'toSignedHydratedTransactionWithHashMeta')\n\nexport const SignedHydratedTransactionWithStorageMetaZod = z.tuple([\n WithStorageMetaZod(SignedTransactionBoundWitnessZod),\n z.array(WithStorageMetaZod(PayloadZod).loose()),\n])\n\nexport type SignedHydratedTransactionWithStorageMeta = z.infer<typeof SignedHydratedTransactionWithStorageMetaZod>\n\nexport const isSignedHydratedTransactionWithStorageMeta = zodIsFactory(SignedHydratedTransactionWithStorageMetaZod)\nexport const asSignedHydratedTransactionWithStorageMeta = zodAsFactory(\n SignedHydratedTransactionWithStorageMetaZod,\n 'asSignedHydratedTransactionWithStorageMeta',\n)\nexport const toSignedHydratedTransactionWithStorageMeta = zodToFactory(\n SignedHydratedTransactionWithStorageMetaZod,\n 'toSignedHydratedTransactionWithStorageMeta',\n)\n","export const ELEVATE_OPCODE = 'elevate'\n","import { z } from 'zod'\n\nexport const CaveatTypesZod = z.enum(['chain', 'expiration', 'filteredResponse', 'rateLimit', 'restrictReturnedAccounts'])\n\nexport const CaveatsZod = z.object({\n type: CaveatTypesZod,\n value: z.json(),\n})\n\nexport const PermissionZod = z.object({\n parentCapability: z.string(),\n caveats: CaveatsZod.array().optional(),\n invoker: z.string(),\n})\n\nexport const InvokerPermissionZod = PermissionZod.safeExtend({ date: z.number().optional() })\n\nexport const PermissionRequestZod = z.record(z.string(), z.record(z.string(), z.any()))\n\nexport const RequestedPermissionZod = z.object({\n parentCapability: z.string(),\n date: z.number().optional(),\n})\n","import { toFixedPoint } from '@xylabs/sdk-js'\n\nimport { asAttoXL1 } from '../xl1/index.ts'\n\nexport const XL1_REWARDS_PLACES = 18 as const\nexport const XL1_REWARDS_STARTING_REWARD = asAttoXL1(toFixedPoint(500n, XL1_REWARDS_PLACES))\nexport const XL1_REWARDS_BLOCKS_PER_STEP = 1_000_000\nexport const XL1_REWARDS_STEP_FACTOR_NUMERATOR = 95n\nexport const XL1_REWARDS_STEP_FACTOR_DENOMINATOR = 100n\nexport const XL1_REWARDS_MIN_BLOCK_REWARD = asAttoXL1(toFixedPoint(10n, XL1_REWARDS_PLACES))\nexport const XL1_REWARDS_CREATOR_REWARD = asAttoXL1(toFixedPoint(20_000_000_000n, XL1_REWARDS_PLACES))\n","import { AddressZod } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport { StepIdentityZod } from '../Step/index.ts'\nimport { BlockRangeZod } from './BlockRange/index.ts'\n\nexport const RewardsRangeOptionsZod = z.object({\n positions: z.array(z.number()).optional(),\n range: BlockRangeZod.optional(),\n steps: z.array(StepIdentityZod).optional(),\n stakers: z.array(AddressZod).optional(),\n})\n","import { HexRegExMinMax, toHex } from '@xylabs/sdk-js'\nimport type { LocalSequence, QualifiedSequence } from '@xyo-network/sdk-js'\nimport { SequenceConstants } from '@xyo-network/sdk-js'\nimport { z } from 'zod'\n\nconst LocalSequenceRegex = new RegExp(HexRegExMinMax(SequenceConstants.localSequenceBytes, SequenceConstants.localSequenceBytes))\nexport const LocalSequenceToStringZod = z.string().regex(LocalSequenceRegex)\nexport const LocalSequenceFromStringZod = z.string().regex(LocalSequenceRegex).transform<LocalSequence>(v => toHex(v) as LocalSequence)\n\nconst QualifiedSequenceRegex = new RegExp(HexRegExMinMax(SequenceConstants.qualifiedSequenceBytes, SequenceConstants.qualifiedSequenceBytes))\nexport const QualifiedSequenceToStringZod = z.string().regex(QualifiedSequenceRegex)\nexport const QualifiedSequenceFromStringZod = z.string().regex(QualifiedSequenceRegex).transform<QualifiedSequence>(v => toHex(v) as QualifiedSequence)\n\nexport const SequenceToStringZod = z.union([LocalSequenceToStringZod, QualifiedSequenceToStringZod])\nexport const SequenceFromStringZod = z.union([LocalSequenceFromStringZod, QualifiedSequenceFromStringZod])\n","import { AddressZod, HexZod } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport {\n AttoToJsonZod, AttoZod, JsonToAttoZod,\n} from '../transaction/index.ts'\nimport type { PositionId } from './PositionId.ts'\n\nexport const StakeZod = z.object({\n amount: AttoZod,\n // the block number when the stake was added\n addBlock: z.number(),\n // the unique id for the stake item\n id: z.number(),\n // the block number when the stake was removed (set to 0 if not removed)\n removeBlock: z.number(),\n // the address that is being staked\n staked: AddressZod,\n // the address that owns the stake\n staker: AddressZod,\n // the block number when the stake was withdrawn (set to 0 if not withdrawn)\n withdrawBlock: z.number(),\n})\n\nexport const StakeToJsonZod = StakeZod.transform(val => ({\n addBlock: val.addBlock,\n amount: AttoToJsonZod.parse(val.amount),\n id: val.id,\n removeBlock: val.removeBlock,\n staked: AddressZod.parse(val.staked),\n staker: AddressZod.parse(val.staker),\n withdrawBlock: val.withdrawBlock,\n}))\n\n// we intentionally use extend and not safeExtend here to ensure all fields are present\nexport const JsonToStakeZod = StakeZod.extend({ amount: HexZod }).transform(val => ({\n addBlock: val.addBlock,\n amount: JsonToAttoZod.parse(val.amount),\n id: val.id as PositionId,\n removeBlock: val.removeBlock,\n staked: val.staked,\n staker: val.staker,\n withdrawBlock: val.withdrawBlock,\n}))\n","import { z } from 'zod'\n\nexport const TimeDomainZod = z.union([\n z.literal('xl1'),\n z.literal('epoch'),\n z.literal('ethereum'),\n])\n","import { AddressZod } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nexport const TransferPairZod = z.tuple([\n AddressZod, AddressZod,\n])\n","export const XL1_PROTOCOL_VERSION_MAJOR = 1 as const\nexport const XL1_PROTOCOL_VERSION_MINOR = 2 as const\nexport const XL1_PROTOCOL_VERSION_PATCH = 0 as const\nexport const XL1_PROTOCOL_VERSION_STRING = `${XL1_PROTOCOL_VERSION_MAJOR}.${XL1_PROTOCOL_VERSION_MINOR}.${XL1_PROTOCOL_VERSION_PATCH}` as const\nexport const XL1_PROTOCOL_VERSION = XL1_PROTOCOL_VERSION_MAJOR * 1_000_000 + XL1_PROTOCOL_VERSION_MINOR * 1000 + XL1_PROTOCOL_VERSION_PATCH\n","import type { Payload } from '@xyo-network/sdk-js'\nimport { asSchema, isPayloadOfSchemaType } from '@xyo-network/sdk-js'\n\nexport const NetworkStatusSchema = asSchema('network.xyo.chain.status', true)\nexport type NetworkStatusSchema = typeof NetworkStatusSchema\n\nexport type NetworkStatusState = 'online' | 'offline' | 'degraded' | 'unknown'\n\nexport type NetworkStatusUpdate = {\n end: number\n start: number\n update: string\n}\n\nexport interface NetworkStatusFields {\n description: string\n state: NetworkStatusState\n updates?: NetworkStatusUpdate[]\n}\n\nexport type NetworkStatus = Payload<NetworkStatusFields, NetworkStatusSchema>\n\nexport const isNetworkStatus = isPayloadOfSchemaType<NetworkStatus>(NetworkStatusSchema)\n","import { assertEx, isString } from '@xylabs/sdk-js'\n\nexport type ProviderMoniker = string\n\nexport const asProviderMoniker = <T>(value: T) => {\n const moniker = isString(value) ? (value as unknown as ProviderMoniker) : undefined\n return assertEx(moniker)\n}\n\nexport const DefaultProviderMoniker = 'Provider' as const\nexport type DefaultProviderMoniker = typeof DefaultProviderMoniker\n","import type { Hash } from '@xylabs/sdk-js'\nimport type { WriteArchivistFunctions } from '@xyo-network/sdk-js'\n\nimport type { DataLakeData, DataLakeProvider } from './Provider.ts'\nimport type { DataLakeViewer, DataLakeViewerMethods } from './Viewer.ts'\n\nexport const DataLakeRunnerMoniker = 'DataLakeRunner' as const\nexport type DataLakeRunnerMoniker = typeof DataLakeRunnerMoniker\n\nexport interface DataLakeRunnerMethods extends WriteArchivistFunctions<DataLakeData, DataLakeData, DataLakeData, Hash>, DataLakeViewerMethods {}\n\nexport interface DataLakeRunner extends DataLakeProvider<DataLakeRunnerMoniker>, DataLakeRunnerMethods, Omit<DataLakeViewer, 'moniker'> {}\n","import type { Hash } from '@xylabs/sdk-js'\nimport type { ReadArchivistFunctions, Sequence } from '@xyo-network/sdk-js'\n\nimport type { DataLakeData, DataLakeProvider } from './Provider.ts'\n\nexport const DataLakeViewerMoniker = 'DataLakeViewer' as const\nexport type DataLakeViewerMoniker = typeof DataLakeViewerMoniker\n\nexport interface DataLakeViewerMethods extends ReadArchivistFunctions<DataLakeData, Hash, Sequence> {}\n\nexport interface DataLakeViewer extends DataLakeProvider<DataLakeViewerMoniker>, DataLakeViewerMethods {\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type { Payload, Signed } from '@xyo-network/sdk-js'\n\nimport type { AllowedBlockPayload } from '../../block/index.ts'\nimport type { ChainId } from '../../chain/index.ts'\nimport type { SignedHydratedTransactionWithHashMeta } from '../../model/index.ts'\nimport type { Provider } from '../../provider/index.ts'\nimport type { TransactionBoundWitness, TransactionFeesBigInt } from '../../transaction/index.ts'\n\nexport const XyoSignerMoniker = 'XyoSigner' as const\nexport type XyoSignerMoniker = typeof XyoSignerMoniker\n\nexport interface XyoSignerMethods {\n address(): Promisable<Address>\n // The tx passed in must have all the payloads (on and off chain) in the payloads array\n // Returns the signed transaction and the payloads array excluding the off-chain payloads.\n // The return value is ready to be broadcast to block producers\n signTransaction(tx: [TransactionBoundWitness, Payload[]]): Promisable<SignedHydratedTransactionWithHashMeta>\n}\n\nexport interface XyoSigner extends XyoSignerMethods, Provider<XyoSignerMoniker> {}\n\nexport interface XyoSignerDeprecated {\n /** @deprecated use signTransaction instead */\n createSignedTransaction(\n chain: ChainId,\n elevatedPayloads: AllowedBlockPayload[],\n additionalPayloads: Payload[],\n nbf: number,\n exp: number,\n fees: TransactionFeesBigInt,\n from?: Address,\n ): Promisable<Signed<TransactionBoundWitness>>\n}\n","import type { Provider } from '../provider/index.ts'\nimport type { NetworkStakeViewer, XyoViewer } from '../viewers/index.ts'\nimport type { DataLakeRunner, DataLakeViewer } from './DataLake/index.ts'\nimport type { XyoNetwork } from './XyoNetwork.ts'\nimport type { XyoRunner } from './XyoRunner.ts'\n\nexport const XyoConnectionMoniker = 'XyoConnection' as const\nexport type XyoConnectionMoniker = typeof XyoConnectionMoniker\n\nexport interface XyoConnection extends Provider<XyoConnectionMoniker> {\n network?: XyoNetwork\n networkStake?: NetworkStakeViewer\n runner?: XyoRunner\n storage?: DataLakeRunner | DataLakeViewer | (DataLakeRunner & DataLakeViewer)\n viewer?: XyoViewer\n}\n","import type { Provider, ProviderMoniker } from '../provider/index.ts'\nimport type { XyoConnection } from './XyoConnection.ts'\n\nexport const XyoGatewayMoniker = 'XyoGateway' as const\nexport type XyoGatewayMoniker = typeof XyoGatewayMoniker\n\nexport interface XyoGatewayMethods {}\n\nexport interface XyoGatewayProvider<\n TMoniker extends ProviderMoniker = ProviderMoniker> extends XyoGatewayMethods, Provider<TMoniker> {\n /**\n * Returns the connection provider for this gateway.\n */\n connection: XyoConnection\n}\n\nexport interface XyoGateway extends XyoGatewayProvider<XyoGatewayMoniker>, Provider<XyoGatewayMoniker> {\n}\n","import type {\n Address, Hash, Logger, Promisable,\n} from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\n\nimport type { AllowedBlockPayload } from '../block/index.ts'\nimport type { XL1BlockNumber } from '../BlockNumber/index.ts'\nimport type { ChainId } from '../chain/index.ts'\nimport type {\n SignedHydratedTransaction, SignedHydratedTransactionWithHashMeta,\n UnsignedHydratedTransaction,\n} from '../model/index.ts'\nimport type { TransactionFeesBigInt } from '../transaction/index.ts'\nimport type { AttoXL1 } from '../xl1/index.ts'\nimport type { XyoSigner } from './signer/index.ts'\nimport type { XyoGatewayProvider } from './XyoGateway.ts'\n\nexport type ConfirmSubmittedTransactionOptions = {\n /**\n * Number of attempts to confirm the transaction.\n * Defaults to 20.\n */\n attempts?: number\n /**\n * Delay in milliseconds between confirmation attempts.\n * Defaults to 1000 (1 second).\n */\n delay?: number\n /**\n * Optional logger instance for logging progress.\n */\n logger?: Logger\n}\n\nexport interface TransactionOptions {\n chain?: ChainId\n exp?: XL1BlockNumber\n fees?: TransactionFeesBigInt\n from?: Address\n nbf?: XL1BlockNumber\n}\n\nexport const XyoGatewayRunnerMoniker = 'XyoGatewayRunner' as const\nexport type XyoGatewayRunnerMoniker = typeof XyoGatewayRunnerMoniker\n\nexport interface XyoGatewayRunnerMethods {\n\n addPayloadsToChain(\n onChain: AllowedBlockPayload[],\n offChain: Payload[],\n options?: TransactionOptions\n ): Promisable<[Hash, SignedHydratedTransactionWithHashMeta]>\n\n addTransactionToChain(\n tx: UnsignedHydratedTransaction | SignedHydratedTransaction,\n offChain?: Payload[]\n ): Promisable<[Hash, SignedHydratedTransactionWithHashMeta]>\n\n confirmSubmittedTransaction(txHash: Hash, options?: ConfirmSubmittedTransactionOptions): Promisable<SignedHydratedTransaction>\n\n send(to: Address, amount: AttoXL1, options?: TransactionOptions): Promisable<Hash>\n sendMany(transfers: Record<Address, AttoXL1>, options?: TransactionOptions): Promisable<Hash>\n}\n\nexport interface XyoGatewayRunner extends XyoGatewayRunnerMethods, XyoGatewayProvider<XyoGatewayRunnerMoniker> {\n /**\n * Returns the signer for this gateway.\n */\n signer: XyoSigner\n}\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\n\nimport type { SignedHydratedTransaction } from '../model/index.ts'\nimport type { Provider } from '../provider/index.ts'\nimport type { MempoolRunner } from '../runners/index.ts'\n\nexport interface XyoRunnerMethods {\n broadcastTransaction(transaction: SignedHydratedTransaction): Promisable<Hash>\n}\n\nexport const XyoRunnerMoniker = 'XyoRunner' as const\nexport type XyoRunnerMoniker = typeof XyoRunnerMoniker\n\nexport interface XyoRunner extends XyoRunnerMethods, Provider<XyoRunnerMoniker> {\n mempool: MempoolRunner\n}\n","import type { WithHashMeta } from '@xyo-network/sdk-js'\n\nimport type {\n BlockBoundWitness, SignedBlockBoundWitnessWithHashMeta, SignedHydratedBlockWithHashMeta,\n} from '../block/index.ts'\nimport type { Provider } from '../provider/index.ts'\n\nexport interface BlockRunnerMethods {\n produceNextBlock(head: SignedBlockBoundWitnessWithHashMeta, force: true): Promise<SignedHydratedBlockWithHashMeta>\n produceNextBlock(head: SignedBlockBoundWitnessWithHashMeta, force?: false): Promise<SignedHydratedBlockWithHashMeta | undefined>\n}\n\nexport const BlockRunnerMoniker = 'BlockRunner' as const\nexport type BlockRunnerMoniker = typeof BlockRunnerMoniker\n\nexport interface BlockRunner extends BlockRunnerMethods, Provider<BlockRunnerMoniker> {\n next(head: WithHashMeta<BlockBoundWitness>): Promise<SignedHydratedBlockWithHashMeta | undefined>\n}\n","import type { Hash } from '@xylabs/sdk-js'\n\nimport type { SignedHydratedBlockWithHashMeta } from '../block/index.ts'\nimport type { Provider } from '../provider/index.ts'\n\nexport interface FinalizationRunnerMethods {\n finalizeBlocks(blocks: SignedHydratedBlockWithHashMeta[]): Promise<Hash[]>\n}\n\nexport const FinalizationRunnerMoniker = 'FinalizationRunner' as const\nexport type FinalizationRunnerMoniker = typeof FinalizationRunnerMoniker\n\nexport interface FinalizationRunner extends FinalizationRunnerMethods, Provider<FinalizationRunnerMoniker> {\n finalizeBlock(block: SignedHydratedBlockWithHashMeta): Promise<Hash>\n}\n","import type { Hash } from '@xylabs/sdk-js'\n\nimport type { SignedHydratedBlock } from '../block/index.ts'\nimport type { SignedHydratedTransaction } from '../model/index.ts'\nimport type { Provider } from '../provider/index.ts'\n\nexport interface MempoolRunnerMethods {\n submitBlocks(blocks: SignedHydratedBlock[]): Promise<Hash[]>\n submitTransactions(transactions: SignedHydratedTransaction[]): Promise<Hash[]>\n}\n\nexport const MempoolRunnerMoniker = 'MempoolRunner' as const\nexport type MempoolRunnerMoniker = typeof MempoolRunnerMoniker\n\nexport const DEFAULT_MAX_EXP_AHEAD = 1000\n\nexport interface MempoolPruneOptions {\n batchSize?: number\n maxCheck?: number\n maxPrune?: number\n}\n\nexport interface MempoolRunner extends MempoolRunnerMethods, Provider<MempoolRunnerMoniker> {\n prunePendingBlocks(options?: MempoolPruneOptions): Promise<[number, number]>\n prunePendingTransactions(options?: MempoolPruneOptions): Promise<[number, number]>\n}\n","import { type Hash, isHash } from '@xylabs/sdk-js'\nimport { isError } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\n\nexport class ValidationError<TValue = Payload> extends Error {\n hash: Hash\n value: TValue\n constructor(hash: Hash, value: TValue, message?: string, cause?: unknown) {\n super(message)\n this.hash = hash\n this.name = this.constructor.name\n this.value = value\n this.cause = cause\n }\n}\n\nexport const isValidationError = <TValue = Payload>(\n error: unknown,\n): error is ValidationError<TValue> => {\n return (\n isError(error) && isHash((error as ValidationError<TValue>)?.hash) && (error as ValidationError<TValue>)?.value !== undefined\n )\n}\n","import type { Hash } from '@xylabs/sdk-js'\n\nimport type { BlockBoundWitness, HydratedBlock } from '../../block/index.ts'\nimport type { ChainId } from '../../chain/index.ts'\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class BlockValidationError extends ValidationError<BlockBoundWitness> {}\n\nexport const isBlockValidationError = (\n error: unknown,\n): error is BlockValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === BlockValidationError.constructor.name\n )\n}\n\nexport class HydratedBlockValidationError extends ValidationError<HydratedBlock> {}\n\nexport const isHydratedBlockValidationError = (\n error: unknown,\n): error is HydratedBlockValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedBlockValidationError.constructor.name\n )\n}\n\nexport class HydratedBlockStateValidationError extends ValidationError<HydratedBlock> {\n chainId: ChainId\n constructor(hash: Hash, chainId: ChainId, value: HydratedBlock, message?: string, cause?: unknown) {\n super(hash, value, message, cause)\n this.chainId = chainId\n }\n}\n\nexport const isHydratedBlockStateValidationError = (\n error: unknown,\n): error is HydratedBlockStateValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedBlockStateValidationError.constructor.name\n )\n}\n","import type { BoundWitness, HydratedBoundWitness } from '@xyo-network/sdk-js'\n\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class BoundWitnessValidationError extends ValidationError<BoundWitness> {}\n\nexport const isBoundWitnessValidationError = (\n error: unknown,\n): error is BoundWitnessValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === BoundWitnessValidationError.constructor.name\n )\n}\n\nexport class HydratedBoundWitnessValidationError extends ValidationError<HydratedBoundWitness> {}\n\nexport const isHydratedBoundWitnessValidationError = (\n error: unknown,\n): error is HydratedBoundWitnessValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedBoundWitnessValidationError.constructor.name\n )\n}\n","import type { Hash } from '@xylabs/sdk-js'\nimport { type Payload } from '@xyo-network/sdk-js'\n\nimport type { HydratedBlock } from '../../block/index.ts'\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class InBlockPayloadValidationError extends ValidationError<Payload> {\n block: HydratedBlock\n constructor(hash: Hash, block: HydratedBlock, value: Payload, message?: string, cause?: unknown) {\n super(hash, value, message, cause)\n this.block = block\n }\n}\n\nexport const isInBlockPayloadValidationError = (\n error: unknown,\n): error is InBlockPayloadValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === InBlockPayloadValidationError.constructor.name\n )\n}\n","import type { HydratedTransaction } from '../../model/index.ts'\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class HydratedTransactionValidationError extends ValidationError<HydratedTransaction> {}\n\nexport const isHydratedTransactionValidationError = (\n error: unknown,\n): error is HydratedTransactionValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedTransactionValidationError.constructor.name\n )\n}\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\nimport type { Payload, WithHashMeta } from '@xyo-network/sdk-js'\n\nimport type { SignedHydratedBlockWithHashMeta } from '../block/index.ts'\nimport type { XL1BlockNumber } from '../BlockNumber/index.ts'\nimport type { ChainId } from '../chain/index.ts'\nimport type {\n BlockRate, SingleTimeConfig, TimeDurations, XL1BlockRange,\n} from '../model/index.ts'\nimport type { Provider, ProviderMoniker } from '../provider/index.ts'\n\nexport interface BlockViewerMethods {\n blocksByHash(hash: Hash, limit?: number): Promisable<SignedHydratedBlockWithHashMeta[]>\n blocksByNumber(block: XL1BlockNumber, limit?: number): Promisable<SignedHydratedBlockWithHashMeta[]>\n currentBlock(): Promisable<SignedHydratedBlockWithHashMeta>\n payloadsByHash(hashes: Hash[]): Promisable<WithHashMeta<Payload>[]>\n}\n\nexport const BlockViewerMoniker = 'BlockViewer' as const\nexport type BlockViewerMoniker = typeof BlockViewerMoniker\n\nexport interface BlockViewer<TMoniker extends ProviderMoniker = BlockViewerMoniker> extends BlockViewerMethods, Provider<TMoniker> {\n blockByHash(hash: Hash): Promisable<SignedHydratedBlockWithHashMeta | null>\n blockByNumber(block: XL1BlockNumber): Promisable<SignedHydratedBlockWithHashMeta | null>\n chainId(): Promisable<ChainId>\n chainId(blockNumber: XL1BlockNumber): Promisable<ChainId>\n chainId(blockNumber: 'latest'): Promisable<ChainId>\n currentBlockHash(): Promisable<Hash>\n currentBlockNumber(): Promisable<XL1BlockNumber>\n payloadByHash(hash: Hash): Promisable<WithHashMeta<Payload> | null>\n rate(range: XL1BlockRange, timeUnit?: keyof TimeDurations): Promisable<BlockRate>\n stepSizeRate(start: XL1BlockNumber, stepIndex: number, count?: number, timeUnit?: keyof TimeDurations): Promisable<BlockRate>\n timeDurationRate(\n timeConfig: SingleTimeConfig,\n startBlockNumber?: XL1BlockNumber,\n timeUnit?: keyof TimeDurations,\n toleranceMs?: number,\n maxAttempts?: number,\n ): Promisable<BlockRate>\n}\n","import { type Promisable } from '@xylabs/sdk-js'\nimport { zodIsFactory } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport type { SignedHydratedBlock, SignedHydratedBlockWithHashMeta } from '../block/index.ts'\nimport {\n ChainQualificationZod, ChainQualifiedHeadConfigZod, ChainQualifiedRangeConfigZod,\n} from '../model/index.ts'\nimport type { Provider } from '../provider/index.ts'\nimport type { HydratedBlockValidationError } from '../validation/index.ts'\n\nexport const BlockInvalidationQualificationZod = ChainQualificationZod\nexport type BlockInvalidationQualification = z.infer<typeof BlockInvalidationQualificationZod>\nexport const isBlockInvalidationQualification = zodIsFactory(BlockInvalidationQualificationZod)\n\nexport const BlockInvalidationConfigFieldsZod = z.object({\n state: z.boolean().optional(),\n value: z.boolean().optional(),\n})\n\nexport const BlockInvalidationConfigZod = z.union([\n BlockInvalidationConfigFieldsZod.extend(ChainQualifiedHeadConfigZod.shape),\n BlockInvalidationConfigFieldsZod.extend(ChainQualifiedRangeConfigZod.shape),\n BlockInvalidationConfigFieldsZod,\n z.object({}),\n])\n\nexport type BlockInvalidationConfig = z.infer<typeof BlockInvalidationConfigZod>\nexport const isBlockInvalidationConfig = zodIsFactory(BlockInvalidationConfigZod)\n\n/**\n * Checks if blocks are invalid (impossible to ever become valid) according to protocol rules.\n */\n\nexport interface BlockInvalidationViewerMethods {\n qualifiedInvalidateBlocks(\n blocks: SignedHydratedBlock[],\n config?: BlockInvalidationConfig\n ): Promisable<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockInvalidationQualification]>\n\n qualifiedInvalidateUncle(\n blocks: SignedHydratedBlock[],\n config?: BlockInvalidationConfig\n ): Promisable<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockInvalidationQualification]>\n}\n\nexport const BlockInvalidationViewerMoniker = 'BlockInvalidationViewer' as const\nexport type BlockInvalidationViewerMoniker = typeof BlockInvalidationViewerMoniker\n\nexport interface BlockInvalidationViewer extends BlockInvalidationViewerMethods, Provider<BlockInvalidationViewerMoniker> {\n invalidateBlock(\n block: SignedHydratedBlock,\n config?: BlockInvalidationConfig\n ): Promisable<HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta>\n\n invalidateBlocks(\n blocks: SignedHydratedBlock[],\n config?: BlockInvalidationConfig\n ): Promisable<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>\n\n invalidateUncle(\n blocks: SignedHydratedBlock[],\n config?: BlockInvalidationConfig\n ): Promisable<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>\n\n qualifiedInvalidateBlock(\n block: SignedHydratedBlock,\n config?: BlockInvalidationConfig\n ): Promisable<[HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta, BlockInvalidationQualification]>\n}\n","import type { Promisable } from '@xylabs/sdk-js'\n\nimport type { XL1BlockNumber } from '../BlockNumber/index.ts'\nimport type { Provider } from '../provider/index.ts'\nimport type { AttoXL1 } from '../xl1/index.ts'\n\nexport interface BlockRewardViewerMethods {\n // The amount of xl1 to send to the producer from the block reward\n allowedRewardForBlock(block: XL1BlockNumber): Promisable<AttoXL1>\n}\n\nexport const BlockRewardViewerMoniker = 'BlockRewardViewer' as const\nexport type BlockRewardViewerMoniker = typeof BlockRewardViewerMoniker\n\nexport interface BlockRewardViewer extends BlockRewardViewerMethods, Provider<BlockRewardViewerMoniker> {}\n","import { type Promisable } from '@xylabs/sdk-js'\nimport { zodIsFactory } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport type { SignedHydratedBlock, SignedHydratedBlockWithHashMeta } from '../block/index.ts'\nimport {\n ChainQualificationZod, ChainQualifiedHeadConfigZod, ChainQualifiedRangeConfigZod,\n} from '../model/index.ts'\nimport type { Provider } from '../provider/index.ts'\nimport type { HydratedBlockValidationError } from '../validation/index.ts'\n\nexport const BlockValidationQualificationZod = ChainQualificationZod\nexport type BlockValidationQualification = z.infer<typeof BlockValidationQualificationZod>\nexport const isBlockValidationQualification = zodIsFactory(BlockValidationQualificationZod)\n\nexport const BlockValidationConfigFieldsZod = z.object({\n value: z.boolean().optional(),\n state: z.boolean().optional(),\n})\n\nexport const BlockValidationConfigZod = z.union([\n BlockValidationConfigFieldsZod.extend(ChainQualifiedHeadConfigZod.shape),\n BlockValidationConfigFieldsZod.extend(ChainQualifiedRangeConfigZod.shape),\n BlockValidationConfigFieldsZod,\n z.object({}),\n])\n\nexport type BlockValidationConfig = z.infer<typeof BlockValidationConfigZod>\nexport const isBlockValidationConfig = zodIsFactory(BlockValidationConfigZod)\n\nexport interface BlockValidationViewerMethods {\n qualifiedValidateBlocks(\n blocks: SignedHydratedBlock[],\n config?: BlockValidationConfig\n ): Promisable<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockValidationQualification]>\n\n qualifiedValidateUncle(\n blocks: SignedHydratedBlock[],\n config?: BlockValidationConfig\n ): Promisable<[(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[], BlockValidationQualification]>\n}\n\nexport const BlockValidationViewerMoniker = 'BlockValidationViewer' as const\nexport type BlockValidationViewerMoniker = typeof BlockValidationViewerMoniker\n\n/**\n * Checks if blocks are valid (currently valid) according to protocol rules. In the case that they are not valid, they may still become valid in the future.\n */\n\nexport interface BlockValidationViewer extends BlockValidationViewerMethods, Provider<BlockValidationViewerMoniker> {\n qualifiedValidateBlock(\n block: SignedHydratedBlock,\n config?: BlockValidationConfig\n ): Promisable<[HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta, BlockValidationQualification]>\n\n validateBlock(\n block: SignedHydratedBlock,\n config?: BlockValidationConfig\n ): Promisable<HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta>\n\n validateBlocks(\n blocks: SignedHydratedBlock[],\n config?: BlockValidationConfig\n ): Promisable<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>\n\n validateUncle(\n blocks: SignedHydratedBlock[],\n config?: BlockValidationConfig\n ): Promisable<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>\n}\n","import type {\n Address, Hash, Promisable,\n} from '@xylabs/sdk-js'\n\nimport type { XL1BlockNumber } from '../BlockNumber/index.ts'\nimport type { ChainId } from '../chain/index.ts'\nimport type { Provider } from '../provider/index.ts'\n\nexport interface ChainContractViewerMethods {\n chainId(): Promisable<ChainId>\n forkedAtBlockNumber(): Promisable<XL1BlockNumber | null>\n forkedAtHash(): Promisable<Hash | null>\n forkedChainId(): Promisable<ChainId | null>\n minWithdrawalBlocks(): Promisable<number>\n rewardsContract(): Promisable<Address>\n stakingTokenAddress(): Promisable<Address>\n}\n\nexport const ChainContractViewerMoniker = 'ChainContractViewer' as const\nexport type ChainContractViewerMoniker = typeof ChainContractViewerMoniker\n\nexport interface ChainContractViewer extends ChainContractViewerMethods, Provider<ChainContractViewerMoniker> {\n chainIdAtBlockNumber(blockNumber: XL1BlockNumber | 'latest'): Promisable<ChainId>\n forkedChainContractViewer(): Promisable<ChainContractViewer | null>\n}\n","import type { Provider } from '../provider/index.ts'\nimport type { ChainContractViewer } from './ChainContract.ts'\nimport type { StakeTotalsViewer } from './StakeTotals.ts'\n\nexport const ChainStakeViewerMoniker = 'ChainStakeViewer' as const\nexport type ChainStakeViewerMoniker = typeof ChainStakeViewerMoniker\n\nexport interface ChainStakeViewer extends Omit<ChainContractViewer, 'moniker'>, Omit<StakeTotalsViewer, 'moniker'>,\n Provider<ChainStakeViewerMoniker> {\n\n}\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\n\nimport type { SignedBlockBoundWitnessWithHashMeta, SignedHydratedBlockWithHashMeta } from '../block/index.ts'\nimport type { XL1BlockNumber } from '../BlockNumber/index.ts'\nimport type { ChainId } from '../chain/index.ts'\nimport type { Provider } from '../provider/index.ts'\n\nexport interface FinalizationViewerMethods {\n head(): Promisable<SignedHydratedBlockWithHashMeta>\n}\n\nexport const FinalizationViewerMoniker = 'FinalizationViewer' as const\nexport type FinalizationViewerMoniker = typeof FinalizationViewerMoniker\n\nexport interface FinalizationViewer extends FinalizationViewerMethods, Provider<FinalizationViewerMoniker> {\n chainId(): Promisable<ChainId>\n headBlock(): Promisable<SignedBlockBoundWitnessWithHashMeta>\n headHash(): Promisable<Hash>\n headNumber(): Promisable<XL1BlockNumber>\n}\n","import { HashZod } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport type { SignedHydratedBlockWithHashMeta } from '../block/index.ts'\nimport type { SignedHydratedTransactionWithHashMeta } from '../model/index.ts'\nimport { XL1BlockRangeZod } from '../model/index.ts'\nimport type { Provider } from '../provider/index.ts'\n\nexport const PendingTransactionsOptionsZod = z.object({\n cursor: HashZod.optional(),\n limit: z.number().int().positive().optional(),\n window: XL1BlockRangeZod.optional(),\n})\n\nexport type PendingTransactionsOptions = z.infer<typeof PendingTransactionsOptionsZod>\n\nexport const PendingBlocksOptionsZod = z.object({\n cursor: HashZod.optional(),\n limit: z.number().int().positive().optional(),\n window: XL1BlockRangeZod.optional(),\n})\n\nexport type PendingBlocksOptions = z.infer<typeof PendingBlocksOptionsZod>\n\nexport interface MempoolViewerMethods {\n pendingBlocks(options?: PendingBlocksOptions): Promise<SignedHydratedBlockWithHashMeta[]>\n pendingTransactions(options?: PendingTransactionsOptions): Promise<SignedHydratedTransactionWithHashMeta[]>\n}\n\nexport const MempoolViewerMoniker = 'MempoolViewer' as const\nexport type MempoolViewerMoniker = typeof MempoolViewerMoniker\n\nexport interface MempoolViewer extends MempoolViewerMethods, Provider<MempoolViewerMoniker> {}\n","import type { Promisable } from '@xylabs/sdk-js'\n\nimport type { Provider } from '../../provider/index.ts'\nimport type { NetworkStakeStepRewardsViewer } from './Rewards/index.ts'\n\nexport interface NetworkStakeViewerMethods {\n /** @returns the active stake and the number of active validators [active, block] */\n active(blockNumber?: number): Promisable<[bigint, number]>\n}\n\nexport const NetworkStakeViewerMoniker = 'NetworkStakeViewer' as const\nexport type NetworkStakeViewerMoniker = typeof NetworkStakeViewerMoniker\n\nexport interface NetworkStakeViewer extends NetworkStakeViewerMethods, Provider<NetworkStakeViewerMoniker> {\n stepRewards?: NetworkStakeStepRewardsViewer\n}\n","import type { Provider } from '../../../provider/index.ts'\nimport type { NetworkStakeStepRewardsByPositionViewerOptions } from './Options.ts'\nimport type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './templates/index.ts'\n\n// Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.\n\nexport interface NetworkStakeStepRewardsByPositionViewerMethods extends\n NetworkStakeStepRewardsByIndexViewerMethodsTemplate<NetworkStakeStepRewardsByPositionViewerOptions, number> {}\n\nexport const NetworkStakeStepRewardsByPositionViewerMoniker = 'NetworkStakeStepRewardsByPositionViewer' as const\nexport type NetworkStakeStepRewardsByPositionViewerMoniker = typeof NetworkStakeStepRewardsByPositionViewerMoniker\n\nexport interface NetworkStakeStepRewardsByPositionViewer extends NetworkStakeStepRewardsByPositionViewerMethods,\n Provider<NetworkStakeStepRewardsByPositionViewerMoniker> {}\n","import type { Address } from '@xylabs/sdk-js'\n\nimport type { Provider } from '../../../provider/index.ts'\nimport type { NetworkStakeStepRewardsByStakerViewerOptions } from './Options.ts'\nimport type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './templates/index.ts'\n\n// Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.\n\nexport interface NetworkStakeStepRewardsByStakerViewerMethods\n extends NetworkStakeStepRewardsByIndexViewerMethodsTemplate<NetworkStakeStepRewardsByStakerViewerOptions, Address> {}\n\nexport const NetworkStakeStepRewardsByStakerViewerMoniker = 'NetworkStakeStepRewardsByStakerViewer' as const\nexport type NetworkStakeStepRewardsByStakerViewerMoniker = typeof NetworkStakeStepRewardsByStakerViewerMoniker\n\nexport interface NetworkStakeStepRewardsByStakerViewer extends NetworkStakeStepRewardsByStakerViewerMethods,\n Provider<NetworkStakeStepRewardsByStakerViewerMoniker> {}\n","import type { Provider } from '../../../provider/index.ts'\nimport type { StepIdentityString } from '../../../Step/index.ts'\nimport type { NetworkStakeStepRewardsByStepViewerOptions } from './Options.ts'\nimport type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './templates/index.ts'\n\n// Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.\n\nexport interface NetworkStakeStepRewardsByStepViewerMethods extends\n NetworkStakeStepRewardsByIndexViewerMethodsTemplate<NetworkStakeStepRewardsByStepViewerOptions, StepIdentityString> {}\n\nexport const NetworkStakeStepRewardsByStepViewerMoniker = 'NetworkStakeStepRewardsByStepViewer' as const\nexport type NetworkStakeStepRewardsByStepViewerMoniker = typeof NetworkStakeStepRewardsByStepViewerMoniker\n\nexport interface NetworkStakeStepRewardsByStepViewer extends NetworkStakeStepRewardsByStepViewerMethods, Provider<NetworkStakeStepRewardsByStepViewerMoniker> {}\n","import type { Provider } from '../../../provider/index.ts'\nimport type { AttoXL1 } from '../../../xl1/index.ts'\nimport type { NetworkStakeStepRewardsRangeOptions } from './Options.ts'\nimport type { NetworkStakeStepRewardsViewerMethodsTemplate } from './templates/index.ts'\n\n// Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.\n\nexport interface NetworkStakeStepRewardsTotalViewerMethods extends NetworkStakeStepRewardsViewerMethodsTemplate<NetworkStakeStepRewardsRangeOptions, AttoXL1> {}\n\nexport const NetworkStakeStepRewardsTotalViewerMoniker = 'NetworkStakeStepRewardsTotalViewer' as const\nexport type NetworkStakeStepRewardsTotalViewerMoniker = typeof NetworkStakeStepRewardsTotalViewerMoniker\n\nexport interface NetworkStakeStepRewardsTotalViewer extends NetworkStakeStepRewardsTotalViewerMethods, Provider<NetworkStakeStepRewardsTotalViewerMoniker> {}\n","import type { Provider } from '../../../provider/index.ts'\nimport type { NetworkStakeStepRewardsByPositionViewer } from './ByPositionViewer.ts'\nimport type { NetworkStakeStepRewardsByStakerViewer } from './ByStakerViewer.ts'\nimport type { NetworkStakeStepRewardsByStepViewer } from './ByStepViewer.ts'\nimport type { NetworkStakeStepRewardsTotalViewer } from './TotalViewer.ts'\n\nexport interface NetworkStakeStepRewardsViewerMethods {}\n\nexport const NetworkStakeStepRewardsViewerMoniker = 'NetworkStakeStepRewardsViewer' as const\nexport type NetworkStakeStepRewardsViewerMoniker = typeof NetworkStakeStepRewardsViewerMoniker\n\nexport interface NetworkStakeStepRewardsViewer extends NetworkStakeStepRewardsViewerMethods, Provider<NetworkStakeStepRewardsViewerMoniker> {\n position?: NetworkStakeStepRewardsByPositionViewer\n staker?: NetworkStakeStepRewardsByStakerViewer\n step?: NetworkStakeStepRewardsByStepViewer\n total?: NetworkStakeStepRewardsTotalViewer\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\n\nimport type { Provider } from '../provider/index.ts'\nimport type { StepIdentity, StepIdentityString } from '../Step/index.ts'\nimport type { AttoXL1 } from '../xl1/index.ts'\n\nexport interface NetworkStakeStepAddressRewardViewerMethods {\n // the step rewards for a specific network stakers for all of history\n networkStakeStepRewardAddressHistory(address: Address): Promisable<Record<Address, AttoXL1>>\n\n // the step rewards for a specific network stakers for a given step and block\n networkStakeStepRewardAddressReward(context: StepIdentity, address: Address): Promisable<Record<Address, AttoXL1>>\n\n // the shares for a specific network staker for a given step and block\n networkStakeStepRewardAddressShare(context: StepIdentity, address: Address): Promisable<[/* address shares */bigint, /* total shares */bigint]>\n\n // estimate the current reward weight for a given address at a given step\n networkStakeStepRewardWeightForAddress(context: StepIdentity, address: Address): Promisable<bigint>\n}\n\nexport interface NetworkStakeStepPoolRewardViewerMethods {\n\n // all the step rewards for all the network stakers for a given step and block\n networkStakeStepRewardPoolRewards(context: StepIdentity): Promisable<Record<Address, AttoXL1>>\n\n // all the shares for all the network stakers for a given step and block\n networkStakeStepRewardPoolShares(context: StepIdentity): Promisable<Record<Address, bigint>>\n}\n\nexport interface NetworkStakeStepRewardPositionViewerMethods {\n // estimate the current weight for a given position at a given step\n networkStakeStepRewardPositionWeight(context: StepIdentity, position: number): Promisable<bigint>\n\n // estimate the potential loss for removing a given position at a given step\n networkStakeStepRewardPotentialPositionLoss(context: StepIdentity, position: number): Promisable<AttoXL1>\n}\n\nexport interface NetworkStakeStepRewardViewerMethods extends\n NetworkStakeStepPoolRewardViewerMethods,\n NetworkStakeStepAddressRewardViewerMethods,\n NetworkStakeStepRewardPositionViewerMethods\n{\n networkStakeStepRewardClaimedByAddress(address: Address): Promisable<AttoXL1>\n\n // the share & total rewards for a given position\n networkStakeStepRewardForPosition(position: number, range: [number, number]): Promisable<[AttoXL1, AttoXL1]>\n\n // estimate the total possible block rewards for a given step\n networkStakeStepRewardForStep(context: StepIdentity): Promisable<AttoXL1>\n\n // the share & total rewards for a given step and block for a given position\n networkStakeStepRewardForStepForPosition(context: StepIdentity, position: number): Promisable<[AttoXL1, AttoXL1]>\n\n // the predictable random number for a given step and block\n networkStakeStepRewardRandomizer(context: StepIdentity): Promisable<AttoXL1>\n\n // the total number of stakers for a given step and block\n networkStakeStepRewardStakerCount(context: StepIdentity): Promisable<number>\n\n networkStakeStepRewardUnclaimedByAddress(address: Address): Promisable<AttoXL1>\n\n // the share & total rewards for a given position for each step in range\n networkStakeStepRewardsForPosition(position: number,\n range: [number, number]): Promisable<Record<StepIdentityString, [AttoXL1, AttoXL1]>>\n\n // the total rewards for a given range\n networkStakeStepRewardsForRange(range: [number, number]): Promisable<AttoXL1>\n\n // the total rewards for a given range and step level\n networkStakeStepRewardsForStepLevel(stepLevel: number, range: [number, number]): Promisable<AttoXL1>\n}\n\nexport const NetworkStakeStepRewardViewerMoniker = 'NetworkStakeStepRewardViewer' as const\nexport type NetworkStakeStepRewardViewerMoniker = typeof NetworkStakeStepRewardViewerMoniker\n\nexport interface NetworkStakeStepRewardViewer extends NetworkStakeStepRewardViewerMethods, Provider<NetworkStakeStepRewardViewerMoniker> {}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\n\nimport type { Position } from '../model/index.ts'\nimport type { Provider } from '../provider/index.ts'\nimport type { StakeEventsViewer } from './StakeEvents.ts'\n\nexport interface StakeViewerProperties {\n stakeEvents: StakeEventsViewer\n}\n\nexport interface StakeViewerMethods {\n minWithdrawalBlocks(): Promisable<number>\n rewardsContract(): Promisable<Address>\n stakeById(id: number): Promisable<Position>\n stakeByStaker(staker: Address, slot: number): Promisable<Position>\n stakesByStaked(staked: Address): Promisable<Position[]>\n stakesByStaker(staker: Address): Promisable<Position[]>\n stakingTokenAddress(): Promisable<Address>\n}\n\nexport const StakeViewerMoniker = 'StakeViewer' as const\nexport type StakeViewerMoniker = typeof StakeViewerMoniker\n\nexport interface StakeViewer extends StakeViewerMethods, StakeViewerProperties, Provider<StakeViewerMoniker> {\n activeStakes(): Promisable<Position[]>\n removedStakes(): Promisable<Position[]>\n withdrawnStakes(): Promisable<Position[]>\n}\n\nexport const StakeRunnerMoniker = 'StakeRunner' as const\nexport type StakeRunnerMoniker = typeof StakeRunnerMoniker\n\nexport interface StakeRunner extends Provider<StakeRunnerMoniker> {\n addStake(staked: string, amount: bigint): Promise<boolean>\n removeStake(slot: bigint): Promise<boolean>\n withdrawStake(slot: bigint): Promise<boolean>\n}\n","import type {\n Address, JsonObject, Promisable,\n} from '@xylabs/sdk-js'\n\nimport type { Provider } from '../provider/index.ts'\n\nexport const StakeEventNames = ['StakeAdded', 'StakeRemoved', 'StakeWithdrawn'] as const\nexport type StakeEventName = typeof StakeEventNames[number]\n\nexport interface ExternalEvent<TName extends string = string, TArgs extends JsonObject = {}> {\n args: TArgs\n name: TName\n time: number // usually block number\n}\n\nexport interface EventFilter<TName extends string = string> {\n name?: TName\n time?: [number, number]\n}\n\nexport interface StakeEventArgs {\n amount: bigint\n id: number\n staked: Address\n staker: Address\n}\n\nexport type StakeEventFilterArgs = Partial<Pick<StakeEventArgs, 'staker' | 'staked' | 'id'>>\n\nexport interface StakeEventFilter<TName extends StakeEventName = StakeEventName> extends EventFilter<TName> {\n args?: StakeEventFilterArgs\n}\n\nexport interface StakeEvent<TName extends StakeEventName = StakeEventName> extends ExternalEvent<TName> {\n args: StakeEventArgs\n}\n\nexport const StakeEventsViewerMoniker = 'StakeEventsViewer' as const\nexport type StakeEventsViewerMoniker = typeof StakeEventsViewerMoniker\n\nexport interface StakeEventsViewer extends Provider<StakeEventsViewerMoniker> {\n positionCount(range: [number, number | 'latest']): Promisable<number>\n stakeEvents<TName extends StakeEventName>(range: [number, number | 'latest'], filter?: StakeEventFilter<TName>): Promisable<StakeEvent<TName>[]>\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\n\nimport type { Provider } from '../provider/index.ts'\n\nexport interface StakeTotalsViewerMethods {\n active(time?: number): Promisable<bigint>\n activeByStaked(staked: Address, time?: number): Promisable<bigint>\n activeByStaker(address: Address, time?: number): Promisable<bigint>\n pending(time?: number): Promisable<bigint>\n pendingByStaker(staker: Address, time?: number): Promisable<bigint>\n withdrawn(time?: number): Promisable<bigint>\n withdrawnByStaker(staker: Address, time?: number): Promisable<bigint>\n}\n\nexport const StakeTotalsViewerMoniker = 'StakeTotalsViewer' as const\nexport type StakeTotalsViewerMoniker = typeof StakeTotalsViewerMoniker\n\nexport interface StakeTotalsViewer extends StakeTotalsViewerMethods, Provider<StakeTotalsViewerMoniker> {}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\n\nimport type { Provider } from '../provider/index.ts'\nimport type { StepIdentity } from '../Step/index.ts'\n\nexport interface StepStakeViewerMethods {\n // this is the prorated stake for all addresses in the step\n stepStake: (step: StepIdentity) => Promisable<Record<Address, bigint>>\n\n // this is the prorated stake for a specific address in the step\n stepStakeForAddress: (address: Address, step: StepIdentity) => Promisable<bigint>\n}\n\n/* Prorated stake is the amount of stake that is allocated to a specific step\n based on the total stake and the number of steps. This is used to ensure\n that the stake is distributed fairly among all steps.\n\n The simplest way to calculate it is to enumerate every XL1 block in the step add the current stake at that point to a counter.\n For example, if an Address had a stake of 100 for the entire time, then the prorated stake would be 100 * number of blocks in the step.\n*/\n\nexport const StepStakeViewerMoniker = 'StepStakeViewer' as const\nexport type StepStakeViewerMoniker = typeof StepStakeViewerMoniker\n\nexport interface StepStakeViewer extends StepStakeViewerMethods, Provider<StepStakeViewerMoniker> {}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\n\nimport type { Position, PositionId } from '../model/index.ts'\nimport type { Provider } from '../provider/index.ts'\nimport type { StepIdentity } from '../Step/index.ts'\nimport type { NetworkStakeStepRewardsViewer } from './NetworkStake/index.ts'\n\nexport interface PagedPositionsOptions {\n cursor?: PositionId\n limit?: number\n}\n\nexport interface PagedStakersOptions {\n cursor?: Address\n limit?: number\n}\n\nexport interface StepStatistics {\n endTime: number\n startTime: number\n}\n\nexport interface StepViewerMethods {\n\n // the total number of positions for a given step\n positionCount(step: StepIdentity): Promisable<number>\n\n positions(step: StepIdentity, options?: PagedPositionsOptions): Promisable<Position[]>\n\n // the predictable random number for a given step\n randomizer(step: StepIdentity): Promisable<bigint>\n\n // total amount staked during a given step\n stake(step: StepIdentity): Promisable<bigint>\n\n // the total number of stakers for a given step\n stakerCount(step: StepIdentity): Promisable<number>\n\n stakers(step: StepIdentity, options?: PagedStakersOptions): Promisable<Address[]>\n\n // if no positionId is supplied, returns the total stake weight for the step\n weight(step: StepIdentity, positionId?: PositionId): Promisable<bigint>\n}\n\nexport const StepViewerMoniker = 'StepViewer' as const\nexport type StepViewerMoniker = typeof StepViewerMoniker\n\nexport interface StepViewer extends StepViewerMethods, Provider<StepViewerMoniker> {\n rewards?: NetworkStakeStepRewardsViewer\n}\n","import type { Promisable } from '@xylabs/sdk-js'\n\nimport type { TimeDomain, TimePayload } from '../payload/index.ts'\nimport type { Provider } from '../provider/index.ts'\n\nexport interface TimeSyncViewerMethods {\n /** Convert time between different domains */\n convertTime(fromDomain: TimeDomain, toDomain: TimeDomain, from: number): Promisable<number>\n\n /** Get the current time for a given domain */\n currentTime(domain: TimeDomain): Promisable<[string, number]>\n\n /** Get the current time for a given domain */\n currentTimeAndHash(domain: TimeDomain): Promisable<[number, string | null]>\n\n /** Create a TimePayload with the current time from all configured domains */\n currentTimePayload(): Promisable<TimePayload>\n}\n\nexport const TimeSyncViewerMoniker = 'TimeSyncViewer' as const\nexport type TimeSyncViewerMoniker = typeof TimeSyncViewerMoniker\n\nexport interface TimeSyncViewer extends TimeSyncViewerMethods, Provider<TimeSyncViewerMoniker> {}\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\n\nimport type { SignedHydratedTransaction, SignedHydratedTransactionWithHashMeta } from '../model/index.ts'\nimport type { Provider, ProviderMoniker } from '../provider/index.ts'\n\nexport interface TransactionViewerMethods {\n byHash(transactionHash: Hash): Promisable<SignedHydratedTransactionWithHashMeta | null>\n\n /** @deprecated use .byBlockHashAndIndex instead */\n transactionByBlockHashAndIndex(blockHash: Hash, transactionIndex: number): Promisable<SignedHydratedTransaction | null>\n /** @deprecated use .byBlockNumberAndIndex instead */\n transactionByBlockNumberAndIndex(blockNumber: number, transactionIndex: number): Promisable<SignedHydratedTransaction | null>\n /** @deprecated use .byHash instead */\n transactionByHash(transactionHash: Hash): Promisable<SignedHydratedTransaction | null>\n}\n\nexport const TransactionViewerMoniker = 'TransactionViewer' as const\nexport type TransactionViewerMoniker = typeof TransactionViewerMoniker\n\nexport interface TransactionViewer<TMoniker extends ProviderMoniker = TransactionViewerMoniker> extends TransactionViewerMethods, Provider<TMoniker> {\n byBlockHashAndIndex(blockHash: Hash, transactionIndex: number): Promisable<SignedHydratedTransactionWithHashMeta | null>\n byBlockNumberAndIndex(blockNumber: number, transactionIndex: number): Promisable<SignedHydratedTransactionWithHashMeta | null>\n}\n","import { type Promisable } from '@xylabs/sdk-js'\nimport { zodIsFactory } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport type { SignedHydratedTransaction, SignedHydratedTransactionWithHashMeta } from '../model/index.ts'\nimport {\n ChainQualificationZod, ChainQualifiedHeadConfigZod, ChainQualifiedRangeConfigZod,\n} from '../model/index.ts'\nimport type { Provider } from '../provider/index.ts'\nimport type { HydratedTransactionValidationError } from '../validation/index.ts'\n\nexport const TransactionInvalidationQualificationZod = ChainQualificationZod\nexport type TransactionInvalidationQualification = z.infer<typeof TransactionInvalidationQualificationZod>\nexport const isTransactionInvalidationQualification = zodIsFactory(TransactionInvalidationQualificationZod)\n\nexport const TransactionInvalidationConfigFieldsZod = z.object({\n state: z.boolean().optional(),\n value: z.boolean().optional(),\n})\n\nexport const TransactionInvalidationConfigZod = z.union([\n TransactionInvalidationConfigFieldsZod.extend(ChainQualifiedHeadConfigZod.shape),\n TransactionInvalidationConfigFieldsZod.extend(ChainQualifiedRangeConfigZod.shape),\n TransactionInvalidationConfigFieldsZod,\n z.object({}),\n])\n\nexport type TransactionInvalidationConfig = z.infer<typeof TransactionInvalidationConfigZod>\nexport const isTransactionInvalidationConfig = zodIsFactory(TransactionInvalidationConfigZod)\n\n/**\n * Checks if transactions are invalid (impossible to ever become valid) according to protocol rules.\n */\n\nexport interface TransactionInvalidationViewerMethods {\n qualifiedInvalidateTransactions(\n blocks: SignedHydratedTransaction[],\n config?: TransactionInvalidationConfig\n ): Promisable<[(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[], TransactionInvalidationQualification]>\n}\n\nexport const TransactionInvalidationViewerMoniker = 'TransactionInvalidationViewer' as const\nexport type TransactionInvalidationViewerMoniker = typeof TransactionInvalidationViewerMoniker\n\nexport interface TransactionInvalidationViewer extends TransactionInvalidationViewerMethods, Provider<TransactionInvalidationViewerMoniker> {\n invalidateTransaction(\n block: SignedHydratedTransaction,\n config?: TransactionInvalidationConfig\n ): Promisable<HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta>\n\n invalidateTransactions(\n blocks: SignedHydratedTransaction[],\n config?: TransactionInvalidationConfig\n ): Promisable<(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[]>\n\n qualifiedInvalidateTransaction(\n block: SignedHydratedTransaction,\n config?: TransactionInvalidationConfig\n ): Promisable<[HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta, TransactionInvalidationQualification]>\n}\n","import { type Promisable } from '@xylabs/sdk-js'\nimport { zodIsFactory } from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\nimport type { SignedHydratedTransaction, SignedHydratedTransactionWithHashMeta } from '../model/index.ts'\nimport {\n ChainQualificationZod, ChainQualifiedHeadConfigZod, ChainQualifiedRangeConfigZod,\n} from '../model/index.ts'\nimport type { Provider } from '../provider/index.ts'\nimport type { HydratedTransactionValidationError } from '../validation/index.ts'\n\nexport const TransactionValidationQualificationZod = ChainQualificationZod\nexport type TransactionValidationQualification = z.infer<typeof TransactionValidationQualificationZod>\nexport const isTransactionValidationQualification = zodIsFactory(TransactionValidationQualificationZod)\n\nexport const TransactionValidationConfigFieldsZod = z.object({\n value: z.boolean().optional(),\n state: z.boolean().optional(),\n})\n\nexport const TransactionValidationConfigZod = z.union([\n TransactionValidationConfigFieldsZod.extend(ChainQualifiedHeadConfigZod.shape),\n TransactionValidationConfigFieldsZod.extend(ChainQualifiedRangeConfigZod.shape),\n TransactionValidationConfigFieldsZod,\n z.object({}),\n])\n\nexport type TransactionValidationConfig = z.infer<typeof TransactionValidationConfigZod>\nexport const isTransactionValidationConfig = zodIsFactory(TransactionValidationConfigZod)\n\nexport interface TransactionValidationViewerMethods {\n qualifiedValidateTransactions(\n blocks: SignedHydratedTransaction[],\n config?: TransactionValidationConfig\n ): Promisable<[(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[], TransactionValidationQualification]>\n}\n\nexport const TransactionValidationViewerMoniker = 'TransactionValidationViewer' as const\nexport type TransactionValidationViewerMoniker = typeof TransactionValidationViewerMoniker\n\n/**\n * Checks if transactions are valid (currently valid) according to protocol rules.\n * In the case that they are not valid, they may still become valid in the future.\n */\n\nexport interface TransactionValidationViewer extends TransactionValidationViewerMethods, Provider<TransactionValidationViewerMoniker> {\n qualifiedValidateTransaction(\n block: SignedHydratedTransaction,\n config?: TransactionValidationConfig\n ): Promisable<[HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta, TransactionValidationQualification]>\n\n validateTransaction(\n block: SignedHydratedTransaction,\n config?: TransactionValidationConfig\n ): Promisable<HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta>\n\n validateTransactions(\n blocks: SignedHydratedTransaction[],\n config?: TransactionValidationConfig\n ): Promisable<(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[]>\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type { Signed } from '@xyo-network/sdk-js'\n\nimport type { BlockBoundWitness } from '../block/index.ts'\nimport type { XL1BlockRange } from '../model/index.ts'\nimport type { Provider } from '../provider/index.ts'\nimport type { TransactionBoundWitness } from '../transaction/index.ts'\nimport type { Transfer } from '../TransferPayload.ts'\nimport type { AttoXL1 } from '../xl1/index.ts'\n\nexport type TransferBalanceHistoryItem = [\n Signed<BlockBoundWitness> /* block */,\n Signed<TransactionBoundWitness> | null,\n Transfer, /* the actual transfer payload */\n]\nexport type TransferPair = [Address, Address]\n\nexport interface TransferBalancesViewerMethods {\n transferBalances(address: Address[]): Promisable<Partial<Record<Address, Record<Address, AttoXL1>>>>\n transferBalancesHistories(address: Address[]): Promisable<Partial<Record<Address, Record<Address, TransferBalanceHistoryItem[]>>>>\n transferPairBalances(address: TransferPair[]): Promisable<Partial<Record<Address, Record<Address, AttoXL1>>>>\n transferPairBalancesHistories(address: TransferPair[]): Promisable<Partial<Record<Address, Record<Address, TransferBalanceHistoryItem[]>>>>\n}\n\nexport const TransferBalanceViewerMoniker = 'TransferBalanceViewer' as const\nexport type TransferBalanceViewerMoniker = typeof TransferBalanceViewerMoniker\n\nexport interface TransferBalanceViewer extends TransferBalancesViewerMethods, Provider<TransferBalanceViewerMoniker> {\n transferBalance(address: Address): Promisable<AttoXL1>\n transferBalanceHistory(address: Address, range?: XL1BlockRange): Promisable<TransferBalanceHistoryItem[]>\n transferPairBalance(address: TransferPair): Promisable<AttoXL1>\n transferPairBalanceHistory(address: TransferPair): Promisable<TransferBalanceHistoryItem[]>\n}\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\n\nimport type { HydratedBlockWithHashMeta } from '../block/index.ts'\nimport type { Provider, ProviderMoniker } from '../provider/index.ts'\nimport type { BlockViewerMethods } from './Block.ts'\n\ntype ExtendableBlockViewerMethods = Omit<BlockViewerMethods, 'rate' | 'stepSizeRate' | 'timeDurationRate'>\n\nexport interface WindowedBlockViewerMethods extends ExtendableBlockViewerMethods {\n blocksByTransactionHashes(hashes: Hash[]): Promisable<HydratedBlockWithHashMeta[]>\n}\n\nexport const WindowedBlockViewerMoniker = 'WindowedBlockViewer' as const\nexport type WindowedBlockViewerMoniker = typeof WindowedBlockViewerMoniker\n\nexport interface WindowedBlockViewer<TMoniker extends ProviderMoniker = WindowedBlockViewerMoniker> extends WindowedBlockViewerMethods, Provider<TMoniker> {\n blockByTransactionHash(hash: Hash): Promisable<HydratedBlockWithHashMeta | null>\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\n\nimport type {\n AccountBalanceHistoryItem, AccountBalanceViewer, ChainQualifiedConfig,\n} from '../model/index.ts'\nimport type { Provider } from '../provider/index.ts'\nimport type { AttoXL1 } from '../xl1/index.ts'\nimport type { BlockViewer, BlockViewerMethods } from './Block.ts'\nimport type { FinalizationViewer } from './Finalization.ts'\nimport type { ForkViewerMethods } from './Fork.ts'\nimport type { MempoolViewer } from './Mempool.ts'\nimport type { NetworkStakeViewer } from './NetworkStake/index.ts'\nimport type { NetworkStakeStepRewardViewerMethods } from './NetworkStakeStepReward.ts'\nimport type { StakeViewer, StakeViewerMethods } from './Stake.ts'\nimport type { StepViewer } from './StepViewer.ts'\nimport type { TimeSyncViewer } from './TimeSync.ts'\nimport type { TransactionViewer, TransactionViewerMethods } from './Transaction.ts'\n\nexport interface XyoViewerMethods extends\n NetworkStakeStepRewardViewerMethods, BlockViewerMethods,\n Omit<TransactionViewerMethods, 'byHash'>, Omit<\n StakeViewerMethods, 'minWithdrawalBlocks' | 'rewardsContract' | 'stakingTokenAddress' | 'active'\n | 'activeByAddressStaked' | 'activeByStaker' | 'pending' | 'pendingByStaker' | 'withdrawn' | 'withdrawnByStaker'\n >, ForkViewerMethods {\n /** @deprecated Use .account.balance.accountBalance instead */\n accountBalance(address: Address, config?: ChainQualifiedConfig): Promisable<AttoXL1>\n /** @deprecated Use .account.balance.accountBalanceHistory instead */\n accountBalanceHistory(address: Address, config?: ChainQualifiedConfig): Promisable<AccountBalanceHistoryItem[]>\n}\n\nexport interface XyoViewerMethodsV2 {\n\n}\n\nexport const XyoViewerMoniker = 'XyoViewer' as const\nexport type XyoViewerMoniker = typeof XyoViewerMoniker\n\nexport interface XyoViewer extends Omit<BlockViewer, 'moniker'>, XyoViewerMethods,\n Omit<\n StakeViewerMethods, 'moniker' | 'minWithdrawalBlocks' | 'rewardsContract' | 'stakingTokenAddress' | 'active'\n | 'activeByAddressStaked' | 'activeByStaker' | 'pending' | 'pendingByStaker' | 'withdrawn' | 'withdrawnByStaker'\n >, Provider<XyoViewerMoniker> {\n account: {\n balance: AccountBalanceViewer\n }\n block: BlockViewer\n finalization: FinalizationViewer\n mempool: MempoolViewer\n networkStake: NetworkStakeViewer\n stake: StakeViewer\n step: StepViewer\n time: TimeSyncViewer\n transaction: TransactionViewer\n}\n\nexport interface XyoViewerV2 extends XyoViewerMethodsV2, Provider<XyoViewerMoniker> {\n account: {\n balance: AccountBalanceViewer\n }\n block: BlockViewer\n finalization: FinalizationViewer\n mempool: MempoolViewer\n networkStake: NetworkStakeViewer\n stake: StakeViewer\n step: StepViewer\n time: TimeSyncViewer\n transaction: TransactionViewer\n}\n"],"mappings":"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","names":["zodIsFactory","z","HexZod","z","HexZod","AsObjectFactory","asSchema","isPayloadOfZodType","z","asSchema","z","isPayloadOfZodType","AsObjectFactory","AsObjectFactory","HexZod","asSchema","isPayloadOfZodType","asSchema","HexZod","isPayloadOfZodType","AsObjectFactory","AsObjectFactory","asSchema","AsObjectFactory","asSchema","isPayloadOfSchemaType","AsObjectFactory","asSchema","isPayloadOfSchemaType","AsObjectFactory","asSchema","isPayloadOfSchemaType","z","AsObjectFactory","asSchema","isPayloadOfZodType","z","z","z","z","zodAsFactory","zodToFactory","z","z","zodAsFactory","zodToFactory","zodAsFactory","zodToFactory","z","z","zodAsFactory","zodToFactory","z","asSchema","isPayloadOfZodType","AsObjectFactory","zodAsFactory","zodIsFactory","zodToFactory","z","z","HexZod","zodAsFactory","zodToFactory","z","z","HexZod","zodAsFactory","zodToFactory","z","zodIsFactory","zodAsFactory","zodToFactory","AddressZod","AsObjectFactory","HexZod","asSchema","isPayloadOfSchemaType","PayloadZodOfSchema","z","z","zodIsFactory","HashZod","zodAsFactory","zodIsFactory","zodToFactory","BoundWitnessZod","WithHashMetaZod","WithStorageMetaZod","z","z","HashZod","BoundWitnessZod","zodIsFactory","zodAsFactory","zodToFactory","WithHashMetaZod","WithStorageMetaZod","zodAsFactory","zodIsFactory","zodToFactory","WithHashMetaZod","WithStorageMetaZod","z","zodAsFactory","zodIsFactory","zodToFactory","SignedBoundWitnessZod","SignedBoundWitnessZod","zodIsFactory","zodAsFactory","zodToFactory","zodAsFactory","zodIsFactory","zodToFactory","WithHashMetaZod","WithHashMetaZod","zodIsFactory","zodAsFactory","zodToFactory","zodAsFactory","zodIsFactory","zodToFactory","PayloadBuilder","WithStorageMetaZod","WithStorageMetaZod","zodIsFactory","zodAsFactory","PayloadBuilder","zodToFactory","z","zodIsFactory","zodAsFactory","zodToFactory","WithHashMetaZod","WithStorageMetaZod","zodAsFactory","zodIsFactory","zodToFactory","UnsignedBoundWitnessZod","UnsignedBoundWitnessZod","zodIsFactory","zodAsFactory","zodToFactory","AsObjectFactory","asSchema","isPayloadOfSchemaType","zodIsFactory","WithHashMetaZod","z","HashZod","zodIsFactory","z","zodAsFactory","zodToFactory","z","z","zodAsFactory","zodToFactory","assertError","isDefined","zodAsFactory","zodToFactory","z","z","zodAsFactory","zodToFactory","isDefined","assertError","zodAsFactory","zodIsFactory","zodToFactory","z","assertError","isDefined","zodAsFactory","zodToFactory","z","z","zodAsFactory","zodToFactory","isDefined","assertError","z","HashZod","zodIsFactory","z","WithHashMetaZod","zodIsFactory","z","zodAsFactory","zodIsFactory","z","z","zodIsFactory","zodAsFactory","z","z","z","WithHashMetaZod","z","z","WithHashMetaZod","zodAsFactory","zodIsFactory","zodToFactory","PayloadZod","PayloadZodLoose","WithHashMetaZod","WithStorageMetaZod","z","z","PayloadZodLoose","zodIsFactory","zodAsFactory","zodToFactory","WithHashMetaZod","PayloadZod","WithStorageMetaZod","z","AddressZod","z","z","AddressZod","z","AddressZod","HexZod","z","z","AddressZod","HexZod","z","AddressZod","z","asSchema","isPayloadOfSchemaType","assertEx","zodIsFactory","z","zodIsFactory","z","zodIsFactory","z","zodIsFactory","z","HashZod","z","z","HashZod","zodIsFactory","z","zodIsFactory","z","zodIsFactory","z","zodIsFactory","z"]}
@@ -3,6 +3,7 @@ import type { AccountBalanceHistoryItem, AccountBalanceViewer, ChainQualifiedCon
3
3
  import type { Provider } from '../provider/index.ts';
4
4
  import type { AttoXL1 } from '../xl1/index.ts';
5
5
  import type { BlockViewer, BlockViewerMethods } from './Block.ts';
6
+ import type { FinalizationViewer } from './Finalization.ts';
6
7
  import type { ForkViewerMethods } from './Fork.ts';
7
8
  import type { MempoolViewer } from './Mempool.ts';
8
9
  import type { NetworkStakeViewer } from './NetworkStake/index.ts';
@@ -26,6 +27,7 @@ export interface XyoViewer extends Omit<BlockViewer, 'moniker'>, XyoViewerMethod
26
27
  balance: AccountBalanceViewer;
27
28
  };
28
29
  block: BlockViewer;
30
+ finalization: FinalizationViewer;
29
31
  mempool: MempoolViewer;
30
32
  networkStake: NetworkStakeViewer;
31
33
  stake: StakeViewer;
@@ -38,6 +40,7 @@ export interface XyoViewerV2 extends XyoViewerMethodsV2, Provider<XyoViewerMonik
38
40
  balance: AccountBalanceViewer;
39
41
  };
40
42
  block: BlockViewer;
43
+ finalization: FinalizationViewer;
41
44
  mempool: MempoolViewer;
42
45
  networkStake: NetworkStakeViewer;
43
46
  stake: StakeViewer;
@@ -1 +1 @@
1
- {"version":3,"file":"XyoViewer.d.ts","sourceRoot":"","sources":["../../../src/viewers/XyoViewer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XyoViewer.d.ts","sourceRoot":"","sources":["../../../src/viewers/XyoViewer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/xl1-protocol",
3
- "version": "1.25.23",
3
+ "version": "1.25.24",
4
4
  "description": "XYO Layer One Protocol",
5
5
  "homepage": "https://xylabs.com",
6
6
  "bugs": {
@@ -6,6 +6,7 @@ import type {
6
6
  import type { Provider } from '../provider/index.ts'
7
7
  import type { AttoXL1 } from '../xl1/index.ts'
8
8
  import type { BlockViewer, BlockViewerMethods } from './Block.ts'
9
+ import type { FinalizationViewer } from './Finalization.ts'
9
10
  import type { ForkViewerMethods } from './Fork.ts'
10
11
  import type { MempoolViewer } from './Mempool.ts'
11
12
  import type { NetworkStakeViewer } from './NetworkStake/index.ts'
@@ -43,6 +44,7 @@ export interface XyoViewer extends Omit<BlockViewer, 'moniker'>, XyoViewerMethod
43
44
  balance: AccountBalanceViewer
44
45
  }
45
46
  block: BlockViewer
47
+ finalization: FinalizationViewer
46
48
  mempool: MempoolViewer
47
49
  networkStake: NetworkStakeViewer
48
50
  stake: StakeViewer
@@ -56,6 +58,7 @@ export interface XyoViewerV2 extends XyoViewerMethodsV2, Provider<XyoViewerMonik
56
58
  balance: AccountBalanceViewer
57
59
  }
58
60
  block: BlockViewer
61
+ finalization: FinalizationViewer
59
62
  mempool: MempoolViewer
60
63
  networkStake: NetworkStakeViewer
61
64
  stake: StakeViewer