UNPKG

@hyperlane-xyz/sdk

Version:

The official SDK for the Hyperlane Network

1,402 lines 979 kB
import { z } from 'zod'; import { TokenFeeType } from '../fee/types.js'; import { DerivedRouterConfig, GasRouterConfigSchema } from '../router/types.js'; import { ChainMap } from '../types.js'; export declare const WarpRouteDeployConfigSchemaErrors: { ONLY_SYNTHETIC_REBASE: string; NO_SYNTHETIC_ONLY: string; }; export declare const contractVersionMatchesDependency: (version: string) => boolean; export declare const VERSION_ERROR_MESSAGE = "Contract version must match the @hyperlane-xyz/core dependency version (11.3.1)"; export declare const TokenMetadataSchema: z.ZodObject<{ name: z.ZodString; symbol: z.ZodString; decimals: z.ZodOptional<z.ZodNumber>; scale: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{ numerator: z.ZodNumber; denominator: z.ZodNumber; }, "strip", z.ZodTypeAny, { numerator: number; denominator: number; }, { numerator: number; denominator: number; }>, z.ZodObject<{ numerator: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>, bigint, string | number | bigint>; denominator: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>, bigint, string | number | bigint>; }, "strip", z.ZodTypeAny, { numerator: bigint; denominator: bigint; }, { numerator: string | number | bigint; denominator: string | number | bigint; }>]>>; isNft: z.ZodOptional<z.ZodBoolean>; contractVersion: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { symbol: string; name: string; decimals?: number | undefined; contractVersion?: string | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: bigint; denominator: bigint; } | undefined; isNft?: boolean | undefined; }, { symbol: string; name: string; decimals?: number | undefined; contractVersion?: string | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: string | number | bigint; denominator: string | number | bigint; } | undefined; isNft?: boolean | undefined; }>; export type TokenMetadata = z.infer<typeof TokenMetadataSchema>; export declare const isTokenMetadata: (config: unknown) => config is { symbol: string; name: string; decimals?: number | undefined; contractVersion?: string | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: bigint; denominator: bigint; } | undefined; isNft?: boolean | undefined; }; export declare const isEverclearTokenBridgeConfig: (config: unknown) => config is { everclearBridgeAddress: string; outputAssets: Record<string | number, string>; everclearFeeParams: Record<string | number, { signature: string; fee: number; deadline: number; }>; }; export declare const BaseMovableTokenConfigSchema: z.ZodObject<{ allowedRebalancingBridges: z.ZodOptional<z.ZodRecord<z.ZodUnion<[z.ZodString, z.ZodNumber]>, z.ZodArray<z.ZodObject<{ bridge: z.ZodString; approvedTokens: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>>; }, "strip", z.ZodTypeAny, { bridge: string; approvedTokens?: string[] | undefined; }, { bridge: string; approvedTokens?: string[] | undefined; }>, "many">>>; allowedRebalancers: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>>; }, "strip", z.ZodTypeAny, { allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; }, { allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; }>; export declare const PredicateWrapperConfigSchema: z.ZodObject<{ predicateRegistry: z.ZodString; policyId: z.ZodString; owner: z.ZodString; }, "strip", z.ZodTypeAny, { owner: string; predicateRegistry: string; policyId: string; }, { owner: string; predicateRegistry: string; policyId: string; }>; export type PredicateWrapperConfig = z.infer<typeof PredicateWrapperConfigSchema>; export declare const isPredicateWrapperConfig: (config: unknown) => config is { owner: string; predicateRegistry: string; policyId: string; }; export declare const NativeTokenConfigSchema: z.ZodObject<{ name: z.ZodOptional<z.ZodString>; symbol: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; scale: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{ numerator: z.ZodNumber; denominator: z.ZodNumber; }, "strip", z.ZodTypeAny, { numerator: number; denominator: number; }, { numerator: number; denominator: number; }>, z.ZodObject<{ numerator: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>, bigint, string | number | bigint>; denominator: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>, bigint, string | number | bigint>; }, "strip", z.ZodTypeAny, { numerator: bigint; denominator: bigint; }, { numerator: string | number | bigint; denominator: string | number | bigint; }>]>>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; contractVersion: z.ZodOptional<z.ZodOptional<z.ZodString>>; } & { predicateWrapper: z.ZodOptional<z.ZodObject<{ predicateRegistry: z.ZodString; policyId: z.ZodString; owner: z.ZodString; }, "strip", z.ZodTypeAny, { owner: string; predicateRegistry: string; policyId: string; }, { owner: string; predicateRegistry: string; policyId: string; }>>; allowedRebalancingBridges: z.ZodOptional<z.ZodRecord<z.ZodUnion<[z.ZodString, z.ZodNumber]>, z.ZodArray<z.ZodObject<{ bridge: z.ZodString; approvedTokens: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>>; }, "strip", z.ZodTypeAny, { bridge: string; approvedTokens?: string[] | undefined; }, { bridge: string; approvedTokens?: string[] | undefined; }>, "many">>>; allowedRebalancers: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>>; type: z.ZodEnum<["native", "nativeScaled"]>; }, "strip", z.ZodTypeAny, { type: "native" | "nativeScaled"; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; contractVersion?: string | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: bigint; denominator: bigint; } | undefined; isNft?: boolean | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; predicateWrapper?: { owner: string; predicateRegistry: string; policyId: string; } | undefined; }, { type: "native" | "nativeScaled"; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; contractVersion?: string | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: string | number | bigint; denominator: string | number | bigint; } | undefined; isNft?: boolean | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; predicateWrapper?: { owner: string; predicateRegistry: string; policyId: string; } | undefined; }>; export type NativeTokenConfig = z.infer<typeof NativeTokenConfigSchema>; export declare const isNativeTokenConfig: (config: unknown) => config is { type: "native" | "nativeScaled"; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; contractVersion?: string | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: bigint; denominator: bigint; } | undefined; isNft?: boolean | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; predicateWrapper?: { owner: string; predicateRegistry: string; policyId: string; } | undefined; }; export declare const OpL2TokenConfigSchema: z.ZodObject<Omit<{ name: z.ZodOptional<z.ZodString>; symbol: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; scale: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{ numerator: z.ZodNumber; denominator: z.ZodNumber; }, "strip", z.ZodTypeAny, { numerator: number; denominator: number; }, { numerator: number; denominator: number; }>, z.ZodObject<{ numerator: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>, bigint, string | number | bigint>; denominator: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>, bigint, string | number | bigint>; }, "strip", z.ZodTypeAny, { numerator: bigint; denominator: bigint; }, { numerator: string | number | bigint; denominator: string | number | bigint; }>]>>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; contractVersion: z.ZodOptional<z.ZodOptional<z.ZodString>>; } & { predicateWrapper: z.ZodOptional<z.ZodObject<{ predicateRegistry: z.ZodString; policyId: z.ZodString; owner: z.ZodString; }, "strip", z.ZodTypeAny, { owner: string; predicateRegistry: string; policyId: string; }, { owner: string; predicateRegistry: string; policyId: string; }>>; allowedRebalancingBridges: z.ZodOptional<z.ZodRecord<z.ZodUnion<[z.ZodString, z.ZodNumber]>, z.ZodArray<z.ZodObject<{ bridge: z.ZodString; approvedTokens: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>>; }, "strip", z.ZodTypeAny, { bridge: string; approvedTokens?: string[] | undefined; }, { bridge: string; approvedTokens?: string[] | undefined; }>, "many">>>; allowedRebalancers: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>>; type: z.ZodEnum<["native", "nativeScaled"]>; }, "type"> & { type: z.ZodLiteral<"nativeOpL2">; l2Bridge: z.ZodString; }, "strip", z.ZodTypeAny, { type: "nativeOpL2"; l2Bridge: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; contractVersion?: string | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: bigint; denominator: bigint; } | undefined; isNft?: boolean | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; predicateWrapper?: { owner: string; predicateRegistry: string; policyId: string; } | undefined; }, { type: "nativeOpL2"; l2Bridge: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; contractVersion?: string | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: string | number | bigint; denominator: string | number | bigint; } | undefined; isNft?: boolean | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; predicateWrapper?: { owner: string; predicateRegistry: string; policyId: string; } | undefined; }>; export declare const OpL1TokenConfigSchema: z.ZodObject<Omit<{ name: z.ZodOptional<z.ZodString>; symbol: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; scale: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{ numerator: z.ZodNumber; denominator: z.ZodNumber; }, "strip", z.ZodTypeAny, { numerator: number; denominator: number; }, { numerator: number; denominator: number; }>, z.ZodObject<{ numerator: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>, bigint, string | number | bigint>; denominator: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>, bigint, string | number | bigint>; }, "strip", z.ZodTypeAny, { numerator: bigint; denominator: bigint; }, { numerator: string | number | bigint; denominator: string | number | bigint; }>]>>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; contractVersion: z.ZodOptional<z.ZodOptional<z.ZodString>>; } & { predicateWrapper: z.ZodOptional<z.ZodObject<{ predicateRegistry: z.ZodString; policyId: z.ZodString; owner: z.ZodString; }, "strip", z.ZodTypeAny, { owner: string; predicateRegistry: string; policyId: string; }, { owner: string; predicateRegistry: string; policyId: string; }>>; allowedRebalancingBridges: z.ZodOptional<z.ZodRecord<z.ZodUnion<[z.ZodString, z.ZodNumber]>, z.ZodArray<z.ZodObject<{ bridge: z.ZodString; approvedTokens: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>>; }, "strip", z.ZodTypeAny, { bridge: string; approvedTokens?: string[] | undefined; }, { bridge: string; approvedTokens?: string[] | undefined; }>, "many">>>; allowedRebalancers: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>>; type: z.ZodEnum<["native", "nativeScaled"]>; }, "type"> & { type: z.ZodLiteral<"nativeOpL1">; portal: z.ZodString; version: z.ZodNumber; } & Omit<{ owner: z.ZodString; ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; } & { type: z.ZodLiteral<"offchainLookupIsm">; urls: z.ZodArray<z.ZodString, "many">; }, "type" | "owner">, "strip", z.ZodTypeAny, { type: "nativeOpL1"; version: number; urls: string[]; portal: string; symbol?: string | undefined; name?: string | undefined; ownerOverrides?: Record<string, string> | undefined; decimals?: number | undefined; contractVersion?: string | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: bigint; denominator: bigint; } | undefined; isNft?: boolean | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; predicateWrapper?: { owner: string; predicateRegistry: string; policyId: string; } | undefined; }, { type: "nativeOpL1"; version: number; urls: string[]; portal: string; symbol?: string | undefined; name?: string | undefined; ownerOverrides?: Record<string, string> | undefined; decimals?: number | undefined; contractVersion?: string | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: string | number | bigint; denominator: string | number | bigint; } | undefined; isNft?: boolean | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; predicateWrapper?: { owner: string; predicateRegistry: string; policyId: string; } | undefined; }>; export type OpL1TokenConfig = z.infer<typeof OpL1TokenConfigSchema>; export declare const isOpL1TokenConfig: (config: unknown) => config is { type: "nativeOpL1"; version: number; urls: string[]; portal: string; symbol?: string | undefined; name?: string | undefined; ownerOverrides?: Record<string, string> | undefined; decimals?: number | undefined; contractVersion?: string | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: bigint; denominator: bigint; } | undefined; isNft?: boolean | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; predicateWrapper?: { owner: string; predicateRegistry: string; policyId: string; } | undefined; }; export type OpL2TokenConfig = z.infer<typeof OpL2TokenConfigSchema>; export declare const isOpL2TokenConfig: (config: unknown) => config is { type: "nativeOpL2"; l2Bridge: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; contractVersion?: string | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: bigint; denominator: bigint; } | undefined; isNft?: boolean | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; predicateWrapper?: { owner: string; predicateRegistry: string; policyId: string; } | undefined; }; export declare const CollateralTokenConfigSchema: z.ZodObject<{ name: z.ZodOptional<z.ZodString>; symbol: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; scale: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{ numerator: z.ZodNumber; denominator: z.ZodNumber; }, "strip", z.ZodTypeAny, { numerator: number; denominator: number; }, { numerator: number; denominator: number; }>, z.ZodObject<{ numerator: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>, bigint, string | number | bigint>; denominator: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>, bigint, string | number | bigint>; }, "strip", z.ZodTypeAny, { numerator: bigint; denominator: bigint; }, { numerator: string | number | bigint; denominator: string | number | bigint; }>]>>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; contractVersion: z.ZodOptional<z.ZodOptional<z.ZodString>>; } & { predicateWrapper: z.ZodOptional<z.ZodObject<{ predicateRegistry: z.ZodString; policyId: z.ZodString; owner: z.ZodString; }, "strip", z.ZodTypeAny, { owner: string; predicateRegistry: string; policyId: string; }, { owner: string; predicateRegistry: string; policyId: string; }>>; allowedRebalancingBridges: z.ZodOptional<z.ZodRecord<z.ZodUnion<[z.ZodString, z.ZodNumber]>, z.ZodArray<z.ZodObject<{ bridge: z.ZodString; approvedTokens: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>>; }, "strip", z.ZodTypeAny, { bridge: string; approvedTokens?: string[] | undefined; }, { bridge: string; approvedTokens?: string[] | undefined; }>, "many">>>; allowedRebalancers: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>>; type: z.ZodEnum<["collateral", "collateralVault", "collateralVaultRebase", "collateralFiat", "collateralUri"]>; token: z.ZodString; }, "strip", z.ZodTypeAny, { type: "collateral" | "collateralVault" | "collateralVaultRebase" | "collateralFiat" | "collateralUri"; token: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; contractVersion?: string | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: bigint; denominator: bigint; } | undefined; isNft?: boolean | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; predicateWrapper?: { owner: string; predicateRegistry: string; policyId: string; } | undefined; }, { type: "collateral" | "collateralVault" | "collateralVaultRebase" | "collateralFiat" | "collateralUri"; token: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; contractVersion?: string | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: string | number | bigint; denominator: string | number | bigint; } | undefined; isNft?: boolean | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; predicateWrapper?: { owner: string; predicateRegistry: string; policyId: string; } | undefined; }>; export type CollateralTokenConfig = z.infer<typeof CollateralTokenConfigSchema>; export declare const isCollateralTokenConfig: (config: unknown) => config is { type: "collateral" | "collateralVault" | "collateralVaultRebase" | "collateralFiat" | "collateralUri"; token: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; contractVersion?: string | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: bigint; denominator: bigint; } | undefined; isNft?: boolean | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; predicateWrapper?: { owner: string; predicateRegistry: string; policyId: string; } | undefined; }; export declare enum XERC20Type { Velo = "velo", Standard = "standard" } declare const XERC20VSLimitConfigSchema: z.ZodObject<{ type: z.ZodLiteral<XERC20Type.Velo>; bufferCap: z.ZodOptional<z.ZodString>; rateLimitPerSecond: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }, { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }>; export type XERC20VSLimitConfig = z.infer<typeof XERC20VSLimitConfigSchema>; declare const XERC20StandardLimitConfigSchema: z.ZodObject<{ type: z.ZodLiteral<XERC20Type.Standard>; mint: z.ZodOptional<z.ZodString>; burn: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }, { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }>; export type XERC20StandardLimitConfig = z.infer<typeof XERC20StandardLimitConfigSchema>; declare const xERC20ExtraBridgesLimitConfigsSchema: z.ZodObject<{ lockbox: z.ZodString; limits: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodLiteral<XERC20Type.Velo>; bufferCap: z.ZodOptional<z.ZodString>; rateLimitPerSecond: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }, { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<XERC20Type.Standard>; mint: z.ZodOptional<z.ZodString>; burn: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }, { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }>]>; }, "strip", z.ZodTypeAny, { lockbox: string; limits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; }, { lockbox: string; limits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; }>; declare const xERC20TokenMetadataSchema: z.ZodObject<{ xERC20: z.ZodOptional<z.ZodObject<{ extraBridges: z.ZodOptional<z.ZodArray<z.ZodObject<{ lockbox: z.ZodString; limits: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodLiteral<XERC20Type.Velo>; bufferCap: z.ZodOptional<z.ZodString>; rateLimitPerSecond: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }, { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<XERC20Type.Standard>; mint: z.ZodOptional<z.ZodString>; burn: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }, { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }>]>; }, "strip", z.ZodTypeAny, { lockbox: string; limits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; }, { lockbox: string; limits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; }>, "many">>; warpRouteLimits: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodLiteral<XERC20Type.Velo>; bufferCap: z.ZodOptional<z.ZodString>; rateLimitPerSecond: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }, { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<XERC20Type.Standard>; mint: z.ZodOptional<z.ZodString>; burn: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }, { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }>]>; }, "strip", z.ZodTypeAny, { warpRouteLimits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; extraBridges?: { lockbox: string; limits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; }[] | undefined; }, { warpRouteLimits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; extraBridges?: { lockbox: string; limits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; }[] | undefined; }>>; }, "strip", z.ZodTypeAny, { xERC20?: { warpRouteLimits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; extraBridges?: { lockbox: string; limits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; }[] | undefined; } | undefined; }, { xERC20?: { warpRouteLimits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; extraBridges?: { lockbox: string; limits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; }[] | undefined; } | undefined; }>; export type XERC20TokenMetadata = z.infer<typeof xERC20TokenMetadataSchema>; export type XERC20TokenExtraBridgesLimits = z.infer<typeof xERC20ExtraBridgesLimitConfigsSchema>; export declare const XERC20TokenConfigSchema: z.ZodObject<Omit<{ name: z.ZodOptional<z.ZodString>; symbol: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; scale: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{ numerator: z.ZodNumber; denominator: z.ZodNumber; }, "strip", z.ZodTypeAny, { numerator: number; denominator: number; }, { numerator: number; denominator: number; }>, z.ZodObject<{ numerator: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>, bigint, string | number | bigint>; denominator: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>, bigint, string | number | bigint>; }, "strip", z.ZodTypeAny, { numerator: bigint; denominator: bigint; }, { numerator: string | number | bigint; denominator: string | number | bigint; }>]>>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; contractVersion: z.ZodOptional<z.ZodOptional<z.ZodString>>; } & { predicateWrapper: z.ZodOptional<z.ZodObject<{ predicateRegistry: z.ZodString; policyId: z.ZodString; owner: z.ZodString; }, "strip", z.ZodTypeAny, { owner: string; predicateRegistry: string; policyId: string; }, { owner: string; predicateRegistry: string; policyId: string; }>>; allowedRebalancingBridges: z.ZodOptional<z.ZodRecord<z.ZodUnion<[z.ZodString, z.ZodNumber]>, z.ZodArray<z.ZodObject<{ bridge: z.ZodString; approvedTokens: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>>; }, "strip", z.ZodTypeAny, { bridge: string; approvedTokens?: string[] | undefined; }, { bridge: string; approvedTokens?: string[] | undefined; }>, "many">>>; allowedRebalancers: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>>; type: z.ZodEnum<["collateral", "collateralVault", "collateralVaultRebase", "collateralFiat", "collateralUri"]>; token: z.ZodString; }, "type"> & { type: z.ZodEnum<["xERC20", "xERC20Lockbox"]>; } & { xERC20: z.ZodOptional<z.ZodObject<{ extraBridges: z.ZodOptional<z.ZodArray<z.ZodObject<{ lockbox: z.ZodString; limits: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodLiteral<XERC20Type.Velo>; bufferCap: z.ZodOptional<z.ZodString>; rateLimitPerSecond: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }, { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<XERC20Type.Standard>; mint: z.ZodOptional<z.ZodString>; burn: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }, { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }>]>; }, "strip", z.ZodTypeAny, { lockbox: string; limits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; }, { lockbox: string; limits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; }>, "many">>; warpRouteLimits: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodLiteral<XERC20Type.Velo>; bufferCap: z.ZodOptional<z.ZodString>; rateLimitPerSecond: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }, { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<XERC20Type.Standard>; mint: z.ZodOptional<z.ZodString>; burn: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }, { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }>]>; }, "strip", z.ZodTypeAny, { warpRouteLimits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; extraBridges?: { lockbox: string; limits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; }[] | undefined; }, { warpRouteLimits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; extraBridges?: { lockbox: string; limits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; }[] | undefined; }>>; }, "strip", z.ZodTypeAny, { type: "xERC20" | "xERC20Lockbox"; token: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; contractVersion?: string | undefined; xERC20?: { warpRouteLimits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; extraBridges?: { lockbox: string; limits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; }[] | undefined; } | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: bigint; denominator: bigint; } | undefined; isNft?: boolean | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; predicateWrapper?: { owner: string; predicateRegistry: string; policyId: string; } | undefined; }, { type: "xERC20" | "xERC20Lockbox"; token: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; contractVersion?: string | undefined; xERC20?: { warpRouteLimits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; extraBridges?: { lockbox: string; limits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; }[] | undefined; } | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: string | number | bigint; denominator: string | number | bigint; } | undefined; isNft?: boolean | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; predicateWrapper?: { owner: string; predicateRegistry: string; policyId: string; } | undefined; }>; export type XERC20LimitsTokenConfig = z.infer<typeof XERC20TokenConfigSchema>; export declare const isXERC20TokenConfig: (config: unknown) => config is { type: "xERC20" | "xERC20Lockbox"; token: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; contractVersion?: string | undefined; xERC20?: { warpRouteLimits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; extraBridges?: { lockbox: string; limits: { type: XERC20Type.Velo; bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; } | { type: XERC20Type.Standard; mint?: string | undefined; burn?: string | undefined; }; }[] | undefined; } | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: bigint; denominator: bigint; } | undefined; isNft?: boolean | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; predicateWrapper?: { owner: string; predicateRegistry: string; policyId: string; } | undefined; }; export declare const CctpTokenConfigSchema: z.ZodObject<{ name: z.ZodOptional<z.ZodString>; symbol: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; scale: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{ numerator: z.ZodNumber; denominator: z.ZodNumber; }, "strip", z.ZodTypeAny, { numerator: number; denominator: number; }, { numerator: number; denominator: number; }>, z.ZodObject<{ numerator: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>, bigint, string | number | bigint>; denominator: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>, bigint, string | number | bigint>; }, "strip", z.ZodTypeAny, { numerator: bigint; denominator: bigint; }, { numerator: string | number | bigint; denominator: string | number | bigint; }>]>>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; contractVersion: z.ZodOptional<z.ZodOptional<z.ZodString>>; } & { type: z.ZodLiteral<"collateralCctp">; token: z.ZodString; messageTransmitter: z.ZodString; tokenMessenger: z.ZodString; cctpVersion: z.ZodEnum<["V1", "V2"]>; minFinalityThreshold: z.ZodOptional<z.ZodNumber>; maxFeeBps: z.ZodOptional<z.ZodNumber>; predicateWrapper: z.ZodOptional<z.ZodObject<{ predicateRegistry: z.ZodString; policyId: z.ZodString; owner: z.ZodString; }, "strip", z.ZodTypeAny, { owner: string; predicateRegistry: string; policyId: string; }, { owner: string; predicateRegistry: string; policyId: string; }>>; } & Omit<{ owner: z.ZodString; ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; } & { type: z.ZodLiteral<"offchainLookupIsm">; urls: z.ZodArray<z.ZodString, "many">; }, "type" | "owner">, "strip", z.ZodTypeAny, { type: "collateralCctp"; token: string; urls: string[]; messageTransmitter: string; tokenMessenger: string; cctpVersion: "V1" | "V2"; symbol?: string | undefined; name?: string | undefined; ownerOverrides?: Record<string, string> | undefined; decimals?: number | undefined; contractVersion?: string | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: bigint; denominator: bigint; } | undefined; isNft?: boolean | undefined; predicateWrapper?: { owner: string; predicateRegistry: string; policyId: string; } | undefined; minFinalityThreshold?: number | undefined; maxFeeBps?: number | undefined; }, { type: "collateralCctp"; token: string; urls: string[]; messageTransmitter: string; tokenMessenger: string; cctpVersion: "V1" | "V2"; symbol?: string | undefined; name?: string | undefined; ownerOverrides?: Record<string, string> | undefined; decimals?: number | undefined; contractVersion?: string | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: string | number | bigint; denominator: string | number | bigint; } | undefined; isNft?: boolean | undefined; predicateWrapper?: { owner: string; predicateRegistry: string; policyId: string; } | undefined; minFinalityThreshold?: number | undefined; maxFeeBps?: number | undefined; }>; export type CctpTokenConfig = z.infer<typeof CctpTokenConfigSchema>; export declare const isCctpTokenConfig: (config: unknown) => config is { type: "collateralCctp"; token: string; urls: string[]; messageTransmitter: string; tokenMessenger: string; cctpVersion: "V1" | "V2"; symbol?: string | undefined; name?: string | undefined; ownerOverrides?: Record<string, string> | undefined; decimals?: number | undefined; contractVersion?: string | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: bigint; denominator: bigint; } | undefined; isNft?: boolean | undefined; predicateWrapper?: { owner: string; predicateRegistry: string; policyId: string; } | undefined; minFinalityThreshold?: number | undefined; maxFeeBps?: number | undefined; }; export declare const DepositAddressRecipientConfigSchema: z.ZodObject<{ depositAddress: z.ZodEffects<z.ZodString, string, string>; feeBps: z.ZodEffects<z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>, string | number | undefined, string | number | undefined>; }, "strip", z.ZodTypeAny, { depositAddress: string; feeBps?: string | number | undefined; }, { depositAddress: string; feeBps?: string | number | undefined; }>; export type DepositAddressRecipientConfig = z.infer<typeof DepositAddressRecipientConfigSchema>; export declare const DepositAddressDestinationConfigSchema: z.ZodRecord<z.ZodString, z.ZodObject<{ depositAddress: z.ZodEffects<z.ZodString, string, string>; feeBps: z.ZodEffects<z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>, string | number | undefined, string | number | undefined>; }, "strip", z.ZodTypeAny, { depositAddress: string; feeBps?: string | number | undefined; }, { depositAddress: string; feeBps?: string | number | undefined; }>>; export type DepositAddressDestinationConfig = z.infer<typeof DepositAddressDestination