@xlink-network/xlink-sdk
Version:
215 lines (212 loc) • 14.5 kB
text/typescript
import { TokenId, ChainId } from '../../xlinkSdkUtils/types.mjs';
import '../BigNumber.mjs';
import 'big.js';
import '../typeHelpers.mjs';
/**
* The `KnownTokenId` namespace provides types of tokens supported by the SDK,
* including Bitcoin, EVM-compatible tokens, and Stacks tokens.
*/
declare namespace KnownTokenId {
/** Represents a known token supported by the SDK. */
type KnownToken = BitcoinToken | BRC20Token | RunesToken | EVMToken | StacksToken;
function isKnownToken(value: TokenId): value is KnownToken;
/** A namespace that contains constants and types for Bitcoin tokens. */
namespace Bitcoin {
/** Represents the Bitcoin token ID (BTC). */
const BTC: "btc-btc (XLinkSDK TokenId)";
}
/** This type includes all known Bitcoin tokens. */
type BitcoinToken = (typeof _allKnownBitcoinTokens)[number];
function isBitcoinToken(value: TokenId): value is BitcoinToken;
type BRC20Token = TokenId<"a brc20 token">;
function isBRC20Token(value: TokenId): value is BRC20Token;
type RunesToken = TokenId<"a runes token">;
function isRunesToken(value: TokenId): value is RunesToken;
/** A namespace that contains constants and types for EVM-compatible tokens. */
namespace EVM {
/** Represents the sUSDT token ID on EVM-compatible blockchains. */
const sUSDT: "evm-susdt (XLinkSDK TokenId)";
/** Represents the USDT token ID on EVM-compatible blockchains. */
const USDT: "evm-usdt (XLinkSDK TokenId)";
/** Represents the USDC token ID on EVM-compatible blockchains. */
const USDC: "evm-usdc (XLinkSDK TokenId)";
/** Represents the aBTC token ID on EVM-compatible blockchains. */
const aBTC: "evm-abtc (XLinkSDK TokenId)";
/** Represents the WBTC token ID on EVM-compatible blockchains. */
const WBTC: "evm-wbtc (XLinkSDK TokenId)";
/** Represents the BTCB token ID on EVM-compatible blockchains. */
const BTCB: "evm-btcb (XLinkSDK TokenId)";
/** Represents the cbBTC token ID on EVM-compatible blockchains. */
const cbBTC: "evm-cbbtc (XLinkSDK TokenId)";
/** Represents the LUNR token ID on EVM-compatible blockchains. */
const LUNR: "evm-lunr (XLinkSDK TokenId)";
/** Represents the ALEX token ID on EVM-compatible blockchains. */
const ALEX: "evm-alex (XLinkSDK TokenId)";
/** Represents the SKO token ID on EVM-compatible blockchains. */
const SKO: "evm-sko (XLinkSDK TokenId)";
/** Represents the vLiSTX token ID on EVM-compatible blockchains. */
const vLiSTX: "evm-vlistx (XLinkSDK TokenId)";
/** Represents the vLiALEX token ID on EVM-compatible blockchains. */
const vLiALEX: "evm-vlialex (XLinkSDK TokenId)";
const uBTC: "evm-ubtc (XLinkSDK TokenId)";
const wuBTC: "evm-wubtc (XLinkSDK TokenId)";
const DB20: "evm-db20 (XLinkSDK TokenId)";
const DOG: "evm-dog (XLinkSDK TokenId)";
}
/** This type includes all known tokens on EVM-compatible blockchains. */
type EVMToken = (typeof _allKnownEVMTokens)[number];
function isEVMToken(value: TokenId): value is EVMToken;
/** A namespace that contains constants and types for Stacks tokens. */
namespace Stacks {
/** Represents the sUSDT token ID on the Stacks blockchain. */
const sUSDT: "stx-susdt (XLinkSDK TokenId)";
/** Represents the sLUNR token ID on the Stacks blockchain. */
const sLUNR: "stx-slunr (XLinkSDK TokenId)";
/** Represents the aBTC token ID on the Stacks blockchain. */
const aBTC: "stx-abtc (XLinkSDK TokenId)";
/** Represents the ALEX token ID on the Stacks blockchain. */
const ALEX: "stx-alex (XLinkSDK TokenId)";
/** Represents the sSKO token ID on the Stacks blockchain. */
const sSKO: "stx-ssko (XLinkSDK TokenId)";
/** Represents the vLiSTX token ID on the Stacks blockchain. */
const vLiSTX: "stx-vlistx (XLinkSDK TokenId)";
/** Represents the vLiALEX token ID on the Stacks blockchain. */
const vLiALEX: "stx-vlialex (XLinkSDK TokenId)";
const uBTC: "stx-ubtc (XLinkSDK TokenId)";
const DB20: "stx-db20 (XLinkSDK TokenId)";
const DOG: "stx-dog (XLinkSDK TokenId)";
}
/** This type includes all known tokens on the Stacks blockchain. */
type StacksToken = (typeof _allKnownStacksTokens)[number];
function isStacksToken(value: TokenId): value is StacksToken;
}
declare const createBRC20Token: (brc20tick: string) => KnownTokenId.BRC20Token;
declare const createRunesToken: (runeId: `${number}:${number}`) => KnownTokenId.RunesToken;
declare const _allKnownBitcoinTokens: "btc-btc (XLinkSDK TokenId)"[];
declare const _allKnownEVMTokens: ("evm-susdt (XLinkSDK TokenId)" | "evm-usdt (XLinkSDK TokenId)" | "evm-usdc (XLinkSDK TokenId)" | "evm-abtc (XLinkSDK TokenId)" | "evm-wbtc (XLinkSDK TokenId)" | "evm-btcb (XLinkSDK TokenId)" | "evm-cbbtc (XLinkSDK TokenId)" | "evm-lunr (XLinkSDK TokenId)" | "evm-alex (XLinkSDK TokenId)" | "evm-sko (XLinkSDK TokenId)" | "evm-vlistx (XLinkSDK TokenId)" | "evm-vlialex (XLinkSDK TokenId)" | "evm-ubtc (XLinkSDK TokenId)" | "evm-wubtc (XLinkSDK TokenId)" | "evm-db20 (XLinkSDK TokenId)" | "evm-dog (XLinkSDK TokenId)")[];
declare const _allKnownStacksTokens: ("stx-susdt (XLinkSDK TokenId)" | "stx-slunr (XLinkSDK TokenId)" | "stx-abtc (XLinkSDK TokenId)" | "stx-alex (XLinkSDK TokenId)" | "stx-ssko (XLinkSDK TokenId)" | "stx-vlistx (XLinkSDK TokenId)" | "stx-vlialex (XLinkSDK TokenId)" | "stx-ubtc (XLinkSDK TokenId)" | "stx-db20 (XLinkSDK TokenId)" | "stx-dog (XLinkSDK TokenId)")[];
/**
* The `KnownChainId` namespace provides types of blockchain networks
* supported by the SDK, including Bitcoin, EVM-compatible chains, and Stacks.
*/
declare namespace KnownChainId {
/** Represents a known blockchain network supported by the SDK. */
type KnownChain = BitcoinChain | BRC20Chain | RunesChain | EVMChain | StacksChain;
function isKnownChain(value: ChainId): value is KnownChain;
/** A namespace that contains constants and types for Bitcoin networks. */
namespace Bitcoin {
/** Represents the Bitcoin mainnet chain ID. */
const Mainnet: "bitcoin-mainnet (XLinkSDK ChainId)";
/** Represents the Bitcoin testnet chain ID. */
const Testnet: "bitcoin-testnet (XLinkSDK ChainId)";
}
/** Represents a Bitcoin blockchain network. */
type BitcoinChain = (typeof _allKnownBitcoinChains)[number];
function isBitcoinChain(value: ChainId): value is BitcoinChain;
namespace Runes {
/** Represents the Runes mainnet chain ID. */
const Mainnet: "runes-mainnet (XLinkSDK ChainId)";
/** Represents the Runes testnet chain ID. */
const Testnet: "runes-testnet (XLinkSDK ChainId)";
}
/** Represents a Runes blockchain network. */
type RunesChain = (typeof _allKnownRunesChains)[number];
function isRunesChain(value: ChainId): value is RunesChain;
namespace BRC20 {
/** Represents the BRC20 mainnet chain ID. */
const Mainnet: "brc20-mainnet (XLinkSDK ChainId)";
/** Represents the BRC20 testnet chain ID. */
const Testnet: "brc20-testnet (XLinkSDK ChainId)";
}
/** Represents a BRC20 blockchain network. */
type BRC20Chain = (typeof _allKnownBRC20Chains)[number];
function isBRC20Chain(value: ChainId): value is BRC20Chain;
/** A namespace that contains constants and types for EVM-compatible networks. */
namespace EVM {
/** Represents the Ethereum mainnet chain ID. */
const Ethereum: "evm-ethereum (XLinkSDK ChainId)";
/** Represents the Ethereum testnet chain ID. */
const Sepolia: "evm-sepolia (XLinkSDK ChainId)";
/** Represents the BNB Smart Chain mainnet chain ID. */
const BSC: "evm-bsc (XLinkSDK ChainId)";
/** Represents the BNB Smart Chain testnet chain ID. */
const BSCTestnet: "evm-bsctestnet (XLinkSDK ChainId)";
/** Represents the CoreDAO mainnet chain ID. */
const CoreDAO: "evm-coredao (XLinkSDK ChainId)";
/** Represents the CoreDAO testnet chain ID. */
const CoreDAOTestnet: "evm-coredao-testnet (XLinkSDK ChainId)";
/** Represents the Bsquared mainnet chain ID. */
const Bsquared: "evm-bsquared (XLinkSDK ChainId)";
/** Represents the Bsquared testnet chain ID. */
/** Represents the BOB mainnet chain ID. */
const BOB: "evm-bob (XLinkSDK ChainId)";
/** Represents the BOB testnet chain ID. */
/** Represents the Bitlayer mainnet chain ID. */
const Bitlayer: "evm-bitlayer (XLinkSDK ChainId)";
/** Represents the Bitlayer testnet chain ID. */
/** Represents the Lorenzo mainnet chain ID. */
const Lorenzo: "evm-lorenzo (XLinkSDK ChainId)";
/** Represents the Lorenzo testnet chain ID. */
/** Represents the Merlin mainnet chain ID. */
const Merlin: "evm-merlin (XLinkSDK ChainId)";
/** Represents the Merlin testnet chain ID. */
/** Represents the AILayer mainnet chain ID. */
const AILayer: "evm-ailayer (XLinkSDK ChainId)";
/** Represents the AILayer testnet chain ID. */
/** Represents the Mode mainnet chain ID. */
const Mode: "evm-mode (XLinkSDK ChainId)";
/** Represents the Mode testnet chain ID. */
/** Represents the XLayer mainnet chain ID. */
const XLayer: "evm-xlayer (XLinkSDK ChainId)";
/** Represents the XLayer testnet chain ID. */
/** Represents the Arbitrum mainnet chain ID. */
const Arbitrum: "evm-arbitrum (XLinkSDK ChainId)";
/** Represents the Aurora mainnet chain ID. */
const Aurora: "evm-aurora (XLinkSDK ChainId)";
/** Represents the Blife mainnet chain ID. */
const BlifeTestnet: "evm-blife-testnet (XLinkSDK ChainId)";
/** Represents the Bitboy mainnet chain ID. */
const BitboyTestnet: "evm-bitboy-testnet (XLinkSDK ChainId)";
/** Represents the Manta mainnet chain ID. */
const Manta: "evm-manta (XLinkSDK ChainId)";
/** Represents the Manta testnet chain ID. */
/** Represents the Linea mainnet chain ID. */
const Linea: "evm-linea (XLinkSDK ChainId)";
/** Represents the Linea testnet chain ID. */
/** Represents the Base mainnet chain ID. */
const Base: "evm-base (XLinkSDK ChainId)";
/** Represents the Base testnet chain ID. */
/** Represents the Bera mainnet chain ID. */
/** Represents the Bera testnet chain ID. */
const BeraTestnet: "evm-bera-testnet (XLinkSDK ChainId)";
}
/** Represents a mainnet EVM-compatible blockchain network. */
type EVMMainnetChain = (typeof _allKnownEVMMainnetChains)[number];
function isEVMMainnetChain(value: ChainId): value is EVMMainnetChain;
/** Represents a testnet EVM-compatible blockchain network. */
type EVMTestnetChain = (typeof _allKnownEVMTestnetChains)[number];
function isEVMTestnetChain(value: ChainId): value is EVMTestnetChain;
/** Represents an EVM-compatible blockchain network. */
type EVMChain = (typeof _allKnownEVMChains)[number];
function isEVMChain(value: ChainId): value is EVMChain;
/** A namespace that contains constants and types for Stacks blockchain networks. */
namespace Stacks {
/** Represents the Stacks mainnet chain ID. */
const Mainnet: "stacks-mainnet (XLinkSDK ChainId)";
/** Represents the Stacks testnet chain ID. */
const Testnet: "stacks-testnet (XLinkSDK ChainId)";
}
/** Represents a Stacks blockchain network. */
type StacksChain = (typeof _allKnownStacksChains)[number];
function isStacksChain(value: ChainId): value is StacksChain;
}
declare const _allKnownBitcoinChains: ("bitcoin-mainnet (XLinkSDK ChainId)" | "bitcoin-testnet (XLinkSDK ChainId)")[];
declare const _allKnownRunesChains: ("runes-mainnet (XLinkSDK ChainId)" | "runes-testnet (XLinkSDK ChainId)")[];
declare const _allKnownBRC20Chains: ("brc20-mainnet (XLinkSDK ChainId)" | "brc20-testnet (XLinkSDK ChainId)")[];
declare const _allKnownEVMChains: ("evm-ethereum (XLinkSDK ChainId)" | "evm-sepolia (XLinkSDK ChainId)" | "evm-bsc (XLinkSDK ChainId)" | "evm-bsctestnet (XLinkSDK ChainId)" | "evm-coredao (XLinkSDK ChainId)" | "evm-coredao-testnet (XLinkSDK ChainId)" | "evm-bsquared (XLinkSDK ChainId)" | "evm-bob (XLinkSDK ChainId)" | "evm-bitlayer (XLinkSDK ChainId)" | "evm-lorenzo (XLinkSDK ChainId)" | "evm-merlin (XLinkSDK ChainId)" | "evm-ailayer (XLinkSDK ChainId)" | "evm-mode (XLinkSDK ChainId)" | "evm-xlayer (XLinkSDK ChainId)" | "evm-arbitrum (XLinkSDK ChainId)" | "evm-aurora (XLinkSDK ChainId)" | "evm-blife-testnet (XLinkSDK ChainId)" | "evm-bitboy-testnet (XLinkSDK ChainId)" | "evm-manta (XLinkSDK ChainId)" | "evm-linea (XLinkSDK ChainId)" | "evm-base (XLinkSDK ChainId)" | "evm-bera-testnet (XLinkSDK ChainId)")[];
declare const _allKnownStacksChains: ("stacks-mainnet (XLinkSDK ChainId)" | "stacks-testnet (XLinkSDK ChainId)")[];
declare const _allKnownEVMMainnetChains: readonly ["evm-ethereum (XLinkSDK ChainId)", "evm-bsc (XLinkSDK ChainId)", "evm-coredao (XLinkSDK ChainId)", "evm-bsquared (XLinkSDK ChainId)", "evm-bob (XLinkSDK ChainId)", "evm-bitlayer (XLinkSDK ChainId)", "evm-lorenzo (XLinkSDK ChainId)", "evm-merlin (XLinkSDK ChainId)", "evm-ailayer (XLinkSDK ChainId)", "evm-mode (XLinkSDK ChainId)", "evm-xlayer (XLinkSDK ChainId)", "evm-arbitrum (XLinkSDK ChainId)", "evm-aurora (XLinkSDK ChainId)", "evm-manta (XLinkSDK ChainId)", "evm-linea (XLinkSDK ChainId)", "evm-base (XLinkSDK ChainId)"];
declare const _allKnownEVMTestnetChains: readonly ["evm-sepolia (XLinkSDK ChainId)", "evm-bsctestnet (XLinkSDK ChainId)", "evm-coredao-testnet (XLinkSDK ChainId)", "evm-blife-testnet (XLinkSDK ChainId)", "evm-bitboy-testnet (XLinkSDK ChainId)", "evm-bera-testnet (XLinkSDK ChainId)"];
declare const _allNoLongerSupportedEVMChains: ChainId[];
declare const _knownChainIdToErrorMessagePart: (chainId: ChainId) => string;
export { KnownChainId, KnownTokenId, _allKnownBRC20Chains, _allKnownBitcoinChains, _allKnownBitcoinTokens, _allKnownEVMChains, _allKnownEVMMainnetChains, _allKnownEVMTestnetChains, _allKnownEVMTokens, _allKnownRunesChains, _allKnownStacksChains, _allKnownStacksTokens, _allNoLongerSupportedEVMChains, _knownChainIdToErrorMessagePart, createBRC20Token, createRunesToken };