From 6a0f61d80087259d7fa2e62df0e6cf68764dc3a4 Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Sat, 20 Jun 2015 12:31:02 +0100 Subject: [PATCH] account: allow creating an account from a public address and view secret key --- src/cryptonote_core/account.cpp | 16 ++++++++++++++++ src/cryptonote_core/account.h | 1 + 2 files changed, 17 insertions(+) diff --git a/src/cryptonote_core/account.cpp b/src/cryptonote_core/account.cpp index 313d803a..eb79f594 100644 --- a/src/cryptonote_core/account.cpp +++ b/src/cryptonote_core/account.cpp @@ -93,6 +93,22 @@ DISABLE_VS_WARNINGS(4244 4345) return first; } //----------------------------------------------------------------- + void account_base::create_from_viewkey(const cryptonote::account_public_address& address, const crypto::secret_key& viewkey) + { + m_keys.m_account_address = address; + m_keys.m_view_secret_key = viewkey; + + struct tm timestamp; + timestamp.tm_year = 2014 - 1900; // year 2014 + timestamp.tm_mon = 4 - 1; // month april + timestamp.tm_mday = 15; // 15th of april + timestamp.tm_hour = 0; + timestamp.tm_min = 0; + timestamp.tm_sec = 0; + + m_creation_timestamp = mktime(×tamp); + } + //----------------------------------------------------------------- const account_keys& account_base::get_keys() const { return m_keys; diff --git a/src/cryptonote_core/account.h b/src/cryptonote_core/account.h index 909fa7ef..088363bf 100644 --- a/src/cryptonote_core/account.h +++ b/src/cryptonote_core/account.h @@ -58,6 +58,7 @@ namespace cryptonote public: account_base(); crypto::secret_key generate(const crypto::secret_key& recovery_key = crypto::secret_key(), bool recover = false, bool two_random = false); + void create_from_viewkey(const cryptonote::account_public_address& address, const crypto::secret_key& viewkey); const account_keys& get_keys() const; std::string get_public_address_str(bool testnet) const; std::string get_public_integrated_address_str(const crypto::hash &payment_id, bool testnet) const;