/// <summary>
        /// Creates new batch.
        /// </summary>
        /// <returns>The batch.</returns>
        /// <param name="transactions">Transactions.</param>
        public Batch CreateBatch(IEnumerable <Transaction> transactions)
        {
            var batchHeader = new BatchHeader();

            batchHeader.TransactionIds.AddRange(transactions.Select(x => x.HeaderSignature));
            batchHeader.SignerPublicKey = signer.GetPublicKey().ToHexString();

            var batch = new Batch();

            batch.Transactions.AddRange(transactions.Select(x => x.Clone()));
            batch.Header          = batchHeader.ToByteString();
            batch.HeaderSignature = signer.Sign(batchHeader.ToByteArray().ToSha256()).ToHexString();

            return(batch);
        }