Bitcoin ABC 0.34.2
P2P Digital Currency
Classes | Public Types | Public Slots | Signals | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
WalletModel Class Reference

Interface to Bitcoin wallet from Qt view code. More...

#include <walletmodel.h>

Inheritance diagram for WalletModel:
[legend]
Collaboration diagram for WalletModel:
[legend]

Classes

struct  SendCoinsReturn
 
class  UnlockContext
 

Public Types

enum  StatusCode {
  OK , InvalidAmount , InvalidAddress , AmountExceedsBalance ,
  AmountWithFeeExceedsBalance , DuplicateAddress , TransactionCreationFailed , AbsurdFee ,
  PaymentRequestExpired
}
 
enum  EncryptionStatus { Unencrypted , Locked , Unlocked }
 

Public Slots

void startPollBalance ()
 
void updateStatus ()
 
void updateTransaction ()
 New transaction, or transaction changed status. More...
 
void updateAddressBook (const QString &address, const QString &label, bool isMine, const QString &purpose, int status)
 New, updated or removed address book entry. More...
 
void updateWatchOnlyFlag (bool fHaveWatchonly)
 Watch-only added. More...
 
void pollBalanceChanged ()
 Current, immature or unconfirmed balance might have changed - emit 'balanceChanged' if so. More...
 

Signals

void balanceChanged (const interfaces::WalletBalances &balances)
 
void encryptionStatusChanged ()
 
void requireUnlock ()
 
void message (const QString &title, const QString &message, unsigned int style)
 
void coinsSent (interfaces::Wallet &wallet, SendCoinsRecipient recipient, QByteArray transaction)
 
void showProgress (const QString &title, int nProgress)
 
void notifyWatchonlyChanged (bool fHaveWatchonly)
 
void unload ()
 
void canGetAddressesChanged ()
 

Public Member Functions

 WalletModel (std::unique_ptr< interfaces::Wallet > wallet, ClientModel &client_model, const PlatformStyle *platformStyle, QObject *parent=nullptr)
 
 ~WalletModel ()
 
OptionsModel * getOptionsModel ()
 
AddressTableModel * getAddressTableModel ()
 
TransactionTableModel * getTransactionTableModel ()
 
RecentRequestsTableModel * getRecentRequestsTableModel ()
 
EncryptionStatus getEncryptionStatus () const
 
bool validateAddress (const QString &address)
 
SendCoinsReturn prepareTransaction (WalletModelTransaction &transaction, const CCoinControl &coinControl)
 
SendCoinsReturn sendCoins (WalletModelTransaction &transaction)
 
bool setWalletEncrypted (const SecureString &passphrase)
 
bool setWalletLocked (bool locked, const SecureString &passPhrase=SecureString())
 
bool changePassphrase (const SecureString &oldPass, const SecureString &newPass)
 
UnlockContext requestUnlock ()
 
void loadReceiveRequests (std::vector< std::string > &vReceiveRequests)
 
bool saveReceiveRequest (const std::string &sAddress, const int64_t nId, const std::string &sRequest)
 
interfaces::Node & node () const
 
interfaces::Wallet & wallet () const
 
ClientModel & clientModel () const
 
void setClientModel (ClientModel *client_model)
 
const CChainParams & getChainParams () const
 
QString getWalletName () const
 
QString getDisplayName () const
 
bool isMultiwallet ()
 
AddressTableModel * getAddressTableModel () const
 
BlockHash getLastBlockProcessed () const
 

Static Public Member Functions

static bool isWalletEnabled ()
 

Private Member Functions

void subscribeToCoreSignals ()
 
void unsubscribeFromCoreSignals ()
 
void checkBalanceChanged (const interfaces::WalletBalances &new_balances)
 

Private Attributes

std::unique_ptr< interfaces::Wallet > m_wallet
 
std::unique_ptr< interfaces::Handler > m_handler_unload
 
std::unique_ptr< interfaces::Handler > m_handler_status_changed
 
std::unique_ptr< interfaces::Handler > m_handler_address_book_changed
 
std::unique_ptr< interfaces::Handler > m_handler_transaction_changed
 
