mirror of
https://git.wownero.com/wownero/wownero.git
synced 2024-08-15 01:03:23 +00:00
refactoring. get seed code in wallet2
This commit is contained in:
parent
6575d4ebe5
commit
2ba77629ad
3 changed files with 23 additions and 12 deletions
|
@ -46,11 +46,7 @@
|
||||||
#include "version.h"
|
#include "version.h"
|
||||||
#include "crypto/crypto.h" // for crypto::secret_key definition
|
#include "crypto/crypto.h" // for crypto::secret_key definition
|
||||||
#include "crypto/electrum-words.h"
|
#include "crypto/electrum-words.h"
|
||||||
extern "C"
|
|
||||||
{
|
|
||||||
#include "crypto/keccak.h"
|
|
||||||
#include "crypto/crypto-ops.h"
|
|
||||||
}
|
|
||||||
#if defined(WIN32)
|
#if defined(WIN32)
|
||||||
#include <crtdbg.h>
|
#include <crtdbg.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -195,14 +191,9 @@ std::string simple_wallet::get_commands_str()
|
||||||
bool simple_wallet::seed(const std::vector<std::string> &args/* = std::vector<std::string>()*/)
|
bool simple_wallet::seed(const std::vector<std::string> &args/* = std::vector<std::string>()*/)
|
||||||
{
|
{
|
||||||
std::string electrum_words;
|
std::string electrum_words;
|
||||||
crypto::ElectrumWords::bytes_to_words(m_wallet->get_account().get_keys().m_spend_secret_key, electrum_words);
|
bool success = m_wallet->get_seed(electrum_words);
|
||||||
|
|
||||||
crypto::secret_key second;
|
if (success)
|
||||||
keccak((uint8_t *)&m_wallet->get_account().get_keys().m_spend_secret_key, sizeof(crypto::secret_key), (uint8_t *)&second, sizeof(crypto::secret_key));
|
|
||||||
|
|
||||||
sc_reduce32((uint8_t *)&second);
|
|
||||||
|
|
||||||
if (memcmp(second.data,m_wallet->get_account().get_keys().m_view_secret_key.data, sizeof(crypto::secret_key))==0)
|
|
||||||
{
|
{
|
||||||
success_msg_writer(true) << "\nPLEASE NOTE: the following 24 words can be used to recover access to your wallet. Please write them down and store them somewhere safe and secure. Please do not store them in your email or on file storage services outside of your immediate control.\n";
|
success_msg_writer(true) << "\nPLEASE NOTE: the following 24 words can be used to recover access to your wallet. Please write them down and store them somewhere safe and secure. Please do not store them in your email or on file storage services outside of your immediate control.\n";
|
||||||
std::cout << electrum_words << std::endl;
|
std::cout << electrum_words << std::endl;
|
||||||
|
|
|
@ -45,7 +45,13 @@ using namespace epee;
|
||||||
#include "crypto/crypto.h"
|
#include "crypto/crypto.h"
|
||||||
#include "serialization/binary_utils.h"
|
#include "serialization/binary_utils.h"
|
||||||
#include "cryptonote_protocol/blobdatatype.h"
|
#include "cryptonote_protocol/blobdatatype.h"
|
||||||
|
#include "crypto/electrum-words.h"
|
||||||
|
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
#include "crypto/keccak.h"
|
||||||
|
#include "crypto/crypto-ops.h"
|
||||||
|
}
|
||||||
using namespace cryptonote;
|
using namespace cryptonote;
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
|
@ -78,6 +84,18 @@ void wallet2::init(const std::string& daemon_address, uint64_t upper_transaction
|
||||||
m_daemon_address = daemon_address;
|
m_daemon_address = daemon_address;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------
|
||||||
|
bool wallet2::get_seed(std::string& electrum_words)
|
||||||
|
{
|
||||||
|
crypto::ElectrumWords::bytes_to_words(get_account().get_keys().m_spend_secret_key, electrum_words);
|
||||||
|
|
||||||
|
crypto::secret_key second;
|
||||||
|
keccak((uint8_t *)&get_account().get_keys().m_spend_secret_key, sizeof(crypto::secret_key), (uint8_t *)&second, sizeof(crypto::secret_key));
|
||||||
|
|
||||||
|
sc_reduce32((uint8_t *)&second);
|
||||||
|
|
||||||
|
return memcmp(second.data,get_account().get_keys().m_view_secret_key.data, sizeof(crypto::secret_key)) == 0;
|
||||||
|
}
|
||||||
|
//----------------------------------------------------------------------------------------------------
|
||||||
void wallet2::process_new_transaction(const cryptonote::transaction& tx, uint64_t height)
|
void wallet2::process_new_transaction(const cryptonote::transaction& tx, uint64_t height)
|
||||||
{
|
{
|
||||||
process_unconfirmed(tx);
|
process_unconfirmed(tx);
|
||||||
|
|
|
@ -151,6 +151,8 @@ namespace tools
|
||||||
i_wallet2_callback* callback() const { return m_callback; }
|
i_wallet2_callback* callback() const { return m_callback; }
|
||||||
void callback(i_wallet2_callback* callback) { m_callback = callback; }
|
void callback(i_wallet2_callback* callback) { m_callback = callback; }
|
||||||
|
|
||||||
|
bool get_seed(std::string& electrum_words);
|
||||||
|
|
||||||
void refresh();
|
void refresh();
|
||||||
void refresh(uint64_t start_height, size_t & blocks_fetched);
|
void refresh(uint64_t start_height, size_t & blocks_fetched);
|
||||||
void refresh(uint64_t start_height, size_t & blocks_fetched, bool& received_money);
|
void refresh(uint64_t start_height, size_t & blocks_fetched, bool& received_money);
|
||||||
|
|
Loading…
Reference in a new issue