pub struct HashLockedForfeitBundle {
pub vtxo_id: VtxoId,
pub unlock_hash: UnlockHash,
pub user_nonce: PublicNonce,
pub part_sig: PartialSignature,
}Expand description
A bundle of a signature and metadata that forfeits a user’s VTXO conditional on the server revealing a secret preimage
Fields§
§vtxo_id: VtxoId§unlock_hash: UnlockHash§user_nonce: PublicNonce§part_sig: PartialSignatureUser’s partial signature on the forfeit tx
Implementations§
Source§impl HashLockedForfeitBundle
impl HashLockedForfeitBundle
Sourcepub fn new<G>(
vtxo: &Vtxo<G>,
unlock_hash: UnlockHash,
user_key: &Keypair,
server_nonce: &PublicNonce,
) -> Self
pub fn new<G>( vtxo: &Vtxo<G>, unlock_hash: UnlockHash, user_key: &Keypair, server_nonce: &PublicNonce, ) -> Self
Create a new HashLockedForfeitBundle for the given VTXO
This is used to forfeit the VTXO to the server conditional on receiving the unlock preimage corresponding to the given unlock hash.
Sourcepub fn verify<G>(
&self,
vtxo: &Vtxo<G>,
server_nonce: &PublicNonce,
) -> Result<(), &'static str>
pub fn verify<G>( &self, vtxo: &Vtxo<G>, server_nonce: &PublicNonce, ) -> Result<(), &'static str>
Used by the server to verify if the partial signature in the bundle is valid
Sourcepub fn finish(
&self,
vtxo: &Vtxo<Full>,
server_pub_nonce: &PublicNonce,
server_sec_nonce: SecretNonce,
server_key: &Keypair,
) -> (Signature, Transaction, ServerVtxo<Full>)
pub fn finish( &self, vtxo: &Vtxo<Full>, server_pub_nonce: &PublicNonce, server_sec_nonce: SecretNonce, server_key: &Keypair, ) -> (Signature, Transaction, ServerVtxo<Full>)
Used by the server to finish the forfeit signature using its own nonce
NB users don’t need to know this signature
Trait Implementations§
Source§impl Clone for HashLockedForfeitBundle
impl Clone for HashLockedForfeitBundle
Source§fn clone(&self) -> HashLockedForfeitBundle
fn clone(&self) -> HashLockedForfeitBundle
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for HashLockedForfeitBundle
impl Debug for HashLockedForfeitBundle
Source§impl PartialEq for HashLockedForfeitBundle
impl PartialEq for HashLockedForfeitBundle
Source§impl ProtocolEncoding for HashLockedForfeitBundle
impl ProtocolEncoding for HashLockedForfeitBundle
Source§fn encode<W: Write + ?Sized>(&self, w: &mut W) -> Result<(), Error>
fn encode<W: Write + ?Sized>(&self, w: &mut W) -> Result<(), Error>
Encode the object into the writer.
Source§fn decode<R: Read + ?Sized>(r: &mut R) -> Result<Self, ProtocolDecodingError>
fn decode<R: Read + ?Sized>(r: &mut R) -> Result<Self, ProtocolDecodingError>
Decode the object from the writer.
Source§fn deserialize(byte_slice: &[u8]) -> Result<Self, ProtocolDecodingError>
fn deserialize(byte_slice: &[u8]) -> Result<Self, ProtocolDecodingError>
Deserialize object from the given byte slice.
Source§fn serialize_hex(&self) -> String
fn serialize_hex(&self) -> String
Serialize the object to a lowercase hex string.
Source§fn deserialize_hex(hex_str: &str) -> Result<Self, ProtocolDecodingError>
fn deserialize_hex(hex_str: &str) -> Result<Self, ProtocolDecodingError>
Deserialize object from hex slice.
impl Eq for HashLockedForfeitBundle
impl StructuralPartialEq for HashLockedForfeitBundle
Auto Trait Implementations§
impl Freeze for HashLockedForfeitBundle
impl RefUnwindSafe for HashLockedForfeitBundle
impl Send for HashLockedForfeitBundle
impl Sync for HashLockedForfeitBundle
impl Unpin for HashLockedForfeitBundle
impl UnsafeUnpin for HashLockedForfeitBundle
impl UnwindSafe for HashLockedForfeitBundle
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
Mutably borrows from an owned value. Read more