std::unique_ptr< interfaces::Handler > m_handler_show_progress
 
std::unique_ptr< interfaces::Handler > m_handler_watch_only_changed
 
std::unique_ptr< interfaces::Handler > m_handler_can_get_addrs_changed
 
ClientModel * m_client_model
 
interfaces::Node & m_node
 
bool fHaveWatchOnly
 
bool fForceCheckBalanceChanged {false}
 
OptionsModel * optionsModel
 
AddressTableModel * addressTableModel
 
TransactionTableModel * transactionTableModel
 
RecentRequestsTableModel * recentRequestsTableModel
 
interfaces::WalletBalances m_cached_balances
 
EncryptionStatus cachedEncryptionStatus
 
QTimer * timer
 
BlockHash m_cached_last_update_tip {}
 

Detailed Description

Interface to Bitcoin wallet from Qt view code.

Definition at line 47 of file walletmodel.h.

Member Enumeration Documentation

◆ EncryptionStatus

Enumerator
Unencrypted 
Locked 
Unlocked 

Definition at line 71 of file walletmodel.h.

◆ StatusCode

Enumerator
OK 
InvalidAmount 
InvalidAddress 
AmountExceedsBalance 
AmountWithFeeExceedsBalance 
DuplicateAddress 
TransactionCreationFailed 
AbsurdFee 
PaymentRequestExpired 

Definition at line 58 of file walletmodel.h.

Constructor & Destructor Documentation

◆ WalletModel()

WalletModel::WalletModel ( std::unique_ptr< interfaces::Wallet >  wallet,
ClientModel &  client_model,
const PlatformStyle *  platformStyle,
QObject *  parent = nullptr 
)
explicit

Definition at line 31 of file walletmodel.cpp.

Here is the call graph for this function:

◆ ~WalletModel()

WalletModel::~WalletModel ( )

Definition at line 47 of file walletmodel.cpp.

Here is the call graph for this function:

Member Function Documentation

◆ balanceChanged

void WalletModel::balanceChanged ( const interfaces::WalletBalances &  balances)
signal
Here is the caller graph for this function:

◆ canGetAddressesChanged

void WalletModel::canGetAddressesChanged ( )
signal
Here is the caller graph for this function:

◆ changePassphrase()

bool WalletModel::changePassphrase ( const SecureString &  oldPass,
const SecureString &  newPass 
)

Definition at line 358 of file walletmodel.cpp.

Here is the caller graph for this function:

◆ checkBalanceChanged()

void WalletModel::checkBalanceChanged ( const interfaces::WalletBalances &  new_balances)
private

Definition at line 103 of file walletmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ clientModel()

ClientModel & WalletModel::clientModel ( ) const
inline

Definition at line 151 of file walletmodel.h.

◆ coinsSent

void WalletModel::coinsSent ( interfaces::Wallet &  wallet,
SendCoinsRecipient  recipient,
QByteArray  transaction 
)
signal
Here is the caller graph for this function:

◆ encryptionStatusChanged

void WalletModel::encryptionStatusChanged ( )
signal
Here is the caller graph for this function:

◆ getAddressTableModel() [1/2]

AddressTableModel * WalletModel::getAddressTableModel ( )

Definition at line 322 of file walletmodel.cpp.

Here is the caller graph for this function:

◆ getAddressTableModel() [2/2]

AddressTableModel * WalletModel::getAddressTableModel ( ) const
inline

Definition at line 161 of file walletmodel.h.

◆ getChainParams()

const CChainParams & WalletModel::getChainParams ( ) const

Definition at line 530 of file walletmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getDisplayName()

QString WalletModel::getDisplayName ( ) const

Definition at line 521 of file walletmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getEncryptionStatus()

WalletModel::EncryptionStatus WalletModel::getEncryptionStatus ( ) const

Definition at line 334 of file walletmodel.cpp.

Here is the caller graph for this function:

◆ getLastBlockProcessed()

BlockHash WalletModel::getLastBlockProcessed ( ) const

Definition at line 534 of file walletmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getOptionsModel()

