evm.execution_observation_pairs

One row per logical observation key with pre and terminal values side by side. changed compares exact raw bytes; numeric projections are populated only for complete integer pairs.

Kind
View
Layer
execution_read_model
Columns
20
Queries
2

Contract and lifecycle

Grain
One pre/terminal comparison per (execution_id, observation_key).
Lifecycle
run publishes this immutable row set atomically with its owning run. Statement failure or caller rollback publishes no durable prefix; direct DML is unsupported because it can corrupt the documented invariants.
Status and NULLs
Interpret nullable payloads only through their owning status fields. Defensive poisoned and engine_error outcomes mean the engine refused to claim a trustworthy normal result; broad view nullability also covers owner alternatives and left-joined evidence.
Join guidance
  • Join evm.executions on execution_id for candidate and run context.
  • Use attempt_id to deduplicate physical facts expanded across contextual owners.
  • For program owners use step_index; for observation-call owners use observation_index and observation_key.
Effect semantics
  • Access flags describe attempted EVM access, not committed state change.
  • Effect facts retain attempted evidence and final committed, reverted, discarded, or poisoned disposition.
  • execution_state_deltas contains committed checkpoint transitions only; observation-call effects are excluded from execution_effect_summary.

Columns

Identity and ownership

Name Type
execution_id UUID

Contextual execution association identity; do not use it as reusable artifact identity.

observation_key VARCHAR

Byte-exact caller observation identity for an observation_call owner; otherwise NULL.

Contextual keys and reusable identities that establish row ownership.

Chain context

Name Type
chain_id UBIGINT

EVM chain identifier frozen for the owning execution.

chain_profile VARCHAR

Named chain-rules profile frozen for the owning execution.

Pinned chain, block, profile, and revision context.

Payload and evidence

NameType
read_kindVARCHAR

Canonical READ family used by the logical observation.

subject_addressADDRESS

Documented subject_address value for this public execution-data row.

asset_kindVARCHAR

Documented asset_kind value for this public execution-data row.

asset_addressADDRESS

Documented asset_address value for this public execution-data row.

pre_valueEVM_VALUE

Typed pre-checkpoint value fields; NULL unless the pre point succeeded.

Showing fewer

Operation-specific inputs, outputs, and authenticated evidence.

Status and disposition

Name Type
pair_status VARCHAR

complete when both endpoints succeeded, partial when one succeeded, otherwise failed.

pre_status VARCHAR

Status of the pre checkpoint point; NULL when no pre point was scheduled.

pre_error_code VARCHAR

Stable pre-point failure code; NULL without a pre failure.

terminal_status VARCHAR

Status of the terminal checkpoint point; NULL when no terminal point was scheduled.

terminal_error_code VARCHAR

Stable terminal-point failure code; NULL without a terminal failure.

Outcome vocabulary and NULL-controlling disposition fields.

Commitments

Name Type
read_root BYTES32

Canonical identity of the READ shared by every point under the logical key.

Hashes and roots authenticating specifications, facts, state, or results.

Linked joins

Related public objects

Verified queries

Confirm fixture coverage

Confirm that this object has rows owned by the stable seven-candidate public fixture.

SELECT 'evm.execution_observation_pairs'::VARCHAR AS object_name, CASE WHEN count(*) > 0 THEN 'PASS' ELSE 'FAIL' END::VARCHAR AS status FROM evm."execution_observation_pairs" o JOIN evm.executions e USING (execution_id) WHERE e.candidate_key IN ('complete-effects', 'later-revert', 'ordered-logs', 'create', 'selfdestruct', 'blockhash', 'transient-access');

Example: table.evm.execution_observation_pairs.lookup

Check candidate ownership

Diagnose whether this object remains linked to at least one stable fixture candidate through public keys.

SELECT 'evm.execution_observation_pairs'::VARCHAR AS object_name, CASE WHEN count(DISTINCT e.candidate_key) > 0 THEN 'PASS' ELSE 'FAIL' END::VARCHAR AS status FROM evm."execution_observation_pairs" o JOIN evm.executions e USING (execution_id) WHERE e.candidate_key IN ('complete-effects', 'later-revert', 'ordered-logs', 'create', 'selfdestruct', 'blockhash', 'transient-access');

Example: table.evm.execution_observation_pairs.diagnostic