UNPKG

@deliquifiedlabs/uniswapx-sdk

Version:

SDK for the UniswapX protocol

78 lines (77 loc) 2.58 kB
import { BaseProvider } from "@ethersproject/providers"; import { OrderQuoter as OrderQuoterContract, RelayOrderReactor } from "../contracts"; import { Order, RelayOrder, ResolvedRelayFee, TokenAmount, UniswapXOrder } from "../order"; export declare enum OrderValidation { Expired = 0, NonceUsed = 1, InsufficientFunds = 2, InvalidSignature = 3, InvalidOrderFields = 4, UnknownError = 5, ValidationFailed = 6, ExclusivityPeriod = 7, InvalidCosignature = 8, OK = 9 } export interface ResolvedUniswapXOrder { input: TokenAmount; outputs: TokenAmount[]; } export interface UniswapXOrderQuote { validation: OrderValidation; quote: ResolvedUniswapXOrder | undefined; } export interface ResolvedRelayOrder { fee: ResolvedRelayFee; } export interface RelayOrderQuote { validation: OrderValidation; quote: ResolvedRelayOrder | undefined; } export interface SignedUniswapXOrder { order: UniswapXOrder; signature: string; } export interface SignedRelayOrder { order: RelayOrder; signature: string; } export interface SignedOrder { order: Order; signature: string; } interface OrderQuoter<TOrder, TQuote> { quote(order: TOrder): Promise<TQuote>; quoteBatch(orders: TOrder[]): Promise<TQuote[]>; orderQuoterAddress: string; } /** * UniswapX order quoter */ export declare class UniswapXOrderQuoter implements OrderQuoter<SignedUniswapXOrder, UniswapXOrderQuote> { protected provider: BaseProvider; protected chainId: number; protected quoter: OrderQuoterContract; constructor(provider: BaseProvider, chainId: number, orderQuoterAddress?: string); quote(order: SignedUniswapXOrder): Promise<UniswapXOrderQuote>; quoteBatch(orders: SignedUniswapXOrder[]): Promise<UniswapXOrderQuote[]>; private getValidations; private getMulticallResults; get orderQuoterAddress(): string; } /** * Relay order quoter */ export declare class RelayOrderQuoter implements OrderQuoter<SignedRelayOrder, RelayOrderQuote> { protected provider: BaseProvider; protected chainId: number; protected quoter: RelayOrderReactor; private quoteFunctionSelector; constructor(provider: BaseProvider, chainId: number, reactorAddress?: string); quote(order: SignedRelayOrder): Promise<RelayOrderQuote>; quoteBatch(orders: SignedRelayOrder[]): Promise<RelayOrderQuote[]>; private getMulticallResults; private getValidations; get orderQuoterAddress(): string; } export {};