docs/reference/abi
ABI reference
The selectors and event topic0 values on this page are the V6 ABI for
IntentSettlerV3 and IntentLensV3.
(O) below abbreviates the complete IntentOrder tuple:
(address owner,address recipient,address tokenIn,uint256 amountIn, address tokenOut,uint256 startAmountOut,uint256 endAmountOut, uint256 startTime,uint256 decayEndTime,uint256 endTime, bytes32 appData,uint256 nonce)Function selectors
Section titled “Function selectors”IntentSettlerV3
Section titled “IntentSettlerV3”| Selector | Signature |
|---|---|
0x294470ec |
announce((O),bytes) |
0xf1bb3cfa |
fill((O),bytes,address,bytes) |
0xfe0abf21 |
cancel((O)) |
0x7bf0397f |
cancelSigned((O),uint256,bytes) |
0xd94a1dc6 |
orderHash((O)) |
0x78d74226 |
orderDigest((O)) |
0x2ac12622 |
cancelled(bytes32) |
0x288cdc91 |
filled(bytes32) |
0xb703f3c4 |
INTENT_ORDER_TYPEHASH() |
0x28c89130 |
CANCEL_INTENT_TYPEHASH() |
0x84b0196e |
eip712Domain() |
Supporting contracts
Section titled “Supporting contracts”| Contract | Selector | Signature |
|---|---|---|
IntentLensV3 |
0xdf99cf18 |
preview((O)) |
IntentLensV3 |
0xa47cbbe2 |
previewMany((O)[]) |
IntentLensV3 |
0xab221a76 |
settler() |
Events and topic0
Section titled “Events and topic0”| Event signature | topic0 |
|---|---|
IntentAnnounced(bytes32,address,bytes32,bytes,bytes) |
0x6b7c7ccca26b7cb9642ad63c79054835d7bbfb9801b6c6c642a3ba88ece2350f |
IntentFilled(bytes32,address,address,address,address,uint256,uint256,uint256,uint256,uint256) |
0x9e24c3cf62be0eab4747b63a88ac76a698ffb40e8c7821be18e4f07cd72ccbd5 |
IntentCancelled(bytes32,address,address) |
0x318ecdc0215a0703e460331f2f5ff7f65ba21a69045f200c8f5dd60b9f56a5fb |
Indexed and data fields
Section titled “Indexed and data fields”| Event | Indexed topics | Data fields |
|---|---|---|
IntentAnnounced |
id, owner, appData |
bytes order, bytes auth |
IntentFilled |
id, owner, solver |
recipient, caller, amountIn, requiredOut, fee, receivedOut, aboveFloor |
IntentCancelled |
id, owner, caller |
none |
IntentAnnounced.order is abi.encode(IntentOrder). It is complete and
self-describing; individual order fields are intentionally not duplicated in
the event. In V6, auth is the authorization envelope, requiredOut is gross
(floor plus fee), fee is the protocol fee paid by the filler on top, and
aboveFloor is the amount received above gross requiredOut and sent to the signed recipient.
Custom errors
Section titled “Custom errors”| Error | Signature |
|---|---|
InvalidSignature |
InvalidSignature() |
OrderCancelled |
OrderCancelled() |
OrderAlreadyFilled |
OrderAlreadyFilled() |
OrderExpired |
OrderExpired() |
ZeroSolver |
ZeroSolver() |
NotOrderOwner |
NotOrderOwner() |
SlippageExceeded |
SlippageExceeded(uint256 received,uint256 required) |
InsufficientRecipientDelivery |
InsufficientRecipientDelivery(uint256 delivered,uint256 required) |
Reentrancy |
Reentrancy() |
InexactInputReceived |
InexactInputReceived(uint256 received,uint256 expected) |
InexactOutputDelivered |
InexactOutputDelivered(uint256 delivered,uint256 sent) |
InexactFeeDelivered |
InexactFeeDelivered(uint256 delivered,uint256 fee) |
SettlerBalanceChanged |
SettlerBalanceChanged(address token,uint256 endedWith,uint256 startedWith) |
ProxyNotDeployed |
ProxyNotDeployed(address owner) |
OrderKilledByOwner |
OrderKilledByOwner(bytes32 id) |
ZeroFeeRecipient |
ZeroFeeRecipient() |
ZeroSystemFiller |
ZeroSystemFiller() |
InvalidOrder |
InvalidOrder() |
SameToken |
SameToken() |
NativeNotSupportedInOrder |
NativeNotSupportedInOrder() |
The last three errors come from IntentLib. For how these calls are assembled,
see sign an order and fill an order.