m_cmd_binder.set_handler("check_tx_key",boost::bind(&simple_wallet::check_tx_key,this,_1),tr("Check amount going to <address> in <txid>"));
m_cmd_binder.set_handler("check_tx_key",boost::bind(&simple_wallet::check_tx_key,this,_1),tr("Check amount going to <address> in <txid>"));
m_cmd_binder.set_handler("get_tx_proof",boost::bind(&simple_wallet::get_tx_proof,this,_1),tr("Generate a signature proving payment/receipt of money to/by <address> in <txid> using the transaction/view secret key"));
m_cmd_binder.set_handler("get_tx_proof",boost::bind(&simple_wallet::get_tx_proof,this,_1),tr("Generate a signature proving payment/receipt of money to/by <address> in <txid> using the transaction/view secret key"));
m_cmd_binder.set_handler("check_tx_proof",boost::bind(&simple_wallet::check_tx_proof,this,_1),tr("Check tx proof for payment going to <address> in <txid>"));
m_cmd_binder.set_handler("check_tx_proof",boost::bind(&simple_wallet::check_tx_proof,this,_1),tr("Check tx proof for payment going to <address> in <txid>"));
m_cmd_binder.set_handler("get_spend_proof",boost::bind(&simple_wallet::get_spend_proof,this,_1),tr("Generate a signature proving that you generated <txid> using the spend secret key"));
m_cmd_binder.set_handler("check_spend_proof",boost::bind(&simple_wallet::check_spend_proof,this,_1),tr("Check a signature proving that the signer generated <txid>"));
m_cmd_binder.set_handler("show_transfers",boost::bind(&simple_wallet::show_transfers,this,_1),tr("show_transfers [in|out|pending|failed|pool] [index=<N1>[,<N2>,...]] [<min_height> [<max_height>]] - Show incoming/outgoing transfers within an optional height range"));
m_cmd_binder.set_handler("show_transfers",boost::bind(&simple_wallet::show_transfers,this,_1),tr("show_transfers [in|out|pending|failed|pool] [index=<N1>[,<N2>,...]] [<min_height> [<max_height>]] - Show incoming/outgoing transfers within an optional height range"));
m_cmd_binder.set_handler("unspent_outputs",boost::bind(&simple_wallet::unspent_outputs,this,_1),tr("unspent_outputs [index=<N1>[,<N2>,...]] [<min_amount> [<max_amount>]] - Show unspent outputs of a specified address within an optional amount range"));
m_cmd_binder.set_handler("unspent_outputs",boost::bind(&simple_wallet::unspent_outputs,this,_1),tr("unspent_outputs [index=<N1>[,<N2>,...]] [<min_amount> [<max_amount>]] - Show unspent outputs of a specified address within an optional amount range"));
m_cmd_binder.set_handler("rescan_bc",boost::bind(&simple_wallet::rescan_blockchain,this,_1),tr("Rescan blockchain from scratch"));
m_cmd_binder.set_handler("rescan_bc",boost::bind(&simple_wallet::rescan_blockchain,this,_1),tr("Rescan blockchain from scratch"));
"daemon returned wrong response for gettransactions, wrong txs count = "+
std::to_string(res.txs.size())+", expected 1");
cryptonote::blobdatabd;
THROW_WALLET_EXCEPTION_IF(!epee::string_tools::parse_hexstr_to_binbuff(res.txs[0].as_hex,bd),error::wallet_internal_error,"failed to parse tx from hexstr");
cryptonote::transactiontx;
crypto::hashtx_hash,tx_prefix_hash;
THROW_WALLET_EXCEPTION_IF(!cryptonote::parse_and_validate_tx_from_blob(bd,tx,tx_hash,tx_prefix_hash),error::wallet_internal_error,"failed to parse tx from blob");
"daemon returned wrong response for gettransactions, wrong txs count = "+
std::to_string(res.txs.size())+", expected 1");
cryptonote::blobdatabd;
THROW_WALLET_EXCEPTION_IF(!epee::string_tools::parse_hexstr_to_binbuff(res.txs[0].as_hex,bd),error::wallet_internal_error,"failed to parse tx from hexstr");
cryptonote::transactiontx;
crypto::hashtx_hash,tx_prefix_hash;
THROW_WALLET_EXCEPTION_IF(!cryptonote::parse_and_validate_tx_from_blob(bd,tx,tx_hash,tx_prefix_hash),error::wallet_internal_error,"failed to parse tx from blob");