[−]Trait bdk::descriptor::ScriptContext
Required methods
fn check_frag_non_malleable<Pk, Ctx>(
_frag: &Terminal<Pk, Ctx>
) -> Result<(), ScriptContextError> where
Ctx: ScriptContext,
Pk: MiniscriptKey,
_frag: &Terminal<Pk, Ctx>
) -> Result<(), ScriptContextError> where
Ctx: ScriptContext,
Pk: MiniscriptKey,
Depending on ScriptContext, fragments can be malleable. For Example, under Legacy context, PkH is malleable because it is possible to estimate the cost of satisfaction because of compressed keys This is currently only used in compiler code for removing malleable compilations. This does NOT recursively check if the children of the fragment are valid or not. Since the compilation proceeds in a leaf to root fashion, a recursive check is unnecessary.
fn check_frag_validity<Pk, Ctx>(
_frag: &Terminal<Pk, Ctx>
) -> Result<(), ScriptContextError> where
Ctx: ScriptContext,
Pk: MiniscriptKey,
_frag: &Terminal<Pk, Ctx>
) -> Result<(), ScriptContextError> where
Ctx: ScriptContext,
Pk: MiniscriptKey,
Depending on script Context, some of the Terminals might not be valid. For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey uncompressed public keys are non-standard and thus invalid. Post Tapscript upgrade, this would have to consider other nodes. This does not recursively check
Implementors
impl ScriptContext for Legacy
fn check_frag_non_malleable<Pk, Ctx>(
frag: &Terminal<Pk, Ctx>
) -> Result<(), ScriptContextError> where
Ctx: ScriptContext,
Pk: MiniscriptKey,
frag: &Terminal<Pk, Ctx>
) -> Result<(), ScriptContextError> where
Ctx: ScriptContext,
Pk: MiniscriptKey,
fn check_frag_validity<Pk, Ctx>(
_frag: &Terminal<Pk, Ctx>
) -> Result<(), ScriptContextError> where
Ctx: ScriptContext,
Pk: MiniscriptKey,
_frag: &Terminal<Pk, Ctx>
) -> Result<(), ScriptContextError> where
Ctx: ScriptContext,
Pk: MiniscriptKey,
impl ScriptContext for Segwitv0
fn check_frag_non_malleable<Pk, Ctx>(
_frag: &Terminal<Pk, Ctx>
) -> Result<(), ScriptContextError> where
Ctx: ScriptContext,
Pk: MiniscriptKey,
_frag: &Terminal<Pk, Ctx>
) -> Result<(), ScriptContextError> where
Ctx: ScriptContext,
Pk: MiniscriptKey,
fn check_frag_validity<Pk, Ctx>(
frag: &Terminal<Pk, Ctx>
) -> Result<(), ScriptContextError> where
Ctx: ScriptContext,
Pk: MiniscriptKey,
frag: &Terminal<Pk, Ctx>
) -> Result<(), ScriptContextError> where
Ctx: ScriptContext,
Pk: MiniscriptKey,