@xlink-network/xlink-sdk
Version:
54 lines (50 loc) • 2.07 kB
TypeScript
import { Client } from 'viem';
import { EVMOnChainAddresses } from './evmUtils/evmContractAddresses.js';
import { KnownTokenId, KnownChainId } from './utils/types/knownIds.js';
import { BigNumber } from './utils/BigNumber.js';
interface BRC20SupportedRoute {
brc20Tick: string;
brc20Token: KnownTokenId.BRC20Token;
stacksToken: KnownTokenId.StacksToken;
pegInPaused: boolean;
pegInFeeRate: BigNumber;
pegInFeeBitcoinAmount: null | BigNumber;
pegOutPaused: boolean;
pegOutFeeRate: BigNumber;
pegOutFeeBitcoinAmount: null | BigNumber;
}
declare function getBRC20SupportedRoutes(sdkContext: SDKGlobalContext, chainId: KnownChainId.BRC20Chain): Promise<BRC20SupportedRoute[]>;
interface RunesSupportedRoute {
runesId: `${number}:${number}`;
runesToken: KnownTokenId.RunesToken;
stacksToken: KnownTokenId.StacksToken;
pegInPaused: boolean;
pegInFeeRate: BigNumber;
pegInFeeBitcoinAmount: null | BigNumber;
pegOutPaused: boolean;
pegOutFeeRate: BigNumber;
pegOutFeeBitcoinAmount: null | BigNumber;
}
declare function getRunesSupportedRoutes(sdkContext: SDKGlobalContext, chainId: KnownChainId.RunesChain): Promise<RunesSupportedRoute[]>;
interface SDKGlobalContextCache<K, T> {
get: (key: K) => T | null;
set: (key: K, value: T) => void;
delete: (key: K) => void;
}
interface SDKGlobalContext {
backendAPI: {
runtimeEnv: "prod" | "dev";
};
brc20: {
routesConfigCache?: SDKGlobalContextCache<string, Promise<BRC20SupportedRoute[]>>;
};
runes: {
routesConfigCache?: SDKGlobalContextCache<string, Promise<RunesSupportedRoute[]>>;
};
evm: {
enableMulticall?: boolean;
onChainConfigCache?: SDKGlobalContextCache<string, Promise<EVMOnChainAddresses>>;
viemClients: Partial<Record<KnownChainId.EVMChain, Client>>;
};
}
export { type BRC20SupportedRoute as B, type RunesSupportedRoute as R, type SDKGlobalContext as S, getRunesSupportedRoutes as a, type SDKGlobalContextCache as b, getBRC20SupportedRoutes as g };