@xlink-network/xlink-sdk
Version:
116 lines (113 loc) • 5.06 kB
TypeScript
import { ChainId, TokenId } from '../xlinkSdkUtils/types.js';
import { S as SDKGlobalContext } from '../types.internal-BwEnb5-y.js';
import { KnownChainId, KnownTokenId } from './types/knownIds.js';
import './BigNumber.js';
import 'big.js';
import './typeHelpers.js';
import 'viem';
import '../evmUtils/evmContractAddresses.js';
interface DefinedRoute {
fromChain: ChainId;
toChain: ChainId;
fromToken: TokenId;
toToken: TokenId;
}
type KnownRoute_FromStacks_ToBitcoin = {
fromChain: KnownChainId.StacksChain;
fromToken: KnownTokenId.StacksToken;
toChain: KnownChainId.BitcoinChain;
toToken: KnownTokenId.BitcoinToken;
};
type KnownRoute_FromStacks_ToEVM = {
fromChain: KnownChainId.StacksChain;
fromToken: KnownTokenId.StacksToken;
toChain: KnownChainId.EVMChain;
toToken: KnownTokenId.EVMToken;
};
type KnownRoute_FromStacks_ToBRC20 = {
fromChain: KnownChainId.StacksChain;
fromToken: KnownTokenId.StacksToken;
toChain: KnownChainId.BRC20Chain;
toToken: KnownTokenId.BRC20Token;
};
type KnownRoute_FromStacks_ToRunes = {
fromChain: KnownChainId.StacksChain;
fromToken: KnownTokenId.StacksToken;
toChain: KnownChainId.RunesChain;
toToken: KnownTokenId.RunesToken;
};
type KnownRoute_FromStacks = KnownRoute_FromStacks_ToBitcoin | KnownRoute_FromStacks_ToEVM | KnownRoute_FromStacks_ToBRC20 | KnownRoute_FromStacks_ToRunes;
type KnownRoute_FromBitcoin_ToStacks = {
fromChain: KnownChainId.BitcoinChain;
fromToken: KnownTokenId.BitcoinToken;
toChain: KnownChainId.StacksChain;
toToken: KnownTokenId.StacksToken;
};
type KnownRoute_FromBitcoin_ToEVM = {
fromChain: KnownChainId.BitcoinChain;
fromToken: KnownTokenId.BitcoinToken;
toChain: KnownChainId.EVMChain;
toToken: KnownTokenId.EVMToken;
};
type KnownRoute_FromBitcoin = KnownRoute_FromBitcoin_ToStacks | KnownRoute_FromBitcoin_ToEVM;
type KnownRoute_FromEVM_ToStacks = {
fromChain: KnownChainId.EVMChain;
fromToken: KnownTokenId.EVMToken;
toChain: KnownChainId.StacksChain;
toToken: KnownTokenId.StacksToken;
};
type KnownRoute_FromEVM_ToBitcoin = {
fromChain: KnownChainId.EVMChain;
fromToken: KnownTokenId.EVMToken;
toChain: KnownChainId.BitcoinChain;
toToken: KnownTokenId.BitcoinToken;
};
type KnownRoute_FromEVM_ToBRC20 = {
fromChain: KnownChainId.EVMChain;
fromToken: KnownTokenId.EVMToken;
toChain: KnownChainId.BRC20Chain;
toToken: KnownTokenId.BRC20Token;
};
type KnownRoute_FromEVM_ToRunes = {
fromChain: KnownChainId.EVMChain;
fromToken: KnownTokenId.EVMToken;
toChain: KnownChainId.RunesChain;
toToken: KnownTokenId.RunesToken;
};
type KnownRoute_FromEVM_ToEVM = {
fromChain: KnownChainId.EVMChain;
fromToken: KnownTokenId.EVMToken;
toChain: KnownChainId.EVMChain;
toToken: KnownTokenId.EVMToken;
};
type KnownRoute_FromEVM = KnownRoute_FromEVM_ToStacks | KnownRoute_FromEVM_ToBitcoin | KnownRoute_FromEVM_ToBRC20 | KnownRoute_FromEVM_ToRunes | KnownRoute_FromEVM_ToEVM;
type _KnownRoute_FromBRC20_ToStacks = {
fromChain: KnownChainId.BRC20Chain;
fromToken: KnownTokenId.BRC20Token;
toChain: KnownChainId.StacksChain;
toToken: KnownTokenId.StacksToken;
};
type _KnownRoute_FromRunes_ToStacks = {
fromChain: KnownChainId.RunesChain;
fromToken: KnownTokenId.RunesToken;
toChain: KnownChainId.StacksChain;
toToken: KnownTokenId.StacksToken;
};
type KnownRoute = KnownRoute_FromStacks | KnownRoute_FromBitcoin | KnownRoute_FromEVM;
declare function defineRoute(chainPairs: [fromChains: ChainId[], toChains: ChainId[]], tokenPairs: [fromToken: TokenId, toToken: TokenId][]): DefinedRoute[];
type IsSupportedFn = (ctx: SDKGlobalContext, route: DefinedRoute) => Promise<boolean>;
interface GetSupportedRoutesFn_Conditions {
fromChain?: ChainId;
toChain?: ChainId;
fromToken?: TokenId;
toToken?: TokenId;
}
type GetSupportedRoutesFn = (ctx: SDKGlobalContext, conditions?: GetSupportedRoutesFn_Conditions) => Promise<KnownRoute[]>;
type CheckRouteValidFn = (ctx: SDKGlobalContext, route: DefinedRoute) => Promise<KnownRoute>;
declare function buildSupportedRoutes(routes: DefinedRoute[], options?: {
isSupported?: IsSupportedFn;
}): {
getSupportedRoutes: GetSupportedRoutesFn;
checkRouteValid: CheckRouteValidFn;
};
export { type CheckRouteValidFn, type DefinedRoute, type GetSupportedRoutesFn, type GetSupportedRoutesFn_Conditions, type IsSupportedFn, type KnownRoute, type KnownRoute_FromBitcoin, type KnownRoute_FromBitcoin_ToEVM, type KnownRoute_FromBitcoin_ToStacks, type KnownRoute_FromEVM, type KnownRoute_FromEVM_ToBRC20, type KnownRoute_FromEVM_ToBitcoin, type KnownRoute_FromEVM_ToEVM, type KnownRoute_FromEVM_ToRunes, type KnownRoute_FromEVM_ToStacks, type KnownRoute_FromStacks, type KnownRoute_FromStacks_ToBRC20, type KnownRoute_FromStacks_ToBitcoin, type KnownRoute_FromStacks_ToEVM, type KnownRoute_FromStacks_ToRunes, type _KnownRoute_FromBRC20_ToStacks, type _KnownRoute_FromRunes_ToStacks, buildSupportedRoutes, defineRoute };