pub struct DelegationLayerSolution<P, S> {
pub merkle_proof: Option<(u32, Vec<Bytes32>)>,
pub puzzle_reveal: P,
pub puzzle_solution: S,
}Fields§
§merkle_proof: Option<(u32, Vec<Bytes32>)>§puzzle_reveal: P§puzzle_solution: STrait Implementations§
source§impl<P: Clone, S: Clone> Clone for DelegationLayerSolution<P, S>
impl<P: Clone, S: Clone> Clone for DelegationLayerSolution<P, S>
source§fn clone(&self) -> DelegationLayerSolution<P, S>
fn clone(&self) -> DelegationLayerSolution<P, S>
Returns a copy 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<P: FromClvm<D>, S: FromClvm<D>, Node, D: ClvmDecoder<Node = Node>> FromClvm<D> for DelegationLayerSolution<P, S>
impl<P: FromClvm<D>, S: FromClvm<D>, Node, D: ClvmDecoder<Node = Node>> FromClvm<D> for DelegationLayerSolution<P, S>
source§impl<P: PartialEq, S: PartialEq> PartialEq for DelegationLayerSolution<P, S>
impl<P: PartialEq, S: PartialEq> PartialEq for DelegationLayerSolution<P, S>
source§fn eq(&self, other: &DelegationLayerSolution<P, S>) -> bool
fn eq(&self, other: &DelegationLayerSolution<P, S>) -> bool
Tests for
self and other values to be equal, and is used by ==.source§impl<P: ToClvm<E>, S: ToClvm<E>, Node, E: ClvmEncoder<Node = Node>> ToClvm<E> for DelegationLayerSolution<P, S>
impl<P: ToClvm<E>, S: ToClvm<E>, Node, E: ClvmEncoder<Node = Node>> ToClvm<E> for DelegationLayerSolution<P, S>
impl<P: Eq, S: Eq> Eq for DelegationLayerSolution<P, S>
impl<P, S> StructuralPartialEq for DelegationLayerSolution<P, S>
Auto Trait Implementations§
impl<P, S> Freeze for DelegationLayerSolution<P, S>
impl<P, S> RefUnwindSafe for DelegationLayerSolution<P, S>where
P: RefUnwindSafe,
S: RefUnwindSafe,
impl<P, S> Send for DelegationLayerSolution<P, S>
impl<P, S> Sync for DelegationLayerSolution<P, S>
impl<P, S> Unpin for DelegationLayerSolution<P, S>
impl<P, S> UnwindSafe for DelegationLayerSolution<P, S>where
P: UnwindSafe,
S: 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
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit)source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<T> Layer for T
impl<T> Layer for T
source§type Solution = NodePtr
type Solution = NodePtr
Most of the time, this is an actual CLVM type representing the solution.
However, you can also use a helper struct and customize
Layer::construct_solution and Layer::parse_solution.source§fn parse_puzzle(
allocator: &Allocator,
puzzle: Puzzle,
) -> Result<Option<T>, DriverError>
fn parse_puzzle( allocator: &Allocator, puzzle: Puzzle, ) -> Result<Option<T>, DriverError>
Parses this layer from the given puzzle, returning
None if the puzzle doesn’t match.
An error is returned if the puzzle should have matched but couldn’t be parsed.source§fn parse_solution(
_allocator: &Allocator,
solution: NodePtr,
) -> Result<<T as Layer>::Solution, DriverError>
fn parse_solution( _allocator: &Allocator, solution: NodePtr, ) -> Result<<T as Layer>::Solution, DriverError>
Parses the
Layer::Solution type from a CLVM solution pointer.source§fn construct_puzzle(
&self,
ctx: &mut SpendContext,
) -> Result<NodePtr, DriverError>
fn construct_puzzle( &self, ctx: &mut SpendContext, ) -> Result<NodePtr, DriverError>
Constructs the full curried puzzle for this layer.
Ideally, the puzzle itself should be cached in the
SpendContext.source§fn construct_solution(
&self,
_ctx: &mut SpendContext,
solution: <T as Layer>::Solution,
) -> Result<NodePtr, DriverError>
fn construct_solution( &self, _ctx: &mut SpendContext, solution: <T as Layer>::Solution, ) -> Result<NodePtr, DriverError>
Constructs the full solution for this layer.
Can be used to construct the solution from a helper struct, if it’s not directly a CLVM type.
It’s also possible to influence the solution based on the puzzle, if needed.
source§fn construct_spend(
&self,
ctx: &mut SpendContext,
solution: Self::Solution,
) -> Result<Spend, DriverError>
fn construct_spend( &self, ctx: &mut SpendContext, solution: Self::Solution, ) -> Result<Spend, DriverError>
Creates a spend for this layer.
source§fn construct_coin_spend(
&self,
ctx: &mut SpendContext,
coin: Coin,
solution: Self::Solution,
) -> Result<CoinSpend, DriverError>
fn construct_coin_spend( &self, ctx: &mut SpendContext, coin: Coin, solution: Self::Solution, ) -> Result<CoinSpend, DriverError>
Creates a coin spend for this layer.