Skip to main content

LimitOrderProtocolRFQ

Derives#

Functions#

constructor#

function constructor(  address weth) public

Parameters:#

NameTypeDescription
wethaddress

DOMAIN_SEPARATOR#

function DOMAIN_SEPARATOR() external returns (bytes32)

invalidatorForOrderRFQ#

function invalidatorForOrderRFQ(  address maker,  uint256 slot) external returns (uint256)

Returns bitmask for double-spend invalidators based on lowest byte of order.info and filled quotes

Parameters:#

NameTypeDescription
makeraddress
slotuint256

Return Values:#

NameTypeDescription
Resultuint256Each bit represents whenever corresponding quote was filled

cancelOrderRFQ#

function cancelOrderRFQ(  uint256 orderInfo) external

Cancels order's quote

Parameters:#

NameTypeDescription
orderInfouint256

fillOrderRFQ#

function fillOrderRFQ(  struct LimitOrderProtocolRFQ.OrderRFQ order,  bytes signature,  uint256 makingAmount,  uint256 takingAmount) external returns (uint256, uint256)

Fills order's quote, fully or partially (whichever is possible)

Parameters:#

NameTypeDescription
orderstruct LimitOrderProtocolRFQ.OrderRFQOrder quote to fill
signaturebytesSignature to confirm quote ownership
makingAmountuint256Making amount
takingAmountuint256Taking amount

fillOrderRFQToWithPermit#

function fillOrderRFQToWithPermit(  struct LimitOrderProtocolRFQ.OrderRFQ order,  bytes signature,  uint256 makingAmount,  uint256 takingAmount,  address payable target,  bytes permit) external returns (uint256, uint256)

Fills Same as fillOrderRFQ but calls permit first, allowing to approve token spending and make a swap in one transaction. Also allows to specify funds destination instead of msg.sender

Parameters:#

NameTypeDescription
orderstruct LimitOrderProtocolRFQ.OrderRFQOrder quote to fill
signaturebytesSignature to confirm quote ownership
makingAmountuint256Making amount
takingAmountuint256Taking amount
targetaddress payableAddress that will receive swap funds
permitbytesShould consist of abiencoded token address and encoded IERC20Permit.permit call. See tests for examples

fillOrderRFQTo#

function fillOrderRFQTo(  struct LimitOrderProtocolRFQ.OrderRFQ order,  bytes signature,  uint256 makingAmount,  uint256 takingAmount,  address payable target) public returns (uint256, uint256)

Same as fillOrderRFQ but allows to specify funds destination instead of msg.sender

Parameters:#

NameTypeDescription
orderstruct LimitOrderProtocolRFQ.OrderRFQOrder quote to fill
signaturebytesSignature to confirm quote ownership
makingAmountuint256Making amount
takingAmountuint256Taking amount
targetaddress payableAddress that will receive swap funds

Events#

OrderFilledRFQ#

event OrderFilledRFQ(  bytes32 orderHash,  uint256 makingAmount)

Parameters:#

NameTypeDescription
orderHashbytes32
makingAmountuint256