Electroneum
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
Electroneum::WalletImpl Class Reference

#include <wallet.h>

Inheritance diagram for Electroneum::WalletImpl:
Inheritance graph
[legend]
Collaboration diagram for Electroneum::WalletImpl:
Collaboration graph
[legend]

Public Member Functions

 WalletImpl (NetworkType nettype=MAINNET, uint64_t kdf_rounds=1)
 
 ~WalletImpl ()
 
bool create (const std::string &path, const std::string &password, const std::string &language)
 
bool createWatchOnly (const std::string &path, const std::string &password, const std::string &language) const override
 createWatchOnly - Creates a watch only wallet More...
 
bool open (const std::string &path, const std::string &password)
 
bool recover (const std::string &path, const std::string &password, const std::string &seed)
 
bool recoverFromKeysWithPassword (const std::string &path, const std::string &password, const std::string &language, const std::string &address_string, const std::string &viewkey_string, const std::string &spendkey_string="")
 
bool recover (const std::string &path, const std::string &seed)
 
bool recoverFromKeys (const std::string &path, const std::string &language, const std::string &address_string, const std::string &viewkey_string, const std::string &spendkey_string="")
 
bool recoverFromDevice (const std::string &path, const std::string &password, const std::string &device_name)
 
Device getDeviceType () const override
 Queries backing device for wallet keys. More...
 
bool close (bool store=true)
 
std::string seed () const override
 
std::string getSeedLanguage () const override
 
void setSeedLanguage (const std::string &arg) override
 
int status () const override
 returns wallet status (Status_Ok | Status_Error) More...
 
std::string errorString () const override
 in case error status, returns error string More...
 
void statusWithErrorString (int &status, std::string &errorString) const override
 returns both error and error string atomically. suggested to use in instead of status() and errorString() More...
 
bool setPassword (const std::string &password) override
 
bool setDevicePin (const std::string &password) override
 
bool setDevicePassphrase (const std::string &password) override
 
std::string address (uint32_t accountIndex=0, uint32_t addressIndex=0) const override
 
std::string integratedAddress (const std::string &payment_id) const override
 integratedAddress - returns integrated address for current wallet address and given payment_id. if passed "payment_id" param is an empty string or not-valid payment id string (16 characters hexadecimal string) - random payment_id will be generated More...
 
std::string secretViewKey () const override
 secretViewKey - returns secret view key More...
 
std::string publicViewKey () const override
 publicViewKey - returns public view key More...
 
std::string secretSpendKey () const override
 secretSpendKey - returns secret spend key More...
 
std::string publicSpendKey () const override
 publicSpendKey - returns public spend key More...
 
std::string publicMultisigSignerKey () const override
 publicMultisigSignerKey - returns public signer key More...
 
std::string path () const override
 
bool store (const std::string &path) override
 store - stores wallet to file. More...
 
std::string filename () const override
 filename - returns wallet filename More...
 
std::string keysFilename () const override
 keysFilename - returns keys filename. usually this formed as "wallet_filename".keys More...
 
bool init (const std::string &daemon_address, uint64_t upper_transaction_size_limit=0, const std::string &daemon_username="", const std::string &daemon_password="", bool use_ssl=false, bool lightWallet=false) override
 init - initializes wallet with daemon connection params. if daemon_address is local address, "trusted daemon" will be set to true forcibly startRefresh() should be called when wallet is initialized. More...
 
bool connectToDaemon () override
 connectToDaemon - connects to the daemon. TODO: check if it can be removed More...
 
ConnectionStatus connected () const override
 connected - checks if the wallet connected to the daemon More...
 
void setTrustedDaemon (bool arg) override
 
bool trustedDaemon () const override
 
uint64_t balance (uint32_t accountIndex=0) const override
 
uint64_t unlockedBalance (uint32_t accountIndex=0) const override
 
uint64_t blockChainHeight () const override
 blockChainHeight - returns current blockchain height More...
 
uint64_t approximateBlockChainHeight () const override
 approximateBlockChainHeight - returns approximate blockchain height calculated from date/time More...
 
uint64_t estimateBlockChainHeight () const override
 estimateBlockChainHeight - returns estimate blockchain height. More accurate than approximateBlockChainHeight, uses daemon height and falls back to calculation from date/time More...
 
uint64_t daemonBlockChainHeight () const override
 daemonBlockChainHeight - returns daemon blockchain height More...
 
uint64_t daemonBlockChainTargetHeight () const override
 daemonBlockChainTargetHeight - returns daemon blockchain target height More...
 
bool synchronized () const override
 synchronized - checks if wallet was ever synchronized More...
 
bool refresh () override
 refresh - refreshes the wallet, updating transactions from daemon More...
 
void refreshAsync () override
 refreshAsync - refreshes wallet asynchronously. More...
 
bool rescanBlockchain () override
 rescanBlockchain - rescans the wallet, updating transactions from daemon More...
 
void rescanBlockchainAsync () override
 rescanBlockchainAsync - rescans wallet asynchronously, starting from genesys More...
 
void setAutoRefreshInterval (int millis) override
 setAutoRefreshInterval - setup interval for automatic refresh. More...
 
int autoRefreshInterval () const override
 autoRefreshInterval - returns automatic refresh interval in millis More...
 
void setRefreshFromBlockHeight (uint64_t refresh_from_block_height) override
 setRefreshFromBlockHeight - start refresh from block height on recover More...
 
uint64_t getRefreshFromBlockHeight () const override
 getRestoreHeight - get wallet creation height More...
 
void setRecoveringFromSeed (bool recoveringFromSeed) override
 setRecoveringFromSeed - set state recover form seed More...
 
void setRecoveringFromDevice (bool recoveringFromDevice) override
 setRecoveringFromDevice - set state to recovering from device More...
 
void setSubaddressLookahead (uint32_t major, uint32_t minor) override
 setSubaddressLookahead - set size of subaddress lookahead More...
 
bool watchOnly () const override
 watchOnly - checks if wallet is watch only More...
 
bool rescanSpent () override
 
NetworkType nettype () const override
 
void hardForkInfo (uint8_t &version, uint64_t &earliest_height) const override
 returns current hard fork info More...
 
bool useForkRules (uint8_t version, int64_t early_blocks) const override
 check if hard fork rules should be used More...
 
void addSubaddressAccount (const std::string &label) override
 addSubaddressAccount - appends a new subaddress account at the end of the last major index of existing subaddress accounts More...
 
size_t numSubaddressAccounts () const override
 numSubaddressAccounts - returns the number of existing subaddress accounts More...
 
size_t numSubaddresses (uint32_t accountIndex) const override
 numSubaddresses - returns the number of existing subaddresses associated with the specified subaddress account More...
 
void addSubaddress (uint32_t accountIndex, const std::string &label) override
 addSubaddress - appends a new subaddress at the end of the last minor index of the specified subaddress account More...
 
