1
0

[Unit Test] Create wallet

This commit is contained in:
Scott E. Graves
2017-02-03 18:16:33 -06:00
parent edf1818255
commit 9dfc1a9331
6 changed files with 145 additions and 29 deletions

View File

@@ -3,12 +3,30 @@
using namespace Sia::Api;
static String SeedLangToString(const SiaSeedLanguage& lang)
{
switch (lang)
{
case SiaSeedLanguage::English:
return L"english";
case SiaSeedLanguage::German:
return L"german";
case SiaSeedLanguage::Japanese:
return L"japanese";
default:
throw std::exception("Seed language not implemented");
}
}
CSiaApi::_CSiaWallet::_CSiaWallet(CSiaCurl& siaCurl) :
_siaCurl(siaCurl),
_Created(false),
_Locked(false)
{
Refresh();
}
CSiaApi::_CSiaWallet::~_CSiaWallet()
@@ -16,15 +34,48 @@ CSiaApi::_CSiaWallet::~_CSiaWallet()
}
bool CSiaApi::_CSiaWallet::Refresh()
{
json result;
SiaCurlError error = _siaCurl.Get(L"/wallet", result);
if (API_SUCCESS(SiaCurlError, error))
{
SetCreated(result["encrypted"].get<bool>());
SetLocked(result["unlocked"].get<bool>());
return true;
}
return false;
}
SiaApiError CSiaApi::_CSiaWallet::Create(const SiaSeedLanguage& seedLanguage, String& seed)
{
SiaApiError error = SiaApiError::NotImplemented;
SiaApiError error = SiaApiError::RequestError;
if (Refresh())
{
error = SiaApiError::WalletExists;
if (!GetCreated())
{
error = SiaApiError::RequestError;
json result;
SiaCurlError cerror = _siaCurl.Post(L"/wallet/init", { {L"dictionary", SeedLangToString(seedLanguage)} }, result);
if (API_SUCCESS(SiaCurlError, cerror))
{
error = SiaApiError::Success;
seed = CA2W(result["primaryseed"].get<std::string>().c_str());
Refresh();
}
}
}
return error;
}
SiaApiError CSiaApi::_CSiaWallet::Restore(const String& seed)
{
SiaApiError error = SiaApiError::NotImplemented;
// TODO Future enhancement
return error;
}