OrderRFQMixin

RFQ Limit Order mixin

Derives

Functions

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

maker

address

slot

uint256

Return Values:

NameTypeDescription

Result

uint256

Each bit represents whether corresponding was already invalidated

cancelOrderRFQ

function cancelOrderRFQ(
  uint256 orderInfo
) external

Cancels order's quote

Parameters:

NameTypeDescription

orderInfo

uint256

fillOrderRFQ

function fillOrderRFQ(
  struct OrderRFQMixin.Order order,
  bytes signature,
  uint256 makingAmount,
  uint256 takingAmount
) external returns (uint256, uint256)

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

Parameters:

NameTypeDescription

order

struct OrderRFQMixin.Order

Order quote to fill

signature

bytes

Signature to confirm quote ownership

makingAmount

uint256

Making amount

takingAmount

uint256

Taking amount

fillOrderRFQToWithPermit

function fillOrderRFQToWithPermit(
  struct OrderRFQMixin.Order order,
  bytes signature,
  uint256 makingAmount,
  uint256 takingAmount,
  address 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

See tests for examples

Parameters:

NameTypeDescription

order

struct OrderRFQMixin.Order

Order quote to fill

signature

bytes

Signature to confirm quote ownership

makingAmount

uint256

Making amount

takingAmount

uint256

Taking amount

target

address

Address that will receive swap funds

permit

bytes

Should consist of abiencoded token address and encoded IERC20Permit.permit call.

fillOrderRFQTo

function fillOrderRFQTo(
  struct OrderRFQMixin.Order order,
  bytes signature,
  uint256 makingAmount,
  uint256 takingAmount,
  address target
) public returns (uint256, uint256)

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

Parameters:

NameTypeDescription

order

struct OrderRFQMixin.Order

Order quote to fill

signature

bytes

Signature to confirm quote ownership

makingAmount

uint256

Making amount

takingAmount

uint256

Taking amount

target

address

Address that will receive swap funds

Events

OrderFilledRFQ

event OrderFilledRFQ(
  bytes32 orderHash,
  uint256 makingAmount
)

Emitted when RFQ gets filled

Parameters:

NameTypeDescription

orderHash

bytes32

makingAmount

uint256

Last updated