@stable-io/cctp-sdk-definitions
Version:
Definitions for the CCTP SDK
59 lines • 3.45 kB
TypeScript
import type { SuppressExpansion } from "@stable-io/utils";
import type { Domain, ExpandedDomain, SimplifyDomain } from "./domains.js";
export declare const platformDomainEntries: readonly [readonly ["Evm", readonly ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"]], readonly ["Cosmwasm", readonly ["Noble"]], readonly ["Solana", readonly ["Solana"]], readonly ["Sui", readonly ["Sui"]], readonly ["Aptos", readonly ["Aptos"]]];
export declare const platforms: readonly ["Evm", "Cosmwasm", "Solana", "Sui", "Aptos"];
export type Platform = typeof platforms[number];
export declare const domainsOf: (<const K1 extends "Solana" | "Sui" | "Aptos" | "Evm" | "Cosmwasm">(args_0: K1) => {
readonly Evm: readonly ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
readonly Cosmwasm: readonly ["Noble"];
readonly Solana: readonly ["Solana"];
readonly Sui: readonly ["Sui"];
readonly Aptos: readonly ["Aptos"];
}[K1 extends bigint ? `bigint(${K1})` : K1 extends boolean ? `boolean(${K1})` : K1]) & {
readonly has: (args_0: string) => boolean;
readonly get: (args_0: string) => (readonly ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"] | readonly ["Noble"] | readonly ["Solana"] | readonly ["Sui"] | readonly ["Aptos"]) | undefined;
};
type ExpandedDomainsOf<P extends Platform> = ReturnType<typeof domainsOf<P>>[number];
export type DomainsOf<P extends Platform> = SimplifyDomain<ExpandedDomainsOf<P>>;
export declare const platformOf: (<const K1 extends "Ethereum" | "Avalanche" | "Optimism" | "Arbitrum" | "Noble" | "Solana" | "Base" | "Polygon" | "Sui" | "Aptos" | "Unichain" | "Linea" | "Codex" | "Sonic" | "Worldchain">(args_0: K1) => {
Ethereum: "Evm";
Avalanche: "Evm";
Optimism: "Evm";
Arbitrum: "Evm";
Base: "Evm";
Polygon: "Evm";
Unichain: "Evm";
Linea: "Evm";
Codex: "Evm";
Sonic: "Evm";
Worldchain: "Evm";
Noble: "Cosmwasm";
Solana: "Solana";
Sui: "Sui";
Aptos: "Aptos";
}[K1 extends bigint ? `bigint(${K1})` : K1 extends boolean ? `boolean(${K1})` : K1]) & {
readonly has: (args_0: string) => boolean;
readonly get: (args_0: string) => ("Solana" | "Sui" | "Aptos" | "Evm" | "Cosmwasm") | undefined;
};
export type PlatformOf<D extends ExpandedDomain> = ReturnType<typeof platformOf<D>>;
export interface EvmDomains extends SuppressExpansion<ExpandedDomainsOf<"Evm">> {
}
export declare const isEvmDomain: (domain: Domain) => domain is DomainsOf<"Evm">;
declare module "../../registry.js" {
interface DomainAliases {
EvmDomains: [ExpandedDomainsOf<"Evm">, EvmDomains];
}
}
export declare const addressFormatOf: (<const K1 extends "Solana" | "Sui" | "Aptos" | "Evm" | "Cosmwasm">(args_0: K1) => {
Evm: [20, "hex"];
Cosmwasm: [32, "bech32"];
Solana: [32, "base58"];
Sui: [32, "hex"];
Aptos: [32, "hex"];
}[K1 extends bigint ? `bigint(${K1})` : K1 extends boolean ? `boolean(${K1})` : K1]) & {
readonly has: (args_0: string) => boolean;
readonly get: (args_0: string) => ([20, "hex"] | [32, "bech32"] | [32, "base58"] | [32, "hex"]) | undefined;
};
export type AddressFormatOf<P extends Platform> = ReturnType<typeof addressFormatOf<P>>;
export {};
//# sourceMappingURL=platforms.d.ts.map