std::string getSubaddressLabel (uint32_t accountIndex, uint32_t addressIndex) const override
 getSubaddressLabel - gets the label of the specified subaddress More...
 
void setSubaddressLabel (uint32_t accountIndex, uint32_t addressIndex, const std::string &label) override
 setSubaddressLabel - sets the label of the specified subaddress More...
 
MultisigState multisig () const override
 multisig - returns current state of multisig wallet creation process More...
 
std::string getMultisigInfo () const override
 getMultisigInfo More...
 
std::string makeMultisig (const std::vector< std::string > &info, uint32_t threshold) override
 makeMultisig - switches wallet in multisig state. The one and only creation phase for N / N wallets More...
 
std::string exchangeMultisigKeys (const std::vector< std::string > &info) override
 exchange_multisig_keys - provides additional key exchange round for arbitrary multisig schemes (like N-1/N, M/N) More...
 
bool finalizeMultisig (const std::vector< std::string > &extraMultisigInfo) override
 finalizeMultisig - finalizes N - 1 / N multisig wallets creation More...
 
bool exportMultisigImages (std::string &images) override
 exportMultisigImages - exports transfers' key images More...
 
size_t importMultisigImages (const std::vector< std::string > &images) override
 importMultisigImages - imports other participants' multisig images More...
 
bool hasMultisigPartialKeyImages () const override
 hasMultisigPartialKeyImages - checks if wallet needs to import multisig key images from other participants More...
 
PendingTransactionrestoreMultisigTransaction (const std::string &signData) override
 restoreMultisigTransaction creates PendingTransaction from signData More...
 
PendingTransactioncreateTransaction (const std::string &dst_addr, const std::string &payment_id, optional< uint64_t > amount, uint32_t mixin_count, PendingTransaction::Priority priority=PendingTransaction::Priority_Low, uint32_t subaddr_account=0, std::set< uint32_t > subaddr_indices={}) override
 createTransaction creates transaction. if dst_addr is an integrated address, payment_id is ignored More...
 
virtual PendingTransactioncreateSweepUnmixableTransaction () override
 createSweepUnmixableTransaction creates transaction with unmixable outputs. More...
 
bool submitTransaction (const std::string &fileName) override
 submitTransaction - submits transaction in signed tx file More...
 
virtual UnsignedTransactionloadUnsignedTx (const std::string &unsigned_filename) override
 loadUnsignedTx - creates transaction from unsigned tx file More...
 
bool exportKeyImages (const std::string &filename) override
 exportKeyImages - exports key images to file More...
 
bool importKeyImages (const std::string &filename) override
 importKeyImages - imports key images from file More...
 
virtual void disposeTransaction (PendingTransaction *t) override
 disposeTransaction - destroys transaction object More...
 
virtual TransactionHistoryhistory () override
 
virtual AddressBookaddressBook () override
 
virtual Subaddresssubaddress () override
 
virtual SubaddressAccountsubaddressAccount () override
 
virtual void setListener (WalletListener *l) override
 
virtual uint32_t defaultMixin () const override
 defaultMixin - returns number of mixins used in transactions More...
 
virtual void setDefaultMixin (uint32_t arg) override
 setDefaultMixin - setum number of mixins to be used for new transactions More...
 
virtual bool setUserNote (const std::string &txid, const std::string &note) override
 setUserNote - attach an arbitrary string note to a txid More...
 
virtual std::string getUserNote (const std::string &txid) const override
 getUserNote - return an arbitrary string note attached to a txid More...
 
virtual std::string getTxKey (const std::string &txid) const override
 
virtual bool checkTxKey (const std::string &txid, std::string tx_key, const std::string &address, uint64_t &received, bool &in_pool, uint64_t &confirmations) override
 
virtual std::string getTxProof (const std::string &txid, const std::string &address, const std::string &message) const override
 
virtual bool checkTxProof (const std::string &txid, const std::string &address, const std::string &message, const std::string &signature, bool &good, uint64_t &received, bool &in_pool, uint64_t &confirmations) override
 
virtual std::string getSpendProof (const std::string &txid, const std::string &message) const override
 
virtual bool checkSpendProof (const std::string &txid, const std::string &message, const std::string &signature, bool &good) const override
 
virtual std::string getReserveProof (bool all, uint32_t account_index, uint64_t amount, const std::string &message) const override
 getReserveProof - Generates a proof that proves the reserve of unspent funds Parameters account_index and amount are ignored when all is true More...
 
virtual bool checkReserveProof (const std::string &address, const std::string &message, const std::string &signature, bool &good, uint64_t &total, uint64_t &spent) const override
 
virtual std::string signMessage (const std::string &message) override
 
virtual bool verifySignedMessage (const std::string &message, const std::string &address, const std::string &signature) const override
 verifySignedMessage - verify a signature matches a given message More...
 
virtual std::string signMultisigParticipant (const std::string &message) const override
 signMultisigParticipant signs given message with the multisig public signer key More...
 
virtual bool verifyMessageWithPublicKey (const std::string &message, const std::string &publicKey, const std::string &signature) const override
 verifyMessageWithPublicKey verifies that message was signed with the given public key More...
 
virtual void startRefresh () override
 StartRefresh - Start/resume refresh thread (refresh every 10 seconds) More...
 
virtual void pauseRefresh () override
 pauseRefresh - pause refresh thread More...
 
virtual bool parse_uri (const std::string &uri, std::string &address, std::string &payment_id, uint64_t &amount, std::string &tx_description, std::string &recipient_name, std::vector< std::string > &unknown_parameters, std::string &error) override
 
virtual std::string getDefaultDataDir () const override
 
virtual bool lightWalletLogin (bool &isNewWallet) const override
 Light wallet authenticate and login. More...
 
virtual bool lightWalletImportWalletRequest (std::string &payment_id, uint64_t &fee, bool &new_request, bool &request_fulfilled, std::string &payment_address, std::string &status) override
 Initiates a light wallet import wallet request. More...
 
virtual bool blackballOutputs (const std::vector< std::string > &outputs, bool add) override
 blackballs a set of outputs More...
 
virtual bool blackballOutput (const std::string &amount, const std::string &offset) override
 blackballs an output More...
 
virtual bool unblackballOutput (const std::string &amount, const std::string &offset) override
 unblackballs an output More...
 
virtual bool getRing (const std::string &key_image, std::vector< uint64_t > &ring) const override
 gets the ring used for a key image, if any More...
 
virtual bool getRings (const std::string &txid, std::vector< std::pair< std::string, std::vector< uint64_t >>> &rings) const override
 gets the rings used for a txid, if any More...
 
virtual bool setRing (const std::string &key_image, const std::vector< uint64_t > &ring, bool relative) override
 sets the ring used for a key image More...
 
virtual void segregatePreForkOutputs (bool segregate) override
 sets whether pre-fork outs are to be segregated More...
 
