Invariants / CN-SEED-01

CN-SEED-01

CN release enforced

Single JSON seed-importer authority: exactly one pub fn in ade_runtime::seed_import::import_cardano_cli_json_utxo converts a cardano-cli query utxo --whole-utxo JSON dump into the Ade canonical (UTxOState, UtxoFingerprint) pair. No second importer; no per-call fallback; no silent partial seed.

Source

docs/planning/phase4-n-m-ledger-seed-invariants.md §1 (I-A1)

Enforcement trace

Tests 19

  • crates/ade_runtime/src/seed_import/importer.rs::tests::utxo_seed_parses_minimal_two_entry_fixture
  • crates/ade_runtime/src/seed_import/importer.rs::tests::utxo_seed_two_imports_byte_identical
  • crates/ade_runtime/src/seed_import/importer.rs::tests::utxo_seed_btree_order_independent_of_json_order
  • crates/ade_runtime/src/seed_import/importer.rs::tests::utxo_seed_rejects_unparseable_json
  • crates/ade_runtime/src/seed_import/importer.rs::tests::utxo_seed_rejects_bad_txin_key
  • crates/ade_runtime/src/seed_import/importer.rs::tests::utxo_seed_rejects_bad_address
  • crates/ade_runtime/src/seed_import/importer.rs::tests::utxo_seed_inline_datum_entry_round_trips
  • crates/ade_runtime/src/seed_import/importer.rs::tests::utxo_seed_canonical_txout_address_extracted
  • crates/ade_runtime/src/seed_import/importer.rs::tests::utxo_seed_accepts_plutus_v1_reference_script
  • crates/ade_runtime/src/seed_import/importer.rs::tests::utxo_seed_accepts_plutus_v2_reference_script
  • crates/ade_runtime/src/seed_import/importer.rs::tests::utxo_seed_accepts_plutus_v3_reference_script
  • crates/ade_runtime/src/seed_import/importer.rs::tests::utxo_seed_accepts_simple_script_reference_script
  • crates/ade_runtime/src/seed_import/importer.rs::tests::utxo_seed_reference_script_changes_fingerprint
  • crates/ade_runtime/src/seed_import/importer.rs::tests::utxo_seed_reference_script_deterministic_across_two_imports
  • crates/ade_runtime/src/seed_import/importer.rs::tests::utxo_seed_rejects_unknown_script_type
  • crates/ade_runtime/src/seed_import/importer.rs::tests::utxo_seed_rejects_non_hex_cbor_hex
  • crates/ade_runtime/src/seed_import/importer.rs::tests::utxo_seed_rejects_missing_cbor_hex
  • crates/ade_runtime/src/seed_import/importer.rs::tests::utxo_seed_canonical_script_ref_encoder_known_vector
  • crates/ade_runtime/src/seed_import/json.rs::tests::parse_utxo_seed_json_reference_script_entry

Cross-references

Strengthened in

Evidence notes

PHASE4-N-M-A S1 (2026-05-26) shipped ade_runtime::seed_import::import_cardano_cli_json_utxo as the SOLE pub fn converting cardano-cli query utxo --whole-utxo output → Ade canonical (UTxOState, UtxoFingerprint). PHASE4-N-M-A1.1 (2026-05-26) strengthened: reference-script support added for all four cardano-node-supported variants (SimpleScript, PlutusScriptV1/V2/V3) via canonical Babbage script_ref tag(24, bytes(.cbor [variant_tag, raw_cborHex_bytes])). Smoke against the committed 129-entry preprod mini sample now imports 129/129 cleanly with fingerprint 13280fc1e11bbe6d908c91deff0c4cb3731f7b7e88b13c1d716e0211bc176378. ci/ci_check_seed_import_closure.sh enforces workspace-wide single-pub-fn discipline.