@tokenlon/contracts-lib
Version:
Common utility functions (e.g., signing order, encoding data) to interact with [Tokenlon contracts](https://github.com/consenlabs/tokenlon-contracts).
154 lines (153 loc) • 3.9 kB
TypeScript
import { BigNumberish, BytesLike } from "ethers";
export declare type AMMOrder = {
makerAddr: string;
takerAssetAddr: string;
makerAssetAddr: string;
takerAssetAmount: BigNumberish;
makerAssetAmount: BigNumberish;
userAddr: string;
receiverAddr: string;
salt: BigNumberish;
deadline: number;
};
export declare type AMMTradeData = {
makerAddr: string;
takerAssetAddr: string;
makerAssetAddr: string;
takerAssetAmount: BigNumberish;
makerAssetAmount: BigNumberish;
feeFactor: BigNumberish;
userAddr: string;
receiverAddr: string;
salt: BigNumberish;
deadline: number;
signature: BytesLike;
};
export declare type AMMTradeWithPathData = {
makerAddr: string;
takerAssetAddr: string;
makerAssetAddr: string;
takerAssetAmount: BigNumberish;
makerAssetAmount: BigNumberish;
userAddr: string;
receiverAddr: string;
salt: BigNumberish;
deadline: number;
feeFactor: number;
signature: BytesLike;
makerSpecificData: BytesLike;
path: string[];
};
export declare type LimitOrder = {
makerToken: string;
takerToken: string;
makerTokenAmount: BigNumberish;
takerTokenAmount: BigNumberish;
maker: string;
taker: string;
salt: BigNumberish;
expiry: number;
};
export declare type LimitOrderFill = {
orderHash: string;
taker: string;
recipient: string;
takerTokenAmount: BigNumberish;
takerSalt: BigNumberish;
expiry: number;
};
export declare type LimitOrderAllowFill = {
orderHash: string;
executor: string;
fillAmount: BigNumberish;
salt: BigNumberish;
expiry: number;
};
export declare type LimitOrderFillByTraderData = {
order: LimitOrder;
makerSignature: BytesLike;
fill: LimitOrderFill;
takerSignature: BytesLike;
allowFill: {
salt: BigNumberish;
expiry: number;
};
coordinatorSignature: BytesLike;
};
export declare enum LimitOrderProtocol {
UniswapV3 = 0,
Sushiswap = 1
}
export declare type LimitOrderProtocolData = {
protocol: LimitOrderProtocol;
data: BytesLike;
profitRecipient: string;
takerTokenAmount: BigNumberish;
protocolOutMinimum: BigNumberish;
expiry: number;
};
export declare type LimitOrderFillByProtocolData = {
order: LimitOrder;
makerSignature: BytesLike;
protocol: LimitOrderProtocolData;
allowFill: {
salt: BigNumberish;
expiry: number;
};
coordinatorSignature: BytesLike;
};
export declare type LimitOrderCancelData = {
order: LimitOrder;
makerCancelSignature: BytesLike;
};
export declare type RFQOrder = {
takerAddr: string;
makerAddr: string;
takerAssetAddr: string;
makerAssetAddr: string;
takerAssetAmount: BigNumberish;
makerAssetAmount: BigNumberish;
salt: BigNumberish;
deadline: number;
feeFactor: number;
};
export declare type RFQFill = RFQOrder & {
receiverAddr: string;
};
export declare type RFQFillData = {
takerAddr: string;
makerAddr: string;
takerAssetAddr: string;
makerAssetAddr: string;
takerAssetAmount: BigNumberish;
makerAssetAmount: BigNumberish;
receiverAddr: string;
salt: BigNumberish;
deadline: number;
feeFactor: number;
makerSignature: BytesLike;
takerSignature: BytesLike;
};
export declare type L2Deposit = {
l2Identifier: number;
l1TokenAddr: string;
l2TokenAddr: string;
sender: string;
recipient: string;
amount: BigNumberish;
salt: BigNumberish;
expiry: number;
data: BytesLike;
};
export declare type L2DepositData = {
deposit: L2Deposit;
depositSig: BytesLike;
};
export declare type L2ArbitrumDepositData = {
maxSubmissionCost: BigNumberish;
maxGas: BigNumberish;
gasPriceBid: BigNumberish;
};
export declare type L2OptimismDepositData = {
l2Gas: BigNumberish;
};