public string PayloadEncrypt(string payload, PayloadEncryptionMethod payload_method, string pwd)
 {
     return(Invoke <string>(ApiMethodName.payloadencrypt.ToString(), new Dictionary <string, object>()
     {
         ["payload"] = payload,
         ["payload_method"] = ToPayloadMethodString(payload_method),
         ["pwd"] = pwd
     }));
 }
        protected string ToPayloadMethodString(PayloadEncryptionMethod payload)
        {
            switch (payload)
            {
            case PayloadEncryptionMethod.None:
                return("none");

            case PayloadEncryptionMethod.Dest:
                return("dest");

            case PayloadEncryptionMethod.Sender:
                return("sender");

            case PayloadEncryptionMethod.Aes:
                return("aes");

            default:
                throw new ArgumentOutOfRangeException(nameof(payload), payload, null);
            }
        }
 /// <summary>
 /// Encrypt a text "paylad" using "payload_method"
 /// </summary>
 /// <param name="payload">HEXASTRING - Text to encrypt in hexadecimal format</param>
 /// <param name="payload_method">Payload method</param>
 /// <param name="pwd">Using a Password. Must provide pwd param</param>
 /// <returns>Returns a HEXASTRING with encrypted payload</returns>
 public static Task <string> PayloadEncryptAsync(this IPascalCoinClient client, string payload, PayloadEncryptionMethod payload_method, string pwd)
 {
     return(Task.Run(() => client.PayloadEncrypt(payload, payload_method, pwd)));
 }