@chain-registry/types
Version:
Chain Registry types
113 lines (112 loc) • 2.67 kB
TypeScript
export interface Asset {
deprecated?: boolean;
description?: string;
extendedDescription?: string;
denomUnits: DenomUnit[];
typeAsset: "sdk.coin" | "cw20" | "erc20" | "ics20" | "snip20" | "snip25" | "bitcoin-like" | "evm-base" | "svm-base" | "substrate" | "sdk.factory" | "bitsong" | "unknown";
address?: string;
base: string;
name: string;
display: string;
symbol: string;
traces?: (IbcTransition | IbcCw20Transition | IbcBridgeTransition | NonIbcTransition)[];
ibc?: {
sourceChannel: string;
dstChannel: string;
sourceDenom: string;
};
logoURIs?: {
png?: string;
svg?: string;
};
images?: {
imageSync?: Pointer;
png?: string;
svg?: string;
theme?: {
primaryColorHex?: string;
backgroundColorHex?: string;
circle?: boolean;
darkMode?: boolean;
monochrome?: boolean;
};
}[];
coingeckoId?: string;
keywords?: string[];
socials?: {
website?: string;
twitter?: string;
telegram?: string;
discord?: string;
github?: string;
medium?: string;
reddit?: string;
};
}
export interface DenomUnit {
denom: string;
exponent: number;
aliases?: string[];
}
export interface Pointer {
chainName: string;
baseDenom?: string;
}
export interface IbcTransition {
type: "ibc";
counterparty: {
chainName: string;
baseDenom: string;
channelId: string;
};
chain: {
channelId: string;
path?: string;
};
}
export interface IbcCw20Transition {
type: "ibc-cw20";
counterparty: {
chainName: string;
baseDenom: string;
port: string;
channelId: string;
};
chain: {
port: string;
channelId: string;
path?: string;
};
}
export interface IbcBridgeTransition {
type: "ibc-bridge";
counterparty: {
chainName: string;
baseDenom: string;
port?: string;
channelId: string;
};
chain: {
port?: string;
channelId: string;
path?: string;
};
provider: string;
}
export interface NonIbcTransition {
type: "bridge" | "liquid-stake" | "synthetic" | "wrapped" | "additional-mintage" | "test-mintage" | "legacy-mintage";
counterparty: {
chainName: string;
baseDenom: string;
contract?: string;
};
chain?: {
contract: string;
};
provider: string;
}
export interface AssetList {
$schema?: string;
chainName: string;
assets: Asset[];
}