virtual void segregationHeight (uint64_t height) override
 sets the height where segregation should occur More...
 
virtual void keyReuseMitigation2 (bool mitigation) override
 secondary key reuse mitigation More...
 
virtual bool lockKeysFile () override
 locks/unlocks the keys file; returns true on success More...
 
virtual bool unlockKeysFile () override
 
virtual bool isKeysFileLocked () override
 returns true if the keys file is locked More...
 
virtual uint64_t coldKeyImageSync (uint64_t &spent, uint64_t &unspent) override
 cold-device protocol key image sync More...
 
- Public Member Functions inherited from Electroneum::Wallet
virtual ~Wallet ()=0
 
std::string mainAddress () const
 
bool mainnet () const
 
bool testnet () const
 
bool stagenet () const
 
uint64_t balanceAll () const
 
uint64_t unlockedBalanceAll () const
 

Private Member Functions

void clearStatus () const
 
void setStatusError (const std::string &message) const
 
void setStatusCritical (const std::string &message) const
 
void setStatus (int status, const std::string &message) const
 
void refreshThreadFunc ()
 
void doRefresh ()
 
bool daemonSynced () const
 
void stopRefresh ()
 
bool isNewWallet () const
 
void pendingTxPostProcess (PendingTransactionImpl *pending)
 
bool doInit (const std::string &daemon_address, uint64_t upper_transaction_size_limit=0, bool ssl=false)
 

Private Attributes

std::unique_ptr< tools::wallet2m_wallet
 
boost::mutex m_statusMutex
 
int m_status
 
std::string m_errorString
 
std::string m_password
 
std::unique_ptr< TransactionHistoryImplm_history
 
std::unique_ptr< Wallet2CallbackImplm_wallet2Callback
 
std::unique_ptr< AddressBookImplm_addressBook
 
std::unique_ptr< SubaddressImplm_subaddress
 
std::unique_ptr< SubaddressAccountImplm_subaddressAccount
 
std::atomic< boolm_refreshEnabled
 
std::atomic< boolm_refreshThreadDone
 
std::atomic< int > m_refreshIntervalMillis
 
std::atomic< boolm_refreshShouldRescan
 
boost::mutex m_refreshMutex
 
boost::mutex m_refreshMutex2
 
boost::condition_variable m_refreshCV
 
boost::thread m_refreshThread
 
std::atomic< boolm_recoveringFromSeed
 
std::atomic< boolm_recoveringFromDevice
 
std::atomic< boolm_synchronized
 
std::atomic< boolm_rebuildWalletCache
 
std::atomic< boolm_is_connected
 
boost::optional< epee::net_utils::http::login > m_daemon_login {}
 

Friends

class PendingTransactionImpl
 
class UnsignedTransactionImpl
 
class TransactionHistoryImpl
 
struct Wallet2CallbackImpl
 
class AddressBookImpl
 
class SubaddressImpl
 
class SubaddressAccountImpl
 

Additional Inherited Members

- Public Types inherited from Electroneum::Wallet
enum  Device { Device_Software = 0 , Device_Ledger = 1 , Device_Trezor = 2 }
 
enum  Status { Status_Ok , Status_Error , Status_Critical }
 
enum  ConnectionStatus { ConnectionStatus_Disconnected , ConnectionStatus_Connected , ConnectionStatus_WrongVersion }
 
- Static Public Member Functions inherited from Electroneum::Wallet
static std::string displayAmount (uint64_t amount)
 
static uint64_t amountFromString (const std::string &amount)
 
static uint64_t amountFromDouble (double amount)
 
static std::string genPaymentId ()
 
static bool paymentIdValid (const std::string &paiment_id)
 
static bool addressValid (const std::string &str, NetworkType nettype)
 
static bool addressValid (const std::string &str, bool testnet)
 
static bool keyValid (const std::string &secret_key_string, const std::string &address_string, bool isViewKey, NetworkType nettype, std::string &error)
 
static bool keyValid (const std::string &secret_key_string, const std::string &address_string, bool isViewKey, bool testnet, std::string &error)
 
static std::string paymentIdFromAddress (const std::string &str, NetworkType nettype)
 
static std::string paymentIdFromAddress (const std::string &str, bool testnet)
 
static uint64_t maximumAllowedAmount ()
 
static void init (const char *argv0, const char *default_log_base_name)
 
static void init (const char *argv0, const char *default_log_base_name, const std::string &log_path, bool console)
 
static void debug (const std::string &category, const std::string &str)
 
static void info (const std::string &category, const std::string &str)
 
static void warning (const std::string &category, const std::string &str)
 
static void error (const std::string &category, const std::string &str)
 

Constructor & Destructor Documentation

◆ WalletImpl()

Electroneum::WalletImpl::WalletImpl ( NetworkType  nettype = MAINNET,
uint64_t  kdf_rounds = 1 
)

◆ ~WalletImpl()

Electroneum::WalletImpl::~WalletImpl ( )

Member Function Documentation

◆ address()

std::string Electroneum::WalletImpl::address ( uint32_t  accountIndex = 0,
uint32_t  addressIndex = 0 
) const
overridevirtual

Implements Electroneum::Wallet.

◆ addressBook()

AddressBook * Electroneum::WalletImpl::addressBook ( )
overridevirtual

Implements Electroneum::Wallet.

◆ addSubaddress()

void Electroneum::WalletImpl::addSubaddress ( uint32_t  accountIndex,
const std::string &  label 
)
overridevirtual

addSubaddress - appends a new subaddress at the end of the last minor index of the specified subaddress account

Parameters
accountIndex- the major index specifying the subaddress account
label- the label for the new subaddress

Implements Electroneum::Wallet.

◆ addSubaddressAccount()

void Electroneum::WalletImpl::addSubaddressAccount ( const std::string &  label)
overridevirtual

addSubaddressAccount - appends a new subaddress account at the end of the last major index of existing subaddress accounts

Parameters
label- the label for the new account (which is the as the label of the primary address (accountIndex,0))

Implements Electroneum::Wallet.

◆ approximateBlockChainHeight()

uint64_t Electroneum::WalletImpl::approximateBlockChainHeight ( ) const
overridevirtual

approximateBlockChainHeight - returns approximate blockchain height calculated from date/time

Returns

Implements Electroneum::Wallet.

◆ autoRefreshInterval()

int Electroneum::WalletImpl::autoRefreshInterval ( ) const
overridevirtual

autoRefreshInterval - returns automatic refresh interval in millis

Returns

Implements Electroneum::Wallet.

◆ balance()

uint64_t Electroneum::WalletImpl::balance ( uint32_t  accountIndex = 0) const
overridevirtual

Implements Electroneum::Wallet.

◆ blackballOutput()

bool Electroneum::WalletImpl::blackballOutput ( const std::string &  amount,
const std::string &  offset 
)
overridevirtual

blackballs an output

