Struct farcaster_core::protocol::Parameters
source · pub struct Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr> {Show 15 fields
pub buy: Pk,
pub cancel: Pk,
pub refund: Pk,
pub punish: Option<Pk>,
pub adaptor: Pk,
pub extra_arbitrating_keys: Vec<TaggedElement<u16, Pk>>,
pub arbitrating_shared_keys: Vec<TaggedElement<SharedKeyId, Rk>>,
pub spend: Qk,
pub extra_accordant_keys: Vec<TaggedElement<u16, Qk>>,
pub accordant_shared_keys: Vec<TaggedElement<SharedKeyId, Sk>>,
pub proof: Option<Pr>,
pub destination_address: Addr,
pub cancel_timelock: Option<Ti>,
pub punish_timelock: Option<Ti>,
pub fee_strategy: Option<FeeStrategy<F>>,
}
Expand description
One has to produce a set of parameters at the start of a swap and receive a mostly equivalent set from counter-party during the reveal procedure. Container for all the parameters a participant needs to execture a swap.
The proof is optional because one receives the proof after receiving the parameters in the receal process, the option allows to create the struct at the first step and add the swap if needed later.
Timelocks and fee strategy are only present in the local
set of parameters and not part of
the reveal process, thus they are optional too.
Fields§
§buy: Pk
§cancel: Pk
§refund: Pk
§punish: Option<Pk>
§adaptor: Pk
§extra_arbitrating_keys: Vec<TaggedElement<u16, Pk>>
§spend: Qk
§extra_accordant_keys: Vec<TaggedElement<u16, Qk>>
§proof: Option<Pr>
§destination_address: Addr
§cancel_timelock: Option<Ti>
§punish_timelock: Option<Ti>
§fee_strategy: Option<FeeStrategy<F>>
Implementations§
source§impl<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr> Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>where
Pk: Clone + CanonicalBytes,
Qk: CanonicalBytes,
Rk: CanonicalBytes,
Sk: CanonicalBytes,
impl<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr> Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>where
Pk: Clone + CanonicalBytes,
Qk: CanonicalBytes,
Rk: CanonicalBytes,
Sk: CanonicalBytes,
sourcepub fn commit_alice<C: Clone + Eq, U: Into<SwapId>>(
&self,
swap_id: U,
wallet: &impl Commit<C>
) -> CommitAliceParameters<C>
pub fn commit_alice<C: Clone + Eq, U: Into<SwapId>>(
&self,
swap_id: U,
wallet: &impl Commit<C>
) -> CommitAliceParameters<C>
Generates protocol message that commits to Alice’s parameters.
sourcepub fn reveal_alice<U: Into<SwapId>>(
self,
swap_id: U
) -> RevealAliceParameters<Pk, Qk, Rk, Sk, Addr, Pr>
pub fn reveal_alice<U: Into<SwapId>>(
self,
swap_id: U
) -> RevealAliceParameters<Pk, Qk, Rk, Sk, Addr, Pr>
Create the reveal protocol message based on the set of parameters.
sourcepub fn commit_bob<C: Clone + Eq, U: Into<SwapId>>(
&self,
swap_id: U,
wallet: &impl Commit<C>
) -> CommitBobParameters<C>
pub fn commit_bob<C: Clone + Eq, U: Into<SwapId>>(
&self,
swap_id: U,
wallet: &impl Commit<C>
) -> CommitBobParameters<C>
Generates protocol message that commits to Bob’s parameters.
sourcepub fn reveal_bob<U: Into<SwapId>>(
self,
swap_id: U
) -> RevealBobParameters<Pk, Qk, Rk, Sk, Addr, Pr>
pub fn reveal_bob<U: Into<SwapId>>(
self,
swap_id: U
) -> RevealBobParameters<Pk, Qk, Rk, Sk, Addr, Pr>
Create the reveal protocol message based on the set of parameters.
Trait Implementations§
source§impl<Pk: Clone, Qk: Clone, Rk: Clone, Sk: Clone, Addr: Clone, Ti: Clone, F: Clone, Pr: Clone> Clone for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>
impl<Pk: Clone, Qk: Clone, Rk: Clone, Sk: Clone, Addr: Clone, Ti: Clone, F: Clone, Pr: Clone> Clone for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>
source§fn clone(&self) -> Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>
fn clone(&self) -> Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<Pk: Debug, Qk: Debug, Rk: Debug, Sk: Debug, Addr: Debug, Ti: Debug, F: Debug, Pr: Debug> Debug for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>
impl<Pk: Debug, Qk: Debug, Rk: Debug, Sk: Debug, Addr: Debug, Ti: Debug, F: Debug, Pr: Debug> Debug for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>
source§impl<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr> Decodable for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>where
Pk: CanonicalBytes,
Qk: CanonicalBytes,
Rk: CanonicalBytes,
Sk: CanonicalBytes,
Addr: CanonicalBytes,
Ti: CanonicalBytes,
F: CanonicalBytes,
Pr: CanonicalBytes,
impl<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr> Decodable for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>where
Pk: CanonicalBytes,
Qk: CanonicalBytes,
Rk: CanonicalBytes,
Sk: CanonicalBytes,
Addr: CanonicalBytes,
Ti: CanonicalBytes,
F: CanonicalBytes,
Pr: CanonicalBytes,
source§impl<'de, Pk, Qk, Rk, Sk, Addr, Ti, F, Pr> Deserialize<'de> for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>where
Pk: Deserialize<'de>,
Qk: Deserialize<'de>,
Rk: Deserialize<'de>,
Sk: Deserialize<'de>,
Addr: Deserialize<'de>,
Ti: Deserialize<'de>,
F: Deserialize<'de>,
Pr: Deserialize<'de>,
impl<'de, Pk, Qk, Rk, Sk, Addr, Ti, F, Pr> Deserialize<'de> for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>where
Pk: Deserialize<'de>,
Qk: Deserialize<'de>,
Rk: Deserialize<'de>,
Sk: Deserialize<'de>,
Addr: Deserialize<'de>,
Ti: Deserialize<'de>,
F: Deserialize<'de>,
Pr: Deserialize<'de>,
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>,
source§impl<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr> Encodable for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>where
Pk: CanonicalBytes,
Qk: CanonicalBytes,
Rk: CanonicalBytes,
Sk: CanonicalBytes,
Addr: CanonicalBytes,
Ti: CanonicalBytes,
F: CanonicalBytes,
Pr: CanonicalBytes,
impl<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr> Encodable for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>where
Pk: CanonicalBytes,
Qk: CanonicalBytes,
Rk: CanonicalBytes,
Sk: CanonicalBytes,
Addr: CanonicalBytes,
Ti: CanonicalBytes,
F: CanonicalBytes,
Pr: CanonicalBytes,
source§impl<Pk: Hash, Qk: Hash, Rk: Hash, Sk: Hash, Addr: Hash, Ti: Hash, F: Hash, Pr: Hash> Hash for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>
impl<Pk: Hash, Qk: Hash, Rk: Hash, Sk: Hash, Addr: Hash, Ti: Hash, F: Hash, Pr: Hash> Hash for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>
source§impl<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr> Serialize for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>where
Pk: Serialize,
Qk: Serialize,
Rk: Serialize,
Sk: Serialize,
Addr: Serialize,
Ti: Serialize,
F: Serialize,
Pr: Serialize,
impl<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr> Serialize for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>where
Pk: Serialize,
Qk: Serialize,
Rk: Serialize,
Sk: Serialize,
Addr: Serialize,
Ti: Serialize,
F: Serialize,
Pr: Serialize,
source§impl<Pk: CanonicalBytes, Qk: CanonicalBytes, Rk: CanonicalBytes, Sk: CanonicalBytes, Addr: CanonicalBytes, Ti: CanonicalBytes, F: CanonicalBytes, Pr: CanonicalBytes> StrictDecode for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>
impl<Pk: CanonicalBytes, Qk: CanonicalBytes, Rk: CanonicalBytes, Sk: CanonicalBytes, Addr: CanonicalBytes, Ti: CanonicalBytes, F: CanonicalBytes, Pr: CanonicalBytes> StrictDecode for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>
source§fn strict_decode<D: Read>(d: D) -> Result<Self, Error>
fn strict_decode<D: Read>(d: D) -> Result<Self, Error>
std::io::Read
instance; must either
construct an instance or return implementation-specific error type.source§fn strict_deserialize(data: impl AsRef<[u8]>) -> Result<Self, Error>
fn strict_deserialize(data: impl AsRef<[u8]>) -> Result<Self, Error>
StrictDecode::strict_decode
. If there are some data remains in the
buffer once deserialization is completed, fails with
Error::DataNotEntirelyConsumed
. Use io::Cursor
over the buffer and
StrictDecode::strict_decode
to avoid such failures.source§fn strict_file_load(path: impl AsRef<Path>) -> Result<Self, Error>
fn strict_file_load(path: impl AsRef<Path>) -> Result<Self, Error>
path
and reconstructs object from it. Fails
with Error::DataNotEntirelyConsumed
if file contains remaining
data after the object reconstruction.source§impl<Pk: CanonicalBytes, Qk: CanonicalBytes, Rk: CanonicalBytes, Sk: CanonicalBytes, Addr: CanonicalBytes, Ti: CanonicalBytes, F: CanonicalBytes, Pr: CanonicalBytes> StrictEncode for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>
impl<Pk: CanonicalBytes, Qk: CanonicalBytes, Rk: CanonicalBytes, Sk: CanonicalBytes, Addr: CanonicalBytes, Ti: CanonicalBytes, F: CanonicalBytes, Pr: CanonicalBytes> StrictEncode for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>
source§fn strict_encode<E: Write>(&self, e: E) -> Result<usize, Error>
fn strict_encode<E: Write>(&self, e: E) -> Result<usize, Error>
std::io::Write
instance; must return result
with either amount of bytes encoded – or implementation-specific
error type.source§fn strict_serialize(&self) -> Result<Vec<u8, Global>, Error>
fn strict_serialize(&self) -> Result<Vec<u8, Global>, Error>
StrictEncode::strict_encode
functionAuto Trait Implementations§
impl<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr> RefUnwindSafe for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>where
Addr: RefUnwindSafe,
F: RefUnwindSafe,
Pk: RefUnwindSafe,
Pr: RefUnwindSafe,
Qk: RefUnwindSafe,
Rk: RefUnwindSafe,
Sk: RefUnwindSafe,
Ti: RefUnwindSafe,
impl<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr> Send for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>where
Addr: Send,
F: Send,
Pk: Send,
Pr: Send,
Qk: Send,
Rk: Send,
Sk: Send,
Ti: Send,
impl<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr> Sync for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>where
Addr: Sync,
F: Sync,
Pk: Sync,
Pr: Sync,
Qk: Sync,
Rk: Sync,
Sk: Sync,
Ti: Sync,
impl<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr> Unpin for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>where
Addr: Unpin,
F: Unpin,
Pk: Unpin,
Pr: Unpin,
Qk: Unpin,
Rk: Unpin,
Sk: Unpin,
Ti: Unpin,
impl<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr> UnwindSafe for Parameters<Pk, Qk, Rk, Sk, Addr, Ti, F, Pr>where
Addr: UnwindSafe,
F: UnwindSafe,
Pk: UnwindSafe,
Pr: UnwindSafe,
Qk: UnwindSafe,
Rk: UnwindSafe,
Sk: UnwindSafe,
Ti: UnwindSafe,
Blanket Implementations§
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
source§impl<T> Mark for T
impl<T> Mark for T
source§fn mark<M>(self) -> <M as ChangeMark<T>>::Outwhere
M: ChangeMark<T>,
fn mark<M>(self) -> <M as ChangeMark<T>>::Outwhere
M: ChangeMark<T>,
M
. Read more§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
self
, then passes self.as_mut()
into the pipe
function.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
.tap_ref_mut()
only in debug builds, and is erased in release
builds.