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
.