simplewallet: Add input file parameter to sign_transfer
This commit is contained in:
parent
a1eca8ca7e
commit
021a28137d
|
@ -195,7 +195,7 @@ namespace
|
||||||
const char* USAGE_SWEEP_BELOW("sweep_below <amount_threshold> [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> [<payment_id (obsolete)>]");
|
const char* USAGE_SWEEP_BELOW("sweep_below <amount_threshold> [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> [<payment_id (obsolete)>]");
|
||||||
const char* USAGE_SWEEP_SINGLE("sweep_single [<priority>] [<ring_size>] [outputs=<N>] <key_image> <address> [<payment_id (obsolete)>]");
|
const char* USAGE_SWEEP_SINGLE("sweep_single [<priority>] [<ring_size>] [outputs=<N>] <key_image> <address> [<payment_id (obsolete)>]");
|
||||||
const char* USAGE_DONATE("donate [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <amount> [<payment_id (obsolete)>]");
|
const char* USAGE_DONATE("donate [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <amount> [<payment_id (obsolete)>]");
|
||||||
const char* USAGE_SIGN_TRANSFER("sign_transfer [export_raw]");
|
const char* USAGE_SIGN_TRANSFER("sign_transfer [export_raw] [<filename>]");
|
||||||
const char* USAGE_SET_LOG("set_log <level>|{+,-,}<categories>");
|
const char* USAGE_SET_LOG("set_log <level>|{+,-,}<categories>");
|
||||||
const char* USAGE_ACCOUNT("account\n"
|
const char* USAGE_ACCOUNT("account\n"
|
||||||
" account new <label text with white spaces allowed>\n"
|
" account new <label text with white spaces allowed>\n"
|
||||||
|
@ -3301,7 +3301,8 @@ simple_wallet::simple_wallet()
|
||||||
m_cmd_binder.set_handler("sign_transfer",
|
m_cmd_binder.set_handler("sign_transfer",
|
||||||
boost::bind(&simple_wallet::on_command, this, &simple_wallet::sign_transfer, _1),
|
boost::bind(&simple_wallet::on_command, this, &simple_wallet::sign_transfer, _1),
|
||||||
tr(USAGE_SIGN_TRANSFER),
|
tr(USAGE_SIGN_TRANSFER),
|
||||||
tr("Sign a transaction from a file. If the parameter \"export_raw\" is specified, transaction raw hex data suitable for the daemon RPC /sendrawtransaction is exported."));
|
tr("Sign a transaction from a file. If the parameter \"export_raw\" is specified, transaction raw hex data suitable for the daemon RPC /sendrawtransaction is exported.\n"
|
||||||
|
"Use the parameter <filename> to specify the file to read from. If not specified, the default \"unsigned_monero_tx\" will be used."));
|
||||||
m_cmd_binder.set_handler("submit_transfer",
|
m_cmd_binder.set_handler("submit_transfer",
|
||||||
boost::bind(&simple_wallet::on_command, this, &simple_wallet::submit_transfer, _1),
|
boost::bind(&simple_wallet::on_command, this, &simple_wallet::submit_transfer, _1),
|
||||||
tr("Submit a signed transaction from a file."));
|
tr("Submit a signed transaction from a file."));
|
||||||
|
@ -7886,19 +7887,33 @@ bool simple_wallet::sign_transfer(const std::vector<std::string> &args_)
|
||||||
fail_msg_writer() << tr("This is a watch only wallet");
|
fail_msg_writer() << tr("This is a watch only wallet");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (args_.size() > 1 || (args_.size() == 1 && args_[0] != "export_raw"))
|
|
||||||
|
bool export_raw = false;
|
||||||
|
std::string unsigned_filename = "unsigned_monero_tx";
|
||||||
|
if (args_.size() > 2 || (args_.size() == 2 && args_[0] != "export_raw"))
|
||||||
{
|
{
|
||||||
PRINT_USAGE(USAGE_SIGN_TRANSFER);
|
PRINT_USAGE(USAGE_SIGN_TRANSFER);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
else if (args_.size() == 2)
|
||||||
|
{
|
||||||
|
export_raw = true;
|
||||||
|
unsigned_filename = args_[1];
|
||||||
|
}
|
||||||
|
else if (args_.size() == 1)
|
||||||
|
{
|
||||||
|
if (args_[0] == "export_raw")
|
||||||
|
export_raw = true;
|
||||||
|
else
|
||||||
|
unsigned_filename = args_[0];
|
||||||
|
}
|
||||||
|
|
||||||
SCOPED_WALLET_UNLOCK();
|
SCOPED_WALLET_UNLOCK();
|
||||||
const bool export_raw = args_.size() == 1;
|
|
||||||
|
|
||||||
std::vector<tools::wallet2::pending_tx> ptx;
|
std::vector<tools::wallet2::pending_tx> ptx;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
bool r = m_wallet->sign_tx("unsigned_monero_tx", "signed_monero_tx", ptx, [&](const tools::wallet2::unsigned_tx_set &tx){ return accept_loaded_tx(tx); }, export_raw);
|
bool r = m_wallet->sign_tx(unsigned_filename, "signed_monero_tx", ptx, [&](const tools::wallet2::unsigned_tx_set &tx){ return accept_loaded_tx(tx); }, export_raw);
|
||||||
if (!r)
|
if (!r)
|
||||||
{
|
{
|
||||||
fail_msg_writer() << tr("Failed to sign transaction");
|
fail_msg_writer() << tr("Failed to sign transaction");
|
||||||
|
|
Loading…
Reference in New Issue