private TransactionEnvelope ToEnvelopeXdr(TransactionXdrVersion version, DecoratedSignature[] signatures)
        {
            var thisXdr = new TransactionEnvelope();

            if (version == TransactionXdrVersion.V0)
            {
                thisXdr.Discriminant = new EnvelopeType {
                    InnerValue = EnvelopeType.EnvelopeTypeEnum.ENVELOPE_TYPE_TX_V0
                };
                thisXdr.V0 = new TransactionV0Envelope();

                var transaction = ToXdrV0();
                thisXdr.V0.Tx         = transaction;
                thisXdr.V0.Signatures = signatures;
            }
            else if (version == TransactionXdrVersion.V1)
            {
                thisXdr.Discriminant = new EnvelopeType {
                    InnerValue = EnvelopeType.EnvelopeTypeEnum.ENVELOPE_TYPE_TX
                };
                thisXdr.V1 = new TransactionV1Envelope();
                var transaction = ToXdrV1();
                thisXdr.V1.Tx         = transaction;
                thisXdr.V1.Signatures = signatures;
            }
            else
            {
                throw new Exception($"Invalid TransactionXdrVersion {version}");
            }
            return(thisXdr);
        }
 public override TransactionEnvelope ToUnsignedEnvelopeXdr(TransactionXdrVersion version = TransactionXdrVersion.V1)
 {
     if (Signatures.Count > 0)
     {
         throw new TooManySignaturesException("FeeBumpTransaction must not be signed. Use ToEnvelopeXDR.");
     }
     return(ToEnvelopeXdr(version, new DecoratedSignature[0]));
 }
        /// <summary>
        ///     Generates TransactionEnvelope XDR object. Transaction need to have at least one signature.
        /// </summary>
        /// <returns></returns>
        public override TransactionEnvelope ToEnvelopeXdr(TransactionXdrVersion version = TransactionXdrVersion.V1)
        {
            if (Signatures.Count == 0)
            {
                throw new NotEnoughSignaturesException("Transaction must be signed by at least one signer. Use transaction.sign().");
            }

            return(ToEnvelopeXdr(version, Signatures.ToArray()));
        }
Example #4
0
        /// <summary>
        ///     Returns base64-encoded TransactionEnvelope XDR object. Transaction need to have at least one signature.
        /// </summary>
        /// <returns></returns>
        public string ToEnvelopeXdrBase64(TransactionXdrVersion version = TransactionXdrVersion.V1)
        {
            var envelope = ToEnvelopeXdr(version);
            var writer   = new XdrDataOutputStream();

            TransactionEnvelope.Encode(writer, envelope);

            return(Convert.ToBase64String(writer.ToArray()));
        }
 private TransactionEnvelope ToEnvelopeXdr(TransactionXdrVersion version, DecoratedSignature[] signatures)
 {
     return(new TransactionEnvelope
     {
         Discriminant =
             new EnvelopeType {
             InnerValue = EnvelopeType.EnvelopeTypeEnum.ENVELOPE_TYPE_TX_FEE_BUMP
         },
         FeeBump = new FeeBumpTransactionEnvelope {
             Tx = ToXdr(), Signatures = signatures
         }
     });
 }
Example #6
0
 /// <summary>
 ///     Generates TransactionEnvelope XDR object. This transaction MUST be signed before being useful
 /// </summary>
 /// <param name="version">The envelope version to generated. Defaults to V0</param>
 /// <returns></returns>
 public abstract TransactionEnvelope ToUnsignedEnvelopeXdr(TransactionXdrVersion version = TransactionXdrVersion.V1);
 /// <summary>
 ///     Generates TransactionEnvelope XDR object. Transaction need to have at least one signature.
 /// </summary>
 /// <param name="version">The envelope version to generated. Defaults to V0</param>
 /// <returns></returns>
 public abstract TransactionEnvelope ToEnvelopeXdr(TransactionXdrVersion version = TransactionXdrVersion.V0);