@deliquifiedlabs/uniswapx-sdk
Version:
SDK for the UniswapX protocol
78 lines (77 loc) • 2.58 kB
TypeScript
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 {};