pub trait Policy:
Clone
+ Send
+ Sync
+ 'static {
// Required methods
fn policy_type(&self) -> VtxoPolicyKind;
fn taproot(
&self,
server_pubkey: PublicKey,
exit_delta: BlockDelta,
expiry_height: BlockHeight,
) -> TaprootSpendInfo;
fn clauses(
&self,
exit_delta: u16,
expiry_height: BlockHeight,
server_pubkey: PublicKey,
) -> Vec<VtxoClause>;
// Provided methods
fn script_pubkey(
&self,
server_pubkey: PublicKey,
exit_delta: BlockDelta,
expiry_height: BlockHeight,
) -> ScriptBuf { ... }
fn txout(
&self,
amount: Amount,
server_pubkey: PublicKey,
exit_delta: BlockDelta,
expiry_height: BlockHeight,
) -> TxOut { ... }
}Expand description
Trait for policy types that can be used in a Vtxo.
Required Methods§
fn policy_type(&self) -> VtxoPolicyKind
fn taproot( &self, server_pubkey: PublicKey, exit_delta: BlockDelta, expiry_height: BlockHeight, ) -> TaprootSpendInfo
fn clauses( &self, exit_delta: u16, expiry_height: BlockHeight, server_pubkey: PublicKey, ) -> Vec<VtxoClause>
Provided Methods§
fn script_pubkey( &self, server_pubkey: PublicKey, exit_delta: BlockDelta, expiry_height: BlockHeight, ) -> ScriptBuf
fn txout( &self, amount: Amount, server_pubkey: PublicKey, exit_delta: BlockDelta, expiry_height: BlockHeight, ) -> TxOut
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.