Trait bdk_wallet::keys::GeneratableKey
source · pub trait GeneratableKey<Ctx: ScriptContext>: Sized {
type Entropy: AsMut<[u8]> + Default;
type Options;
type Error: Debug;
// Required method
fn generate_with_entropy(
options: Self::Options,
entropy: Self::Entropy
) -> Result<GeneratedKey<Self, Ctx>, Self::Error>;
// Provided methods
fn generate(
options: Self::Options
) -> Result<GeneratedKey<Self, Ctx>, Self::Error> { ... }
fn generate_with_aux_rand(
options: Self::Options,
rng: &mut (impl CryptoRng + RngCore)
) -> Result<GeneratedKey<Self, Ctx>, Self::Error> { ... }
}
Expand description
Trait for keys that can be generated
The same rules about ScriptContext
and ValidNetworks
from IntoDescriptorKey
apply.
This trait is particularly useful when combined with DerivableKey
: if Self
implements it, the returned GeneratedKey
will also implement it. The same is true for
IntoDescriptorKey
: the generated keys can be directly used in descriptors if Self
is also
IntoDescriptorKey
.
Required Associated Types§
Required Methods§
sourcefn generate_with_entropy(
options: Self::Options,
entropy: Self::Entropy
) -> Result<GeneratedKey<Self, Ctx>, Self::Error>
fn generate_with_entropy( options: Self::Options, entropy: Self::Entropy ) -> Result<GeneratedKey<Self, Ctx>, Self::Error>
Generate a key given the extra options and the entropy
Provided Methods§
sourcefn generate(
options: Self::Options
) -> Result<GeneratedKey<Self, Ctx>, Self::Error>
fn generate( options: Self::Options ) -> Result<GeneratedKey<Self, Ctx>, Self::Error>
Generate a key given the options with random entropy.
Uses the thread-local random number generator.
sourcefn generate_with_aux_rand(
options: Self::Options,
rng: &mut (impl CryptoRng + RngCore)
) -> Result<GeneratedKey<Self, Ctx>, Self::Error>
fn generate_with_aux_rand( options: Self::Options, rng: &mut (impl CryptoRng + RngCore) ) -> Result<GeneratedKey<Self, Ctx>, Self::Error>
Generate a key given the options with random entropy.
Uses a provided random number generator (rng).
Object Safety§
This trait is not object safe.