Skip to main content

ProposalType

Enum ProposalType 

Source
pub enum ProposalType {
    ParameterChange {
        parameter: String,
        new_value: String,
    },
    TreasuryGrant {
        recipient: Address,
        amount: u128,
    },
    ProtocolUpgrade {
        version: String,
        code_hash: Vec<u8>,
    },
    AdaptiveBurnConfigUpdate {
        base_fee_burn_bps: u16,
        local_fee_burn_bps: u16,
        paymaster_burn_bps: u16,
    },
    SupplyTargetsUpdate {
        epoch_neutral_band_bps: u16,
        rolling_window_epochs: u32,
        inflation_alarm_bps: u16,
        deflation_alarm_bps: u16,
        target_annual_supply_bps: i32,
        gain_bps_per_pct: u16,
        magnitude_cap_normal_bps: u16,
        magnitude_cap_alarm_bps: u16,
        auto_proposal_min_magnitude_bps: u16,
        alarm_fast_track_enabled: bool,
        alarm_timelock_hours: u32,
    },
    SeedAgentEarmarkUpdate {
        enabled: bool,
        allocation_topup_wei: u128,
        is_initial_seed: bool,
        surplus_burn_bps: u16,
    },
    SeedAgentCharterUpsert {
        charter_blob: Vec<u8>,
    },
    SeedAgentStatusSet {
        agent_did: String,
        status: String,
    },
    Custom {
        proposal_data: Vec<u8>,
    },
}
Expand description

Type of governance proposal

Variants§

§

ParameterChange

Parameter change proposal

Fields

§parameter: String
§new_value: String
§

TreasuryGrant

Treasury grant proposal

Fields

§recipient: Address
§amount: u128
§

ProtocolUpgrade

Protocol upgrade proposal

Fields

§version: String
§code_hash: Vec<u8>
§

AdaptiveBurnConfigUpdate

Adaptive-burn dial update (Spec 8). Sets the live BurnRateConfig applied by the EIP-1559 fee market and Spec 6 local-fee router. paymaster_burn_bps is invariant-locked to 10_000 (100%) — proposals that violate this are rejected at execution time.

Fields

§base_fee_burn_bps: u16
§local_fee_burn_bps: u16
§paymaster_burn_bps: u16
§

SupplyTargetsUpdate

Adaptive-burn supply-targets update (Spec 8). Adjusts the rolling window, neutral band, alarm thresholds, gain, and magnitude caps the auto-proposal generator uses to draft AdaptiveBurnConfigUpdate proposals.

Fields

§epoch_neutral_band_bps: u16
§rolling_window_epochs: u32
§inflation_alarm_bps: u16
§deflation_alarm_bps: u16
§target_annual_supply_bps: i32
§gain_bps_per_pct: u16
§magnitude_cap_normal_bps: u16
§magnitude_cap_alarm_bps: u16
§auto_proposal_min_magnitude_bps: u16
§alarm_fast_track_enabled: bool
§alarm_timelock_hours: u32
§

SeedAgentEarmarkUpdate

SeedAgent earmark adjustment (Spec 10). Governs the master enable flag, allocation top-ups, and the sunset surplus disposition. Other fields on TreasuryEarmark (decay schedule, bootstrap window, charter id list, draw counters) are mutated by protocol code, not directly by proposal.

Fields

§enabled: bool

Master enable flag. When false, no new SeedAgent provisioning is admitted and the daemon should wind down.

§allocation_topup_wei: u128

TNZO base units to add to allocation_remaining_wei (and to initial_allocation_wei if is_initial_seed is set). Zero leaves the balance unchanged.

§is_initial_seed: bool

If true, this proposal also sets initial_allocation_wei (genesis seeding). After genesis, top-ups should leave the initial figure intact for audit purposes.

§surplus_burn_bps: u16

New sunset surplus disposition in basis points to burn (the remainder returns to general treasury). <= 10_000.

§

SeedAgentCharterUpsert

SeedAgent charter upsert/disable (Spec 10). The charter id is Hash([u8; 32]) rendered as 32 raw bytes; downstream executor resolves it against the SeedAgentEarmarkManager. Disabling sets enabled = false on the existing charter without removing it, which signals existing agents under that charter to wind down.

Fields

§charter_blob: Vec<u8>

Bincode-serialized [Charter] payload. The executor decodes and runs Charter::validate() before applying.

§

SeedAgentStatusSet

SeedAgent per-agent status transition (Spec 10). Used by governance to Pause / Quarantine / Terminate a misbehaving agent without touching the charter under which it operates.

Fields

§agent_did: String
§status: String

Target status as SeedAgentStatus::as_str(): "active" | "paused" | "quarantined" | "terminated".

§

Custom

Custom proposal

Fields

§proposal_data: Vec<u8>

Trait Implementations§

Source§

impl Clone for ProposalType

Source§

fn clone(&self) -> ProposalType

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ProposalType

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for ProposalType

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for ProposalType

Source§

impl PartialEq for ProposalType

Source§

fn eq(&self, other: &ProposalType) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for ProposalType

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for ProposalType

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.