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 alwaysNone.-
TODO: Implement actual lazy_storage_diffsupport (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 alwaysNone. -
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.mlapply_operation_result.mlreceipt_repr.ml
Edited by Brahima Dibassi