sigil-crucible · rewards
Source declarations, signatures and documentation for rewards.
Source: sigil/node/sigil-crucible/src/rewards.rs. SHA-256: 7d9295b6d4685891b013703067617b4dc0d1ea1033ebe4806099534dfd5749fb.
This reference follows declared source modules, retains conditional attributes, and includes public declarations and implementation methods. Private-module re-exports and trait resolution require the compiler; this is a source reference, not a claim that every listed item is a root import. Function bodies and constant values are omitted.
rewards::RewardPayout
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct RewardPayout {
pub recipient_did: String,
pub amount: u64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub generation: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub lineage_parent_did: Option<String>
}Source line: 8.
rewards::RewardBatchAttestation
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct RewardBatchAttestation {
pub attestation_id: String,
pub run_id: String,
pub rollout_batch_id: String,
pub verifier_did: String,
pub policy_version: u32,
pub payouts: Vec<RewardPayout>,
pub artifact: ArtifactCommitment,
pub attested_at_epoch: u64
}Source line: 18.
rewards::LineageRewardMode
Boundary for lineage payout integration. GenerationDecay is supported by
the existing economics API; parent/root lineage payout verification fails
closed until a concrete GAL/lineage adapter is available.
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub enum LineageRewardMode {
UnavailableFailClosed,
GenerationDecay { config: RewardConfig },
}Source line: 33.
rewards::DistributionOutcome
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct DistributionOutcome {
pub recipient_did: String,
pub amount: u64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub generation: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub lineage_parent_did: Option<String>
}Source line: 39.
rewards::RewardDistributionPlan
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct RewardDistributionPlan {
pub attestation_id: String,
pub run_id: String,
pub rollout_batch_id: String,
pub total_amount: u64,
pub outcomes: Vec<DistributionOutcome>
}Source line: 49.
rewards::RewardDistributionPlan::from_attestation
pub fn from_attestation(
attestation: &RewardBatchAttestation,
pool_remaining: u64,
mode: LineageRewardMode,
) -> Result<Self, CrucibleError>;Source line: 58.