lightning_signer/
wallet.rs1use bitcoin::bip32::DerivationPath;
2use bitcoin::secp256k1::PublicKey;
3use bitcoin::{Address, Network, ScriptBuf};
4
5use crate::util::status::Status;
6
7pub trait Wallet {
9 fn can_spend(
11 &self,
12 child_path: &DerivationPath,
13 script_pubkey: &ScriptBuf,
14 ) -> Result<bool, Status>;
15
16 fn allowlist_contains_payee(&self, payee: PublicKey) -> bool;
18
19 fn allowlist_contains(&self, script_pubkey: &ScriptBuf, path: &DerivationPath) -> bool;
21
22 fn network(&self) -> Network;
24
25 fn get_native_address(&self, child_path: &DerivationPath) -> Result<Address, Status>;
27
28 fn get_taproot_address(&self, child_path: &DerivationPath) -> Result<Address, Status>;
30
31 #[deprecated(since = "0.9.0", note = "Use native addresses instead")]
33 fn get_wrapped_address(&self, child_path: &DerivationPath) -> Result<Address, Status>;
34}