@swapnet-xyz/sdk
Version:
TypeScript SDK for SwapNet API.
84 lines (83 loc) • 2.18 kB
TypeScript
import type { ChainId, LiquiditySourceUname } from "./unames.js";
export interface ITokenAmountInfo {
referenceId: number;
amount: string;
}
export interface ITokenInfoInResponse {
referenceId: number;
address: string;
name: string;
symbol: string;
decimals: number;
usdPrice?: number;
}
export interface IUniswapV2Details {
feeInBps: number;
}
export interface IRingswapV2Details extends IUniswapV2Details {
fromFewWrappedTokenAddress: string;
toFewWrappedTokenAddress: string;
}
export interface IUniswapV3Details {
fee: number;
}
export interface IUniswapV4Details {
fee: number;
tickSpacing: number;
hooks: string;
isToken0Native: boolean;
}
export interface IAerodromeV3Details {
tickSpacing: number;
}
export interface ILimitOrderDetailsBase {
id: string;
makerToken: string;
takerToken: string;
makerAmount: bigint;
takerAmount: bigint;
deadline: bigint;
}
export interface ISwapnetLimitOrderDetails extends ILimitOrderDetailsBase {
maker: string;
nonce: bigint;
signature: string;
}
export interface IBebopLimitOrderDetails extends ILimitOrderDetailsBase {
isSingleOrder: boolean;
partialFillOffset: number;
calldata: string;
}
export type IEncodingDetails = IUniswapV2Details | IUniswapV3Details | IUniswapV4Details | IAerodromeV3Details | IRingswapV2Details | ILimitOrderDetailsBase;
export interface IRouteInfoInResponse {
address: string;
name: LiquiditySourceUname;
details?: IEncodingDetails;
fromTokens: Array<ITokenAmountInfo>;
toTokens: Array<ITokenAmountInfo>;
}
export interface ISwapResponse {
aggregator: string;
block?: number;
nativeTokenUsdPrice?: number;
tokens: Array<ITokenInfoInResponse>;
sell: ITokenAmountInfo;
buy: ITokenAmountInfo;
routes: Array<IRouteInfoInResponse>;
calldata?: string;
estimatedGas?: string;
}
export interface ITokenStaticInfo {
address: string;
name: string;
symbol: string;
decimals: number;
metadata: {
logoURI: string;
};
}
export interface ITokenPrice {
chainId: ChainId;
address: string;
usdPrice: number;
}