1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
crate::ix!();

//-------------------------------------------[.cpp/bitcoin/src/wallet/scriptpubkeyman.cpp]

pub trait GetActiveScriptPubKeyMans {

    fn get_active_script_pub_key_mans(&self) -> HashSet<*mut ScriptPubKeyMan>;
}

pub trait GetAllScriptPubKeyMans {

    fn get_all_script_pub_key_mans(&self) -> HashSet<*mut ScriptPubKeyMan>;
}

pub trait GetScriptPubKeyMan {

    fn get_script_pub_key_man(&self, 
        ty:       &OutputType,
        internal: bool) -> *mut ScriptPubKeyMan;
}

pub trait GetScriptPubKeyManWithScript {

    fn get_script_pub_key_man_with_script(&self, script: &Script) -> *mut ScriptPubKeyMan;
}


pub trait GetScriptPubKeyManWithId {

    fn get_script_pub_key_man_with_id(&self, id: &u256) -> *mut ScriptPubKeyMan;
}

pub trait GetScriptPubKeyMans {

    fn get_script_pub_key_mans(&self, 
        script:  &Script,
        sigdata: &mut SignatureData) -> HashSet<*mut ScriptPubKeyMan>;
}

pub trait GetLegacyScriptPubKeyMan {

    fn get_legacy_script_pub_key_man(&self) -> *mut LegacyScriptPubKeyMan;
}

pub trait GetOrCreateLegacyScriptPubKeyMan {
    fn get_or_create_legacy_script_pub_key_man(&mut self) -> *mut LegacyScriptPubKeyMan;
}

pub trait SetupLegacyScriptPubKeyMan {

    fn setup_legacy_script_pub_key_man(&mut self);
}

pub trait ConnectScriptPubKeyManNotifiers {

    fn connect_script_pub_key_man_notifiers(&mut self);
}

pub trait LoadDescriptorScriptPubKeyMan {

    fn load_descriptor_script_pub_key_man(&mut self, 
        id:   u256,
        desc: &mut WalletDescriptor);
}

pub trait AddActiveScriptPubKeyMan {

    fn add_active_script_pub_key_man(&mut self, 
        id:       u256,
        ty:       OutputType,
        internal: bool);
}

pub trait LoadActiveScriptPubKeyMan {

    fn load_active_script_pub_key_man(&mut self, 
        id:       u256,
        ty:       OutputType,
        internal: bool);
}

pub trait DeactivateScriptPubKeyMan {

    fn deactivate_script_pub_key_man(&mut self, 
        id:       u256,
        ty:       OutputType,
        internal: bool);
}

pub trait SetupDescriptorScriptPubKeyMans {

    fn setup_descriptor_script_pub_key_mans(&mut self);
}

pub trait GetDescriptorScriptPubKeyMan {

    fn get_descriptor_script_pub_key_man(&self, desc: &WalletDescriptor) -> *mut DescriptorScriptPubKeyMan;
}

pub trait AddWalletDescriptor {

    fn add_wallet_descriptor(&mut self, 
        desc:             &mut WalletDescriptor,
        signing_provider: &FlatSigningProvider,
        label:            &String,
        internal:         bool) -> *mut ScriptPubKeyMan;
}