Skip to content
Open app

Events and errors

AI-generated

Index events by chain ID and deployment, in canonical block, transaction, and log order. Successful receipts and matching events establish completed actions; getSwap alone cannot distinguish terminal outcomes.

event IntentCreated(
bytes32 indexed swapId,
address indexed user,
bytes recipientAddress,
uint256 ethPrincipal,
uint64 minXmrAmount,
uint64 minPaymentHeight,
uint128 randomxDifficulty,
uint256 auctionEndTimestamp,
uint256 deadlineTimestamp
);
event BestBidChanged(bytes32 indexed swapId, address indexed bestSolver, uint64 bidXmrAmount);
event SwapSettled(bytes32 indexed swapId, bytes32 indexed txid);
event SwapExpired(bytes32 indexed swapId);

BestBidChanged does not include the previous bidder, bond, or refund outcome. SwapSettled does not include the selected output key or recipient; those require the stored creation history and settlement calldata. SwapExpired does not encode whether a winner existed; derive the payout from the prior history.

Every terminal transfer is exact-or-revert. A log from a reverted execution is not a committed event.

Signature Meaning
Reentrancy() A guarded action was reentered.
InvalidVerifier() Constructor verifier address has no code.
InvalidProgramVKey() Constructor program key is zero.
InvalidDeploymentParameters() Invalid positive bounds or minimum greater than maximum.
InvalidRecipientLength() Recipient length is not exactly 95 bytes.
ZeroPrincipal() Creation supplied no ETH principal.
ZeroIntentField() Minimum XMR, minimum height, or difficulty is zero.
InvalidSettlementWindow() Requested window is outside the immutable inclusive bounds.
SwapNotFound() There is no live row for the ID, including after either terminal action.
AuctionClosed() Bid timestamp is at or beyond auction end.
AuctionNotEnded() Action requires auction close but it has not occurred.
BidTooLow() Bid does not strictly exceed stored best XMR.
IncorrectBond(uint256 expected, uint256 actual) Bid ETH value differs from the exact calculated bond.
InsufficientGasForRefund(uint256 available, uint256 required) Replacement bid lacks the pre-refund gas reserve.
NoWinningSolver() Settlement attempted without a winner.
SettlementDeadlineReached() Settlement timestamp is at or beyond the deadline.
SettlementDeadlineNotReached() Winning-bid expiry attempted before the deadline.
TransactionAlreadyUsed() Transaction ID was consumed by a previous successful settlement.
OutputAlreadyUsed() Recipient/output nullifier was previously consumed.
ProofVerificationFailed() Proof selector/length check or verifier call failed.
EthTransferFailed(address recipient, uint256 amount) Final payout failed; the whole settlement or expiry reverted.

These are all 21 custom errors. ABI decoding, arithmetic panics, out-of-gas execution, and infrastructure failures can also prevent success. Indexers must handle reorganizations.