@hyperlane-xyz/sdk
Version:
The official SDK for the Hyperlane Network
1,276 lines • 335 kB
TypeScript
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: