For the complete documentation index, see llms.txt. This page is also available as Markdown.

Events

The pool emits fill events. The engine does not emit a fill event.

PAMMTrade — listen to this for direct swaps

Emitted by NativeRFQPool.

event PAMMTrade(
    address recipient,
    address sellerToken,
    address buyerToken,
    uint256 sellerTokenAmount,
    uint256 buyerTokenAmount,
    bytes16 quoteId,
    address signer
);

Field

Direct tradePAMM

RFQ path that used pAMM

quoteId

bytes16(0)

RFQ quote id

signer

Pair pammTrader

Pair pammTrader

buyerTokenAmount

Actual amount out

Actual amount out

Topic0:

PAMMTrade(address,address,address,uint256,uint256,bytes16,address)

0xd9a78419f4f94739684d4bed95a1eb594d0b5f14272ef96a546fff2cc7d0b65d

None of the fields are indexed — filter by pool address, then decode.

For native legs, sellerToken / buyerToken hold the wrapped token (WETH/WBNB), never address(0).

Direct pAMM does not emit RFQTrade. For a given trade, a pAMM fill and an RFQ fill are mutually exclusive.

PAMMFallback — RFQ path only

Emitted on the RFQ path when the pAMM engine attempt reverts. The trade is then settled as an RFQTrade. Direct tradePAMM swaps never emit it. Compute topic0 as the keccak256 of PAMMFallback(bytes16,address,bytes4).

Config events (ops / indexing)

DirectSwapEnabledUpdated is emitted only when the flag value changes, while EngineUpdated is always emitted. Cache the flag from DirectSwapEnabledUpdated, and re-read directSwapEnabled onchain whenever EngineUpdated fires.

Last updated