pub struct P2Singleton {
pub launcher_id: Bytes32,
}Expand description
The p2 singleton Layer allows for requiring that a
singleton be spent alongside this coin to authorize it.
Fields§
§launcher_id: Bytes32Implementations§
source§impl P2Singleton
impl P2Singleton
pub fn new(launcher_id: Bytes32) -> Self
pub fn spend( &self, ctx: &mut SpendContext, coin_id: Bytes32, singleton_inner_puzzle_hash: Bytes32, ) -> Result<Spend, DriverError>
pub fn spend_coin( &self, ctx: &mut SpendContext, coin: Coin, singleton_inner_puzzle_hash: Bytes32, ) -> Result<(), DriverError>
Trait Implementations§
source§impl Clone for P2Singleton
impl Clone for P2Singleton
source§fn clone(&self) -> P2Singleton
fn clone(&self) -> P2Singleton
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 P2Singleton
impl Debug for P2Singleton
source§impl Layer for P2Singleton
impl Layer for P2Singleton
source§type Solution = P2SingletonSolution
type Solution = P2SingletonSolution
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 P2Singleton
impl PartialEq for P2Singleton
source§impl ToTreeHash for P2Singleton
impl ToTreeHash for P2Singleton
impl Copy for P2Singleton
impl Eq for P2Singleton
impl StructuralPartialEq for P2Singleton
Auto Trait Implementations§
impl Freeze for P2Singleton
impl RefUnwindSafe for P2Singleton
impl Send for P2Singleton
impl Sync for P2Singleton
impl Unpin for P2Singleton
impl UnwindSafe for P2Singleton
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)