dig_slashing/remark/mod.rs
1//! REMARK wire encoding + on-chain admission helpers.
2//!
3//! Traces to: [SPEC §16](../docs/resources/SPEC.md).
4//!
5//! # Role
6//!
7//! Evidence and appeal payloads travel on-chain inside CLVM
8//! `REMARK` conditions. This module owns the serialisation format,
9//! the magic prefixes that namespace DIG slashing payloads
10//! against foreign REMARK apps sharing the same on-chain
11//! namespace, and the parser that the consensus / mempool layer
12//! invokes on every block.
13//!
14//! # Scope (incremental)
15//!
16//! Opens Phase 6 REMARK Admission. Module grows one DSL at a
17//! time. First commit lands DSL-102 — the evidence-side wire
18//! encoder + parser. Future DSLs extend this surface:
19//!
20//! - DSL-103: `slashing_evidence_remark_puzzle_reveal_v1`
21//! - DSL-104/105: admission preconditions (coin match / mismatch)
22//! - DSL-106..108: mempool policy (expiry, dupe, caps)
23//! - DSL-109: payload cap
24//! - DSL-110..120: full appeal-side parity
25//!
26//! # Submodules
27//!
28//! - [`evidence_wire`] — DSL-102 evidence encoder + parser
29//!
30//! Further submodules (`evidence_puzzle`, `appeal_wire`,
31//! `appeal_puzzle`, `admission`, `policy`) land with their
32//! DSL-NNN requirements.
33
34pub mod admissions;
35pub mod appeal_wire;
36pub mod evidence_wire;
37pub mod policy;
38
39pub use admissions::{BlockAdmissionReport, process_block_admissions};
40pub use appeal_wire::{
41 encode_slash_appeal_remark_payload_v1, parse_slash_appeals_from_conditions,
42 slash_appeal_remark_puzzle_hash_v1, slash_appeal_remark_puzzle_reveal_v1,
43};
44pub use evidence_wire::{
45 encode_slashing_evidence_remark_payload_v1, parse_slashing_evidence_from_conditions,
46 slashing_evidence_remark_puzzle_hash_v1, slashing_evidence_remark_puzzle_reveal_v1,
47};
48pub use policy::{
49 enforce_block_level_appeal_caps, enforce_block_level_slashing_caps,
50 enforce_slash_appeal_mempool_dedup_policy, enforce_slash_appeal_mempool_policy,
51 enforce_slash_appeal_payload_cap, enforce_slash_appeal_remark_admission,
52 enforce_slash_appeal_terminal_status_policy, enforce_slash_appeal_variant_policy,
53 enforce_slash_appeal_window_policy, enforce_slashing_evidence_mempool_dedup_policy,
54 enforce_slashing_evidence_mempool_policy, enforce_slashing_evidence_payload_cap,
55 enforce_slashing_evidence_remark_admission,
56};