1
0
This repository has been archived on 2025-07-27. You can view files and clone it, but cannot push or open issues or pull requests.
Files
siadrive/SiaDrive.Api/SiaApi.h
2017-02-04 15:40:12 -06:00

76 lines
1.4 KiB
C++

#pragma once
#include "SiaCommon.h"
#include "SiaCurl.h"
NS_BEGIN(Sia)
NS_BEGIN(Api)
class AFX_EXT_CLASS CSiaApi
{
public:
enum class _SiaApiError
{
Success,
NotImplemented,
RequestError,
WalletExists,
WalletLocked,
WalletUnlocked,
WalletNotCreated
};
enum class _SiaSeedLanguage
{
English,
German,
Japanese
};
class AFX_EXT_CLASS _CSiaWallet
{
friend CSiaApi;
private:
_CSiaWallet(CSiaCurl& siaCurl);
public:
~_CSiaWallet();
private:
CSiaCurl& _siaCurl;
// Properties
Property(bool, Created, public, private)
Property(bool, Locked, public, private)
public:
_SiaApiError Create(const _SiaSeedLanguage& seedLanguage, String& seed);
bool Refresh();
_SiaApiError Restore(const String& seed);
_SiaApiError Lock();
_SiaApiError Unlock(const String& password);
_SiaApiError GetConfirmedBalance(SiaCurrency& balance) const;
_SiaApiError GetUnonfirmedBalance(SiaCurrency& balance) const;
};
public:
CSiaApi(const SiaHostConfig& hostConfig);
public:
~CSiaApi();
private:
CSiaCurl _siaCurl;
std::shared_ptr<_CSiaWallet> _wallet;
public:
std::shared_ptr<_CSiaWallet> GetWallet() const;
String GetServerVersion() const;
};
typedef CSiaApi::_SiaApiError SiaApiError;
typedef CSiaApi::_SiaSeedLanguage SiaSeedLanguage;
typedef CSiaApi::_CSiaWallet CSiaWallet;
typedef std::shared_ptr<CSiaApi::_CSiaWallet> CSiaWalletPtr;
NS_END(2)