pub struct SealWitness<Seal>where
Seal: SingleUseSeal,{
pub published: <Seal as SingleUseSeal>::PubWitness,
pub client: <Seal as SingleUseSeal>::CliWitness,
/* private fields */
}
Expand description
Seal closing witness, consisting of published and client-side parts.
The seal closing witness commits to the specific SingleUseSeal
protocol
implementation via its Seal
generic parameter.
Fields§
§published: <Seal as SingleUseSeal>::PubWitness
The published part of the single-use seal closing witness.
client: <Seal as SingleUseSeal>::CliWitness
The client-side part of the single-use seal closing witness.
Implementations§
Source§impl<Seal> SealWitness<Seal>where
Seal: SingleUseSeal,
impl<Seal> SealWitness<Seal>where
Seal: SingleUseSeal,
Sourcepub fn new(
published: <Seal as SingleUseSeal>::PubWitness,
client: <Seal as SingleUseSeal>::CliWitness,
) -> SealWitness<Seal>
pub fn new( published: <Seal as SingleUseSeal>::PubWitness, client: <Seal as SingleUseSeal>::CliWitness, ) -> SealWitness<Seal>
Construct seal closing withness out of published and client-side components.
Sourcepub fn verify_seal_closing(
&self,
seal: impl Borrow<Seal>,
message: <Seal as SingleUseSeal>::Message,
) -> Result<(), SealError<Seal>>
pub fn verify_seal_closing( &self, seal: impl Borrow<Seal>, message: <Seal as SingleUseSeal>::Message, ) -> Result<(), SealError<Seal>>
Verify that a single seal
is correctly closed over the message
using
the current seal closing witness.
This is the implementation of the single-use seals verigy
procedure.
If you have multiple seals closed over the same message, consider
calling Self::verify_seals_closing
.
Sourcepub fn verify_seals_closing(
&self,
seals: impl IntoIterator<Item = impl Borrow<Seal>>,
message: <Seal as SingleUseSeal>::Message,
) -> Result<(), SealError<Seal>>
pub fn verify_seals_closing( &self, seals: impl IntoIterator<Item = impl Borrow<Seal>>, message: <Seal as SingleUseSeal>::Message, ) -> Result<(), SealError<Seal>>
Verify that all the seals from a set of seals
are correctly closed
over the single message
using the current seal closing witness.
This is the implementation of the single-use seals verigy
procedure.
If you have just a single seal, consider calling
Self::verify_seal_closing
.
Trait Implementations§
Source§impl<Seal> Clone for SealWitness<Seal>where
Seal: Clone + SingleUseSeal,
<Seal as SingleUseSeal>::PubWitness: Clone,
<Seal as SingleUseSeal>::CliWitness: Clone,
impl<Seal> Clone for SealWitness<Seal>where
Seal: Clone + SingleUseSeal,
<Seal as SingleUseSeal>::PubWitness: Clone,
<Seal as SingleUseSeal>::CliWitness: Clone,
Source§fn clone(&self) -> SealWitness<Seal>
fn clone(&self) -> SealWitness<Seal>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl<Seal> Debug for SealWitness<Seal>where
Seal: Debug + SingleUseSeal,
<Seal as SingleUseSeal>::PubWitness: Debug,
<Seal as SingleUseSeal>::CliWitness: Debug,
impl<Seal> Debug for SealWitness<Seal>where
Seal: Debug + SingleUseSeal,
<Seal as SingleUseSeal>::PubWitness: Debug,
<Seal as SingleUseSeal>::CliWitness: Debug,
Source§impl<'de, Seal> Deserialize<'de> for SealWitness<Seal>where
Seal: SingleUseSeal,
<Seal as SingleUseSeal>::PubWitness: Serialize + for<'d> Deserialize<'d>,
<Seal as SingleUseSeal>::CliWitness: Serialize + for<'d> Deserialize<'d>,
impl<'de, Seal> Deserialize<'de> for SealWitness<Seal>where
Seal: SingleUseSeal,
<Seal as SingleUseSeal>::PubWitness: Serialize + for<'d> Deserialize<'d>,
<Seal as SingleUseSeal>::CliWitness: Serialize + for<'d> Deserialize<'d>,
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<SealWitness<Seal>, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<SealWitness<Seal>, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl<Seal> Hash for SealWitness<Seal>where
Seal: Hash + SingleUseSeal,
<Seal as SingleUseSeal>::PubWitness: Hash,
<Seal as SingleUseSeal>::CliWitness: Hash,
impl<Seal> Hash for SealWitness<Seal>where
Seal: Hash + SingleUseSeal,
<Seal as SingleUseSeal>::PubWitness: Hash,
<Seal as SingleUseSeal>::CliWitness: Hash,
Source§impl<Seal> PartialEq for SealWitness<Seal>where
Seal: PartialEq + SingleUseSeal,
<Seal as SingleUseSeal>::PubWitness: PartialEq,
<Seal as SingleUseSeal>::CliWitness: PartialEq,
impl<Seal> PartialEq for SealWitness<Seal>where
Seal: PartialEq + SingleUseSeal,
<Seal as SingleUseSeal>::PubWitness: PartialEq,
<Seal as SingleUseSeal>::CliWitness: PartialEq,
Source§impl<Seal> Serialize for SealWitness<Seal>where
Seal: SingleUseSeal,
<Seal as SingleUseSeal>::PubWitness: Serialize + for<'d> Deserialize<'d>,
<Seal as SingleUseSeal>::CliWitness: Serialize + for<'d> Deserialize<'d>,
impl<Seal> Serialize for SealWitness<Seal>where
Seal: SingleUseSeal,
<Seal as SingleUseSeal>::PubWitness: Serialize + for<'d> Deserialize<'d>,
<Seal as SingleUseSeal>::CliWitness: Serialize + for<'d> Deserialize<'d>,
Source§fn 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,
Source§impl<Seal> StrictDecode for SealWitness<Seal>where
Seal: SingleUseSeal,
impl<Seal> StrictDecode for SealWitness<Seal>where
Seal: SingleUseSeal,
fn strict_decode( reader: &mut impl TypedRead, ) -> Result<SealWitness<Seal>, DecodeError>
fn strict_read(reader: impl ReadRaw) -> Result<Self, DecodeError>
Source§impl<Seal> StrictDumb for SealWitness<Seal>where
Seal: SingleUseSeal,
impl<Seal> StrictDumb for SealWitness<Seal>where
Seal: SingleUseSeal,
fn strict_dumb() -> SealWitness<Seal>
Source§impl<Seal> StrictEncode for SealWitness<Seal>where
Seal: SingleUseSeal,
impl<Seal> StrictEncode for SealWitness<Seal>where
Seal: SingleUseSeal,
fn strict_encode<W>(&self, writer: W) -> Result<W, Error>where
W: TypedWrite,
fn strict_write(&self, writer: impl WriteRaw) -> Result<(), Error>
Source§impl<Seal> StrictStruct for SealWitness<Seal>where
Seal: SingleUseSeal,
impl<Seal> StrictStruct for SealWitness<Seal>where
Seal: SingleUseSeal,
const ALL_FIELDS: &'static [&'static str]
fn strict_check_fields()
fn strict_type_info() -> TypeInfo<Self>
Source§impl<Seal> StrictType for SealWitness<Seal>where
Seal: SingleUseSeal,
impl<Seal> StrictType for SealWitness<Seal>where
Seal: SingleUseSeal,
const STRICT_LIB_NAME: &'static str = LIB_NAME_SEALS
fn strict_name() -> Option<TypeName>
impl<Seal> Copy for SealWitness<Seal>where
Seal: Copy + SingleUseSeal,
<Seal as SingleUseSeal>::PubWitness: Copy,
<Seal as SingleUseSeal>::CliWitness: Copy,
impl<Seal> Eq for SealWitness<Seal>where
Seal: Eq + SingleUseSeal,
<Seal as SingleUseSeal>::PubWitness: Eq,
<Seal as SingleUseSeal>::CliWitness: Eq,
impl<Seal> StrictProduct for SealWitness<Seal>where
Seal: SingleUseSeal,
impl<Seal> StructuralPartialEq for SealWitness<Seal>where
Seal: SingleUseSeal,
Auto Trait Implementations§
impl<Seal> Freeze for SealWitness<Seal>
impl<Seal> RefUnwindSafe for SealWitness<Seal>where
<Seal as SingleUseSeal>::PubWitness: RefUnwindSafe,
<Seal as SingleUseSeal>::CliWitness: RefUnwindSafe,
Seal: RefUnwindSafe,
impl<Seal> Send for SealWitness<Seal>where
<Seal as SingleUseSeal>::PubWitness: Send,
<Seal as SingleUseSeal>::CliWitness: Send,
Seal: Send,
impl<Seal> Sync for SealWitness<Seal>where
<Seal as SingleUseSeal>::PubWitness: Sync,
<Seal as SingleUseSeal>::CliWitness: Sync,
Seal: Sync,
impl<Seal> Unpin for SealWitness<Seal>where
<Seal as SingleUseSeal>::PubWitness: Unpin,
<Seal as SingleUseSeal>::CliWitness: Unpin,
Seal: Unpin,
impl<Seal> UnwindSafe for SealWitness<Seal>where
<Seal as SingleUseSeal>::PubWitness: UnwindSafe,
<Seal as SingleUseSeal>::CliWitness: UnwindSafe,
Seal: UnwindSafe,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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.