Implements Electroneum::Wallet.

◆ blackballOutputs()

bool Electroneum::WalletImpl::blackballOutputs ( const std::vector< std::string > &  outputs,
bool  add 
)
overridevirtual

blackballs a set of outputs

Implements Electroneum::Wallet.

◆ blockChainHeight()

uint64_t Electroneum::WalletImpl::blockChainHeight ( ) const
overridevirtual

blockChainHeight - returns current blockchain height

Returns

Implements Electroneum::Wallet.

◆ checkReserveProof()

bool Electroneum::WalletImpl::checkReserveProof ( const std::string &  address,
const std::string &  message,
const std::string &  signature,
bool good,
uint64_t &  total,
uint64_t &  spent 
) const
overridevirtual

Implements Electroneum::Wallet.

◆ checkSpendProof()

bool Electroneum::WalletImpl::checkSpendProof ( const std::string &  txid,
const std::string &  message,
const std::string &  signature,
bool good 
) const
overridevirtual

Implements Electroneum::Wallet.

◆ checkTxKey()

bool Electroneum::WalletImpl::checkTxKey ( const std::string &  txid,
std::string  tx_key,
const std::string &  address,
uint64_t &  received,
bool in_pool,
uint64_t &  confirmations 
)
overridevirtual

Implements Electroneum::Wallet.

◆ checkTxProof()

bool Electroneum::WalletImpl::checkTxProof ( const std::string &  txid,
const std::string &  address,
const std::string &  message,
const std::string &  signature,
bool good,
uint64_t &  received,
bool in_pool,
uint64_t &  confirmations 
)
overridevirtual

Implements Electroneum::Wallet.

◆ clearStatus()

void Electroneum::WalletImpl::clearStatus ( ) const
private

◆ close()

bool Electroneum::WalletImpl::close ( bool  store = true)

◆ coldKeyImageSync()

uint64_t Electroneum::WalletImpl::coldKeyImageSync ( uint64_t &  spent,
uint64_t &  unspent 
)
overridevirtual

cold-device protocol key image sync

Implements Electroneum::Wallet.

◆ connected()

Wallet::ConnectionStatus Electroneum::WalletImpl::connected ( ) const
overridevirtual

connected - checks if the wallet connected to the daemon

Returns
- true if connected

Implements Electroneum::Wallet.

◆ connectToDaemon()

bool Electroneum::WalletImpl::connectToDaemon ( )
overridevirtual

connectToDaemon - connects to the daemon. TODO: check if it can be removed

Returns

Implements Electroneum::Wallet.

◆ create()

bool Electroneum::WalletImpl::create ( const std::string &  path,
const std::string &  password,
const std::string &  language 
)

◆ createSweepUnmixableTransaction()

PendingTransaction * Electroneum::WalletImpl::createSweepUnmixableTransaction ( )
overridevirtual

createSweepUnmixableTransaction creates transaction with unmixable outputs.

Returns
PendingTransaction object. caller is responsible to check PendingTransaction::status() after object returned

Implements Electroneum::Wallet.

◆ createTransaction()

PendingTransaction * Electroneum::WalletImpl::createTransaction ( const std::string &  dst_addr,
const std::string &  payment_id,
optional< uint64_t >  amount,
uint32_t  mixin_count,
PendingTransaction::Priority  = PendingTransaction::Priority_Low,
uint32_t  subaddr_account = 0,
std::set< uint32_t >  subaddr_indices = {} 
)
overridevirtual

createTransaction creates transaction. if dst_addr is an integrated address, payment_id is ignored

Parameters
dst_addrdestination address as string
payment_idoptional payment_id, can be empty string
amountamount
mixin_countmixin count. if 0 passed, wallet will use default value
subaddr_accountsubaddress account from which the input funds are taken
subaddr_indicesset of subaddress indices to use for transfer or sweeping. if set empty, all are chosen when sweeping, and one or more are automatically chosen when transferring. after execution, returns the set of actually used indices
priority
Returns
PendingTransaction object. caller is responsible to check PendingTransaction::status() after object returned

Implements Electroneum::Wallet.

◆ createWatchOnly()

bool Electroneum::WalletImpl::createWatchOnly ( const std::string &  path,
const std::string &  password,
const std::string &  language 
) const
overridevirtual

createWatchOnly - Creates a watch only wallet

Parameters
path- where to store the wallet
password
language
Returns
- true if created successfully

Implements Electroneum::Wallet.

◆ daemonBlockChainHeight()

uint64_t Electroneum::WalletImpl::daemonBlockChainHeight ( ) const
overridevirtual

daemonBlockChainHeight - returns daemon blockchain height

Returns
0 - in case error communicating with the daemon. status() will return Status_Error and errorString() will return verbose error description

Implements Electroneum::Wallet.

◆ daemonBlockChainTargetHeight()

uint64_t Electroneum::WalletImpl::daemonBlockChainTargetHeight ( ) const
overridevirtual

daemonBlockChainTargetHeight - returns daemon blockchain target height

Returns
0 - in case error communicating with the daemon. status() will return Status_Error and errorString() will return verbose error description

Implements Electroneum::Wallet.

◆ daemonSynced()

bool Electroneum::WalletImpl::daemonSynced ( ) const
private

◆ defaultMixin()

uint32_t Electroneum::WalletImpl::defaultMixin ( ) const
overridevirtual

defaultMixin - returns number of mixins used in transactions

Returns

Implements Electroneum::Wallet.

◆ disposeTransaction()

void Electroneum::WalletImpl::disposeTransaction ( PendingTransaction t)
overridevirtual

disposeTransaction - destroys transaction object

Parameters
t- pointer to the "PendingTransaction" object. Pointer is not valid after function returned;

Implements Electroneum::Wallet.

◆ doInit()

bool Electroneum::WalletImpl::doInit ( const std::string &  daemon_address,
uint64_t  upper_transaction_size_limit = 0,
bool  ssl = false 
)
private

◆ doRefresh()

void Electroneum::WalletImpl::doRefresh ( )
private

◆ errorString()

std::string Electroneum::WalletImpl::errorString ( ) const
overridevirtual

in case error status, returns error string

Implements Electroneum::Wallet.

◆ estimateBlockChainHeight()

uint64_t Electroneum::WalletImpl::estimateBlockChainHeight ( ) const
overridevirtual

estimateBlockChainHeight - returns estimate blockchain height. More accurate than approximateBlockChainHeight, uses daemon height and falls back to calculation from date/time

Returns

Implements Electroneum::Wallet.

◆ exchangeMultisigKeys()

std::string Electroneum::WalletImpl::exchangeMultisigKeys ( const std::vector< std::string > &  info)
overridevirtual

exchange_multisig_keys - provides additional key exchange round for arbitrary multisig schemes (like N-1/N, M/N)

