aboutsummaryrefslogtreecommitdiff
path: root/src/cryptonote_core/account.h
diff options
context:
space:
mode:
authorAntonio Juarez <antonio.maria.juarez@live.com>2014-03-03 22:07:58 +0000
committerAntonio Juarez <antonio.maria.juarez@live.com>2014-03-03 22:07:58 +0000
commit296ae46ed8f8f6e5f986f978febad302e3df231a (patch)
tree1629164454a239308f33c9e12afb22e7f3cd8eeb /src/cryptonote_core/account.h
parentchanged name (diff)
downloadmonero-296ae46ed8f8f6e5f986f978febad302e3df231a.tar.xz
moved all stuff to github
Diffstat (limited to 'src/cryptonote_core/account.h')
-rw-r--r--src/cryptonote_core/account.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/cryptonote_core/account.h b/src/cryptonote_core/account.h
new file mode 100644
index 000000000..8b525da97
--- /dev/null
+++ b/src/cryptonote_core/account.h
@@ -0,0 +1,61 @@
+// Copyright (c) 2012-2013 The Cryptonote developers
+// Distributed under the MIT/X11 software license, see the accompanying
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+
+#pragma once
+
+#include "cryptonote_core/cryptonote_basic.h"
+#include "crypto/crypto.h"
+#include "serialization/keyvalue_serialization.h"
+
+namespace cryptonote
+{
+
+ struct account_keys
+ {
+ account_public_address m_account_address;
+ crypto::secret_key m_spend_secret_key;
+ crypto::secret_key m_view_secret_key;
+
+ BEGIN_KV_SERIALIZE_MAP()
+ KV_SERIALIZE(m_account_address)
+ KV_SERIALIZE_VAL_POD_AS_BLOB_FORCE(m_spend_secret_key)
+ KV_SERIALIZE_VAL_POD_AS_BLOB_FORCE(m_view_secret_key)
+ END_KV_SERIALIZE_MAP()
+ };
+
+ /************************************************************************/
+ /* */
+ /************************************************************************/
+ class account_base
+ {
+ public:
+ account_base();
+ void generate();
+ const account_keys& get_keys() const;
+ std::string get_public_address_str();
+
+ uint64_t get_createtime() const { return m_creation_timestamp; }
+ void set_createtime(uint64_t val) { m_creation_timestamp = val; }
+
+ bool load(const std::string& file_path);
+ bool store(const std::string& file_path);
+
+ template <class t_archive>
+ inline void serialize(t_archive &a, const unsigned int /*ver*/)
+ {
+ a & m_keys;
+ a & m_creation_timestamp;
+ }
+
+ BEGIN_KV_SERIALIZE_MAP()
+ KV_SERIALIZE(m_keys)
+ KV_SERIALIZE(m_creation_timestamp)
+ END_KV_SERIALIZE_MAP()
+
+ private:
+ void set_null();
+ account_keys m_keys;
+ uint64_t m_creation_timestamp;
+ };
+}