Skip to content

Filling EVM Orders

To be able to finalise an intent, all outputs have to be delivered. This is done by submitting the intent outputs to the Output Settler as described by output.settler.

Currently, only one Output Settler is supported exposing 2 fill interfaces:

function fill(
uint32 fillDeadline,
bytes32 orderId,
MandateOutput calldata output,
bytes32 proposedSolver
) external virtual returns (bytes32 actualSolver);
function fillOrderOutputs(
uint32 fillDeadline,
bytes32 orderId,
MandateOutput[] calldata outputs,
bytes32 proposedSolver
) external;

Note that fill does not revert if an output has already been filled. It instead returns an identifier linked to the existing fill, without debiting any further assets. If it is desired for the fill call to revert, refer to fillOrderOutputs.