message: Add PublicKey support to the client
diff: @@ -16,15 +16,15 @@ use serde_json::Value as JsonValue;
  use casper_execution_engine::core::engine_state::executable_deploy_item::ExecutableDeployItem;
  use casper_node::{
  - crypto::hash::Digest,
  + crypto::{asymmetric_key::PublicKey as NodePublicKey, hash::Digest},
  rpcs::account::PutDeployParams,
  types::{Deploy, TimeDiff, Timestamp},
  };
  use casper_types::{
  account::AccountHash,
  bytesrepr::{self, ToBytes},
  - AccessRights, CLType, CLTyped, CLValue, ContractHash, Key, NamedArg, RuntimeArgs, URef, U128,
  - U256, U512,
  + AccessRights, CLType, CLTyped, CLValue, ContractHash, Key, NamedArg, PublicKey, RuntimeArgs,
  + URef, U128, U256, U512,
  };
  use crate::common;
  @@ -125,6 +125,14 @@ pub(super) mod show_arg_examples {
  "uref_name:uref='{}'",
  URef::new(array, AccessRights::READ_ADD_WRITE).to_formatted_string()
  );
  + println!(
  + "public_key_name:public_key='{}'",
  + NodePublicKey::from_hex(
  + "0119bf44096984cdfe8541bac167dc3b96c85086aa30b6b6cb0c5c38ad703166e1"
  + )
  + .unwrap()
  + .to_hex()
  + );
  true
  }
  @@ -339,6 +347,7 @@ pub(super) mod arg_simple {
  ("key", CLType::Key),
  ("account_hash", AccountHash::cl_type()),
  ("uref", CLType::URef),
  + ("public_key", CLType::PublicKey),
  ];
  static ref SUPPORTED_LIST: String = {
  let mut msg = String::new();
  @@ -432,6 +441,7 @@ pub(super) mod arg_simple {
  t if t == SUPPORTED_TYPES[11].0 => SUPPORTED_TYPES[11].1.clone(),
  t if t == SUPPORTED_TYPES[12].0 => SUPPORTED_TYPES[12].1.clone(),
  t if t == SUPPORTED_TYPES[13].0 => SUPPORTED_TYPES[13].1.clone(),
  + t if t == SUPPORTED_TYPES[14].0 => SUPPORTED_TYPES[14].1.clone(),
  _ => panic!(
  "unknown variant {}, expected one of {}",
  parts[1], *SUPPORTED_LIST
  @@ -519,6 +529,12 @@ pub(super) mod arg_simple {
  .unwrap_or_else(|error| panic!("can't parse {} as URef: {:?}", value, error));
  CLValue::from_t(uref).unwrap()
  }
  + CLType::PublicKey => {
  + let pub_key = NodePublicKey::from_hex(value).unwrap_or_else(|error| {
  + panic!("can't parse {} as PublicKey: {:?}", value, error)
  + });
  + CLValue::from_t(PublicKey::from(pub_key)).unwrap()
  + }
  _ => unreachable!(),
  };
  runtime_args.insert_cl_value(name, cl_value);
  