[go: up one dir, main page]

Tezlink/Kernel : Missing implementation for placeholder fields in operation metadata structures

Missing implementation for placeholder fields in operation metadata structures

Several fields in the operation metadata serialization/deserialization logic are currently implemented using placeholder types. These need proper implementation to accurately reflect the Tezos protocol behavior, particularly for full compatibility with Octez encodings and features such as smart contract execution, ticket handling, and originated contracts.

Affected Types and Fields

Below is a list of all current placeholder fields and their usage context:

  • TransferSuccess

    • ticket_receipt: Vec<u8>
      Currently always encoded/decoded as an empty list.

      • TODO: Implement decoding/encoding for actual ticket receipts if present.
    • originated_contracts: Vec<u8>
      Always encoded/decoded as an empty list.

      • TODO: Should reflect originated contract addresses returned during contract origination.
    • lazy_storage_diff: Option<()>
      Present but always None.

      • TODO: Implement actual lazy_storage_diff support (e.g., big maps).
  • OperationResult<M>

    • internal_operation_results: Vec<u8>
      Currently always empty.
      • TODO: Implement internal operations (e.g., internal transactions, originations).
  • RevealContent

    • proof : Option<()>
      Present but always None.
    • TODO : Implement actual BSL proofs

Expected Behavior

Each of the above fields should:

  • Reflect actual on-chain protocol data when present.
  • Match Octez’s binary representation.
  • Be covered by roundtrip tests.

Related Tezos Protocol Files for Reference

  • src/proto_alpha/lib_protocol/apply_result.ml
  • apply_operation_result.ml
  • receipt_repr.ml
Edited by Brahima Dibassi