/// <summary>
        /// Generates Transaction XDR object.
        /// </summary>
        /// <returns></returns>
        public Generated.Transaction ToXDR()
        {
            // fee
            Generated.Uint32 fee = new Generated.Uint32((uint)mFee);
            // sequenceNumber
            Generated.Uint64         sequenceNumberUint = new Generated.Uint64((ulong)SequenceNumber);
            Generated.SequenceNumber sequenceNumber     = new Generated.SequenceNumber(sequenceNumberUint);

            // sourceAccount
            Generated.AccountID sourceAccount = new Generated.AccountID(SourceAccount.AccountId.InnerValue);
            // operations
            Generated.Operation[] operations = mOperations.Select(tx => tx.ToXDR()).ToArray();
            // ext
            Generated.Transaction.TransactionExt ext = new Generated.Transaction.TransactionExt()
            {
                Discriminant = 0
            };

            Generated.Transaction transaction = new Generated.Transaction()
            {
                Fee           = fee,
                SeqNum        = sequenceNumber,
                SourceAccount = sourceAccount,
                Operations    = operations,
                Memo          = Memo.ToXDR(),
                Ext           = ext,
                //TimeBounds = null,
            };

            return(transaction);
        }
        /// <summary>
        /// Generates Transaction XDR object.
        /// </summary>
        /// <returns></returns>
        public Generated.Transaction ToXdr()
        {
            // fee
            Generated.Uint32 fee = new Generated.Uint32((uint)mFee);
            // sequenceNumber
            Generated.Uint64 sequenceNumberUint = new Generated.Uint64((ulong)SequenceNumber);
            Generated.SequenceNumber sequenceNumber = new Generated.SequenceNumber(sequenceNumberUint);

            // sourceAccount
            Generated.AccountID sourceAccount = new Generated.AccountID(SourceAccount.AccountId.InnerValue);
            // operations
            Generated.Operation[] operations = mOperations.Select(tx => tx.ToXdr()).ToArray();
            // ext
            Generated.Transaction.TransactionExt ext = new Generated.Transaction.TransactionExt()
            {
                Discriminant = 0
            };

            Generated.Transaction transaction = new Generated.Transaction()
            {
                Fee = fee,
                SeqNum = sequenceNumber,
                SourceAccount = sourceAccount,
                Operations = operations,
                Memo = Memo,
                Ext = ext,
                //TimeBounds = null,
            };

            return transaction;
        }