docs/reference/abi
ABI reference
The selectors and event topic0 values on this page are the verified current
ABI for IntentSettlerV1, IntentLens, IntentSettlerResolver, and the
Permit2 nonce invalidation backstop.
(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”IntentSettlerV1
Section titled “IntentSettlerV1”| Selector | Signature |
|---|---|
0x294470ec |
announce((O),bytes) |
0xf1bb3cfa |
fill((O),bytes,address,bytes) |
0xfe0abf21 |
cancel((O)) |
0x7bf0397f |
cancelSigned((O),uint256,bytes) |
0xd94a1dc6 |
orderHash((O)) |
0x9946e08f |
permitDigest((O)) |
0x2ac12622 |
cancelled(bytes32) |
0x8d18730e |
INTENT_WITNESS_TYPEHASH() |
0x28c89130 |
CANCEL_INTENT_TYPEHASH() |
0x6afdd850 |
PERMIT2() |
0x84b0196e |
eip712Domain() |
Supporting contracts
Section titled “Supporting contracts”| Contract | Selector | Signature |
|---|---|---|
IntentLens |
0xdf99cf18 |
preview((O)) |
IntentLens |
0xa47cbbe2 |
previewMany((O)[]) |
IntentLens |
0xab221a76 |
settler() |
IntentSettlerResolver |
0xe4056186 |
resolve(bytes) |
IntentSettlerResolver |
0x67aad013 |
encodePayload((address,(O),bytes,bytes)) |
| Permit2 | 0x3ff9dcb1 |
invalidateUnorderedNonces(uint256,uint256) |
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) |
0x3925fc820c061ee4e910271ddac8e8269023cabd3c8a2c1e88c05ef92b29e386 |
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 permit2Sig |
IntentFilled |
id, owner, solver |
recipient, caller, amountIn, requiredOut, 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. IntentFilled.aboveFloor is the amount received above the required
floor and sent to the signed recipient.
Custom errors
Section titled “Custom errors”| Error | Signature |
|---|---|
InvalidSignature |
InvalidSignature() |
OrderCancelled |
OrderCancelled() |
OrderExpired |
OrderExpired() |
OrderNotYetStarted |
OrderNotYetStarted() |
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) |
SettlerBalanceChanged |
SettlerBalanceChanged(address token,uint256 endedWith,uint256 startedWith) |
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.