UNPKG

@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
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; };