evm_register_contract_abi

Stores contract ABI metadata in the current database for block-aware log and revert decoding.

Example

Local

1
SELECT evm_register_contract_abi(
2
1,
3
'0x0000000000000000000000000000000000000500'::ADDRESS,
4
'[{"type":"event","name":"Transfer","inputs":[{"name":"sender","type":"address","indexed":true},{"name":"recipient","type":"address","indexed":true},{"name":"value","type":"uint256","indexed":false}]}]'::JSON
5
) AS registered;
6
-- true
Notebook ready in readonly mode.

API reference

Exact signatures with descriptions, requirements, inputs, returns, and examples.

evm_register_contract_abi(UBIGINT, ADDRESS, JSON) #

Registers one local ABI and optional inclusive validity range.

Inputs

Name Type Use
chain_id UBIGINT

Chain id.

required positional
address ADDRESS

Contract address.

required positional
abi JSON

Contract ABI JSON.

required positional

Returns

Name Type
registered BOOLEAN

Registration status. Returns true when canonicalized ABI metadata is inserted or when the exact registration is replayed. A successful call never returns false.

Guidance

Register contextual ABI metadata

Registrations are stored only in the current database and are read by evm_decode_log_for and evm_decode_revert_for.

from_block and to_block are inclusive. A missing endpoint is unbounded.

ABI JSON is canonicalized before identity hashing. Replaying the exact chain, address, range, label, and canonical ABI is idempotent; any other overlapping inclusive range is rejected.

  • Use separate non-overlapping ranges for proxy upgrades. Adjacent ranges must end at N and begin at N + 1.
  • Mutation is isolated to the database where this function is called.

Additional overloads

evm_register_contract_abi(UBIGINT, ADDRESS, JSON, VARCHAR) #

Registers one local ABI and optional inclusive validity range.

Inputs

Name Type Use
chain_id UBIGINT

Chain id.

required positional
address ADDRESS

Contract address.

required positional
abi JSON

Contract ABI JSON.

required positional
label VARCHAR

Optional ABI label.

required positional

Returns

Name Type
registered BOOLEAN

Registration status. Returns true when canonicalized ABI metadata is inserted or when the exact registration is replayed. A successful call never returns false.

Overload examples

Local SQL

1
SELECT evm_register_contract_abi(
2
1,
3
'0x0000000000000000000000000000000000000501'::ADDRESS,
4
'[{"type":"event","name":"Transfer","inputs":[{"name":"sender","type":"address","indexed":true},{"name":"recipient","type":"address","indexed":true},{"name":"value","type":"uint256","indexed":false}]}]'::JSON,
5
'USDC Transfer'
6
) AS registered;
7
-- true
evm_register_contract_abi(UBIGINT, ADDRESS, JSON, VARCHAR, UBIGINT) #

Registers one local ABI and optional inclusive validity range.

Inputs

Name Type Use
chain_id UBIGINT

Chain id.

required positional
address ADDRESS

Contract address.

required positional
abi JSON

Contract ABI JSON.

required positional
label VARCHAR

Optional ABI label.

required positional
from_block UBIGINT

First valid block (inclusive).

required positional

Returns

Name Type
registered BOOLEAN

Registration status. Returns true when canonicalized ABI metadata is inserted or when the exact registration is replayed. A successful call never returns false.

Overload examples

Local SQL

1
SELECT evm_register_contract_abi(
2
1,
3
'0x0000000000000000000000000000000000000502'::ADDRESS,
4
'[{"type":"event","name":"Transfer","inputs":[{"name":"sender","type":"address","indexed":true},{"name":"recipient","type":"address","indexed":true},{"name":"value","type":"uint256","indexed":false}]}]'::JSON,
5
'USDC Transfer',
6
20000000
7
) AS registered;
8
-- true
evm_register_contract_abi(UBIGINT, ADDRESS, JSON, VARCHAR, UBIGINT, UBIGINT) #

Registers one local ABI and optional inclusive validity range.

Inputs

NameTypeUse
chain_idUBIGINT

Chain id.

requiredpositional
addressADDRESS

Contract address.

requiredpositional
abiJSON

Contract ABI JSON.

requiredpositional
labelVARCHAR

Optional ABI label.

requiredpositional
from_blockUBIGINT

First valid block (inclusive).

requiredpositional
Showing fewer

Returns

Name Type
registered BOOLEAN

Registration status. Returns true when canonicalized ABI metadata is inserted or when the exact registration is replayed. A successful call never returns false.

Overload examples

Local SQL

1
SELECT evm_register_contract_abi(
2
1,
3
'0x0000000000000000000000000000000000000503'::ADDRESS,
4
'[{"type":"event","name":"Transfer","inputs":[{"name":"sender","type":"address","indexed":true},{"name":"recipient","type":"address","indexed":true},{"name":"value","type":"uint256","indexed":false}]}]'::JSON,
5
'USDC Transfer',
6
20000000,
7
20000000
8
) AS registered;
9
-- true

Related functions

Category and tags

Tag
ABI
Tag
Evidence