crate::ix!();
pub struct Wallet {
wallet_flags: Atomic<u64>,
chain: Rc<RefCell<dyn ChainInterface>>,
name: String,
database: Box<WalletDatabase>,
external_spk_managers: HashMap<OutputType,*mut ScriptPubKeyMan>,
internal_spk_managers: HashMap<OutputType,*mut ScriptPubKeyMan>,
spk_managers: HashMap<u256,Box<ScriptPubKeyMan>>,
cs_wallet: Arc<Mutex<WalletInner>>,
map_master_keys: WalletMasterKeyMap,
n_master_key_maxid: u32,
wtx_ordered: WalletTxItems,
n_accounting_entry_number: u64,
chain_notifications_handler: Box<dyn Handler>,
unlock_mutex: parking_lot::RawMutex,
pay_tx_fee: FeeRate, confirm_target: u32,
spend_zero_conf_change: bool,
signal_rbf: bool,
allow_fallback_fee: bool,
min_fee: FeeRate,
fallback_fee: FeeRate,
discard_rate: FeeRate,
consolidate_feerate: FeeRate,
max_aps_fee: Amount,
default_address_type: OutputType,
default_change_type: Option<OutputType>,
default_max_tx_fee: Amount,
notify_unload: Signal<fn() -> ()>,
notify_address_book_changed: Signal<fn(
address: &TxDestination,
label: &String,
is_mine: bool,
purpose: &String,
status: ChangeType
) -> ()>,
notify_transaction_changed: Signal<fn(hash_tx: &u256, status: ChangeType) -> ()>,
show_progress: Signal<fn(title: &String, n_progress: i32) -> ()>,
notify_watchonly_changed: Signal<fn(have_watch_only: bool) -> ()>,
notify_can_get_addresses_changed: Signal<fn() -> ()>,
notify_status_changed: Signal<fn(wallet: *mut Wallet) -> ()>,
}
impl WalletStorage for Wallet { }
impl ChainNotifications for Wallet { }
impl BlockConnected for Wallet { }
impl BlockDisconnected for Wallet { }
pub struct WalletInner {
map_tx_spends: WalletTxSpends,
last_block_processed: u256,
last_block_processed_height: i32,
map_wallet: HashMap<u256,WalletTx>,
n_order_pos_next: i64,
address_book: HashMap<TxDestination,AddressBookData>,
set_locked_coins: HashSet<OutPoint>,
n_relock_time: i64,
}
impl Drop for Wallet {
fn drop(&mut self) {
todo!();
}
}
impl AddToSpendsWithOutpoint for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn add_to_spends_with_outpoint(&mut self,
outpoint: &OutPoint,
wtxid: &u256,
batch: Option<*mut WalletBatch>) {
todo!();
}
}
impl AddToSpends for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn add_to_spends(&mut self,
wtxid: &u256,
batch: Option<*mut WalletBatch>) {
todo!();
}
}
impl AddToWalletIfInvolvingMe for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn add_to_wallet_if_involving_me(&mut self,
tx: &TransactionRef,
confirm: WalletTxConfirmation,
update: bool,
rescanning_old_block: bool) -> bool {
todo!();
}
}
impl MarkConflicted for Wallet {
fn mark_conflicted(&mut self,
hash_block: &u256,
conflicting_height: i32,
hash_tx: &u256) {
todo!();
}
}
impl MarkInputsDirty for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn mark_inputs_dirty(&mut self, tx: &TransactionRef) {
todo!();
}
}
impl SyncMetaData for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn sync_meta_data(&mut self, _0: (WalletTxSpendsIterator,WalletTxSpendsIterator)) {
todo!();
}
}
impl SyncTransaction for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn sync_transaction(&mut self,
tx: &TransactionRef,
confirm: WalletTxConfirmation,
update_tx: Option<bool>,
rescanning_old_block: Option<bool>) {
let update_tx: bool = update_tx.unwrap_or(true);
let rescanning_old_block: bool = rescanning_old_block.unwrap_or(false);
todo!();
}
}
impl SetAddressBookWithDB for Wallet {
fn set_address_book_withdb(&mut self,
batch: &mut WalletBatch,
address: &TxDestination,
str_name: &str,
str_purpose: &str) -> bool {
todo!();
}
}
impl UnsetWalletFlagWithDB for Wallet {
fn unset_wallet_flag_withdb(&mut self,
batch: &mut WalletBatch,
flag: u64) {
todo!();
}
}
impl UnsetBlankWalletFlag for Wallet {
fn unset_blank_wallet_flag(&mut self, batch: &mut WalletBatch) {
todo!();
}
}
impl AttachChain for Wallet {
fn attach_chain<'a>(
wallet: &Arc<Wallet>,
chain: &'a mut dyn ChainInterface,
rescan_required: bool,
error: &mut BilingualStr,
warnings: &mut Vec<BilingualStr>) -> bool {
todo!();
}
}
impl GetDatabase for Wallet {
fn get_database(&self) -> &mut WalletDatabase {
todo!();
}
}
impl GetName for Wallet {
fn get_name(&self) -> &'static str {
todo!();
}
}
impl Wallet {
pub fn new<'a>(
chain: &'a mut dyn ChainInterface,
name: &str,
database: Box<WalletDatabase>) -> Self {
todo!();
}
fn chain<'a>(&self) -> &'a mut dyn ChainInterface {
todo!();
}
}
impl IsCrypted for Wallet {
fn is_crypted(&self) -> bool {
todo!();
}
}
impl IsLocked for Wallet {
fn is_locked(&self) -> bool {
todo!();
}
}
impl Lock for Wallet {
fn lock(&mut self) -> bool {
todo!();
}
}
impl HaveChain for Wallet {
fn have_chain(&self) -> bool {
todo!();
}
}
impl FindAddressBookEntry for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn find_address_book_entry(&self,
_0: &TxDestination,
allow_change: Option<bool>) -> *const AddressBookData {
let allow_change: bool = allow_change.unwrap_or(false);
todo!();
}
}
impl GetWalletTx for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn get_wallet_tx(&self, hash: &u256) -> WalletTx {
todo!();
}
}
impl GetTxConflicts for Wallet {
#[NO_THREAD_SAFETY_ANALYSIS]
fn get_tx_conflicts(&self, wtx: &WalletTx) -> HashSet<u256> {
todo!();
}
}
impl GetTxDepthInMainChain for Wallet {
#[NO_THREAD_SAFETY_ANALYSIS]
fn get_tx_depth_in_main_chain(&self, wtx: &WalletTx) -> i32 {
todo!();
}
}
impl IsTxInMainChain for Wallet {
fn is_tx_in_main_chain(&self, wtx: &WalletTx) -> bool {
todo!();
}
}
impl GetTxBlocksToMaturity for Wallet {
fn get_tx_blocks_to_maturity(&self, wtx: &WalletTx) -> i32 {
todo!();
}
}
impl IsTxImmatureCoinBase for Wallet {
fn is_tx_immature_coin_base(&self, wtx: &WalletTx) -> bool {
todo!();
}
}
impl CanSupportFeature for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn can_support_feature(&self, wf: WalletFeature) -> bool {
todo!();
}
}
impl IsSpent for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn is_spent(&self,
hash: &u256,
n: u32) -> bool {
todo!();
}
}
impl IsSpentKey for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn is_spent_key(&self,
hash: &u256,
n: u32) -> bool {
todo!();
}
}
impl SetSpentKeyState for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn set_spent_key_state(&mut self,
batch: &mut WalletBatch,
hash: &u256,
n: u32,
used: bool,
tx_destinations: &mut HashSet<TxDestination>) {
todo!();
}
}
impl DisplayAddress for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn display_address(&mut self, dest: &TxDestination) -> bool {
todo!();
}
}
impl CheckIsLockedCoinWithHash for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn check_is_locked_coin_with_hash(&self,
hash: u256,
n: u32) -> bool {
todo!();
}
}
impl LockCoin for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn lock_coin_with_batch(&mut self,
output: &OutPoint,
batch: Option<*mut WalletBatch>) -> bool {
todo!();
}
}
impl UnlockCoinWithBatch for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn unlock_coin_with_batch(&mut self,
output: &OutPoint,
batch: Option<*mut WalletBatch>) -> bool {
todo!();
}
}
impl UnlockAllCoins for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn unlock_all_coins(&mut self) -> bool {
todo!();
}
}
impl ListLockedCoins for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn list_locked_coins(&self, outpts: &mut Vec<OutPoint>) {
todo!();
}
}
impl AbortRescan for Wallet {
fn abort_rescan(&mut self) {
todo!();
}
}
impl IsAbortingRescan for Wallet {
fn is_aborting_rescan(&self) -> bool {
todo!();
}
}
impl IsScanning for Wallet {
fn is_scanning(&self) -> bool {
todo!();
}
}
impl ScanningDuration for Wallet {
fn scanning_duration(&self) -> i64 {
todo!();
}
}
impl ScanningProgress for Wallet {
fn scanning_progress(&self) -> f64 {
todo!();
}
}
impl UpgradeKeyMetadata for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn upgrade_key_metadata(&mut self) {
todo!();
}
}
impl UpgradeDescriptorCache for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn upgrade_descriptor_cache(&mut self) {
todo!();
}
}
impl LoadMinVersion for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn load_min_version(&mut self, n_version: i32) -> bool {
todo!();
}
}
impl LoadDestData for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn load_dest_data(&mut self,
dest: &TxDestination,
key: &String,
value: &String) {
todo!();
}
}
impl Unlock for Wallet {
fn unlock(&mut self,
str_wallet_passphrase: &SecureString,
accept_no_keys: Option<bool>) -> bool {
let accept_no_keys: bool = accept_no_keys.unwrap_or(false);
todo!();
}
}
impl ChangeWalletPassphrase for Wallet {
fn change_wallet_passphrase(&mut self,
str_old_wallet_passphrase: &SecureString,
str_new_wallet_passphrase: &SecureString) -> bool {
todo!();
}
}
impl EncryptWallet for Wallet {
fn encrypt_wallet(&mut self, str_wallet_passphrase: &SecureString) -> bool {
todo!();
}
}
impl GetKeyBirthTimes for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn get_key_birth_times(&self, map_key_birth: &mut HashMap<KeyID,i64>) {
todo!();
}
}
impl ComputeTimeSmart for Wallet {
fn compute_time_smart(&self,
wtx: &WalletTx,
rescanning_old_block: bool) -> u32 {
todo!();
}
}
impl IncOrderPosNext for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn inc_order_pos_next(&mut self, batch: Option<*mut WalletBatch>) -> i64 {
todo!();
}
}
impl ReorderTransactions for Wallet {
fn reorder_transactions(&mut self) -> DBErrors {
todo!();
}
}
impl MarkDirty for Wallet {
fn mark_dirty(&mut self) {
todo!();
}
}
impl AddToWallet for Wallet {
fn add_to_wallet(&mut self,
tx: TransactionRef,
confirm: &WalletTxConfirmation,
update_wtx: Option<&WalletUpdateWalletTxFn>,
flush_on_close: Option<bool>,
rescanning_old_block: Option<bool>) -> *mut WalletTx {
let flush_on_close: bool = flush_on_close.unwrap_or(true);
let rescanning_old_block: bool = rescanning_old_block.unwrap_or(false);
todo!();
}
}
impl LoadToWallet for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn load_to_wallet(&mut self,
hash: &u256,
fill_wtx: &WalletUpdateWalletTxFn) -> bool {
todo!();
}
}
impl TransactionAddedToMempool for Wallet {
fn transaction_added_to_mempool(&mut self,
tx: &TransactionRef,
mempool_sequence: u64) {
todo!();
}
}
impl UpdatedBlockTip for Wallet { }
impl RescanFromTime for Wallet {
fn rescan_from_time(&mut self,
start_time: i64,
reserver: &WalletRescanReserver,
update: bool) -> i64 {
todo!();
}
}
impl ScanForWalletTransactions for Wallet {
fn scan_for_wallet_transactions(&mut self,
start_block: &u256,
start_height: i32,
max_height: Option<i32>,
reserver: &WalletRescanReserver,
update: bool) -> WalletScanResult {
todo!();
}
}
impl TransactionRemovedFromMempool for Wallet {
fn transaction_removed_from_mempool(&mut self,
tx: &TransactionRef,
reason: MemPoolRemovalReason,
mempool_sequence: u64) {
todo!();
}
}
impl ReacceptWalletTransactions for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn reaccept_wallet_transactions(&mut self) {
todo!();
}
}
impl ResendWalletTransactions for Wallet {
fn resend_wallet_transactions(&mut self) {
todo!();
}
}
impl TransactionChangeType for Wallet {
fn transaction_change_type(&self,
change_type: &Option<OutputType>,
vec_send: &Vec<Recipient>) -> OutputType {
todo!();
}
}
impl WalletSignTransaction for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn sign_transaction(&self, tx: &mut MutableTransaction) -> bool {
todo!();
}
}
impl SignTransactionGivenInputCoinsAndSighash for Wallet {
fn sign_transaction_given_input_coins_and_sighash(&self,
tx: &mut MutableTransaction,
coins: &HashMap<OutPoint,Coin>,
sighash: i32,
input_errors: &mut HashMap<i32,BilingualStr>) -> bool {
todo!();
}
}
impl SignMessage for Wallet {
fn sign_message(&self,
message: &String,
pkhash: &PKHash,
str_sig: &mut String) -> SigningResult {
todo!();
}
}
impl WalletFillPSBT for Wallet {
fn fill_psbt(&mut self,
sighash_type: i32,
sign: bool,
bip_32derivs: bool,
n_signed: *mut usize,
psbtx: &mut PartiallySignedTransaction,
complete: &mut bool) -> TransactionError {
todo!();
}
}
impl CommitTransaction for Wallet {
fn commit_transaction(&mut self,
tx: TransactionRef,
map_value: MapValue,
order_form: Vec<(String,String)>) {
todo!();
}
}
impl SubmitTxMemoryPoolAndRelay for Wallet {
fn submit_tx_memory_pool_and_relay(&self,
wtx: &WalletTx,
err_string: &mut String,
relay: bool) -> bool {
todo!();
}
}
impl DummySignTx for Wallet {
fn dummy_sign_tx(&self,
tx_new: &mut MutableTransaction,
txouts: &HashSet<TxOut>,
coin_control: Option<*const CoinControl>) -> bool {
todo!();
}
}
impl ImportScripts for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn import_scripts(&mut self,
scripts: HashSet<Script>,
timestamp: i64) -> bool {
todo!();
}
}
impl ImportPrivKeys for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn import_priv_keys(&mut self,
privkey_map: &HashMap<KeyID,Key>,
timestamp: i64) -> bool {
todo!();
}
}
impl ImportPubKeys for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn import_pub_keys(&mut self,
ordered_pubkeys: &Vec<KeyID>,
pubkey_map: &HashMap<KeyID,PubKey>,
key_origins: &HashMap<KeyID,(PubKey,KeyOriginInfo)>,
add_keypool: bool,
internal: bool,
timestamp: i64) -> bool {
todo!();
}
}
impl ImportScriptPubKeys for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn import_script_pub_keys(&mut self,
label: &String,
script_pub_keys: &HashSet<Script>,
have_solving_data: bool,
apply_label: bool,
timestamp: i64) -> bool {
todo!();
}
}
impl KeypoolCountExternalKeys for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn keypool_count_external_keys(&self) -> usize {
todo!();
}
}
impl TopUpKeyPool for Wallet {
fn top_up_key_pool(&mut self, kp_size: Option<u32>) -> bool {
let kp_size: u32 = kp_size.unwrap_or(0);
todo!();
}
}
impl GetOldestKeyPoolTime for Wallet {
fn get_oldest_key_pool_time(&self) -> i64 {
todo!();
}
}
impl GetLabelAddresses for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn get_label_addresses(&self, label: &String) -> HashSet<TxDestination> {
todo!();
}
}
impl MarkDestinationsDirty for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn mark_destinations_dirty(&mut self, destinations: &HashSet<TxDestination>) {
todo!();
}
}
impl WalletGetNewDestination for Wallet {
fn get_new_destination(&mut self,
ty: OutputType,
label: String,
dest: &mut TxDestination,
error: &mut BilingualStr) -> bool {
todo!();
}
}
impl GetNewChangeDestination for Wallet {
fn get_new_change_destination(&mut self,
ty: OutputType,
dest: &mut TxDestination,
error: &mut BilingualStr) -> bool {
todo!();
}
}
impl IsMineWithTxDest for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn is_mine_with_tx_dest(&self, dest: &TxDestination) -> IsMineType {
todo!();
}
}
impl IsMineWithScript for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn is_mine_with_script(&self, script: &Script) -> IsMineType {
todo!();
}
}
impl GetDebitWithTxinAndFilter for Wallet {
fn get_debit_with_txin_and_filter(&self,
txin: &TxIn,
filter: &IsMineFilter) -> Amount {
todo!();
}
}
impl IsMineWithTxout for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn is_mine_with_txout(&self, txout: &TxOut) -> IsMineType {
todo!();
}
}
impl IsMineWithTx for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn is_mine_with_tx(&self, tx: &Transaction) -> bool {
todo!();
}
}
impl IsFromMe for Wallet {
fn is_from_me(&self, tx: &Transaction) -> bool {
todo!();
}
}
impl GetDebitWithTxAndFilter for Wallet {
fn get_debit_with_tx_and_filter(&self,
tx: &Transaction,
filter: &IsMineFilter) -> Amount {
todo!();
}
}
impl ChainStateFlushed for Wallet {
fn chain_state_flushed(&mut self, loc: &BlockLocator) {
todo!();
}
}
impl LoadWallet for Wallet {
fn load_wallet(&mut self) -> DBErrors {
todo!();
}
}
impl ZapSelectTx for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn zap_select_tx(&mut self,
hash_in: &mut Vec<u256>,
hash_out: &mut Vec<u256>) -> DBErrors {
todo!();
}
}
impl SetAddressBook for Wallet {
fn set_address_book(&mut self,
address: &TxDestination,
str_name: &String,
purpose: &String) -> bool {
todo!();
}
}
impl DelAddressBook for Wallet {
fn del_address_book(&mut self, address: &TxDestination) -> bool {
todo!();
}
}
impl IsAddressUsed for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn is_address_used(&self, dest: &TxDestination) -> bool {
todo!();
}
}
impl SetAddressUsed for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn set_address_used(&mut self,
batch: &mut WalletBatch,
dest: &TxDestination,
used: bool) -> bool {
todo!();
}
}
impl GetAddressReceiveRequests for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn get_address_receive_requests(&self) -> Vec<String> {
todo!();
}
}
impl SetAddressReceiveRequestWithBatch for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn set_address_receive_request_with_batch(
&mut self,
batch: &mut WalletBatch,
dest: &TxDestination,
id: &String,
value: &String) -> bool {
todo!();
}
}
impl GetKeyPoolSize for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn get_key_pool_size(&self) -> u32 {
todo!();
}
}
impl SetMinVersion for Wallet {
fn set_min_version(&mut self,
_0: WalletFeature,
batch_in: Option<*mut WalletBatch>) {
todo!();
}
}
impl GetVersion for Wallet {
fn get_version(&self) -> i32 {
todo!();
}
}
impl GetConflicts for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn get_conflicts(&self, txid: &u256) -> HashSet<u256> {
todo!();
}
}
impl HasWalletSpend for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn has_wallet_spend(&self, txid: &u256) -> bool {
todo!();
}
}
impl Flush for Wallet {
fn flush(&mut self) {
todo!();
}
}
impl Close for Wallet {
fn close(&mut self) {
todo!();
}
}
impl GetBroadcastTransactions for Wallet {
fn get_broadcast_transactions(&self) -> bool {
todo!();
}
}
impl SetBroadcastTransactions for Wallet {
fn set_broadcast_transactions(&mut self, broadcast: bool) {
todo!();
}
}
impl TransactionCanBeAbandoned for Wallet {
fn transaction_can_be_abandoned(&self, hash_tx: &u256) -> bool {
todo!();
}
}
impl AbandonTransaction for Wallet {
fn abandon_transaction(&mut self, hash_tx: &u256) -> bool {
todo!();
}
}
impl MarkReplaced for Wallet {
fn mark_replaced(&mut self,
original_hash: &u256,
new_hash: &u256) -> bool {
todo!();
}
}
impl Create for Wallet {
fn create(
context: &mut WalletContext,
name: &String,
database: Box<WalletDatabase>,
wallet_creation_flags: u64,
error: &mut BilingualStr,
warnings: &mut Vec<BilingualStr>) -> Arc<Wallet> {
todo!();
}
}
impl PostInitProcess for Wallet {
fn post_init_process(&mut self) {
todo!();
}
}
impl BackupWallet for Wallet {
fn backup_wallet(&self, str_dest: &String) -> bool {
todo!();
}
}
impl IsHDEnabled for Wallet {
fn is_hd_enabled(&self) -> bool {
todo!();
}
}
impl CanGetAddresses for Wallet {
fn can_get_addresses(&self, internal: Option<bool>) -> bool {
let internal: bool = internal.unwrap_or(false);
todo!();
}
}
impl BlockUntilSyncedToCurrentChain for Wallet {
#[LOCKS_EXCLUDED(::cs_main)]
#[EXCLUSIVE_LOCKS_REQUIRED(!cs_wallet)]
fn block_until_synced_to_current_chain(&self) {
todo!();
}
}
impl SetWalletFlag for Wallet {
fn set_wallet_flag(&mut self, flags: u64) {
todo!();
}
}
impl UnsetWalletFlag for Wallet {
fn unset_wallet_flag(&mut self, flag: u64) {
todo!();
}
}
impl IsWalletFlagSet for Wallet {
fn is_wallet_flag_set(&self, flag: u64) -> bool {
todo!();
}
}
impl AddWalletFlags for Wallet {
fn add_wallet_flags(&mut self, flags: u64) -> bool {
todo!();
}
}
impl LoadWalletFlags for Wallet {
fn load_wallet_flags(&mut self, flags: u64) -> bool {
todo!();
}
}
impl IsLegacy for Wallet {
fn is_legacy(&self) -> bool {
todo!();
}
}
impl GetDisplayName for Wallet {
fn get_display_name(&self) -> String {
todo!();
}
}
impl WalletLogPrintf for Wallet {
fn wallet_log_printf<Params>(&self,
fmt: String,
parameters: Params) {
todo!();
}
}
impl UpgradeWallet for Wallet {
fn upgrade_wallet(&mut self,
version: i32,
error: &mut BilingualStr) -> bool {
todo!();
}
}
impl GetActiveScriptPubKeyMans for Wallet {
fn get_active_script_pub_key_mans(&self) -> HashSet<*mut ScriptPubKeyMan> {
todo!();
}
}
impl GetAllScriptPubKeyMans for Wallet {
fn get_all_script_pub_key_mans(&self) -> HashSet<*mut ScriptPubKeyMan> {
todo!();
}
}
impl GetScriptPubKeyMan for Wallet {
fn get_script_pub_key_man(&self,
ty: &OutputType,
internal: bool) -> *mut ScriptPubKeyMan {
todo!();
}
}
impl GetScriptPubKeyManWithScript for Wallet {
fn get_script_pub_key_man_with_script(&self, script: &Script) -> *mut ScriptPubKeyMan {
todo!();
}
}
impl GetScriptPubKeyManWithId for Wallet {
fn get_script_pub_key_man_with_id(&self, id: &u256) -> *mut ScriptPubKeyMan {
todo!();
}
}
impl GetScriptPubKeyMans for Wallet {
fn get_script_pub_key_mans(&self,
script: &Script,
sigdata: &mut SignatureData) -> HashSet<*mut ScriptPubKeyMan> {
todo!();
}
}
impl GetSolvingProvider for Wallet {
fn get_solving_provider(&self, script: &Script) -> Box<SigningProvider> {
todo!();
}
}
impl GetSolvingProviderWithSigdata for Wallet {
fn get_solving_provider_with_sigdata(&self,
script: &Script,
sigdata: &mut SignatureData) -> Box<SigningProvider> {
todo!();
}
}
impl GetLegacyScriptPubKeyMan for Wallet {
fn get_legacy_script_pub_key_man(&self) -> *mut LegacyScriptPubKeyMan {
todo!();
}
}
impl GetOrCreateLegacyScriptPubKeyMan for Wallet {
fn get_or_create_legacy_script_pub_key_man(&mut self) -> *mut LegacyScriptPubKeyMan {
todo!();
}
}
impl SetupLegacyScriptPubKeyMan for Wallet {
fn setup_legacy_script_pub_key_man(&mut self) {
todo!();
}
}
impl GetEncryptionKey for Wallet {
fn get_encryption_key(&self) -> &KeyingMaterial {
todo!();
}
}
impl HasEncryptionKeys for Wallet {
fn has_encryption_keys(&self) -> bool {
todo!();
}
}
impl GetLastBlockHeight for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn get_last_block_height(&self) -> i32 {
todo!();
}
}
impl GetLastBlockHash for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn get_last_block_hash(&self) -> u256 {
todo!();
}
}
impl SetLastBlockProcessed for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn set_last_block_processed(&mut self,
block_height: i32,
block_hash: u256) {
todo!();
}
}
impl ConnectScriptPubKeyManNotifiers for Wallet {
fn connect_script_pub_key_man_notifiers(&mut self) {
todo!();
}
}
impl LoadDescriptorScriptPubKeyMan for Wallet {
fn load_descriptor_script_pub_key_man(&mut self,
id: u256,
desc: &mut WalletDescriptor) {
todo!();
}
}
impl AddActiveScriptPubKeyMan for Wallet {
fn add_active_script_pub_key_man(&mut self,
id: u256,
ty: OutputType,
internal: bool) {
todo!();
}
}
impl LoadActiveScriptPubKeyMan for Wallet {
fn load_active_script_pub_key_man(&mut self,
id: u256,
ty: OutputType,
internal: bool) {
todo!();
}
}
impl DeactivateScriptPubKeyMan for Wallet {
fn deactivate_script_pub_key_man(&mut self,
id: u256,
ty: OutputType,
internal: bool) {
todo!();
}
}
impl SetupDescriptorScriptPubKeyMans for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn setup_descriptor_script_pub_key_mans(&mut self) {
todo!();
}
}
impl GetDescriptorScriptPubKeyMan for Wallet {
fn get_descriptor_script_pub_key_man(&self, desc: &WalletDescriptor) -> *mut DescriptorScriptPubKeyMan {
todo!();
}
}
impl AddWalletDescriptor for Wallet {
#[EXCLUSIVE_LOCKS_REQUIRED(cs_wallet)]
fn add_wallet_descriptor(&mut self,
desc: &mut WalletDescriptor,
signing_provider: &FlatSigningProvider,
label: &String,
internal: bool) -> *mut ScriptPubKeyMan {
todo!();
}
}