fromV1EnvelopeXdr static method

Transaction fromV1EnvelopeXdr(
  1. XdrTransactionV1Envelope envelope
)

Creates a Transaction instance from a XdrTransactionV1Envelope envelope.

Implementation

static Transaction fromV1EnvelopeXdr(XdrTransactionV1Envelope envelope) {
  XdrTransaction? tx = envelope.tx;
  int mFee = tx.fee.uint32;

  int mSequenceNumber = tx.seqNum.sequenceNumber.int64;
  Memo? mMemo = Memo.fromXdr(tx.memo);
  TransactionPreconditions mPreconditions =
      TransactionPreconditions.fromXdr(tx.preconditions);

  List<Operation> mOperations = List<Operation>.empty(growable: true);
  for (int i = 0; i < tx.operations.length; i++) {
    mOperations.add(Operation.fromXdr(tx.operations[i]));
  }

  Transaction transaction = Transaction(
      MuxedAccount.fromXdr(tx.sourceAccount),
      mFee,
      mSequenceNumber,
      mOperations,
      mMemo,
      mPreconditions,
      sorobanTransactionData: tx.ext.sorobanTransactionData);

  for (XdrDecoratedSignature? signature in envelope.signatures) {
    if (signature != null) {
      transaction._mSignatures.add(signature);
    }
  }

  return transaction;
}