UNPKG

@hyperlane-xyz/sdk

Version:

The official SDK for the Hyperlane Network

182 lines 6.98 kB
import { z } from 'zod'; import { Address, Numberish, ProtocolType } from '@hyperlane-xyz/utils'; import type { ChainName } from '../types.js'; import type { TokenAmount } from './TokenAmount.js'; import { type TokenConnection } from './TokenConnection.js'; import { TokenStandard } from './TokenStandard.js'; export declare const TokenConfigSchema: z.ZodObject<{ chainName: z.ZodString; standard: z.ZodNativeEnum<typeof TokenStandard>; decimals: z.ZodNumber; symbol: z.ZodString; name: z.ZodString; addressOrDenom: z.ZodEffects<z.ZodNullable<z.ZodString>, string, string | null>; collateralAddressOrDenom: z.ZodOptional<z.ZodString>; igpTokenAddressOrDenom: z.ZodOptional<z.ZodString>; logoURI: z.ZodOptional<z.ZodString>; connections: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodUnion<[z.ZodObject<{ type: z.ZodOptional<z.ZodLiteral<import("./TokenConnection.js").TokenConnectionType.Hyperlane>>; token: z.ZodString; }, "strip", z.ZodTypeAny, { token: string; type?: import("./TokenConnection.js").TokenConnectionType.Hyperlane | undefined; }, { token: string; type?: import("./TokenConnection.js").TokenConnectionType.Hyperlane | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<import("./TokenConnection.js").TokenConnectionType.Ibc>; token: z.ZodString; sourcePort: z.ZodString; sourceChannel: z.ZodString; }, "strip", z.ZodTypeAny, { type: import("./TokenConnection.js").TokenConnectionType.Ibc; token: string; sourcePort: string; sourceChannel: string; }, { type: import("./TokenConnection.js").TokenConnectionType.Ibc; token: string; sourcePort: string; sourceChannel: string; }>]>, z.ZodObject<{ type: z.ZodLiteral<import("./TokenConnection.js").TokenConnectionType.IbcHyperlane>; token: z.ZodString; sourcePort: z.ZodString; sourceChannel: z.ZodString; intermediateChainName: z.ZodString; intermediateIbcDenom: z.ZodString; intermediateRouterAddress: z.ZodString; }, "strip", z.ZodTypeAny, { type: import("./TokenConnection.js").TokenConnectionType.IbcHyperlane; token: string; sourcePort: string; sourceChannel: string; intermediateChainName: string; intermediateIbcDenom: string; intermediateRouterAddress: string; }, { type: import("./TokenConnection.js").TokenConnectionType.IbcHyperlane; token: string; sourcePort: string; sourceChannel: string; intermediateChainName: string; intermediateIbcDenom: string; intermediateRouterAddress: string; }>]>, "many">>; coinGeckoId: z.ZodOptional<z.ZodString>; scale: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{ numerator: z.ZodNumber; denominator: z.ZodNumber; }, "strip", z.ZodTypeAny, { numerator: number; denominator: number; }, { numerator: number; denominator: number; }>, z.ZodObject<{ numerator: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>, bigint, string | number | bigint>; denominator: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>, bigint, string | number | bigint>; }, "strip", z.ZodTypeAny, { numerator: bigint; denominator: bigint; }, { numerator: string | number | bigint; denominator: string | number | bigint; }>]>>; warpRouteId: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { symbol: string; name: string; decimals: number; chainName: string; standard: TokenStandard; addressOrDenom: string; logoURI?: string | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: bigint; denominator: bigint; } | undefined; collateralAddressOrDenom?: string | undefined; igpTokenAddressOrDenom?: string | undefined; connections?: ({ token: string; type?: import("./TokenConnection.js").TokenConnectionType.Hyperlane | undefined; } | { type: import("./TokenConnection.js").TokenConnectionType.Ibc; token: string; sourcePort: string; sourceChannel: string; } | { type: import("./TokenConnection.js").TokenConnectionType.IbcHyperlane; token: string; sourcePort: string; sourceChannel: string; intermediateChainName: string; intermediateIbcDenom: string; intermediateRouterAddress: string; })[] | undefined; coinGeckoId?: string | undefined; warpRouteId?: string | undefined; }, { symbol: string; name: string; decimals: number; chainName: string; standard: TokenStandard; addressOrDenom: string | null; logoURI?: string | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: string | number | bigint; denominator: string | number | bigint; } | undefined; collateralAddressOrDenom?: string | undefined; igpTokenAddressOrDenom?: string | undefined; connections?: ({ token: string; type?: import("./TokenConnection.js").TokenConnectionType.Hyperlane | undefined; } | { type: import("./TokenConnection.js").TokenConnectionType.Ibc; token: string; sourcePort: string; sourceChannel: string; } | { type: import("./TokenConnection.js").TokenConnectionType.IbcHyperlane; token: string; sourcePort: string; sourceChannel: string; intermediateChainName: string; intermediateIbcDenom: string; intermediateRouterAddress: string; })[] | undefined; coinGeckoId?: string | undefined; warpRouteId?: string | undefined; }>; export type TokenArgs = Omit<z.infer<typeof TokenConfigSchema>, 'addressOrDenom' | 'connections'> & { addressOrDenom: Address | string; connections?: Array<TokenConnection>; }; export interface ITokenMetadata extends TokenArgs { protocol: ProtocolType; amount(amount: Numberish): TokenAmount<this>; isNft(): boolean; isNative(): boolean; isHypNative(): boolean; isCollateralized(): boolean; isHypToken(): boolean; isIbcToken(): boolean; isMultiChainToken(): boolean; isCrossCollateralToken(): boolean; getConnections(): TokenConnection[]; getConnectionForChain(chain: ChainName): TokenConnection | undefined; addConnection(connection: TokenConnection): ITokenMetadata; removeConnection(token: ITokenMetadata): ITokenMetadata; equals(token?: ITokenMetadata): boolean; isFungibleWith(token?: ITokenMetadata): boolean; } //# sourceMappingURL=ITokenMetadata.d.ts.map