protected void Sign <T>(ref T tblock) { if (!(tblock is TransactionBlock)) { throw new System.ApplicationException("APIResultCodes.InvalidBlockType"); } var block = tblock as TransactionBlock; // ServiceHash is excluded when calculating the block hash, // but it is included when creating/validating the authorization signature block.ServiceHash = _serviceAccount.GetLatestBlock().Hash; // sign with the authorizer key AuthorizationSignature authSignature = new AuthorizationSignature { Key = _serviceAccount.AccountId, Signature = Signatures.GetSignature(_serviceAccount.PrivateKey, block.Hash + block.ServiceHash) }; if (block.Authorizations == null) { block.Authorizations = new List <AuthorizationSignature>(); } block.Authorizations.Add(authSignature); }