[Unit Test] Create wallet
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user