pub struct P2OneOfMany {
pub merkle_root: Bytes32,
}Expand description
The p2 1 of n Layer allows for picking from several delegated puzzles at runtime without revealing up front.
Fields§
§merkle_root: Bytes32The merkle root used to lookup the delegated puzzle as part of the solution.
Trait Implementations§
source§impl Clone for P2OneOfMany
impl Clone for P2OneOfMany
source§fn clone(&self) -> P2OneOfMany
fn clone(&self) -> P2OneOfMany
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 Debug for P2OneOfMany
impl Debug for P2OneOfMany
source§impl Layer for P2OneOfMany
impl Layer for P2OneOfMany
source§type Solution = P2OneOfManySolution<NodePtr, NodePtr>
type Solution = P2OneOfManySolution<NodePtr, 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<Self>, DriverError>
fn parse_puzzle( allocator: &Allocator, puzzle: Puzzle, ) -> Result<Option<Self>, 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<Self::Solution, DriverError>
fn parse_solution( allocator: &Allocator, solution: NodePtr, ) -> Result<Self::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: Self::Solution,
) -> Result<NodePtr, DriverError>
fn construct_solution( &self, ctx: &mut SpendContext, solution: Self::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.
source§impl PartialEq for P2OneOfMany
impl PartialEq for P2OneOfMany
impl Copy for P2OneOfMany
impl Eq for P2OneOfMany
impl StructuralPartialEq for P2OneOfMany
Auto Trait Implementations§
impl Freeze for P2OneOfMany
impl RefUnwindSafe for P2OneOfMany
impl Send for P2OneOfMany
impl Sync for P2OneOfMany
impl Unpin for P2OneOfMany
impl UnwindSafe for P2OneOfMany
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)