Changeset View
Changeset View
Standalone View
Standalone View
src/interfaces/wallet.cpp
Show First 20 Lines • Show All 309 Lines • ▼ Show 20 Lines | public: | ||||
TRY_LOCK(m_wallet.cs_wallet, locked_wallet); | TRY_LOCK(m_wallet.cs_wallet, locked_wallet); | ||||
if (!locked_wallet) { | if (!locked_wallet) { | ||||
return false; | return false; | ||||
} | } | ||||
auto mi = m_wallet.mapWallet.find(txid); | auto mi = m_wallet.mapWallet.find(txid); | ||||
if (mi == m_wallet.mapWallet.end()) { | if (mi == m_wallet.mapWallet.end()) { | ||||
return false; | return false; | ||||
} | } | ||||
num_blocks = ::ChainActive().Height(); | if (Optional<int> height = locked_chain->getHeight()) { | ||||
block_time = ::ChainActive().Tip()->GetBlockTime(); | num_blocks = *height; | ||||
block_time = locked_chain->getBlockTime(*height); | |||||
} else { | |||||
num_blocks = -1; | |||||
block_time = -1; | |||||
} | |||||
tx_status = MakeWalletTxStatus(*locked_chain, mi->second); | tx_status = MakeWalletTxStatus(*locked_chain, mi->second); | ||||
return true; | return true; | ||||
} | } | ||||
WalletTx getWalletTxDetails(const TxId &txid, WalletTxStatus &tx_status, | WalletTx getWalletTxDetails(const TxId &txid, WalletTxStatus &tx_status, | ||||
WalletOrderForm &order_form, | WalletOrderForm &order_form, | ||||
bool &in_mempool, | bool &in_mempool, | ||||
int &num_blocks) override { | int &num_blocks) override { | ||||
auto locked_chain = m_wallet.chain().lock(); | auto locked_chain = m_wallet.chain().lock(); | ||||
LOCK(m_wallet.cs_wallet); | LOCK(m_wallet.cs_wallet); | ||||
auto mi = m_wallet.mapWallet.find(txid); | auto mi = m_wallet.mapWallet.find(txid); | ||||
if (mi != m_wallet.mapWallet.end()) { | if (mi != m_wallet.mapWallet.end()) { | ||||
num_blocks = ::ChainActive().Height(); | num_blocks = locked_chain->getHeight().value_or(-1); | ||||
in_mempool = mi->second.InMempool(); | in_mempool = mi->second.InMempool(); | ||||
order_form = mi->second.vOrderForm; | order_form = mi->second.vOrderForm; | ||||
tx_status = MakeWalletTxStatus(*locked_chain, mi->second); | tx_status = MakeWalletTxStatus(*locked_chain, mi->second); | ||||
return MakeWalletTx(*locked_chain, m_wallet, mi->second); | return MakeWalletTx(*locked_chain, m_wallet, mi->second); | ||||
} | } | ||||
return {}; | return {}; | ||||
} | } | ||||
WalletBalances getBalances() override { | WalletBalances getBalances() override { | ||||
Show All 18 Lines | public: | ||||
if (!locked_chain) { | if (!locked_chain) { | ||||
return false; | return false; | ||||
} | } | ||||
TRY_LOCK(m_wallet.cs_wallet, locked_wallet); | TRY_LOCK(m_wallet.cs_wallet, locked_wallet); | ||||
if (!locked_wallet) { | if (!locked_wallet) { | ||||
return false; | return false; | ||||
} | } | ||||
balances = getBalances(); | balances = getBalances(); | ||||
num_blocks = ::ChainActive().Height(); | num_blocks = locked_chain->getHeight().value_or(-1); | ||||
return true; | return true; | ||||
} | } | ||||
Amount getBalance() override { return m_wallet.GetBalance(); } | Amount getBalance() override { return m_wallet.GetBalance(); } | ||||
Amount getAvailableBalance(const CCoinControl &coin_control) override { | Amount getAvailableBalance(const CCoinControl &coin_control) override { | ||||
return m_wallet.GetAvailableBalance(&coin_control); | return m_wallet.GetAvailableBalance(&coin_control); | ||||
} | } | ||||
isminetype txinIsMine(const CTxIn &txin) override { | isminetype txinIsMine(const CTxIn &txin) override { | ||||
auto locked_chain = m_wallet.chain().lock(); | auto locked_chain = m_wallet.chain().lock(); | ||||
▲ Show 20 Lines • Show All 153 Lines • Show Last 20 Lines |