toV0Xdr method

XdrTransactionV0 toV0Xdr ()

Generates a V0 Transaction XDR object for this transaction.

Implementation

XdrTransactionV0 toV0Xdr() {
  // fee
  XdrUint32 fee = XdrUint32();
  fee.uint32 = _mFee;
  // sequenceNumber
  XdrInt64 sequenceNumberUint = XdrInt64();
  sequenceNumberUint.int64 = _mSequenceNumber;
  XdrSequenceNumber sequenceNumber = XdrSequenceNumber();
  sequenceNumber.sequenceNumber = sequenceNumberUint;
  XdrPublicKey sourcePublickKey =
      KeyPair.fromAccountId(_mSourceAccount.ed25519AccountId).xdrPublicKey;
  // sourceAccount
  XdrAccountID sourceAccount = XdrAccountID();
  sourceAccount.accountID = sourcePublickKey;
  // operations
  List<XdrOperation> operations = List<XdrOperation>(_mOperations.length);
  for (int i = 0; i < _mOperations.length; i++) {
    operations[i] = _mOperations[i].toXdr();
  }
  // ext
  XdrTransactionV0Ext ext = XdrTransactionV0Ext();
  ext.discriminant = 0;

  XdrTransactionV0 transaction = XdrTransactionV0();
  transaction.fee = fee;
  transaction.seqNum = sequenceNumber;
  transaction.sourceAccountEd25519 = sourcePublickKey.getEd25519();
  transaction.operations = operations;
  transaction.memo = _mMemo.toXdr();
  transaction.timeBounds =
      (_mTimeBounds == null ? null : _mTimeBounds.toXdr());
  transaction.ext = ext;
  return transaction;
}