m_cmd_binder.set_handler("sweep_unmixable",boost::bind(&simple_wallet::sweep_unmixable,this,_1),tr("Send all unmixable outputs to yourself with ring_size 1"));
m_cmd_binder.set_handler("sweep_all",boost::bind(&simple_wallet::sweep_all,this,_1),tr("sweep_all [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> [<payment_id>] - Send all unlocked balance to an address. If the parameter \"index<N1>[,<N2>,...]\" is specified, the wallet sweeps outputs received by those address indices. If omitted, the wallet randomly chooses an address index to be used."));
m_cmd_binder.set_handler("sweep_below",boost::bind(&simple_wallet::sweep_below,this,_1),tr("sweep_below <amount_threshold> [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> [<payment_id>] - Send all unlocked outputs below the threshold to an address"));
m_cmd_binder.set_handler("sweep_single",boost::bind(&simple_wallet::sweep_single,this,_1),tr("sweep_single [<priority>] [<ring_size>] <key_image> <address> [<payment_id>] - Send a single output of the given key image to an address without change"));
m_cmd_binder.set_handler("donate",boost::bind(&simple_wallet::donate,this,_1),tr("donate [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <amount> [<payment_id>] - Donate <amount> to the development team (donate.getmonero.org)"));
m_cmd_binder.set_handler("sign_transfer",boost::bind(&simple_wallet::sign_transfer,this,_1),tr("Sign a transaction from a file"));
m_cmd_binder.set_handler("submit_transfer",boost::bind(&simple_wallet::submit_transfer,this,_1),tr("Submit a signed transaction from a file"));
fail_msg_writer()<<tr("no connection to daemon. Please make sure daemon is running.");
}
catch(consttools::error::wallet_rpc_error&e)
{
LOG_ERROR("RPC error: "<<e.to_string());
fail_msg_writer()<<tr("RPC error: ")<<e.what();
}
catch(consttools::error::get_random_outs_error&e)
{
fail_msg_writer()<<tr("failed to get random outputs to mix: ")<<e.what();
}
catch(consttools::error::not_enough_money&e)
{
LOG_PRINT_L0(boost::format("not enough money to transfer, available only %s, sent amount %s")%
print_money(e.available())%
print_money(e.tx_amount()));
fail_msg_writer()<<tr("Not enough money in unlocked balance");
}
catch(consttools::error::tx_not_possible&e)
{
LOG_PRINT_L0(boost::format("not enough money to transfer, available only %s, transaction amount %s = %s + %s (fee)")%
print_money(e.available())%
print_money(e.tx_amount()+e.fee())%
print_money(e.tx_amount())%
print_money(e.fee()));
fail_msg_writer()<<tr("Failed to find a way to create transactions. This is usually due to dust which is so small it cannot pay for itself in fees, or trying to send more money than the unlocked balance, or not leaving enough for fees");
std::vector<wallet2::pending_tx>create_transactions_2(std::vector<cryptonote::tx_destination_entry>dsts,constsize_tfake_outs_count,constuint64_tunlock_time,uint32_tpriority,conststd::vector<uint8_t>&extra,uint32_tsubaddr_account,std::set<uint32_t>subaddr_indices,booltrusted_daemon);// pass subaddr_indices by value on purpose