Bitcoin Core 28.99.0
P2P Digital Currency
Public Types | Public Member Functions | List of all members
interfaces::WalletLoader Class Referenceabstract

Wallet chain client that in addition to having chain client methods for starting up, shutting down, and registering RPCs, also has additional methods (called by the GUI) to load and create wallets. More...

#include <wallet.h>

Inheritance diagram for interfaces::WalletLoader:
[legend]
Collaboration diagram for interfaces::WalletLoader:
[legend]

Public Types

using LoadWalletFn = std::function< void(std::unique_ptr< Wallet > wallet)>
 Register handler for load wallet messages. More...
 

Public Member Functions

virtual util::Result< std::unique_ptr< Wallet > > createWallet (const std::string &name, const SecureString &passphrase, uint64_t wallet_creation_flags, std::vector< bilingual_str > &warnings)=0
 Create new wallet. More...
 
virtual util::Result< std::unique_ptr< Wallet > > loadWallet (const std::string &name, std::vector< bilingual_str > &warnings)=0
 Load existing wallet. More...
 
virtual std::string getWalletDir ()=0
 Return default wallet directory. More...
 
virtual util::Result< std::unique_ptr< Wallet > > restoreWallet (const fs::path &backup_file, const std::string &wallet_name, std::vector< bilingual_str > &warnings)=0
 Restore backup wallet. More...
 
virtual util::Result< WalletMigrationResultmigrateWallet (const std::string &name, const SecureString &passphrase)=0
 Migrate a wallet. More...
 
virtual bool isEncrypted (const std::string &wallet_name)=0
 Returns true if wallet stores encryption keys. More...
 
virtual std::vector< std::pair< std::string, std::string > > listWalletDir ()=0
 Return available wallets in wallet directory. More...
 
virtual std::vector< std::unique_ptr< Wallet > > getWallets ()=0
 Return interfaces for accessing wallets (if any). More...
 
virtual std::unique_ptr< HandlerhandleLoadWallet (LoadWalletFn fn)=0
 
virtual wallet::WalletContextcontext ()
 Return pointer to internal context, useful for testing. More...
 
- Public Member Functions inherited from interfaces::ChainClient
virtual ~ChainClient ()=default
 
virtual void registerRpcs ()=0
 Register rpcs. More...
 
virtual bool verify ()=0
 Check for errors before loading. More...
 
virtual bool load ()=0
 Load saved state. More...
 
virtual void start (CScheduler &scheduler)=0
 Start client execution and provide a scheduler. More...
 
virtual void flush ()=0
 Save state to disk. More...
 
virtual void stop ()=0
 Shut down client. More...
 
virtual void setMockTime (int64_t time)=0
 Set mock time. More...
 
virtual void schedulerMockForward (std::chrono::seconds delta_seconds)=0
 Mock the scheduler to fast forward in time. More...
 

Detailed Description

Wallet chain client that in addition to having chain client methods for starting up, shutting down, and registering RPCs, also has additional methods (called by the GUI) to load and create wallets.

Definition at line 327 of file wallet.h.

Member Typedef Documentation

◆ LoadWalletFn

using interfaces::WalletLoader::LoadWalletFn = std::function<void(std::unique_ptr<Wallet> wallet)>

Register handler for load wallet messages.

This callback is triggered by createWallet and loadWallet above, and also triggered when wallets are loaded at startup or by RPC.

Definition at line 357 of file wallet.h.

Member Function Documentation

◆ context()

virtual wallet::WalletContext * interfaces::WalletLoader::context ( )
inlinevirtual

Return pointer to internal context, useful for testing.

Definition at line 361 of file wallet.h.

◆ createWallet()

virtual util::Result< std::unique_ptr< Wallet > > interfaces::WalletLoader::createWallet ( const std::string &  name,
const SecureString passphrase,
uint64_t  wallet_creation_flags,
std::vector< bilingual_str > &  warnings 
)
pure virtual

Create new wallet.

Here is the caller graph for this function:

◆ getWalletDir()

virtual std::string interfaces::WalletLoader::getWalletDir ( )
pure virtual

Return default wallet directory.

◆ getWallets()

virtual std::vector< std::unique_ptr< Wallet > > interfaces::WalletLoader::getWallets ( )
pure virtual

Return interfaces for accessing wallets (if any).

Here is the caller graph for this function:

◆ handleLoadWallet()

virtual std::unique_ptr< Handler > interfaces::WalletLoader::handleLoadWallet ( LoadWalletFn  fn)
pure virtual
Here is the caller graph for this function:

◆ isEncrypted()

virtual bool interfaces::WalletLoader::isEncrypted ( const std::string &  wallet_name)
pure virtual

Returns true if wallet stores encryption keys.

◆ listWalletDir()

virtual std::vector< std::pair< std::string, std::string > > interfaces::WalletLoader::listWalletDir ( )
pure virtual

Return available wallets in wallet directory.

Here is the caller graph for this function:

◆ loadWallet()

virtual util::Result< std::unique_ptr< Wallet > > interfaces::WalletLoader::loadWallet ( const std::string &  name,
std::vector< bilingual_str > &  warnings 
)
pure virtual

Load existing wallet.

Here is the caller graph for this function:

◆ migrateWallet()

virtual util::Result< WalletMigrationResult > interfaces::WalletLoader::migrateWallet ( const std::string &  name,
const SecureString passphrase 
)
pure virtual

Migrate a wallet.

Here is the caller graph for this function:

◆ restoreWallet()

virtual util::Result< std::unique_ptr< Wallet > > interfaces::WalletLoader::restoreWallet ( const fs::path backup_file,
const std::string &  wallet_name,
std::vector< bilingual_str > &  warnings 
)
pure virtual

Restore backup wallet.

Here is the caller graph for this function:

The documentation for this class was generated from the following file: