@chain-registry/types
Version:
Chain Registry types
188 lines (187 loc) • 4.86 kB
TypeScript
export interface Peer {
id: string;
address: string;
provider?: string;
}
export interface Endpoint {
address: string;
provider?: string;
archive?: boolean;
}
export interface Explorer {
kind?: string;
url?: string;
txPage?: string;
accountPage?: string;
validatorPage?: string;
proposalPage?: string;
blockPage?: string;
}
export interface FeeToken {
denom: string;
fixedMinGasPrice?: number;
lowGasPrice?: number;
averageGasPrice?: number;
highGasPrice?: number;
gasCosts?: {
cosmosSend?: number;
ibcTransfer?: number;
};
}
export interface StakingToken {
denom: string;
}
export type Repo = string;
export type Version = string;
export type Tag = string;
export interface Sdk {
type: "cosmos" | "penumbra" | "other";
version?: Version;
repo?: Repo;
tag?: Tag;
}
export interface Ibc {
type: "go" | "rust" | "other";
version?: Version;
repo?: Repo;
tag?: Tag;
icsEnabled?: ("ics20-1" | "ics27-1" | "mauth")[];
}
export interface Cosmwasm {
version?: Version;
repo?: Repo;
tag?: Tag;
enabled?: boolean;
path?: string;
}
export interface Consensus {
type: "tendermint" | "cometbft" | "sei-tendermint";
version?: Version;
repo?: Repo;
tag?: Tag;
}
export interface Language {
type: "go" | "rust" | "solidity" | "other";
version?: Version;
repo?: Repo;
tag?: Tag;
}
export interface Binaries {
"linux/amd64"?: string;
"linux/arm64"?: string;
"darwin/amd64"?: string;
"darwin/arm64"?: string;
"windows/amd64"?: string;
"windows/arm64"?: string;
}
export interface Pointer {
chainName: string;
baseDenom?: string;
}
export interface Chain {
$schema?: string;
chainName: string;
chainType: "cosmos" | "eip155" | "bip122" | "polkadot" | "solana" | "algorand" | "arweave" | "ergo" | "fil" | "hedera" | "monero" | "reef" | "stacks" | "starknet" | "stellar" | "tezos" | "vechain" | "waves" | "xrpl" | "unknown";
chainId?: string;
preForkChainName?: string;
prettyName?: string;
website?: string;
status?: "live" | "upcoming" | "killed";
networkType?: "mainnet" | "testnet" | "devnet";
bech32Prefix?: string;
bech32Config?: {
bech32PrefixAccAddr?: string;
bech32PrefixAccPub?: string;
bech32PrefixValAddr?: string;
bech32PrefixValPub?: string;
bech32PrefixConsAddr?: string;
bech32PrefixConsPub?: string;
};
daemonName?: string;
nodeHome?: string;
keyAlgos?: ("secp256k1" | "ethsecp256k1" | "ed25519" | "sr25519" | "bn254")[];
slip44?: number;
alternativeSlip44s?: number[];
fees?: {
feeTokens: FeeToken[];
};
staking?: {
stakingTokens: StakingToken[];
lockDuration?: {
blocks?: number;
time?: string;
};
};
codebase?: {
gitRepo?: string;
recommendedVersion?: string;
compatibleVersions?: string[];
language?: Language;
binaries?: Binaries;
cosmosSdkVersion?: string;
sdk?: Sdk;
consensus?: Consensus;
cosmwasmVersion?: string;
cosmwasmEnabled?: boolean;
cosmwasmPath?: string;
cosmwasm?: Cosmwasm;
ibc?: Ibc;
genesis?: {
name?: string;
genesisUrl: string;
icsCcvUrl?: string;
};
versions?: {
name: string;
tag?: string;
height?: number;
proposal?: number;
previousVersionName?: string;
nextVersionName?: string;
recommendedVersion?: string;
compatibleVersions?: string[];
language?: Language;
cosmosSdkVersion?: string;
sdk?: Sdk;
consensus?: Consensus;
cosmwasmVersion?: string;
cosmwasmEnabled?: boolean;
cosmwasmPath?: string;
cosmwasm?: Cosmwasm;
ibc?: Ibc;
binaries?: Binaries;
}[];
};
images?: {
imageSync?: Pointer;
png?: string;
svg?: string;
theme?: {
primaryColorHex?: string;
backgroundColorHex?: string;
circle?: boolean;
darkMode?: boolean;
monochrome?: boolean;
};
}[];
logoURIs?: {
png?: string;
svg?: string;
};
description?: string;
peers?: {
seeds?: Peer[];
persistentPeers?: Peer[];
};
apis?: {
rpc?: Endpoint[];
rest?: Endpoint[];
grpc?: Endpoint[];
wss?: Endpoint[];
grpcWeb?: Endpoint[];
evmHttpJsonrpc?: Endpoint[];
};
explorers?: Explorer[];
keywords?: string[];
extraCodecs?: ("ethermint" | "injective")[];
}