UNPKG

@hyperlane-xyz/sdk

Version:

The official SDK for the Hyperlane Network

1,330 lines (1,329 loc) 923 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 (10.1.3)"; export declare const TokenMetadataSchema: z.ZodObject<{ name: z.ZodString; symbol: z.ZodString; decimals: z.ZodOptional<z.ZodNumber>; scale: z.ZodOptional<z.ZodNumber>; isNft: z.ZodOptional<z.ZodBoolean>; contractVersion: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { symbol: string; name: string; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; }, { symbol: string; name: string; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; }>; export type TokenMetadata = z.infer<typeof TokenMetadataSchema>; export declare const isTokenMetadata: (config: unknown) => config is { symbol: string; name: string; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | 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 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.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; contractVersion: z.ZodOptional<z.ZodOptional<z.ZodString>>; } & { 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; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; }, { type: "native" | "nativeScaled"; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: 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; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: 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.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; contractVersion: z.ZodOptional<z.ZodOptional<z.ZodString>>; } & { 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; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; }, { type: "nativeOpL2"; l2Bridge: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: 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.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; contractVersion: z.ZodOptional<z.ZodOptional<z.ZodString>>; } & { 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; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; }, { type: "nativeOpL1"; version: number; urls: string[]; portal: string; symbol?: string | undefined; name?: string | undefined; ownerOverrides?: Record<string, string> | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: 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; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: 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; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: 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.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; contractVersion: z.ZodOptional<z.ZodOptional<z.ZodString>>; } & { 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; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; }, { type: "collateral" | "collateralVault" | "collateralVaultRebase" | "collateralFiat" | "collateralUri"; token: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: 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; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: 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.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; contractVersion: z.ZodOptional<z.ZodOptional<z.ZodString>>; } & { 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; 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 | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; }, { type: "xERC20" | "xERC20Lockbox"; token: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | 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 | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: 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; 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 | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: 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.ZodNumber>>; 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>; } & 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; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: 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; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: 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; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; minFinalityThreshold?: number | undefined; maxFeeBps?: number | undefined; }; export declare const CollateralRebaseTokenConfigSchema: 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.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; contractVersion: z.ZodOptional<z.ZodOptional<z.ZodString>>; } & { type: z.ZodLiteral<"collateralVaultRebase">; }, "strip", z.ZodTypeAny, { type: "collateralVaultRebase"; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; }, { type: "collateralVaultRebase"; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; }>; export declare const isCollateralRebaseTokenConfig: (config: unknown) => config is { type: "collateralVaultRebase"; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; }; export declare const SyntheticTokenConfigSchema: 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.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; contractVersion: z.ZodOptional<z.ZodOptional<z.ZodString>>; } & { type: z.ZodEnum<["synthetic", "syntheticUri"]>; initialSupply: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>; }, "strip", z.ZodTypeAny, { type: "synthetic" | "syntheticUri"; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; initialSupply?: string | number | undefined; }, { type: "synthetic" | "syntheticUri"; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; initialSupply?: string | number | undefined; }>; export type SyntheticTokenConfig = z.infer<typeof SyntheticTokenConfigSchema>; export declare const isSyntheticTokenConfig: (config: unknown) => config is { type: "synthetic" | "syntheticUri"; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; initialSupply?: string | number | undefined; }; export declare const SyntheticRebaseTokenConfigSchema: 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.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; contractVersion: z.ZodOptional<z.ZodOptional<z.ZodString>>; } & { type: z.ZodLiteral<"syntheticRebase">; collateralChainName: z.ZodString; }, "strip", z.ZodTypeAny, { type: "syntheticRebase"; collateralChainName: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; }, { type: "syntheticRebase"; collateralChainName: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; }>; export type SyntheticRebaseTokenConfig = z.infer<typeof SyntheticRebaseTokenConfigSchema>; export declare const isSyntheticRebaseTokenConfig: (config: unknown) => config is { type: "syntheticRebase"; collateralChainName: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; }; export declare const EverclearCollateralTokenConfigSchema: z.ZodObject<{ everclearBridgeAddress: z.ZodString; outputAssets: z.ZodRecord<z.ZodUnion<[z.ZodString, z.ZodNumber]>, z.ZodString>; everclearFeeParams: z.ZodRecord<z.ZodUnion<[z.ZodString, z.ZodNumber]>, z.ZodObject<{ fee: z.ZodNumber; deadline: z.ZodNumber; signature: z.ZodString; }, "strip", z.ZodTypeAny, { signature: string; fee: number; deadline: number; }, { signature: string; fee: number; deadline: number; }>>; symbol: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; token: z.ZodString; scale: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; contractVersion: z.ZodOptional<z.ZodOptional<z.ZodString>>; 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.ZodLiteral<"collateralEverclear">; }, "strip", z.ZodTypeAny, { type: "collateralEverclear"; token: string; everclearBridgeAddress: string; outputAssets: Record<string | number, string>; everclearFeeParams: Record<string | number, { signature: string; fee: number; deadline: number; }>; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; }, { type: "collateralEverclear"; token: string; everclearBridgeAddress: string; outputAssets: Record<string | number, string>; everclearFeeParams: Record<string | number, { signature: string; fee: number; deadline: number; }>; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; }>; export type EverclearCollateralTokenConfig = z.infer<typeof EverclearCollateralTokenConfigSchema>; export declare const isEverclearCollateralTokenConfig: (config: unknown) => config is { type: "collateralEverclear"; token: string; everclearBridgeAddress: string; outputAssets: Record<string | number, string>; everclearFeeParams: Record<string | number, { signature: string; fee: number; deadline: number; }>; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; }; export declare const EverclearEthBridgeTokenConfigSchema: z.ZodObject<{ everclearBridgeAddress: z.ZodString; outputAssets: z.ZodRecord<z.ZodUnion<[z.ZodString, z.ZodNumber]>, z.ZodString>; everclearFeeParams: z.ZodRecord<z.ZodUnion<[z.ZodString, z.ZodNumber]>, z.ZodObject<{ fee: z.ZodNumber; deadline: z.ZodNumber; signature: z.ZodString; }, "strip", z.ZodTypeAny, { signature: string; fee: number; deadline: number; }, { signature: string; fee: number; deadline: number; }>>; symbol: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; scale: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; contractVersion: z.ZodOptional<z.ZodOptional<z.ZodString>>; 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.ZodLiteral<"ethEverclear">; wethAddress: z.ZodString; }, "strip", z.ZodTypeAny, { type: "ethEverclear"; everclearBridgeAddress: string; outputAssets: Record<string | number, string>; everclearFeeParams: Record<string | number, { signature: string; fee: number; deadline: number; }>; wethAddress: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; }, { type: "ethEverclear"; everclearBridgeAddress: string; outputAssets: Record<string | number, string>; everclearFeeParams: Record<string | number, { signature: string; fee: number; deadline: number; }>; wethAddress: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; }>; export type EverclearEthBridgeTokenConfig = z.infer<typeof EverclearEthBridgeTokenConfigSchema>; export declare const isEverclearEthBridgeTokenConfig: (config: unknown) => config is { type: "ethEverclear"; everclearBridgeAddress: string; outputAssets: Record<string | number, string>; everclearFeeParams: Record<string | number, { signature: string; fee: number; deadline: number; }>; wethAddress: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; }; export declare enum ContractVerificationStatus { Verified = "verified", Unverified = "unverified", Error = "error", Skipped = "skipped" } export declare enum OwnerStatus { Active = "active",// Active address with nonce > 0 and/or contract code Inactive = "inactive", GnosisSafe = "gnosisSafe", Error = "error", Skipped = "skipped" } export declare const HypTokenRouterVirtualConfigSchema: z.ZodObject<{ contractVerificationStatus: z.ZodRecord<z.ZodString, z.ZodEnum<[ContractVerificationStatus.Error, ContractVerificationStatus.Skipped, ContractVerificationStatus.Verified, ContractVerificationStatus.Unverified]>>; ownerStatus: z.ZodRecord<z.ZodString, z.ZodEnum<[OwnerStatus.Error, OwnerStatus.Skipped, OwnerStatus.Active, OwnerStatus.Inactive, OwnerStatus.GnosisSafe]>>; }, "strip", z.ZodTypeAny, { contractVerificationStatus: Record<string, ContractVerificationStatus>; ownerStatus: Record<string, OwnerStatus>; }, { contractVerificationStatus: Record<string, ContractVerificationStatus>; ownerStatus: Record<string, OwnerStatus>; }>; export type HypTokenRouterVirtualConfig = z.infer<typeof HypTokenRouterVirtualConfigSchema>; /** * @remarks * The discriminatedUnion is basically a switch statement for zod schemas * It uses the 'type' key to pick from the array of schemas to validate */ export declare const HypTokenConfigSchema: z.ZodDiscriminatedUnion<"type", [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.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; contractVersion: z.ZodOptional<z.ZodOptional<z.ZodString>>; } & { 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; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, { bridge: string; approvedTokens?: string[] | undefined; }[]> | undefined; allowedRebalancers?: string[] | undefined; }, { type: "native" | "nativeScaled"; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; allowedRebalancingBridges?: Record<string | number, {