Parameters
info- base58 encoded key derivations returned by makeMultisig or exchangeMultisigKeys function call
Returns
new info string if more rounds required or an empty string if wallet creation is done

Implements Electroneum::Wallet.

◆ exportKeyImages()

bool Electroneum::WalletImpl::exportKeyImages ( const std::string &  filename)
overridevirtual

exportKeyImages - exports key images to file

Parameters
filename
Returns
- true on success

Implements Electroneum::Wallet.

◆ exportMultisigImages()

bool Electroneum::WalletImpl::exportMultisigImages ( std::string &  images)
overridevirtual

exportMultisigImages - exports transfers' key images

Parameters
images- output paramter for hex encoded array of images
Returns
true if success

Implements Electroneum::Wallet.

◆ filename()

string Electroneum::WalletImpl::filename ( ) const
overridevirtual

filename - returns wallet filename

Returns

Implements Electroneum::Wallet.

◆ finalizeMultisig()

bool Electroneum::WalletImpl::finalizeMultisig ( const std::vector< std::string > &  extraMultisigInfo)
overridevirtual

finalizeMultisig - finalizes N - 1 / N multisig wallets creation

Parameters
extraMultisigInfo- wallet participants' extra multisig info obtained with makeMultisig call
Returns
true if success

Implements Electroneum::Wallet.

◆ getDefaultDataDir()

std::string Electroneum::WalletImpl::getDefaultDataDir ( ) const
overridevirtual

Implements Electroneum::Wallet.

◆ getDeviceType()

Wallet::Device Electroneum::WalletImpl::getDeviceType ( ) const
overridevirtual

Queries backing device for wallet keys.

Returns
Device they are on

Implements Electroneum::Wallet.

◆ getMultisigInfo()

string Electroneum::WalletImpl::getMultisigInfo ( ) const
overridevirtual

getMultisigInfo

Returns
serialized and signed multisig info string

Implements Electroneum::Wallet.

◆ getRefreshFromBlockHeight()

uint64_t Electroneum::WalletImpl::getRefreshFromBlockHeight ( ) const
inlineoverridevirtual

getRestoreHeight - get wallet creation height

Implements Electroneum::Wallet.

◆ getReserveProof()

std::string Electroneum::WalletImpl::getReserveProof ( bool  all,
uint32_t  account_index,
uint64_t  amount,
const std::string &  message 
) const
overridevirtual

getReserveProof - Generates a proof that proves the reserve of unspent funds Parameters account_index and amount are ignored when all is true

Implements Electroneum::Wallet.

◆ getRing()

bool Electroneum::WalletImpl::getRing ( const std::string &  key_image,
std::vector< uint64_t > &  ring 
) const
overridevirtual

gets the ring used for a key image, if any

Implements Electroneum::Wallet.

◆ getRings()

bool Electroneum::WalletImpl::getRings ( const std::string &  txid,
std::vector< std::pair< std::string, std::vector< uint64_t >>> &  rings 
) const
overridevirtual

gets the rings used for a txid, if any

Implements Electroneum::Wallet.

◆ getSeedLanguage()

std::string Electroneum::WalletImpl::getSeedLanguage ( ) const
overridevirtual

Implements Electroneum::Wallet.

◆ getSpendProof()

std::string Electroneum::WalletImpl::getSpendProof ( const std::string &  txid,
const std::string &  message 
) const
overridevirtual

Implements Electroneum::Wallet.

◆ getSubaddressLabel()

std::string Electroneum::WalletImpl::getSubaddressLabel ( uint32_t  accountIndex,
uint32_t  addressIndex 
) const
overridevirtual

getSubaddressLabel - gets the label of the specified subaddress

Parameters
accountIndex- the major index specifying the subaddress account
addressIndex- the minor index specifying the subaddress

Implements Electroneum::Wallet.

◆ getTxKey()

std::string Electroneum::WalletImpl::getTxKey ( const std::string &  txid) const
overridevirtual

Implements Electroneum::Wallet.

◆ getTxProof()

std::string Electroneum::WalletImpl::getTxProof ( const std::string &  txid,
const std::string &  address,
const std::string &  message 
) const
overridevirtual

Implements Electroneum::Wallet.

◆ getUserNote()

std::string Electroneum::WalletImpl::getUserNote ( const std::string &  txid) const
overridevirtual

getUserNote - return an arbitrary string note attached to a txid

Parameters
txid- the transaction id to attach the note to
Returns
the attached note, or empty string if there is none

Implements Electroneum::Wallet.

◆ hardForkInfo()

void Electroneum::WalletImpl::hardForkInfo ( uint8_t &  version,
uint64_t &  earliest_height 
) const
overridevirtual

returns current hard fork info

Implements Electroneum::Wallet.

◆ hasMultisigPartialKeyImages()

bool Electroneum::WalletImpl::hasMultisigPartialKeyImages ( ) const
overridevirtual

hasMultisigPartialKeyImages - checks if wallet needs to import multisig key images from other participants

Returns
true if there are partial key images

Implements Electroneum::Wallet.

◆ history()

TransactionHistory * Electroneum::WalletImpl::history ( )
overridevirtual

Implements Electroneum::Wallet.

◆ importKeyImages()

bool Electroneum::WalletImpl::importKeyImages ( const std::string &  filename)
overridevirtual

importKeyImages - imports key images from file

Parameters
filename
Returns
- true on success

Implements Electroneum::Wallet.

◆ importMultisigImages()

size_t Electroneum::WalletImpl::importMultisigImages ( const std::vector< std::string > &  images)
overridevirtual

importMultisigImages - imports other participants' multisig images

Parameters
images- array of hex encoded arrays of images obtained with exportMultisigImages
Returns
number of imported images

Implements Electroneum::Wallet.

◆ init()

bool Electroneum::WalletImpl::init ( const std::string &  daemon_address,
uint64_t  upper_transaction_size_limit = 0,
const std::string &  daemon_username = "",
const std::string &  daemon_password = "",
bool  use_ssl = false,
bool  lightWallet = false 
)
overridevirtual

init - initializes wallet with daemon connection params. if daemon_address is local address, "trusted daemon" will be set to true forcibly startRefresh() should be called when wallet is initialized.

Parameters
daemon_address- daemon address in "hostname:port" format
upper_transaction_size_limit
daemon_username
daemon_password
lightWallet- start wallet in light mode, connect to a openmonero compatible server.
Returns
- true on success

Implements Electroneum::Wallet.

◆ integratedAddress()

std::string Electroneum::WalletImpl::integratedAddress ( const std::string &  payment_id) const
overridevirtual

integratedAddress - returns integrated address for current wallet address and given payment_id. if passed "payment_id" param is an empty string or not-valid payment id string (16 characters hexadecimal string) - random payment_id will be generated

Parameters
payment_id- 16 characters hexadecimal string or empty string if new random payment id needs to be generated
Returns
- 106 characters string representing integrated address

Implements Electroneum::Wallet.

