Invariants / DC-LEDGER-11

DC-LEDGER-11

DC derived enforced

proposal_procedures MUST NOT remain an opaque byte field in the authoritative Conway tx-body shape. ConwayTxBody.proposal_procedures is Option<Vec>, decoded through a single closed entry point (decode_proposal_procedures) that rejects unknown gov_action tags, structural failures, empty sets, and trailing garbage deterministically; the typed form re-encodes byte-identically (PreservedCbor) for every well-formed Conway tx body. The decoder reuses the existing closed GovAction enum (preserving DC-LEDGER-10 UpdateCommittee discriminant) and the existing opaque Anchor struct.

Source

CIP-1694 (proposal_procedure = [coin, reward_account, gov_action, anchor]); Project constitution §3 (closed semantic surfaces, T-CORE-01); DC-LEDGER-10 (downstream credential discriminant must not be re-collapsed)

Introduced in
PROPOSAL-PROCEDURES-DECODE

Enforcement trace

Tests 21

  • roundtrip_info_action_proposal
  • roundtrip_hard_fork_initiation
  • roundtrip_no_confidence
  • roundtrip_treasury_withdrawals
  • roundtrip_parameter_change
  • roundtrip_new_constitution
  • roundtrip_update_committee
  • roundtrip_multi_procedure
  • rejects_unknown_gov_action_tag
  • rejects_empty_proposal_procedures_set
  • rejects_trailing_garbage
  • rejects_truncated_proposal_procedure
  • rejects_invalid_stake_credential_in_update_committee
  • update_committee_keeps_stake_credential_discriminant
  • body_with_proposal_procedures_round_trips_through_typed_field
  • body_none_skips_proposal_procedures_key_20
  • body_and_sub_decoder_agree_on_proposal_procedures
  • canonical_corpus_decodes_to_expected_shape
  • canonical_corpus_round_trips_byte_identical
  • canonical_corpus_covers_all_gov_action_variants
  • canonical_corpus_includes_update_committee_discriminant_case

Cross-references

Open obligation