pub struct PreflightRequest {
pub app_entry_hash: HoloHash<Entry>,
pub signing_agents: Vec<(HoloHash<Agent>, Vec<Role, Global>), Global>,
pub optional_signing_agents: Vec<(HoloHash<Agent>, Vec<Role, Global>), Global>,
pub minimum_optional_signing_agents: u8,
pub enzymatic: bool,
pub session_times: CounterSigningSessionTimes,
pub action_base: ActionBase,
pub preflight_bytes: PreflightBytes,
}
Expand description
The same PreflightRequest is sent to every agent. Each agent signs this data as part of their PreflightResponse. Every preflight must be identical and signed by every agent for a session to be valid.
Fields
app_entry_hash: HoloHash<Entry>
The hash of the app entry, as if it were not countersigned. The final entry hash will include the countersigning session.
signing_agents: Vec<(HoloHash<Agent>, Vec<Role, Global>), Global>
The agents that are participating in this countersignature session.
optional_signing_agents: Vec<(HoloHash<Agent>, Vec<Role, Global>), Global>
The optional additional M of N signers. If there are additional signers then M MUST be the majority of N. If there are additional signers then the enzyme MUST be used and is the first signer in BOTH signing_agents and optional_signing_agents.
minimum_optional_signing_agents: u8
The M in the M of N signers. M MUST be strictly greater than than N / 2 and NOT larger than N.
enzymatic: bool
The first signing agent (index 0) is acting as an enzyme. If true AND optional_signing_agents are set then the first agent MUST be the same in both signing_agents and optional_signing_agents.
session_times: CounterSigningSessionTimes
The session times. Session actions must all have the same timestamp, which is the session offset.
action_base: ActionBase
The action information that is shared by all agents. Contents depend on the action type, create, update, etc.
preflight_bytes: PreflightBytes
The preflight bytes for session.
Implementations
sourceimpl PreflightRequest
impl PreflightRequest
sourcepub fn try_new(
app_entry_hash: HoloHash<Entry>,
signing_agents: Vec<(HoloHash<Agent>, Vec<Role, Global>), Global>,
optional_signing_agents: Vec<(HoloHash<Agent>, Vec<Role, Global>), Global>,
minimum_optional_signing_agents: u8,
enzymatic: bool,
session_times: CounterSigningSessionTimes,
action_base: ActionBase,
preflight_bytes: PreflightBytes
) -> Result<PreflightRequest, CounterSigningError>
pub fn try_new(
app_entry_hash: HoloHash<Entry>,
signing_agents: Vec<(HoloHash<Agent>, Vec<Role, Global>), Global>,
optional_signing_agents: Vec<(HoloHash<Agent>, Vec<Role, Global>), Global>,
minimum_optional_signing_agents: u8,
enzymatic: bool,
session_times: CounterSigningSessionTimes,
action_base: ActionBase,
preflight_bytes: PreflightBytes
) -> Result<PreflightRequest, CounterSigningError>
Fallible constructor.
sourcepub fn check_integrity(&self) -> Result<(), CounterSigningError>
pub fn check_integrity(&self) -> Result<(), CounterSigningError>
Combined integrity checks.
sourcepub fn check_agents_dupes(&self) -> Result<(), CounterSigningError>
pub fn check_agents_dupes(&self) -> Result<(), CounterSigningError>
Verify there are no duplicate agents to sign.
sourcepub fn check_agents_len(&self) -> Result<(), CounterSigningError>
pub fn check_agents_len(&self) -> Result<(), CounterSigningError>
Verify the number of signing agents is within the correct range.
sourcepub fn check_agents_optional(&self) -> Result<(), CounterSigningError>
pub fn check_agents_optional(&self) -> Result<(), CounterSigningError>
Verify the optional signing agents.
sourcepub fn check_agents(&self) -> Result<(), CounterSigningError>
pub fn check_agents(&self) -> Result<(), CounterSigningError>
Verify the preflight request agents.
sourcepub fn check_enzyme(&self) -> Result<(), CounterSigningError>
pub fn check_enzyme(&self) -> Result<(), CounterSigningError>
Verify everything about the enzyme.
Trait Implementations
sourceimpl<'arbitrary> Arbitrary<'arbitrary> for PreflightRequest
impl<'arbitrary> Arbitrary<'arbitrary> for PreflightRequest
sourcefn arbitrary(
u: &mut Unstructured<'arbitrary>
) -> Result<PreflightRequest, Error>
fn arbitrary(
u: &mut Unstructured<'arbitrary>
) -> Result<PreflightRequest, Error>
Generate an arbitrary value of Self
from the given unstructured data. Read more
sourcefn arbitrary_take_rest(
u: Unstructured<'arbitrary>
) -> Result<PreflightRequest, Error>
fn arbitrary_take_rest(
u: Unstructured<'arbitrary>
) -> Result<PreflightRequest, Error>
Generate an arbitrary value of Self
from the entirety of the given
unstructured data. Read more
sourceimpl Clone for PreflightRequest
impl Clone for PreflightRequest
sourcefn clone(&self) -> PreflightRequest
fn clone(&self) -> PreflightRequest
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for PreflightRequest
impl Debug for PreflightRequest
sourceimpl<'de> Deserialize<'de> for PreflightRequest
impl<'de> Deserialize<'de> for PreflightRequest
sourcefn deserialize<__D>(
__deserializer: __D
) -> Result<PreflightRequest, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<PreflightRequest, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl PartialEq<PreflightRequest> for PreflightRequest
impl PartialEq<PreflightRequest> for PreflightRequest
sourcefn eq(&self, other: &PreflightRequest) -> bool
fn eq(&self, other: &PreflightRequest) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &PreflightRequest) -> bool
fn ne(&self, other: &PreflightRequest) -> bool
This method tests for !=
.
sourceimpl Serialize for PreflightRequest
impl Serialize for PreflightRequest
sourcefn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl Eq for PreflightRequest
impl StructuralEq for PreflightRequest
impl StructuralPartialEq for PreflightRequest
Auto Trait Implementations
impl RefUnwindSafe for PreflightRequest
impl Send for PreflightRequest
impl Sync for PreflightRequest
impl Unpin for PreflightRequest
impl UnwindSafe for PreflightRequest
Blanket Implementations
impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<F, W, T, D> Deserialize<With<T, W>, D> for F where
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
impl<F, W, T, D> Deserialize<With<T, W>, D> for F where
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
fn deserialize(
&self,
deserializer: &mut D
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize(
&self,
deserializer: &mut D
) -> Result<With<T, W>, <D as Fallible>::Error>
Deserializes using the given deserializer
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if self
is actually part of its subset T
(and can be converted to it).
fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as self.to_subset
but without any property checks. Always succeeds.
fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts self
to the equivalent element of its superset.
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more