OrderMixin

Regular Limit Order mixin

Derives

Functions

remaining

function remaining(
  bytes32 orderHash
) external returns (uint256)

Returns unfilled amount for order. Throws if order does not exist

Parameters:

Name
Type
Description

orderHash

bytes32

remainingRaw

function remainingRaw(
  bytes32 orderHash
) external returns (uint256)

Returns unfilled amount for order

Parameters:

Name
Type
Description

orderHash

bytes32

Return Values:

Name
Type
Description

Result

uint256

Unfilled amount of order plus one if order exists. Otherwise 0

remainingsRaw

function remainingsRaw(
  bytes32[] orderHashes
) external returns (uint256[])

Same as remainingRaw but for multiple orders

Parameters:

Name
Type
Description

orderHashes

bytes32[]

simulateCalls

function simulateCalls(
  address[] targets,
  bytes[] data
) external

Calls every target with corresponding data. Then reverts with CALL_RESULTS_0101011 where zeroes and ones denote failure or success of the corresponding call

Parameters:

Name
Type
Description

targets

address[]

Array of addresses that will be called

data

bytes[]

Array of data that will be passed to each call

cancelOrder

function cancelOrder(
  struct OrderLib.Order order
) external

Cancels order by setting remaining amount to zero

Parameters:

Name
Type
Description

order

struct OrderLib.Order

fillOrder

function fillOrder(
  struct OrderLib.Order order,
  bytes signature,
  bytes interaction,
  uint256 makingAmount,
  uint256 takingAmount,
  uint256 thresholdAmount
) external returns (uint256, uint256)

Fills an order. If one doesn't exist (first fill) it will be created using order.makerAssetData

Parameters:

Name
Type
Description

order

struct OrderLib.Order

Order quote to fill

signature

bytes

Signature to confirm quote ownership

interaction

bytes

Making amount

makingAmount

uint256

Taking amount

takingAmount

uint256

Specifies maximum allowed takingAmount when takingAmount is zero, otherwise specifies minimum allowed makingAmount

thresholdAmount

uint256

fillOrderToWithPermit

function fillOrderToWithPermit(
  struct OrderLib.Order order,
  bytes signature,
  bytes interaction,
  uint256 makingAmount,
  uint256 takingAmount,
  uint256 thresholdAmount,
  address target,
  bytes permit
) external returns (uint256, uint256)

Same as fillOrder 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:

Name
Type
Description

order

struct OrderLib.Order

Order quote to fill

signature

bytes

Signature to confirm quote ownership

interaction

bytes

Making amount

makingAmount

uint256

Taking amount

takingAmount

uint256

Specifies maximum allowed takingAmount when takingAmount is zero, otherwise specifies minimum allowed makingAmount

thresholdAmount

uint256

Address that will receive swap funds

target

address

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

permit

bytes

fillOrderTo

function fillOrderTo(
  struct OrderLib.Order order_,
  bytes signature,
  bytes interaction,
  uint256 makingAmount,
  uint256 takingAmount,
  uint256 thresholdAmount,
  address target
) public returns (uint256, uint256)

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

Parameters:

Name
Type
Description

order_

struct OrderLib.Order

Order quote to fill

signature

bytes

Signature to confirm quote ownership

interaction

bytes

Making amount

makingAmount

uint256

Taking amount

takingAmount

uint256

Specifies maximum allowed takingAmount when takingAmount is zero, otherwise specifies minimum allowed makingAmount

thresholdAmount

uint256

Address that will receive swap funds

target

address

checkPredicate

function checkPredicate(
  struct OrderLib.Order order
) public returns (bool)

Checks order predicate

Parameters:

Name
Type
Description

order

struct OrderLib.Order

hashOrder

function hashOrder(
  struct OrderLib.Order order
) public returns (bytes32)

Parameters:

Name
Type
Description

order

struct OrderLib.Order

Events

OrderFilled

event OrderFilled(
  address maker,
  bytes32 orderHash,
  uint256 remaining
)

Emitted every time order gets filled, including partial fills

Parameters:

Name
Type
Description

maker

address

orderHash

bytes32

remaining

uint256

OrderCanceled

event OrderCanceled(
  address maker,
  bytes32 orderHash,
  uint256 remainingRaw
)

Emitted when order gets cancelled

Parameters:

Name
Type
Description

maker

address

orderHash

bytes32

remainingRaw

uint256

Last updated