Skip to main content
Version: 1.11.0

Function: classifyPoolRevert()

classifyPoolRevert(data: BytesLike): { isTransient: boolean; name?: string; }

Defined in: evm/simulate.ts:81

Classify a pool revert (source lockOrBurn or destination releaseOrMint): best-effort decode against the shared SDK ABI bundle, plus whether the revert typically clears on its own so a later retry may succeed. Anything unrecognized reads as non-transient. This single classifier feeds the isTransient flag of both CCIPDestExecutionRevertError and CCIPSourcePoolRevertError — a revert always blocks regardless. (The codes-level TRANSIENT_ERROR_CODES table covers non-revert errors; for these two codes the instance flag decided here wins.)

Special case: TokenRateLimitReached(minWaitInSeconds, ...) is refillable — EXCEPT v2.0 zero-rate buckets, which emit it with minWaitInSeconds == type(uint256).max (the bucket never refills) — permanent.

Parameters

ParameterTypeDescription
dataBytesLikeraw revert data (0x-prefixed) from the failed eth_call

Returns

{ isTransient: boolean; name?: string; }

decoded error name (when a known ABI matches) and the isTransient verdict

isTransient

isTransient: boolean

name?

optional name?: string