Skip to content

IntentSettlerV3 exposes an optional log feed through announce(order, auth). The function builds no index. An owner may publish an order directly, or another broadcaster may publish the authorization envelope.

Filter logs to the deployed IntentSettlerV3 address and the IntentAnnounced topic0:

0x6b7c7ccca26b7cb9642ad63c79054835d7bbfb9801b6c6c642a3ba88ece2350f

The event is:

IntentAnnounced(
bytes32 indexed id,
address indexed owner,
bytes32 indexed appData,
bytes order,
bytes auth
)

The three indexed topics are id, owner, and appData. The data fields are order and auth. order is abi.encode(IntentOrder), so it contains the complete 12-field order. Individual order fields are not emitted beside it.

An illustrative decoder can use the same boundary as the client:

// Illustrative decoder call. Validate the returned value before using it.
const event = decodeIntentAnnounced({
topics: log.topics,
data: log.data,
transactionHash: log.transactionHash,
});
if (event) {
const { id, owner, recipient, tokenIn, tokenOut, nonce } = event;
}

The feed is not a fillability index. announce asks the owner’s proxy to verify the authorization, but a valid authorization can still become unusable because of nonce state, allowance, wallet configuration, or route conditions. Use the event as a discovery input, then call IntentLensV3.preview and dry-run fill before submission. See fill an order.

The event uses plain IntentAnnounced fields. It contains the complete encoded order and authorization envelope needed to inspect an intent before calling IntentLensV3.preview and dry-running fill.