/// <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;
        }
Ejemplo n.º 3
0
        //public override OperationThreshold Threshold
        //{
        //    get => OperationThreshold.High;
        //}

        public override Generated.Operation.OperationBody ToOperationBody()
        {
            var op = new Generated.SetOptionsOp();

            //if (InflationDestination != null)
            //{
            //    var inflationDestination = new Generated.AccountID();
            //    //inflationDestination.InnerValue = InflationDestination.XdrPublicKey;
            //    op.InflationDest = inflationDestination;
            //}

            //if (ClearFlags != 0)
            //{
            //    var clearFlags = new Generated.Uint32();
            //    clearFlags.InnerValue = ClearFlags;
            //    op.ClearFlags = clearFlags;
            //}

            //if (SetFlags != 0)
            //{
            //    var setFlags = new Generated.Uint32();
            //    setFlags.InnerValue = SetFlags;
            //    op.SetFlags = setFlags;
            //}

            if (MasterKeyWeight != 0)
            {
                var uint32 = new Generated.Uint32();
                uint32.InnerValue = MasterKeyWeight;
                op.MasterWeight   = uint32;
            }

            if (LowThreshold != 0)
            {
                var uint32 = new Generated.Uint32();
                uint32.InnerValue = LowThreshold;
                op.LowThreshold   = uint32;
            }

            if (MediumThreshold != 0)
            {
                var uint32 = new Generated.Uint32();
                uint32.InnerValue = MediumThreshold;
                op.MedThreshold   = uint32;
            }

            if (HighThreshold != 0)
            {
                var uint32 = new Generated.Uint32();
                uint32.InnerValue = HighThreshold;
                op.HighThreshold  = uint32;
            }

            //if (HomeDomain != null)
            //{
            //    var homeDomain = new Generated.String32();
            //    homeDomain.InnerValue = HomeDomain;
            //    op.HomeDomain = homeDomain;
            //}

            if (Signer != null)
            {
                var signer = new Generated.Signer();
                var weight = new Generated.Uint32();
                weight.InnerValue = SignerWeight & 0xFF;
                signer.Key        = Signer;
                signer.Weight     = weight;
                op.Signer         = signer;
            }

            var body = new Generated.Operation.OperationBody();

            body.Discriminant = Generated.OperationType.Create(Generated.OperationType.OperationTypeEnum.SET_OPTIONS);
            body.SetOptionsOp = op;
            return(body);
        }