pub enum ContractProvenance {
OperatorSupplied,
HumanConfirmed,
RuntimeGenerated,
ModelDerived,
}Expand description
Where an outcome contract’s bytes came from.
This exists because the autonomous no-change path is gated on it, which makes it a security boundary rather than bookkeeping. A model that can author its own contract and then cite that contract passing as proof it need not work has an escape hatch from every hard task.
Variants§
OperatorSupplied
Supplied as bytes by the operator (--contract-file).
HumanConfirmed
A human confirmed it through the contract gate before work began.
RuntimeGenerated
Generated by the runtime from telemetry it collected itself, before this
session existed — e.g. a reproduction attached to a report CAR filed from
a DurableFixProposal. External to the session in the sense that matters:
neither this session’s model nor a member of the public wrote it.
ModelDerived
Derived by this session’s model, typically from an issue body. Never trusted, at any tier. An issue body is untrusted input — on a public tracker it is attacker-controlled — so a contract derived from one is a stranger’s definition of done.
Implementations§
Trait Implementations§
Source§impl Clone for ContractProvenance
impl Clone for ContractProvenance
Source§fn clone(&self) -> ContractProvenance
fn clone(&self) -> ContractProvenance
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ContractProvenance
Source§impl Debug for ContractProvenance
impl Debug for ContractProvenance
Source§impl<'de> Deserialize<'de> for ContractProvenance
impl<'de> Deserialize<'de> for ContractProvenance
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for ContractProvenance
Source§impl PartialEq for ContractProvenance
impl PartialEq for ContractProvenance
Source§impl Serialize for ContractProvenance
impl Serialize for ContractProvenance
impl StructuralPartialEq for ContractProvenance
Auto Trait Implementations§
impl Freeze for ContractProvenance
impl RefUnwindSafe for ContractProvenance
impl Send for ContractProvenance
impl Sync for ContractProvenance
impl Unpin for ContractProvenance
impl UnsafeUnpin for ContractProvenance
impl UnwindSafe for ContractProvenance
Blanket Implementations§
impl<T> Boilerplate for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more