error_selector_json

Returns the 4-byte selector for a custom error described by JSON ABI; use it to identify revert payloads.

Scalar function ABI

Example

Runs locally

-- Selector of the OpenZeppelin ERC20InsufficientBalance error
SELECT error_selector_json(json('{
    "type": "error",
    "name": "ERC20InsufficientBalance",
    "inputs": [
        {"name": "sender", "type": "address"},
        {"name": "balance", "type": "uint256"},
        {"name": "needed", "type": "uint256"}
    ]
}')) AS selector;
-- e450d38c

API reference

error_selector_json(JSON) #

Builds the canonical custom error signature from JSON ABI inputs before hashing with Keccak-256.

Inputs

Name Type Use
abi JSON

A single custom error ABI object with name and inputs.

required positional

Returns

Name Type
selector BYTES4

Custom error selector. First four bytes of the canonical error signature's Keccak-256 hash.

Guidance

Selector, topic0, calldata, and return data

Use error_selector or error_selector_json to match revert data selectors before decoding or classifying custom errors. The JSON helper derives canonical input types and ignores parameter names.

  • Canonical signatures omit parameter names and spaces.
  • Use function_selector for calldata selectors.
  • Use event_signature for event topic0.

Runs locally

SELECT error_selector('InsufficientBalance(uint256,uint256)') AS selector;