◆ isKeysFileLocked()

bool Electroneum::WalletImpl::isKeysFileLocked ( )
overridevirtual

returns true if the keys file is locked

Implements Electroneum::Wallet.

◆ isNewWallet()

bool Electroneum::WalletImpl::isNewWallet ( ) const
private

◆ keyReuseMitigation2()

void Electroneum::WalletImpl::keyReuseMitigation2 ( bool  mitigation)
overridevirtual

secondary key reuse mitigation

Implements Electroneum::Wallet.

◆ keysFilename()

string Electroneum::WalletImpl::keysFilename ( ) const
overridevirtual

keysFilename - returns keys filename. usually this formed as "wallet_filename".keys

Returns

Implements Electroneum::Wallet.

◆ lightWalletImportWalletRequest()

bool Electroneum::WalletImpl::lightWalletImportWalletRequest ( std::string &  payment_id,
uint64_t &  fee,
bool new_request,
bool request_fulfilled,
std::string &  payment_address,
std::string &  status 
)
overridevirtual

Initiates a light wallet import wallet request.

Implements Electroneum::Wallet.

◆ lightWalletLogin()

bool Electroneum::WalletImpl::lightWalletLogin ( bool isNewWallet) const
overridevirtual

Light wallet authenticate and login.

Implements Electroneum::Wallet.

◆ loadUnsignedTx()

UnsignedTransaction * Electroneum::WalletImpl::loadUnsignedTx ( const std::string &  unsigned_filename)
overridevirtual

loadUnsignedTx - creates transaction from unsigned tx file

Returns
- UnsignedTransaction object. caller is responsible to check UnsignedTransaction::status() after object returned

Implements Electroneum::Wallet.

◆ lockKeysFile()

bool Electroneum::WalletImpl::lockKeysFile ( )
overridevirtual

locks/unlocks the keys file; returns true on success

Implements Electroneum::Wallet.

◆ makeMultisig()

string Electroneum::WalletImpl::makeMultisig ( const std::vector< std::string > &  info,
uint32_t  threshold 
)
overridevirtual

makeMultisig - switches wallet in multisig state. The one and only creation phase for N / N wallets

Parameters
info- vector of multisig infos from other participants obtained with getMulitisInfo call
threshold- number of required signers to make valid transaction. Must be equal to number of participants (N) or N - 1
Returns
in case of N / N wallets returns empty string since no more key exchanges needed. For N - 1 / N wallets returns base58 encoded extra multisig info

Implements Electroneum::Wallet.

◆ multisig()

MultisigState Electroneum::WalletImpl::multisig ( ) const
overridevirtual

multisig - returns current state of multisig wallet creation process

Returns
MultisigState struct

Implements Electroneum::Wallet.

◆ nettype()

NetworkType Electroneum::WalletImpl::nettype ( ) const
inlineoverridevirtual

Implements Electroneum::Wallet.

◆ numSubaddressAccounts()

size_t Electroneum::WalletImpl::numSubaddressAccounts ( ) const
overridevirtual

numSubaddressAccounts - returns the number of existing subaddress accounts

Implements Electroneum::Wallet.

◆ numSubaddresses()

size_t Electroneum::WalletImpl::numSubaddresses ( uint32_t  accountIndex) const
overridevirtual

numSubaddresses - returns the number of existing subaddresses associated with the specified subaddress account

Parameters
accountIndex- the major index specifying the subaddress account

Implements Electroneum::Wallet.

◆ open()

bool Electroneum::WalletImpl::open ( const std::string &  path,
const std::string &  password 
)

◆ parse_uri()

bool Electroneum::WalletImpl::parse_uri ( const std::string &  uri,
std::string &  address,
std::string &  payment_id,
uint64_t &  amount,
std::string &  tx_description,
std::string &  recipient_name,
std::vector< std::string > &  unknown_parameters,
std::string &  error 
)
overridevirtual

Implements Electroneum::Wallet.

◆ path()

std::string Electroneum::WalletImpl::path ( ) const
overridevirtual

Implements Electroneum::Wallet.

◆ pauseRefresh()

void Electroneum::WalletImpl::pauseRefresh ( )
overridevirtual

pauseRefresh - pause refresh thread

Implements Electroneum::Wallet.

◆ pendingTxPostProcess()

void Electroneum::WalletImpl::pendingTxPostProcess ( PendingTransactionImpl pending)
private

◆ publicMultisigSignerKey()

std::string Electroneum::WalletImpl::publicMultisigSignerKey ( ) const
overridevirtual

publicMultisigSignerKey - returns public signer key

Returns
- public multisignature signer key or empty string if wallet is not multisig

Implements Electroneum::Wallet.

◆ publicSpendKey()

std::string Electroneum::WalletImpl::publicSpendKey ( ) const
overridevirtual

publicSpendKey - returns public spend key

Returns
- public spend key

Implements Electroneum::Wallet.

◆ publicViewKey()

std::string Electroneum::WalletImpl::publicViewKey ( ) const
overridevirtual

publicViewKey - returns public view key

Returns
- public view key

Implements Electroneum::Wallet.

◆ recover() [1/2]

bool Electroneum::WalletImpl::recover ( const std::string &  path,
const std::string &  password,
const std::string &  seed 
)

◆ recover() [2/2]

bool Electroneum::WalletImpl::recover ( const std::string &  path,
const std::string &  seed 
)

◆ recoverFromDevice()

bool Electroneum::WalletImpl::recoverFromDevice ( const std::string &  path,
const std::string &  password,
const std::string &  device_name 
)

◆ recoverFromKeys()

bool Electroneum::WalletImpl::recoverFromKeys ( const std::string &  path,
const std::string &  language,
const std::string &  address_string,
const std::string &  viewkey_string,
const std::string &  spendkey_string = "" 
)

◆ recoverFromKeysWithPassword()

bool Electroneum::WalletImpl::recoverFromKeysWithPassword ( const std::string &  path,
const std::string &  password,
const std::string &  language,
const std::string &  address_string,
const std::string &  viewkey_string,
const std::string &  spendkey_string = "" 
)

◆ refresh()

bool Electroneum::WalletImpl::refresh ( )
overridevirtual

refresh - refreshes the wallet, updating transactions from daemon

Returns
- true if refreshed successfully;

Implements Electroneum::Wallet.

◆ refreshAsync()

void Electroneum::WalletImpl::refreshAsync ( )
overridevirtual

refreshAsync - refreshes wallet asynchronously.

Implements Electroneum::Wallet.

◆ refreshThreadFunc()

void Electroneum::WalletImpl::refreshThreadFunc ( )
private

◆ rescanBlockchain()

bool Electroneum::WalletImpl::rescanBlockchain ( )
overridevirtual

rescanBlockchain - rescans the wallet, updating transactions from daemon

Returns
- true if refreshed successfully;

Implements Electroneum::Wallet.

