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 the address of the solver that has been recorded as the filler. You will not be debited any assets. If you need the fill to revert, use fillOrderOutputs.