message: Ref Update push-trx command
  Update `eosc push-trx` to `eosc push transaction`
diff: @@ -236,10 +236,7 @@ int send_command (const vector<string> &cmd_line)
  std::cout << "Command list: info, block, exec, account, push-trx, setcode, transfer, create, import, unlock, lock, do, transaction, and transactions\n";
  return -1;
  }
  - else if( command == "push-trx" ) {
  - auto trx_result = call (push_txn_func, fc::json::from_string( cmd_line[1]));
  - std::cout << fc::json::to_pretty_string(trx_result) << std::endl;
  - } else if ( command == "setcode" ) {
  + else if ( command == "setcode" ) {
  if( cmd_line.size() == 1 ) {
  std::cout << "usage: "<< program << " " << command <<" ACCOUNT FILE.WAST FILE.ABI" << std::endl;
  return -1;
  @@ -425,20 +422,25 @@ int main( int argc, char** argv ) {
  }
  // Exec subcommand
  + {
  + auto exec = app.add_subcommand("exec", "Execute arbitrary transactions on the blockchain", false);
  + exec->require_subcommand();
  +
  + // exec message
  {
  vector<string> permissions = {"joe@active"};
  string contract = "exchange";
  string action = "deposit";
  string data;
  vector<string> scopes = {"joe", "exchange"};
  - auto execSubcommand = app.add_subcommand("exec", "Execute an arbitrary message on the blockchain");
  - execSubcommand->add_option("contract", contract,
  + auto messageSubcommand = exec->add_subcommand("message", "Execute a transaction with a single message");
  + messageSubcommand->add_option("contract", contract,
  "The account providing the contract to execute", true)->required();
  - execSubcommand->add_option("action", action, "The action to execute on the contract", true)->required();
  - execSubcommand->add_option("data", data, "The arguments to the contract")->required();
  - execSubcommand->add_option("-p,--permission", permissions, "An account and permission level to authorize", true);
  - execSubcommand->add_option("-s,--scope", scopes, "An account in scope for this operation", true);
  - execSubcommand->set_callback([&] {
  + messageSubcommand->add_option("action", action, "The action to execute on the contract", true)->required();
  + messageSubcommand->add_option("data", data, "The arguments to the contract")->required();
  + messageSubcommand->add_option("-p,--permission", permissions, "An account and permission level to authorize", true);
  + messageSubcommand->add_option("-s,--scope", scopes, "An account in scope for this operation", true);
  + messageSubcommand->set_callback([&] {
  ilog("Converting argument to binary...");
  auto arg= fc::mutable_variant_object
  ("code", contract)
  @@ -462,6 +464,18 @@ int main( int argc, char** argv ) {
  });
  }
  + // exec transaction
  + {
  + string trxJson;
  + auto trxSubcommand = exec->add_subcommand("transaction", "Execute an arbitrary JSON transaction");
  + trxSubcommand->add_option("transaction", trxJson, "The JSON of the transaction to execute")->required();
  + trxSubcommand->set_callback([&] {
  + auto trx_result = call(push_txn_func, fc::json::from_string(trxJson));
  + std::cout << fc::json::to_pretty_string(trx_result) << std::endl;
  + });
  + }
  + }
  +
  try {
  app.parse(argc, argv);
  } catch (const CLI::ParseError &e) {
  