Module Evm_node_lib_dev_encoding.Transaction_info

type receipt_fields = {
  1. cumulative_gas_used : Ethereum_types.quantity;
  2. effective_gas_price : Ethereum_types.quantity;
  3. gas_used : Ethereum_types.quantity;
  4. logs : Ethereum_types.transaction_log list;
  5. logs_bloom : Ethereum_types.hex;
  6. type_ : Ethereum_types.quantity;
  7. status : Ethereum_types.quantity;
  8. contract_address : Ethereum_types.address option;
}
type t = {
  1. block_hash : Ethereum_types.block_hash;
  2. block_number : Ethereum_types.quantity;
  3. index : Ethereum_types.quantity;
  4. hash : Ethereum_types.hash;
  5. from : Ethereum_types.address;
  6. to_ : Ethereum_types.address option;
  7. receipt_fields : receipt_fields;
  8. object_fields : object_fields;
}

This is the merge of a Transaction_receipt.t and Ethereum_types.transaction_object, the goal is to minimize the size on disk to store these information.

of_receipt_and_object receipt object_ merges receipt and object_ into a t.

Compact-bloom encoding for receipt_fields: the logs_bloom field is stored using the compact representation (all-zero bloom encoded as the empty string). The deserializer accepts both compact and legacy rows, so this encoding is safe to use for reads regardless of how the row was written.

val legacy_receipt_fields_encoding : receipt_fields Tezos_base.TzPervasives.Data_encoding.t

Legacy-bloom encoding for receipt_fields: the logs_bloom field is serialized using the full hex representation (always 514 bytes), matching the on-disk format produced by node releases that predate the compact encoding. Use this at write time when compact_receipt_encoding is disabled, so that the resulting rows can be decoded by older binaries.

val zero_logs_bloom : Ethereum_types.hex

The all-zero bloom filter (no logs), stored as empty bytes in the compact encoding.