pub struct OracleLayer {
pub oracle_puzzle_hash: Bytes32,
pub oracle_fee: u64,
}Expand description
The Oracle Layer enables anyone to spend a coin provided they pay an XCH fee to an address.
It’s typically used with DelegationLayer.
Fields§
§oracle_puzzle_hash: Bytes32The puzzle hash corresponding to the address the fee should be paid to.
oracle_fee: u64The amount of XCH that should be paid to the oracle.
Implementations§
source§impl OracleLayer
impl OracleLayer
source§impl OracleLayer
impl OracleLayer
pub fn spend(self, ctx: &mut SpendContext) -> Result<Spend, DriverError>
Trait Implementations§
source§impl Clone for OracleLayer
impl Clone for OracleLayer
source§fn clone(&self) -> OracleLayer
fn clone(&self) -> OracleLayer
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 OracleLayer
impl Debug for OracleLayer
source§impl Layer for OracleLayer
impl Layer for OracleLayer
source§type Solution = ()
type Solution = ()
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,
_: NodePtr,
) -> Result<Self::Solution, DriverError>
fn parse_solution( _: &Allocator, _: 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,
_: &mut SpendContext,
(): Self::Solution,
) -> Result<NodePtr, DriverError>
fn construct_solution( &self, _: &mut SpendContext, (): 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 OracleLayer
impl PartialEq for OracleLayer
impl Copy for OracleLayer
impl Eq for OracleLayer
impl StructuralPartialEq for OracleLayer
Auto Trait Implementations§
impl Freeze for OracleLayer
impl RefUnwindSafe for OracleLayer
impl Send for OracleLayer
impl Sync for OracleLayer
impl Unpin for OracleLayer
impl UnwindSafe for OracleLayer
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)