fromV0EnvelopeXdr static method
Creates a Transaction instance from a XdrTransactionV0Envelope envelope
.
Implementation
static Transaction fromV0EnvelopeXdr(XdrTransactionV0Envelope envelope) {
XdrTransactionV0? tx = envelope.tx;
int? mFee = tx.fee.uint32;
String mSourceAccount =
KeyPair.fromPublicKey(tx.sourceAccountEd25519.uint256).accountId;
int mSequenceNumber = tx.seqNum.sequenceNumber.int64;
Memo mMemo = Memo.fromXdr(tx.memo);
TimeBounds? mTimeBounds = TimeBounds.fromXdr(tx.timeBounds!);
List<Operation> mOperations = List<Operation>.empty(growable: true);
for (int i = 0; i < tx.operations.length; i++) {
mOperations.add(Operation.fromXdr(tx.operations[i]));
}
MuxedAccount muxSource = MuxedAccount.fromAccountId(mSourceAccount)!;
TransactionPreconditions preconditions = TransactionPreconditions();
preconditions.timeBounds = mTimeBounds;
Transaction transaction = Transaction(
muxSource, mFee, mSequenceNumber, mOperations, mMemo, preconditions);
for (XdrDecoratedSignature? signature in envelope.signatures) {
if (signature != null) {
transaction._mSignatures.add(signature);
}
}
return transaction;
}