@hyperlane-xyz/sdk
Version:
The official SDK for the Hyperlane Network
1,330 lines (1,329 loc) • 923 kB
TypeScript
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, {