/// <summary>
 /// Signs a "Change Account Info" operation, suitable for cold wallet usage.
 /// </summary>
 /// <param name="account_target">Account being changed</param>
 /// <param name="account_signer">Account paying the fee (must have same public key as account_target)</param>
 /// <param name="new_enc_pubkey">New account public key encoded in hexadecimal format</param>
 /// <param name="new_b58_pubkey">New account public key encoded in base58 format</param>
 /// <param name="new_name">New account name encoded in PascalCoin64 format (null means keep current name)</param>
 /// <param name="new_type">New account type (null means keep current type)</param>
 /// <param name="last_n_operation">Last value of n_operation obtained with an Account object, for example when called to getaccount</param>
 /// <param name="fee">PASCURRENCY - Fee of the operation</param>
 /// <param name="payload">Payload "item" that will be included in this operation</param>
 /// <param name="payloadMethod">Encode type of the item payload</param>
 /// <param name="pwd">Used to encrypt payload with aes as a payload_method. If none equals to empty password</param>
 /// <param name="signer_b58_pubkey">The current public key of "account_signer" in base58 encoding</param>
 /// <param name="signer_enc_pubkey">The current public key of "account_signer" in hexadecimal encoding</param>
 /// <param name="rawoperations">HEXASTRING (optional) - If we want to add a sign operation with other previous operations, here we must put previous rawoperations result</param>
 /// <remarks>Only one or none of new_b58_pubkey, new_enc_pubkey should be used. Populating both will result in an error.</remarks>
 /// <returns>Returns a Raw Operations Object</returns>
 public static Task <Operation> SignChangeAccountInfo(this IPascalCoinClient client, uint account_target, uint account_signer, string new_enc_pubkey, string new_b58_pubkey, string new_name, ushort?new_type, uint last_n_operation, decimal fee, byte[] payload = null, PayloadEncryptionMethod?payloadMethod = null, string pwd = null, string signer_b58_pubkey = null, string signer_enc_pubkey = null, string rawoperations = null)
 {
     return(Task.Run(() => client.ChangeAccountInfo(account_target, account_signer, new_enc_pubkey, new_b58_pubkey, new_name, new_type, fee, payload, payloadMethod, pwd)));
 }