UNPKG

@hyperlane-xyz/sdk

Version:

The official SDK for the Hyperlane Network

1,276 lines 335 kB
import { z } from 'zod'; import { HookType } from '../hook/types.js'; import { IsmType } from '../ism/types.js'; import { DerivedRouterConfig, GasRouterConfigSchema } from '../router/types.js'; import { ChainMap } from '../types.js'; import { TokenType } from './config.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 (9.0.5)"; 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 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<{ 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.ZodEnum<[TokenType.native, TokenType.nativeScaled]>; }, "strip", z.ZodTypeAny, { type: TokenType.native | TokenType.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: TokenType.native | TokenType.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: TokenType.native | TokenType.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<{ 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<TokenType.nativeOpL2>; l2Bridge: z.ZodString; }, "strip", z.ZodTypeAny, { type: TokenType.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: TokenType.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<{ symbol: z.ZodOptional<z.ZodString>; type: z.ZodLiteral<TokenType.nativeOpL1>; name: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; version: 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[]>>; portal: z.ZodString; ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; urls: z.ZodArray<z.ZodString, "many">; }, "strip", z.ZodTypeAny, { type: TokenType.nativeOpL1; version: number; urls: string[]; portal: 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; ownerOverrides?: Record<string, string> | undefined; }, { type: TokenType.nativeOpL1; version: number; urls: string[]; portal: 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; ownerOverrides?: Record<string, string> | undefined; }>; export type OpL1TokenConfig = z.infer<typeof OpL1TokenConfigSchema>; export declare const isOpL1TokenConfig: (config: unknown) => config is { type: TokenType.nativeOpL1; version: number; urls: string[]; portal: 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; ownerOverrides?: Record<string, string> | undefined; }; export type OpL2TokenConfig = z.infer<typeof OpL2TokenConfigSchema>; export declare const isOpL2TokenConfig: (config: unknown) => config is { type: TokenType.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<{ 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.ZodEnum<[TokenType.collateral, TokenType.collateralVault, TokenType.collateralVaultRebase, TokenType.collateralFiat, TokenType.collateralUri]>; token: z.ZodString; }, "strip", z.ZodTypeAny, { type: TokenType.collateral | TokenType.collateralVault | TokenType.collateralVaultRebase | TokenType.collateralFiat | TokenType.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: TokenType.collateral | TokenType.collateralVault | TokenType.collateralVaultRebase | TokenType.collateralFiat | TokenType.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: TokenType.collateral | TokenType.collateralVault | TokenType.collateralVaultRebase | TokenType.collateralFiat | TokenType.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<{ symbol: z.ZodOptional<z.ZodString>; type: z.ZodEnum<[TokenType.XERC20, TokenType.XERC20Lockbox]>; 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[]>>; token: z.ZodString; 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: TokenType.XERC20 | TokenType.XERC20Lockbox; 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; 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; }, { type: TokenType.XERC20 | TokenType.XERC20Lockbox; 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; 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 XERC20LimitsTokenConfig = z.infer<typeof XERC20TokenConfigSchema>; export declare const isXERC20TokenConfig: (config: unknown) => config is { type: TokenType.XERC20 | TokenType.XERC20Lockbox; 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; 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 declare const CctpTokenConfigSchema: z.ZodObject<{ symbol: z.ZodOptional<z.ZodString>; type: z.ZodLiteral<TokenType.collateralCctp>; 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[]>>; token: z.ZodString; messageTransmitter: z.ZodString; tokenMessenger: z.ZodString; ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; urls: z.ZodArray<z.ZodString, "many">; }, "strip", z.ZodTypeAny, { type: TokenType.collateralCctp; urls: string[]; token: string; messageTransmitter: string; tokenMessenger: 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; ownerOverrides?: Record<string, string> | undefined; }, { type: TokenType.collateralCctp; urls: string[]; token: string; messageTransmitter: string; tokenMessenger: 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; ownerOverrides?: Record<string, string> | undefined; }>; export type CctpTokenConfig = z.infer<typeof CctpTokenConfigSchema>; export declare const isCctpTokenConfig: (config: unknown) => config is { type: TokenType.collateralCctp; urls: string[]; token: string; messageTransmitter: string; tokenMessenger: 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; ownerOverrides?: Record<string, string> | undefined; }; export declare const CollateralRebaseTokenConfigSchema: z.ZodObject<{ 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>>; type: z.ZodLiteral<TokenType.collateralVaultRebase>; }, "strip", z.ZodTypeAny, { type: TokenType.collateralVaultRebase; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; }, { type: TokenType.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: TokenType.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<{ 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>>; type: z.ZodEnum<[TokenType.synthetic, TokenType.syntheticUri]>; initialSupply: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>; }, "strip", z.ZodTypeAny, { type: TokenType.synthetic | TokenType.syntheticUri; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; initialSupply?: string | number | undefined; }, { type: TokenType.synthetic | TokenType.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: TokenType.synthetic | TokenType.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<{ 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>>; type: z.ZodLiteral<TokenType.syntheticRebase>; collateralChainName: z.ZodString; }, "strip", z.ZodTypeAny, { type: TokenType.syntheticRebase; collateralChainName: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: string | undefined; }, { type: TokenType.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: TokenType.syntheticRebase; collateralChainName: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; contractVersion?: 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<{ 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.ZodEnum<[TokenType.native, TokenType.nativeScaled]>; }, "strip", z.ZodTypeAny, { type: TokenType.native | TokenType.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: TokenType.native | TokenType.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; }>, z.ZodObject<{ 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<TokenType.nativeOpL2>; l2Bridge: z.ZodString; }, "strip", z.ZodTypeAny, { type: TokenType.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: TokenType.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; }>, z.ZodObject<{ symbol: z.ZodOptional<z.ZodString>; type: z.ZodLiteral<TokenType.nativeOpL1>; name: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; version: 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[]>>; portal: z.ZodString; ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; urls: z.ZodArray<z.ZodString, "many">; }, "strip", z.ZodTypeAny, { type: TokenType.nativeOpL1; version: number; urls: string[]; portal: 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; ownerOverrides?: Record<string, string> | undefined; }, { type: TokenType.nativeOpL1; version: number; urls: string[]; portal: 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; ownerOverrides?: Record<string, string> | undefined; }>, z.ZodObject<{ 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.ZodEnum<[TokenType.collateral, TokenType.collateralVault, TokenType.collateralVaultRebase, TokenType.collateralFiat, TokenType.collateralUri]>; token: z.ZodString; }, "strip", z.ZodTypeAny, { type: TokenType.collateral | TokenType.collateralVault | TokenType.collateralVaultRebase | TokenType.collateralFiat | TokenType.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: TokenType.collateral | TokenType.collateralVault | TokenType.collateralVaultRebase | TokenType.collateralFiat | TokenType.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; }>, z.ZodObject<{ symbol: z.ZodOptional<z.ZodString>; type: z.ZodEnum<[TokenType.XERC20, TokenType.XERC20Lockbox]>; 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: