public static Transaction decode(XdrDataInputStream stream) throws IOException { Transaction decodedTransaction = new Transaction(); decodedTransaction.sourceAccount = AccountID.decode(stream); decodedTransaction.fee = Uint32.decode(stream); decodedTransaction.seqNum = SequenceNumber.decode(stream); int timeBoundsPresent = stream.readInt(); if (timeBoundsPresent != 0) { decodedTransaction.timeBounds = TimeBounds.decode(stream); } decodedTransaction.memo = Memo.decode(stream); int operationssize = stream.readInt(); decodedTransaction.operations = new Operation[operationssize]; for (int i = 0; i < operationssize; i++) { decodedTransaction.operations[i] = Operation.decode(stream); } decodedTransaction.ext = TransactionExt.decode(stream); return decodedTransaction; }
public static void encode(XdrDataOutputStream stream, Transaction encodedTransaction) throws IOException { AccountID.encode(stream, encodedTransaction.sourceAccount); Uint32.encode(stream, encodedTransaction.fee); SequenceNumber.encode(stream, encodedTransaction.seqNum); if (encodedTransaction.timeBounds != null) { stream.writeInt(1); TimeBounds.encode(stream, encodedTransaction.timeBounds); } else { stream.writeInt(0); } Memo.encode(stream, encodedTransaction.memo); int operationssize = encodedTransaction.getOperations().length; stream.writeInt(operationssize); for (int i = 0; i < operationssize; i++) { Operation.encode(stream, encodedTransaction.operations[i]); } TransactionExt.encode(stream, encodedTransaction.ext); }