OptionsModel * WalletModel::getOptionsModel ( )

Definition at line 318 of file walletmodel.cpp.

Here is the caller graph for this function:

◆ getRecentRequestsTableModel()

RecentRequestsTableModel * WalletModel::getRecentRequestsTableModel ( )

Definition at line 330 of file walletmodel.cpp.

Here is the caller graph for this function:

◆ getTransactionTableModel()

TransactionTableModel * WalletModel::getTransactionTableModel ( )

Definition at line 326 of file walletmodel.cpp.

Here is the caller graph for this function:

◆ getWalletName()

QString WalletModel::getWalletName ( ) const

Definition at line 517 of file walletmodel.cpp.

Here is the caller graph for this function:

◆ isMultiwallet()

bool WalletModel::isMultiwallet ( )

Definition at line 526 of file walletmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isWalletEnabled()

bool WalletModel::isWalletEnabled ( )
static

Definition at line 513 of file walletmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ loadReceiveRequests()

void WalletModel::loadReceiveRequests ( std::vector< std::string > &  vReceiveRequests)

Definition at line 493 of file walletmodel.cpp.

Here is the caller graph for this function:

◆ message

void WalletModel::message ( const QString &  title,
const QString &  message,
unsigned int  style 
)
signal
Here is the caller graph for this function:

◆ node()

interfaces::Node & WalletModel::node ( ) const
inline

Definition at line 149 of file walletmodel.h.

Here is the caller graph for this function:

◆ notifyWatchonlyChanged

void WalletModel::notifyWatchonlyChanged ( bool  fHaveWatchonly)
signal
Here is the caller graph for this function:

◆ pollBalanceChanged

void WalletModel::pollBalanceChanged ( )
slot

Current, immature or unconfirmed balance might have changed - emit 'balanceChanged' if so.

Definition at line 72 of file walletmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ prepareTransaction()

WalletModel::SendCoinsReturn WalletModel::prepareTransaction ( WalletModelTransaction &  transaction,
const CCoinControl &  coinControl 
)

Definition at line 134 of file walletmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ requestUnlock()

WalletModel::UnlockContext WalletModel::requestUnlock ( )

Definition at line 464 of file walletmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ requireUnlock

void WalletModel::requireUnlock ( )
signal
Here is the caller graph for this function:

◆ saveReceiveRequest()

bool WalletModel::saveReceiveRequest ( const std::string &  sAddress,
const int64_t  nId,
const std::string &  sRequest 
)

Definition at line 499 of file walletmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sendCoins()

WalletModel::SendCoinsReturn WalletModel::sendCoins ( WalletModelTransaction &  transaction)

Definition at line 251 of file walletmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setClientModel()

void WalletModel::setClientModel ( ClientModel *  client_model)

Definition at line 57 of file walletmodel.cpp.

Here is the caller graph for this function:

◆ setWalletEncrypted()

bool WalletModel::setWalletEncrypted ( const SecureString &  passphrase)

Definition at line 344 of file walletmodel.cpp.

Here is the caller graph for this function:

◆ setWalletLocked()

bool WalletModel::setWalletLocked ( bool  locked,
const SecureString &  passPhrase = SecureString() 
)

Definition at line 348 of file walletmodel.cpp.

Here is the caller graph for this function:

◆ showProgress

void WalletModel::showProgress ( const QString &  title,
int  nProgress 
)
signal
Here is the caller graph for this function:

◆ startPollBalance

void WalletModel::startPollBalance ( )
slot

Definition at line 51 of file walletmodel.cpp.

Here is the call graph for this function:

◆ subscribeToCoreSignals()

void WalletModel::subscribeToCoreSignals ( )
private

Definition at line 432 of file walletmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ unload

void WalletModel::unload ( )
signal
Here is the caller graph for this function:

◆ unsubscribeFromCoreSignals()

void WalletModel::unsubscribeFromCoreSignals ( )
private

Definition at line 452 of file walletmodel.cpp.

Here is the caller graph for this function:

◆ updateAddressBook

void WalletModel::updateAddressBook ( const QString &  address,
const QString &  label,
bool  isMine,
const QString &  purpose,
int  status 
)
slot

