wallet2: factor new blockchain setup

This commit is contained in:
moneromooo-monero 2018-09-03 10:48:28 +00:00
parent 91c7d68b2d
commit be6acfd5be
No known key found for this signature in database
GPG Key ID: 686F07454D6CEFC3
2 changed files with 18 additions and 36 deletions

View File

@ -3324,6 +3324,15 @@ void wallet2::decrypt_keys(const epee::wipeable_string &password)
decrypt_keys(key); decrypt_keys(key);
} }
void wallet2::setup_new_blockchain()
{
cryptonote::block b;
generate_genesis(b);
m_blockchain.push_back(get_block_hash(b));
m_last_block_reward = cryptonote::get_outs_money_amount(b.miner_tx);
add_subaddress_account(tr("Primary account"));
}
/*! /*!
* \brief Generates a wallet or restores one. * \brief Generates a wallet or restores one.
* \param wallet_ Name of wallet file * \param wallet_ Name of wallet file
@ -3412,11 +3421,7 @@ void wallet2::generate(const std::string& wallet_, const epee::wipeable_string&
} }
} }
cryptonote::block b; setup_new_blockchain();
generate_genesis(b);
m_blockchain.push_back(get_block_hash(b));
m_last_block_reward = cryptonote::get_outs_money_amount(b.miner_tx);
add_subaddress_account(tr("Primary account"));
if (!wallet_.empty()) if (!wallet_.empty())
store(); store();
@ -3472,11 +3477,7 @@ crypto::secret_key wallet2::generate(const std::string& wallet_, const epee::wip
} }
} }
cryptonote::block b; setup_new_blockchain();
generate_genesis(b);
m_blockchain.push_back(get_block_hash(b));
m_last_block_reward = cryptonote::get_outs_money_amount(b.miner_tx);
add_subaddress_account(tr("Primary account"));
if (!wallet_.empty()) if (!wallet_.empty())
store(); store();
@ -3569,11 +3570,7 @@ void wallet2::generate(const std::string& wallet_, const epee::wipeable_string&
} }
} }
cryptonote::block b; setup_new_blockchain();
generate_genesis(b);
m_blockchain.push_back(get_block_hash(b));
m_last_block_reward = cryptonote::get_outs_money_amount(b.miner_tx);
add_subaddress_account(tr("Primary account"));
if (!wallet_.empty()) if (!wallet_.empty())
store(); store();
@ -3623,11 +3620,7 @@ void wallet2::generate(const std::string& wallet_, const epee::wipeable_string&
} }
} }
cryptonote::block b; setup_new_blockchain();
generate_genesis(b);
m_blockchain.push_back(get_block_hash(b));
m_last_block_reward = cryptonote::get_outs_money_amount(b.miner_tx);
add_subaddress_account(tr("Primary account"));
if (!wallet_.empty()) if (!wallet_.empty())
store(); store();
@ -3665,17 +3658,13 @@ void wallet2::restore(const std::string& wallet_, const epee::wipeable_string& p
r = file_io_utils::save_string_to_file(m_wallet_file + ".address.txt", m_account.get_public_address_str(m_nettype)); r = file_io_utils::save_string_to_file(m_wallet_file + ".address.txt", m_account.get_public_address_str(m_nettype));
if(!r) MERROR("String with address text not saved"); if(!r) MERROR("String with address text not saved");
} }
cryptonote::block b;
generate_genesis(b);
m_blockchain.push_back(get_block_hash(b));
if (m_subaddress_lookahead_major == SUBADDRESS_LOOKAHEAD_MAJOR && m_subaddress_lookahead_minor == SUBADDRESS_LOOKAHEAD_MINOR) if (m_subaddress_lookahead_major == SUBADDRESS_LOOKAHEAD_MAJOR && m_subaddress_lookahead_minor == SUBADDRESS_LOOKAHEAD_MINOR)
{ {
// the default lookahead setting (50:200) is clearly too much for hardware wallet // the default lookahead setting (50:200) is clearly too much for hardware wallet
m_subaddress_lookahead_major = 5; m_subaddress_lookahead_major = 5;
m_subaddress_lookahead_minor = 20; m_subaddress_lookahead_minor = 20;
} }
m_last_block_reward = cryptonote::get_outs_money_amount(b.miner_tx); setup_new_blockchain();
add_subaddress_account(tr("Primary account"));
if (!wallet_.empty()) { if (!wallet_.empty()) {
store(); store();
} }
@ -3782,11 +3771,7 @@ std::string wallet2::make_multisig(const epee::wipeable_string &password,
} }
} }
cryptonote::block b; setup_new_blockchain();
generate_genesis(b);
m_blockchain.push_back(get_block_hash(b));
m_last_block_reward = cryptonote::get_outs_money_amount(b.miner_tx);
add_subaddress_account(tr("Primary account"));
if (!m_wallet_file.empty()) if (!m_wallet_file.empty())
store(); store();
@ -4709,12 +4694,7 @@ void wallet2::rescan_blockchain(bool refresh)
{ {
clear(); clear();
cryptonote::block genesis; setup_new_blockchain();
generate_genesis(genesis);
crypto::hash genesis_hash = get_block_hash(genesis);
m_blockchain.push_back(genesis_hash);
m_last_block_reward = cryptonote::get_outs_money_amount(genesis.miner_tx);
add_subaddress_account(tr("Primary account"));
if (refresh) if (refresh)
this->refresh(false); this->refresh(false);

View File

@ -1241,6 +1241,8 @@ namespace tools
void cache_tx_data(const cryptonote::transaction& tx, const crypto::hash &txid, tx_cache_data &tx_cache_data) const; void cache_tx_data(const cryptonote::transaction& tx, const crypto::hash &txid, tx_cache_data &tx_cache_data) const;
void setup_new_blockchain();
cryptonote::account_base m_account; cryptonote::account_base m_account;
boost::optional<epee::net_utils::http::login> m_daemon_login; boost::optional<epee::net_utils::http::login> m_daemon_login;
std::string m_daemon_address; std::string m_daemon_address;