◆ rescanBlockchainAsync()

void Electroneum::WalletImpl::rescanBlockchainAsync ( )
overridevirtual

rescanBlockchainAsync - rescans wallet asynchronously, starting from genesys

Implements Electroneum::Wallet.

◆ rescanSpent()

bool Electroneum::WalletImpl::rescanSpent ( )
overridevirtual

Implements Electroneum::Wallet.

◆ restoreMultisigTransaction()

PendingTransaction * Electroneum::WalletImpl::restoreMultisigTransaction ( const std::string &  signData)
overridevirtual

restoreMultisigTransaction creates PendingTransaction from signData

Parameters
signDataencrypted unsigned transaction. Obtained with PendingTransaction::multisigSignData
Returns
PendingTransaction

Implements Electroneum::Wallet.

◆ secretSpendKey()

std::string Electroneum::WalletImpl::secretSpendKey ( ) const
overridevirtual

secretSpendKey - returns secret spend key

Returns
- secret spend key

Implements Electroneum::Wallet.

◆ secretViewKey()

std::string Electroneum::WalletImpl::secretViewKey ( ) const
overridevirtual

secretViewKey - returns secret view key

Returns
- secret view key

Implements Electroneum::Wallet.

◆ seed()

std::string Electroneum::WalletImpl::seed ( ) const
overridevirtual

Implements Electroneum::Wallet.

◆ segregatePreForkOutputs()

void Electroneum::WalletImpl::segregatePreForkOutputs ( bool  segregate)
overridevirtual

sets whether pre-fork outs are to be segregated

Implements Electroneum::Wallet.

◆ segregationHeight()

void Electroneum::WalletImpl::segregationHeight ( uint64_t  height)
overridevirtual

sets the height where segregation should occur

Implements Electroneum::Wallet.

◆ setAutoRefreshInterval()

void Electroneum::WalletImpl::setAutoRefreshInterval ( int  millis)
overridevirtual

setAutoRefreshInterval - setup interval for automatic refresh.

Parameters
seconds- interval in millis. if zero or less than zero - automatic refresh disabled;

Implements Electroneum::Wallet.

◆ setDefaultMixin()

void Electroneum::WalletImpl::setDefaultMixin ( uint32_t  arg)
overridevirtual

setDefaultMixin - setum number of mixins to be used for new transactions

Parameters
arg

Implements Electroneum::Wallet.

◆ setDevicePassphrase()

bool Electroneum::WalletImpl::setDevicePassphrase ( const std::string &  password)
overridevirtual

Reimplemented from Electroneum::Wallet.

◆ setDevicePin()

bool Electroneum::WalletImpl::setDevicePin ( const std::string &  password)
overridevirtual

Reimplemented from Electroneum::Wallet.

◆ setListener()

void Electroneum::WalletImpl::setListener ( WalletListener l)
overridevirtual

Implements Electroneum::Wallet.

◆ setPassword()

bool Electroneum::WalletImpl::setPassword ( const std::string &  password)
overridevirtual

Implements Electroneum::Wallet.

◆ setRecoveringFromDevice()

void Electroneum::WalletImpl::setRecoveringFromDevice ( bool  recoveringFromDevice)
overridevirtual

setRecoveringFromDevice - set state to recovering from device

Parameters
recoveringFromDevice- true/false

Implements Electroneum::Wallet.

◆ setRecoveringFromSeed()

void Electroneum::WalletImpl::setRecoveringFromSeed ( bool  recoveringFromSeed)
overridevirtual

setRecoveringFromSeed - set state recover form seed

Parameters
recoveringFromSeed- true/false

Implements Electroneum::Wallet.

◆ setRefreshFromBlockHeight()

void Electroneum::WalletImpl::setRefreshFromBlockHeight ( uint64_t  refresh_from_block_height)
overridevirtual

setRefreshFromBlockHeight - start refresh from block height on recover

Parameters
refresh_from_block_height- blockchain start height

Implements Electroneum::Wallet.

◆ setRing()

bool Electroneum::WalletImpl::setRing ( const std::string &  key_image,
const std::vector< uint64_t > &  ring,
bool  relative 
)
overridevirtual

sets the ring used for a key image

Implements Electroneum::Wallet.

◆ setSeedLanguage()

void Electroneum::WalletImpl::setSeedLanguage ( const std::string &  arg)
overridevirtual

Implements Electroneum::Wallet.

◆ setStatus()

void Electroneum::WalletImpl::setStatus ( int  status,
const std::string &  message 
) const
private

◆ setStatusCritical()

void Electroneum::WalletImpl::setStatusCritical ( const std::string &  message) const
private

◆ setStatusError()

void Electroneum::WalletImpl::setStatusError ( const std::string &  message) const
private

◆ setSubaddressLabel()

void Electroneum::WalletImpl::setSubaddressLabel ( uint32_t  accountIndex,
uint32_t  addressIndex,
const std::string &  label 
)
overridevirtual

setSubaddressLabel - sets the label of the specified subaddress

Parameters
accountIndex- the major index specifying the subaddress account
addressIndex- the minor index specifying the subaddress
label- the new label for the specified subaddress

Implements Electroneum::Wallet.

◆ setSubaddressLookahead()

void Electroneum::WalletImpl::setSubaddressLookahead ( uint32_t  major,
uint32_t  minor 
)
overridevirtual

setSubaddressLookahead - set size of subaddress lookahead

Parameters
major- size fot the major index
minor- size fot the minor index

Implements Electroneum::Wallet.

◆ setTrustedDaemon()

void Electroneum::WalletImpl::setTrustedDaemon ( bool  arg)
overridevirtual

Implements Electroneum::Wallet.

◆ setUserNote()

bool Electroneum::WalletImpl::setUserNote ( const std::string &  txid,
const std::string &  note 
)
overridevirtual

setUserNote - attach an arbitrary string note to a txid

Parameters
txid- the transaction id to attach the note to
note- the note
Returns
true if successful, false otherwise

Implements Electroneum::Wallet.

◆ signMessage()

std::string Electroneum::WalletImpl::signMessage ( const std::string &  message)
overridevirtual

Implements Electroneum::Wallet.

◆ signMultisigParticipant()

std::string Electroneum::WalletImpl::signMultisigParticipant ( const std::string &  message) const
overridevirtual

signMultisigParticipant signs given message with the multisig public signer key

Parameters
messagemessage to sign
Returns
signature in case of success. Sets status to Error and return empty string in case of error

Implements Electroneum::Wallet.

◆ startRefresh()

void Electroneum::WalletImpl::startRefresh ( )
overridevirtual

StartRefresh - Start/resume refresh thread (refresh every 10 seconds)

Implements Electroneum::Wallet.

◆ status()

int Electroneum::WalletImpl::status ( ) const
overridevirtual

returns wallet status (Status_Ok | Status_Error)

Implements Electroneum::Wallet.