New, updated or removed address book entry.

Definition at line 116 of file walletmodel.cpp.

Here is the call graph for this function:

◆ updateStatus

void WalletModel::updateStatus ( )
slot

Definition at line 64 of file walletmodel.cpp.

Here is the call graph for this function:

◆ updateTransaction

void WalletModel::updateTransaction ( )
slot

New transaction, or transaction changed status.

Definition at line 111 of file walletmodel.cpp.

◆ updateWatchOnlyFlag

void WalletModel::updateWatchOnlyFlag ( bool  fHaveWatchonly)
slot

Watch-only added.

Definition at line 124 of file walletmodel.cpp.

◆ validateAddress()

bool WalletModel::validateAddress ( const QString &  address)

Definition at line 129 of file walletmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ wallet()

interfaces::Wallet & WalletModel::wallet ( ) const
inline

Definition at line 150 of file walletmodel.h.

Here is the caller graph for this function:

Member Data Documentation

◆ addressTableModel

AddressTableModel* WalletModel::addressTableModel
private

Definition at line 186 of file walletmodel.h.

◆ cachedEncryptionStatus

EncryptionStatus WalletModel::cachedEncryptionStatus
private

Definition at line 192 of file walletmodel.h.

◆ fForceCheckBalanceChanged

bool WalletModel::fForceCheckBalanceChanged {false}
private

Definition at line 180 of file walletmodel.h.

◆ fHaveWatchOnly

bool WalletModel::fHaveWatchOnly
private

Definition at line 179 of file walletmodel.h.

◆ m_cached_balances

interfaces::WalletBalances WalletModel::m_cached_balances
private

Definition at line 191 of file walletmodel.h.

◆ m_cached_last_update_tip

BlockHash WalletModel::m_cached_last_update_tip {}
private

Definition at line 196 of file walletmodel.h.

◆ m_client_model

ClientModel* WalletModel::m_client_model
private

Definition at line 176 of file walletmodel.h.

◆ m_handler_address_book_changed

std::unique_ptr<interfaces::Handler> WalletModel::m_handler_address_book_changed
private

Definition at line 171 of file walletmodel.h.

◆ m_handler_can_get_addrs_changed

std::unique_ptr<interfaces::Handler> WalletModel::m_handler_can_get_addrs_changed
private

Definition at line 175 of file walletmodel.h.

◆ m_handler_show_progress

std::unique_ptr<interfaces::Handler> WalletModel::m_handler_show_progress
private

Definition at line 173 of file walletmodel.h.

◆ m_handler_status_changed

std::unique_ptr<interfaces::Handler> WalletModel::m_handler_status_changed
private

Definition at line 170 of file walletmodel.h.

◆ m_handler_transaction_changed

std::unique_ptr<interfaces::Handler> WalletModel::m_handler_transaction_changed
private

Definition at line 172 of file walletmodel.h.

◆ m_handler_unload

std::unique_ptr<interfaces::Handler> WalletModel::m_handler_unload
private

Definition at line 169 of file walletmodel.h.

◆ m_handler_watch_only_changed

std::unique_ptr<interfaces::Handler> WalletModel::m_handler_watch_only_changed
private

Definition at line 174 of file walletmodel.h.

◆ m_node

interfaces::Node& WalletModel::m_node
private

Definition at line 177 of file walletmodel.h.

◆ m_wallet

std::unique_ptr<interfaces::Wallet> WalletModel::m_wallet
private

Definition at line 168 of file walletmodel.h.

◆ optionsModel

OptionsModel* WalletModel::optionsModel
private

Definition at line 184 of file walletmodel.h.

◆ recentRequestsTableModel

RecentRequestsTableModel* WalletModel::recentRequestsTableModel
private

Definition at line 188 of file walletmodel.h.

◆ timer

QTimer* WalletModel::timer
private

Definition at line 193 of file walletmodel.h.

◆ transactionTableModel

TransactionTableModel* WalletModel::transactionTableModel
private

Definition at line 187 of file walletmodel.h.


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