pub struct MerklePaymentCandidatePool {
pub midpoint_proof: MidpointProof,
pub candidate_nodes: [MerklePaymentCandidateNode; 16],
}Expand description
One candidate pool: midpoint proof + nodes who could store addresses.
Fields§
§midpoint_proof: MidpointProofThe midpoint proof from the merkle tree
candidate_nodes: [MerklePaymentCandidateNode; 16]Candidate nodes for this pool (fixed size for determinism)
Implementations§
Source§impl MerklePaymentCandidatePool
impl MerklePaymentCandidatePool
Sourcepub fn to_commitment(&self) -> PoolCommitment
pub fn to_commitment(&self) -> PoolCommitment
Convert to minimal commitment for smart contract submission.
Sourcepub fn verify_prices(
&self,
on_chain_commitments: &[PoolCommitment],
winner_pool_hash: &[u8; 32],
) -> Result<(), MerklePaymentVerificationError>
pub fn verify_prices( &self, on_chain_commitments: &[PoolCommitment], winner_pool_hash: &[u8; 32], ) -> Result<(), MerklePaymentVerificationError>
Verify that on-chain prices match what the signed nodes report.
Sourcepub fn candidate_nodes_addresses(&self) -> HashSet<Address>
pub fn candidate_nodes_addresses(&self) -> HashSet<Address>
Get the reward addresses of all candidate nodes.
Trait Implementations§
Source§impl Clone for MerklePaymentCandidatePool
impl Clone for MerklePaymentCandidatePool
Source§fn clone(&self) -> MerklePaymentCandidatePool
fn clone(&self) -> MerklePaymentCandidatePool
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 MerklePaymentCandidatePool
impl Debug for MerklePaymentCandidatePool
Source§impl<'de> Deserialize<'de> for MerklePaymentCandidatePool
impl<'de> Deserialize<'de> for MerklePaymentCandidatePool
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<MerklePaymentCandidatePool, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<MerklePaymentCandidatePool, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Serialize for MerklePaymentCandidatePool
impl Serialize for MerklePaymentCandidatePool
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,
Serialize this value into the given Serde serializer. Read more
impl Eq for MerklePaymentCandidatePool
impl StructuralPartialEq for MerklePaymentCandidatePool
Auto Trait Implementations§
impl Freeze for MerklePaymentCandidatePool
impl RefUnwindSafe for MerklePaymentCandidatePool
impl Send for MerklePaymentCandidatePool
impl Sync for MerklePaymentCandidatePool
impl Unpin for MerklePaymentCandidatePool
impl UnsafeUnpin for MerklePaymentCandidatePool
impl UnwindSafe for MerklePaymentCandidatePool
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
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
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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>
Converts
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>
Converts
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