aboutsummaryrefslogtreecommitdiff
path: root/src/simplewallet/simplewallet.cpp
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2014-09-15 16:42:50 +0200
committerRiccardo Spagni <ric@spagni.net>2014-09-15 16:46:21 +0200
commit83276bf92d44c1aa1b6acbd9879f70e806f12af6 (patch)
treef37e154c5fd9e7f8b2295e3e3a1091f8670b52b7 /src/simplewallet/simplewallet.cpp
parentfdae09754e95eb00c34bbfd3b35f09a4f23f1cc5 (diff)
parent72a80f6213fbd427e3a476f4e5a230e258d1ca38 (diff)
downloadmonzero-core-83276bf92d44c1aa1b6acbd9879f70e806f12af6.tar.gz
monzero-core-83276bf92d44c1aa1b6acbd9879f70e806f12af6.tar.xz
monzero-core-83276bf92d44c1aa1b6acbd9879f70e806f12af6.zip
Merge pull request #139
72a80f6 fixed incorrect version reference (Riccardo Spagni) 95a2701 Change testnet prefix (Zachary Michaels) 120c84d Make P2P use the testnet data dir (Zachary Michaels) 2352565 Replace macro with equivalent function call (Zachary Michaels) d033087 Separate testnet address prefix (Zachary Michaels) ee1bacc Add testnet seed nodes (Zachary Michaels) 4a6eb0a Create testnet data dir if necessary (Zachary Michaels) 018e251 Separate testnet default data dir (Zachary Michaels) 3ef7f33 Add descriptions for RPC command line params (Zachary Michaels) 1e38a02 Add testnet genesis tx as output by CN reference (Zachary Michaels) 96eed84 Pass tx and nonce to genesis block constructor (Zachary Michaels) 257077a Separate network id for testnet (Zachary Michaels) 658b669 Separate rpc port for testnet (Zachary Michaels) 98ed9a4 Separate p2p port for testnet (Zachary Michaels) fb4146f Reorganize testnet constants (Zachary Michaels) 79862ad Add testnet constants (Zachary Michaels) 07470fd Add testnet flag (Zachary Michaels) 32004a7 increase ABSTRACT_SERVER_SEND_QUE_MAX_COUNT to a more sane value (Riccardo Spagni) 2c0a87f additional README info on static builds and FreeBSD (Riccardo Spagni)
Diffstat (limited to 'src/simplewallet/simplewallet.cpp')
-rw-r--r--src/simplewallet/simplewallet.cpp42
1 files changed, 27 insertions, 15 deletions
diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp
index e822e6636..fbe7c4730 100644
--- a/src/simplewallet/simplewallet.cpp
+++ b/src/simplewallet/simplewallet.cpp
@@ -72,6 +72,7 @@ namespace
const command_line::arg_descriptor<bool> arg_non_deterministic = {"non-deterministic", "creates non-deterministic view and spend keys", false};
const command_line::arg_descriptor<int> arg_daemon_port = {"daemon-port", "Use daemon instance at port <arg> instead of 8081", 0};
const command_line::arg_descriptor<uint32_t> arg_log_level = {"set_log", "", 0, true};
+ const command_line::arg_descriptor<bool> arg_testnet = {"testnet", "Used to deploy test nets. The daemon must be launched with --testnet flag", false};
const command_line::arg_descriptor< std::vector<std::string> > arg_command = {"command", ""};
@@ -327,10 +328,16 @@ bool simple_wallet::init(const boost::program_options::variables_map& vm)
if(!ask_wallet_create_if_needed()) return false;
}
+ bool testnet = command_line::get_arg(vm, arg_testnet);
+
if (m_daemon_host.empty())
m_daemon_host = "localhost";
+
if (!m_daemon_port)
- m_daemon_port = RPC_DEFAULT_PORT;
+ {
+ m_daemon_port = testnet ? config::testnet::RPC_DEFAULT_PORT : config::RPC_DEFAULT_PORT;
+ }
+
if (m_daemon_address.empty())
m_daemon_address = std::string("http://") + m_daemon_host + ":" + std::to_string(m_daemon_port);
@@ -378,12 +385,12 @@ bool simple_wallet::init(const boost::program_options::variables_map& vm)
return false;
}
}
- bool r = new_wallet(m_wallet_file, pwd_container.password(), m_recovery_key, m_restore_deterministic_wallet, m_non_deterministic);
+ bool r = new_wallet(m_wallet_file, pwd_container.password(), m_recovery_key, m_restore_deterministic_wallet, m_non_deterministic, testnet);
CHECK_AND_ASSERT_MES(r, false, "account creation failed");
}
else
{
- bool r = open_wallet(m_wallet_file, pwd_container.password());
+ bool r = open_wallet(m_wallet_file, pwd_container.password(), testnet);
CHECK_AND_ASSERT_MES(r, false, "could not open account");
}
@@ -423,18 +430,20 @@ bool simple_wallet::try_connect_to_daemon()
}
//----------------------------------------------------------------------------------------------------
-bool simple_wallet::new_wallet(const string &wallet_file, const std::string& password, const crypto::secret_key& recovery_key, bool recover, bool two_random)
+bool simple_wallet::new_wallet(const string &wallet_file, const std::string& password, const crypto::secret_key& recovery_key, bool recover, bool two_random, bool testnet)
{
m_wallet_file = wallet_file;
- m_wallet.reset(new tools::wallet2());
+ m_wallet.reset(new tools::wallet2(testnet));
m_wallet->callback(this);
crypto::secret_key recovery_val;
try
{
recovery_val = m_wallet->generate(wallet_file, password, recovery_key, recover, two_random);
- message_writer(epee::log_space::console_color_white, true) << "Generated new wallet: " << m_wallet->get_account().get_public_address_str() << std::endl << "view key: " << string_tools::pod_to_hex(m_wallet->get_account().get_keys().m_view_secret_key);
+ message_writer(epee::log_space::console_color_white, true) << "Generated new wallet: "
+ << m_wallet->get_account().get_public_address_str(m_wallet->testnet()) << std::endl << "view key: "
+ << string_tools::pod_to_hex(m_wallet->get_account().get_keys().m_view_secret_key);
}
catch (const std::exception& e)
{
@@ -471,16 +480,17 @@ bool simple_wallet::new_wallet(const string &wallet_file, const std::string& pas
return true;
}
//----------------------------------------------------------------------------------------------------
-bool simple_wallet::open_wallet(const string &wallet_file, const std::string& password)
+bool simple_wallet::open_wallet(const string &wallet_file, const std::string& password, bool testnet)
{
m_wallet_file = wallet_file;
- m_wallet.reset(new tools::wallet2());
+ m_wallet.reset(new tools::wallet2(testnet));
m_wallet->callback(this);
try
{
m_wallet->load(m_wallet_file, password);
- message_writer(epee::log_space::console_color_white, true) << "Opened wallet: " << m_wallet->get_account().get_public_address_str();
+ message_writer(epee::log_space::console_color_white, true) << "Opened wallet: "
+ << m_wallet->get_account().get_public_address_str(m_wallet->testnet());
}
catch (const std::exception& e)
{
@@ -541,7 +551,7 @@ bool simple_wallet::start_mining(const std::vector<std::string>& args)
return true;
COMMAND_RPC_START_MINING::request req;
- req.miner_address = m_wallet->get_account().get_public_address_str();
+ req.miner_address = m_wallet->get_account().get_public_address_str(m_wallet->testnet());
bool ok = true;
size_t max_mining_threads_count = (std::max)(std::thread::hardware_concurrency(), static_cast<unsigned>(2));
@@ -898,7 +908,7 @@ bool simple_wallet::transfer(const std::vector<std::string> &args_)
for (size_t i = 0; i < local_args.size(); i += 2)
{
cryptonote::tx_destination_entry de;
- if(!get_account_address_from_str(de.addr, local_args[i]))
+ if(!get_account_address_from_str(de.addr, m_wallet->testnet(), local_args[i]))
{
fail_msg_writer() << "wrong address: " << local_args[i];
return true;
@@ -1028,7 +1038,7 @@ bool simple_wallet::transfer(const std::vector<std::string> &args_)
//----------------------------------------------------------------------------------------------------
bool simple_wallet::run()
{
- std::string addr_start = m_wallet->get_account().get_public_address_str().substr(0, 6);
+ std::string addr_start = m_wallet->get_account().get_public_address_str(m_wallet->testnet()).substr(0, 6);
return m_cmd_binder.run_handling("[wallet " + addr_start + "]: ", "");
}
//----------------------------------------------------------------------------------------------------
@@ -1040,7 +1050,7 @@ void simple_wallet::stop()
//----------------------------------------------------------------------------------------------------
bool simple_wallet::print_address(const std::vector<std::string> &args/* = std::vector<std::string>()*/)
{
- success_msg_writer() << m_wallet->get_account().get_public_address_str();
+ success_msg_writer() << m_wallet->get_account().get_public_address_str(m_wallet->testnet());
return true;
}
//----------------------------------------------------------------------------------------------------
@@ -1075,6 +1085,7 @@ int main(int argc, char* argv[])
command_line::add_arg(desc_params, arg_restore_deterministic_wallet );
command_line::add_arg(desc_params, arg_non_deterministic );
command_line::add_arg(desc_params, arg_electrum_seed );
+ command_line::add_arg(desc_params, arg_testnet);
tools::wallet_rpc_server::init_options(desc_params);
po::positional_options_description positional_options;
@@ -1144,6 +1155,7 @@ int main(int argc, char* argv[])
return 1;
}
+ bool testnet = command_line::get_arg(vm, arg_testnet);
std::string wallet_file = command_line::get_arg(vm, arg_wallet_file);
std::string wallet_password = command_line::get_arg(vm, arg_password);
std::string daemon_address = command_line::get_arg(vm, arg_daemon_address);
@@ -1152,11 +1164,11 @@ int main(int argc, char* argv[])
if (daemon_host.empty())
daemon_host = "localhost";
if (!daemon_port)
- daemon_port = RPC_DEFAULT_PORT;
+ daemon_port = config::RPC_DEFAULT_PORT;
if (daemon_address.empty())
daemon_address = std::string("http://") + daemon_host + ":" + std::to_string(daemon_port);
- tools::wallet2 wal;
+ tools::wallet2 wal(testnet);
try
{
LOG_PRINT_L0("Loading wallet...");