testnet option, Wallet::balance(), Wallet::unlockedBalance()
This commit is contained in:
parent
df6026182a
commit
2157a9ac48
3 changed files with 27 additions and 17 deletions
|
@ -72,6 +72,7 @@ public:
|
||||||
bool store(const std::string &path);
|
bool store(const std::string &path);
|
||||||
bool init(const std::string &daemon_address, uint64_t upper_transaction_size_limit);
|
bool init(const std::string &daemon_address, uint64_t upper_transaction_size_limit);
|
||||||
uint64_t balance() const;
|
uint64_t balance() const;
|
||||||
|
uint64_t unlockedBalance() const;
|
||||||
bool connectToDaemon();
|
bool connectToDaemon();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -279,6 +280,11 @@ uint64_t WalletImpl::balance() const
|
||||||
return m_wallet->balance();
|
return m_wallet->balance();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint64_t WalletImpl::unlockedBalance() const
|
||||||
|
{
|
||||||
|
return m_wallet->unlocked_balance();
|
||||||
|
}
|
||||||
|
|
||||||
bool WalletImpl::connectToDaemon()
|
bool WalletImpl::connectToDaemon()
|
||||||
{
|
{
|
||||||
bool result = m_wallet->check_connection();
|
bool result = m_wallet->check_connection();
|
||||||
|
@ -304,7 +310,7 @@ public:
|
||||||
Wallet * createWallet(const std::string &path, const std::string &password,
|
Wallet * createWallet(const std::string &path, const std::string &password,
|
||||||
const std::string &language, bool testnet);
|
const std::string &language, bool testnet);
|
||||||
Wallet * openWallet(const std::string &path, const std::string &password, bool testnet);
|
Wallet * openWallet(const std::string &path, const std::string &password, bool testnet);
|
||||||
virtual Wallet * recoveryWallet(const std::string &path, const std::string &memo);
|
virtual Wallet * recoveryWallet(const std::string &path, const std::string &memo, bool testnet);
|
||||||
virtual bool closeWallet(Wallet *wallet);
|
virtual bool closeWallet(Wallet *wallet);
|
||||||
bool walletExists(const std::string &path);
|
bool walletExists(const std::string &path);
|
||||||
std::string errorString() const;
|
std::string errorString() const;
|
||||||
|
@ -333,9 +339,9 @@ Wallet *WalletManagerImpl::openWallet(const std::string &path, const std::string
|
||||||
return wallet;
|
return wallet;
|
||||||
}
|
}
|
||||||
|
|
||||||
Wallet *WalletManagerImpl::recoveryWallet(const std::string &path, const std::string &memo)
|
Wallet *WalletManagerImpl::recoveryWallet(const std::string &path, const std::string &memo, bool testnet)
|
||||||
{
|
{
|
||||||
WalletImpl * wallet = new WalletImpl();
|
WalletImpl * wallet = new WalletImpl(testnet);
|
||||||
wallet->recover(path, memo);
|
wallet->recover(path, memo);
|
||||||
return wallet;
|
return wallet;
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,6 +70,9 @@ struct Wallet
|
||||||
virtual bool init(const std::string &daemon_address, uint64_t upper_transaction_size_limit) = 0;
|
virtual bool init(const std::string &daemon_address, uint64_t upper_transaction_size_limit) = 0;
|
||||||
virtual bool connectToDaemon() = 0;
|
virtual bool connectToDaemon() = 0;
|
||||||
virtual uint64_t balance() const = 0;
|
virtual uint64_t balance() const = 0;
|
||||||
|
virtual uint64_t unlockedBalance() const = 0;
|
||||||
|
// TODO?
|
||||||
|
// virtual uint64_t unlockedDustBalance() const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -85,7 +88,7 @@ struct WalletManager
|
||||||
* \param language Language to be used to generate electrum seed memo
|
* \param language Language to be used to generate electrum seed memo
|
||||||
* \return Wallet instance (Wallet::status() needs to be called to check if created successfully)
|
* \return Wallet instance (Wallet::status() needs to be called to check if created successfully)
|
||||||
*/
|
*/
|
||||||
virtual Wallet * createWallet(const std::string &path, const std::string &password, const std::string &language, bool testnet) = 0;
|
virtual Wallet * createWallet(const std::string &path, const std::string &password, const std::string &language, bool testnet = false) = 0;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Opens existing wallet
|
* \brief Opens existing wallet
|
||||||
|
@ -93,7 +96,7 @@ struct WalletManager
|
||||||
* \param password Password of wallet file
|
* \param password Password of wallet file
|
||||||
* \return Wallet instance (Wallet::status() needs to be called to check if opened successfully)
|
* \return Wallet instance (Wallet::status() needs to be called to check if opened successfully)
|
||||||
*/
|
*/
|
||||||
virtual Wallet * openWallet(const std::string &path, const std::string &password, bool testnet) = 0;
|
virtual Wallet * openWallet(const std::string &path, const std::string &password, bool testnet = false) = 0;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief recovers existing wallet using memo (electrum seed)
|
* \brief recovers existing wallet using memo (electrum seed)
|
||||||
|
@ -101,7 +104,7 @@ struct WalletManager
|
||||||
* \param memo memo (25 words electrum seed)
|
* \param memo memo (25 words electrum seed)
|
||||||
* \return Wallet instance (Wallet::status() needs to be called to check if recovered successfully)
|
* \return Wallet instance (Wallet::status() needs to be called to check if recovered successfully)
|
||||||
*/
|
*/
|
||||||
virtual Wallet * recoveryWallet(const std::string &path, const std::string &memo) = 0;
|
virtual Wallet * recoveryWallet(const std::string &path, const std::string &memo, bool testnet = false) = 0;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Closes wallet. In case operation succeded, wallet object deleted. in case operation failed, wallet object not deleted
|
* \brief Closes wallet. In case operation succeded, wallet object deleted. in case operation failed, wallet object not deleted
|
||||||
|
|
|
@ -95,7 +95,7 @@ struct WalletManagerTest : public testing::Test
|
||||||
TEST_F(WalletManagerTest, WalletManagerCreatesWallet)
|
TEST_F(WalletManagerTest, WalletManagerCreatesWallet)
|
||||||
{
|
{
|
||||||
|
|
||||||
Bitmonero::Wallet * wallet = wmgr->createWallet(WALLET_NAME, WALLET_PASS, WALLET_LANG, true);
|
Bitmonero::Wallet * wallet = wmgr->createWallet(WALLET_NAME, WALLET_PASS, WALLET_LANG);
|
||||||
ASSERT_TRUE(wallet->status() == Bitmonero::Wallet::Status_Ok);
|
ASSERT_TRUE(wallet->status() == Bitmonero::Wallet::Status_Ok);
|
||||||
ASSERT_TRUE(!wallet->seed().empty());
|
ASSERT_TRUE(!wallet->seed().empty());
|
||||||
std::vector<std::string> words;
|
std::vector<std::string> words;
|
||||||
|
@ -112,16 +112,16 @@ TEST_F(WalletManagerTest, WalletManagerCreatesWallet)
|
||||||
TEST_F(WalletManagerTest, WalletManagerOpensWallet)
|
TEST_F(WalletManagerTest, WalletManagerOpensWallet)
|
||||||
{
|
{
|
||||||
|
|
||||||
Bitmonero::Wallet * wallet1 = wmgr->createWallet(WALLET_NAME, WALLET_PASS, WALLET_LANG, true);
|
Bitmonero::Wallet * wallet1 = wmgr->createWallet(WALLET_NAME, WALLET_PASS, WALLET_LANG);
|
||||||
std::string seed1 = wallet1->seed();
|
std::string seed1 = wallet1->seed();
|
||||||
ASSERT_TRUE(wmgr->closeWallet(wallet1));
|
ASSERT_TRUE(wmgr->closeWallet(wallet1));
|
||||||
Bitmonero::Wallet * wallet2 = wmgr->openWallet(WALLET_NAME, WALLET_PASS, true);
|
Bitmonero::Wallet * wallet2 = wmgr->openWallet(WALLET_NAME, WALLET_PASS);
|
||||||
ASSERT_TRUE(wallet2->status() == Bitmonero::Wallet::Status_Ok);
|
ASSERT_TRUE(wallet2->status() == Bitmonero::Wallet::Status_Ok);
|
||||||
ASSERT_TRUE(wallet2->seed() == seed1);
|
ASSERT_TRUE(wallet2->seed() == seed1);
|
||||||
std::cout << "** seed: " << wallet2->seed() << std::endl;
|
std::cout << "** seed: " << wallet2->seed() << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
TEST_F(WalletManagerTest, WalletManagerChangesPassword)
|
TEST_F(WalletManagerTest, WalletManagerChangesPassword)
|
||||||
{
|
{
|
||||||
Bitmonero::Wallet * wallet1 = wmgr->createWallet(WALLET_NAME, WALLET_PASS, WALLET_LANG);
|
Bitmonero::Wallet * wallet1 = wmgr->createWallet(WALLET_NAME, WALLET_PASS, WALLET_LANG);
|
||||||
|
@ -145,7 +145,7 @@ TEST_F(WalletManagerTest, WalletManagerRecoversWallet)
|
||||||
std::string address1 = wallet1->address();
|
std::string address1 = wallet1->address();
|
||||||
ASSERT_FALSE(address1.empty());
|
ASSERT_FALSE(address1.empty());
|
||||||
ASSERT_TRUE(wmgr->closeWallet(wallet1));
|
ASSERT_TRUE(wmgr->closeWallet(wallet1));
|
||||||
deleteWallet(WALLET_NAME);
|
Utils::deleteWallet(WALLET_NAME);
|
||||||
Bitmonero::Wallet * wallet2 = wmgr->recoveryWallet(WALLET_NAME, seed1);
|
Bitmonero::Wallet * wallet2 = wmgr->recoveryWallet(WALLET_NAME, seed1);
|
||||||
ASSERT_TRUE(wallet2->status() == Bitmonero::Wallet::Status_Ok);
|
ASSERT_TRUE(wallet2->status() == Bitmonero::Wallet::Status_Ok);
|
||||||
ASSERT_TRUE(wallet2->seed() == seed1);
|
ASSERT_TRUE(wallet2->seed() == seed1);
|
||||||
|
@ -229,22 +229,23 @@ TEST_F(WalletManagerTest, WalletManagerStoresWallet4)
|
||||||
ASSERT_TRUE(wallet1->address() == address1);
|
ASSERT_TRUE(wallet1->address() == address1);
|
||||||
ASSERT_TRUE(wmgr->closeWallet(wallet1));
|
ASSERT_TRUE(wmgr->closeWallet(wallet1));
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
TEST_F(WalletManagerTest, WalletShowsBalance)
|
TEST_F(WalletManagerTest, WalletShowsBalance)
|
||||||
{
|
{
|
||||||
Bitmonero::Wallet * wallet1 = wmgr->openWallet(TESTNET_WALLET_NAME, TESTNET_WALLET_PASS, true);
|
Bitmonero::Wallet * wallet1 = wmgr->openWallet(TESTNET_WALLET_NAME, TESTNET_WALLET_PASS, true);
|
||||||
std::string seed1 = wallet1->seed();
|
|
||||||
std::string address1 = wallet1->address();
|
|
||||||
ASSERT_TRUE(wallet1->balance() > 0);
|
ASSERT_TRUE(wallet1->balance() > 0);
|
||||||
|
ASSERT_TRUE(wallet1->unlockedBalance() > 0);
|
||||||
|
|
||||||
uint64_t balance1 = wallet1->balance();
|
uint64_t balance1 = wallet1->balance();
|
||||||
|
uint64_t unlockedBalance1 = wallet1->unlockedBalance();
|
||||||
ASSERT_TRUE(wmgr->closeWallet(wallet1));
|
ASSERT_TRUE(wmgr->closeWallet(wallet1));
|
||||||
|
|
||||||
Bitmonero::Wallet * wallet2 = wmgr->openWallet(TESTNET_WALLET_NAME, TESTNET_WALLET_PASS, true);
|
Bitmonero::Wallet * wallet2 = wmgr->openWallet(TESTNET_WALLET_NAME, TESTNET_WALLET_PASS, true);
|
||||||
ASSERT_TRUE(seed1 == wallet2->seed());
|
|
||||||
ASSERT_TRUE(address1 == wallet2->address());
|
|
||||||
ASSERT_TRUE(balance1 == wallet2->balance());
|
ASSERT_TRUE(balance1 == wallet2->balance());
|
||||||
|
std::cout << "wallet balance: " << wallet2->balance() << std::endl;
|
||||||
|
ASSERT_TRUE(unlockedBalance1 == wallet2->unlockedBalance());
|
||||||
|
std::cout << "wallet unlocked balance: " << wallet2->unlockedBalance() << std::endl;
|
||||||
ASSERT_TRUE(wmgr->closeWallet(wallet2));
|
ASSERT_TRUE(wmgr->closeWallet(wallet2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue