From e04c67ac4c8a686832e7a1136a8f32465a0e0956 Mon Sep 17 00:00:00 2001 From: Ilya Kitaev Date: Thu, 31 Mar 2016 16:38:57 +0300 Subject: [PATCH] Wallet::refresh + tests --- src/wallet/wallet2_api.cpp | 13 +++++++++++++ src/wallet/wallet2_api.h | 3 +++ tests/libwallet_api_tests/main.cpp | 12 ++++++++++++ 3 files changed, 28 insertions(+) diff --git a/src/wallet/wallet2_api.cpp b/src/wallet/wallet2_api.cpp index faf2778d3..e6ed249cc 100644 --- a/src/wallet/wallet2_api.cpp +++ b/src/wallet/wallet2_api.cpp @@ -76,6 +76,7 @@ public: uint64_t balance() const; uint64_t unlockedBalance() const; std::string displayAmount(uint64_t amount) const; + bool refresh(); private: @@ -293,6 +294,18 @@ std::string WalletImpl::displayAmount(uint64_t amount) const return cryptonote::print_money(amount); } +bool WalletImpl::refresh() +{ + clearStatus(); + try { + m_wallet->refresh(); + } catch (const std::exception &e) { + m_status = Status_Error; + m_errorString = e.what(); + } + return m_status == Status_Ok; +} + bool WalletImpl::connectToDaemon() { bool result = m_wallet->check_connection(); diff --git a/src/wallet/wallet2_api.h b/src/wallet/wallet2_api.h index a56043e9e..c818608ed 100644 --- a/src/wallet/wallet2_api.h +++ b/src/wallet/wallet2_api.h @@ -74,6 +74,9 @@ struct Wallet virtual std::string displayAmount(uint64_t amount) const = 0; // TODO? // virtual uint64_t unlockedDustBalance() const = 0; + // TODO refresh + virtual bool refresh() = 0; + // TODO transfer }; /** diff --git a/tests/libwallet_api_tests/main.cpp b/tests/libwallet_api_tests/main.cpp index d5bdc8d67..d935a38b7 100644 --- a/tests/libwallet_api_tests/main.cpp +++ b/tests/libwallet_api_tests/main.cpp @@ -71,10 +71,13 @@ struct WalletManagerTest : public testing::Test const char * WALLET_PASS2 = "password22"; const char * WALLET_LANG = "English"; + // TODO: add test wallets to the source tree (as they have some balance mined)? const char * TESTNET_WALLET_NAME = "/home/mbg033/dev/monero/testnet/wallet_01.bin"; const char * TESTNET_WALLET_PASS = ""; + const char * TESTNET_DAEMON_ADDRESS = "localhost:38081"; + WalletManagerTest() { std::cout << __FUNCTION__ << std::endl; @@ -249,6 +252,15 @@ TEST_F(WalletManagerTest, WalletShowsBalance) ASSERT_TRUE(wmgr->closeWallet(wallet2)); } +TEST_F(WalletManagerTest, WalletRefresh) +{ + Bitmonero::Wallet * wallet1 = wmgr->openWallet(TESTNET_WALLET_NAME, TESTNET_WALLET_PASS, true); + // make sure testnet daemon is running + ASSERT_TRUE(wallet1->init(TESTNET_DAEMON_ADDRESS, 0)); + ASSERT_TRUE(wallet1->refresh()); + ASSERT_TRUE(wmgr->closeWallet(wallet1)); +} + int main(int argc, char** argv) {