bitceptron_retriever/explorer/
explorer_setting.rs1use getset::Getters;
2use serde::{Deserialize, Serialize};
3use zeroize::{Zeroize, ZeroizeOnDrop};
4
5#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Getters)]
6#[get = "pub with_prefix"]
7pub struct ExplorerSetting {
8 mnemonic: String,
9 passphrase: String,
10 base_derivation_paths: Vec<String>,
11 exploration_path: String,
12 exploration_depth: u32,
13 network: bitcoin::Network,
14 sweep: bool,
15}
16
17impl Default for ExplorerSetting {
18 fn default() -> Self {
19 Self {
20 mnemonic: Default::default(),
21 passphrase: Default::default(),
22 base_derivation_paths: Default::default(),
23 exploration_path: Default::default(),
24 exploration_depth: Default::default(),
25 network: bitcoin::Network::Bitcoin,
26 sweep: Default::default(),
27 }
28 }
29}
30
31impl ExplorerSetting {
32 pub fn new(
33 mnemonic: String,
34 passphrase: String,
35 base_derivation_paths: Vec<String>,
36 exploration_path: String,
37 exploration_depth: u32,
38 network: bitcoin::Network,
39 sweep: bool,
40 ) -> Self {
41 ExplorerSetting {
42 mnemonic,
43 passphrase,
44 base_derivation_paths,
45 exploration_path,
46 exploration_depth,
47 network,
48 sweep,
49 }
50 }
51}
52
53impl Zeroize for ExplorerSetting {
54 fn zeroize(&mut self) {
55 self.mnemonic.zeroize();
56 self.passphrase.zeroize();
57 self.base_derivation_paths.zeroize();
58 self.exploration_path.zeroize();
59 self.exploration_depth.zeroize();
60 self.network = bitcoin::Network::Regtest;
61 self.sweep.zeroize();
62 }
63}
64
65impl ZeroizeOnDrop for ExplorerSetting {}