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())); }
/// <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 } }); }
/// <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);