pub struct PendingProposalFinalization {
pub run_id: String,
pub client_id: String,
pub requested_policy_session_id: Option<String>,
pub policy_session_id: Option<String>,
pub original_proposal_id: String,
pub final_proposal_id: String,
pub original_submission: Value,
pub original_proposal: ActionProposal,
pub final_proposal: ActionProposal,
pub accepted_proposal_preimages: Vec<AcceptedProposalPreimage>,
pub proposal_result: ProposalResult,
pub result_digest: String,
}Expand description
Durable preimage for a proposal whose actions already finished but whose
proposal_completed journal boundary has not yet been acknowledged.
The payload is deliberately server-owned instead of a car_proto run row:
it is an outbox transaction, not part of the public run trace. Keeping the
exact normal-serde result and its JCS digest lets a retry or daemon restart
finish the terminal without dispatching an action twice.
Fields§
§run_id: String§client_id: String§requested_policy_session_id: Option<String>Exact caller-selected policy context. This is kept separately from
policy_session_id: an unknown session is deliberately not trusted or
journaled, but an exact retry must still present the same context.
policy_session_id: Option<String>§original_proposal_id: String§final_proposal_id: String§original_submission: ValueExact caller-supplied JSON before serde fills defaults. This recognizes an exact retry even when an omitted timestamp is regenerated on decode.
original_proposal: ActionProposalExact normal-serde proposal CAR accepted and journaled.
final_proposal: ActionProposalExact normal-serde proposal selected by the runtime. This duplicates
the active-v3 ProposalResult.final_proposal intentionally: validator
equality makes an outbox edit or partial producer upgrade fail closed.
accepted_proposal_preimages: Vec<AcceptedProposalPreimage>Generation-keyed normal-serde preimages for every accepted lineage entry, including generation zero when it was admitted.
proposal_result: ProposalResult§result_digest: StringImplementations§
Trait Implementations§
Source§impl Clone for PendingProposalFinalization
impl Clone for PendingProposalFinalization
Source§fn clone(&self) -> PendingProposalFinalization
fn clone(&self) -> PendingProposalFinalization
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PendingProposalFinalization
impl Debug for PendingProposalFinalization
Source§impl<'de> Deserialize<'de> for PendingProposalFinalization
impl<'de> Deserialize<'de> for PendingProposalFinalization
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 StructuralPartialEq for PendingProposalFinalization
Auto Trait Implementations§
impl Freeze for PendingProposalFinalization
impl RefUnwindSafe for PendingProposalFinalization
impl Send for PendingProposalFinalization
impl Sync for PendingProposalFinalization
impl Unpin for PendingProposalFinalization
impl UnsafeUnpin for PendingProposalFinalization
impl UnwindSafe for PendingProposalFinalization
Blanket Implementations§
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>,
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