◆ statusWithErrorString()

void Electroneum::WalletImpl::statusWithErrorString ( int &  status,
std::string &  errorString 
) const
overridevirtual

returns both error and error string atomically. suggested to use in instead of status() and errorString()

Implements Electroneum::Wallet.

◆ stopRefresh()

void Electroneum::WalletImpl::stopRefresh ( )
private

◆ store()

bool Electroneum::WalletImpl::store ( const std::string &  path)
overridevirtual

store - stores wallet to file.

Parameters
path- main filename to store wallet to. additionally stores address file and keys file. to store to the same file - just pass empty string;
Returns

Implements Electroneum::Wallet.

◆ subaddress()

Subaddress * Electroneum::WalletImpl::subaddress ( )
overridevirtual

Implements Electroneum::Wallet.

◆ subaddressAccount()

SubaddressAccount * Electroneum::WalletImpl::subaddressAccount ( )
overridevirtual

Implements Electroneum::Wallet.

◆ submitTransaction()

bool Electroneum::WalletImpl::submitTransaction ( const std::string &  fileName)
overridevirtual

submitTransaction - submits transaction in signed tx file

Returns
- true on success

Implements Electroneum::Wallet.

◆ synchronized()

bool Electroneum::WalletImpl::synchronized ( ) const
overridevirtual

synchronized - checks if wallet was ever synchronized

Returns

Implements Electroneum::Wallet.

◆ trustedDaemon()

bool Electroneum::WalletImpl::trustedDaemon ( ) const
overridevirtual

Implements Electroneum::Wallet.

◆ unblackballOutput()

bool Electroneum::WalletImpl::unblackballOutput ( const std::string &  amount,
const std::string &  offset 
)
overridevirtual

unblackballs an output

Implements Electroneum::Wallet.

◆ unlockedBalance()

uint64_t Electroneum::WalletImpl::unlockedBalance ( uint32_t  accountIndex = 0) const
overridevirtual

Implements Electroneum::Wallet.

◆ unlockKeysFile()

bool Electroneum::WalletImpl::unlockKeysFile ( )
overridevirtual

Implements Electroneum::Wallet.

◆ useForkRules()

bool Electroneum::WalletImpl::useForkRules ( uint8_t  version,
int64_t  early_blocks 
) const
overridevirtual

check if hard fork rules should be used

Implements Electroneum::Wallet.

◆ verifyMessageWithPublicKey()

bool Electroneum::WalletImpl::verifyMessageWithPublicKey ( const std::string &  message,
const std::string &  publicKey,
const std::string &  signature 
) const
overridevirtual

verifyMessageWithPublicKey verifies that message was signed with the given public key

Parameters
messagemessage
publicKeyhex encoded public key
signaturesignature of the message
Returns
true if the signature is correct. false and sets error state in case of error

Implements Electroneum::Wallet.

◆ verifySignedMessage()

bool Electroneum::WalletImpl::verifySignedMessage ( const std::string &  message,
const std::string &  addres,
const std::string &  signature 
) const
overridevirtual

verifySignedMessage - verify a signature matches a given message

Parameters
message- the message (arbitrary byte data)
address- the address the signature claims to be made with
signature- the signature
Returns
true if the signature verified, false otherwise

Implements Electroneum::Wallet.

◆ watchOnly()

bool Electroneum::WalletImpl::watchOnly ( ) const
overridevirtual

watchOnly - checks if wallet is watch only

Returns
- true if watch only

Implements Electroneum::Wallet.

Friends And Related Function Documentation

◆ AddressBookImpl

friend class AddressBookImpl
friend

◆ PendingTransactionImpl

friend class PendingTransactionImpl
friend

◆ SubaddressAccountImpl

friend class SubaddressAccountImpl
friend

◆ SubaddressImpl

friend class SubaddressImpl
friend

◆ TransactionHistoryImpl

friend class TransactionHistoryImpl
friend

◆ UnsignedTransactionImpl

friend class UnsignedTransactionImpl
friend

◆ Wallet2CallbackImpl

friend struct Wallet2CallbackImpl
friend

Member Data Documentation

◆ m_addressBook

std::unique_ptr<AddressBookImpl> Electroneum::WalletImpl::m_addressBook
private

◆ m_daemon_login

boost::optional<epee::net_utils::http::login> Electroneum::WalletImpl::m_daemon_login {}
private

◆ m_errorString

std::string Electroneum::WalletImpl::m_errorString
mutableprivate

◆ m_history

std::unique_ptr<TransactionHistoryImpl> Electroneum::WalletImpl::m_history
private

◆ m_is_connected

std::atomic<bool> Electroneum::WalletImpl::m_is_connected
mutableprivate

◆ m_password

std::string Electroneum::WalletImpl::m_password
private

◆ m_rebuildWalletCache

std::atomic<bool> Electroneum::WalletImpl::m_rebuildWalletCache
private

◆ m_recoveringFromDevice

std::atomic<bool> Electroneum::WalletImpl::m_recoveringFromDevice
private

◆ m_recoveringFromSeed

std::atomic<bool> Electroneum::WalletImpl::m_recoveringFromSeed
private

◆ m_refreshCV

boost::condition_variable Electroneum::WalletImpl::m_refreshCV
private

◆ m_refreshEnabled

std::atomic<bool> Electroneum::WalletImpl::m_refreshEnabled
private

◆ m_refreshIntervalMillis

std::atomic<int> Electroneum::WalletImpl::m_refreshIntervalMillis
private

◆ m_refreshMutex

boost::mutex Electroneum::WalletImpl::m_refreshMutex
private

◆ m_refreshMutex2

boost::mutex Electroneum::WalletImpl::m_refreshMutex2
private

◆ m_refreshShouldRescan

std::atomic<bool> Electroneum::WalletImpl::m_refreshShouldRescan
private

◆ m_refreshThread

boost::thread Electroneum::WalletImpl::m_refreshThread
private

◆ m_refreshThreadDone

std::atomic<bool> Electroneum::WalletImpl::m_refreshThreadDone
private

◆ m_status

int Electroneum::WalletImpl::m_status
mutableprivate

◆ m_statusMutex

boost::mutex Electroneum::WalletImpl::m_statusMutex
mutableprivate

◆ m_subaddress

std::unique_ptr<SubaddressImpl> Electroneum::WalletImpl::m_subaddress
private

◆ m_subaddressAccount

std::unique_ptr<SubaddressAccountImpl> Electroneum::WalletImpl::m_subaddressAccount
private

◆ m_synchronized

std::atomic<bool> Electroneum::WalletImpl::m_synchronized
private

◆ m_wallet

std::unique_ptr<tools::wallet2> Electroneum::WalletImpl::m_wallet
private

◆ m_wallet2Callback

std::unique_ptr<Wallet2CallbackImpl> Electroneum::WalletImpl::m_wallet2Callback
private

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