decode static method
Implementation
static XdrStellarMessage decode(XdrDataInputStream stream) {
XdrStellarMessage decodedStellarMessage =
XdrStellarMessage(XdrMessageType.decode(stream));
switch (decodedStellarMessage.discriminant) {
case XdrMessageType.ERROR_MSG:
decodedStellarMessage.error = XdrError.decode(stream);
break;
case XdrMessageType.HELLO:
decodedStellarMessage.hello = XdrHello.decode(stream);
break;
case XdrMessageType.AUTH:
decodedStellarMessage.auth = XdrAuth.decode(stream);
break;
case XdrMessageType.DONT_HAVE:
decodedStellarMessage.dontHave = XdrDontHave.decode(stream);
break;
case XdrMessageType.GET_PEERS:
break;
case XdrMessageType.PEERS:
int peerssize = stream.readInt();
// decodedStellarMessage.peers = List<XdrPeerAddress>(peerssize);
decodedStellarMessage.peers = []..length = peerssize;
for (int i = 0; i < peerssize; i++) {
decodedStellarMessage.peers![i] = XdrPeerAddress.decode(stream);
}
break;
case XdrMessageType.GET_TX_SET:
decodedStellarMessage.txSetHash = XdrUint256.decode(stream);
break;
case XdrMessageType.TX_SET:
decodedStellarMessage.txSet = XdrTransactionSet.decode(stream);
break;
case XdrMessageType.TRANSACTION:
decodedStellarMessage.transaction =
XdrTransactionEnvelope.decode(stream);
break;
case XdrMessageType.GET_SCP_QUORUMSET:
decodedStellarMessage.qSetHash = XdrUint256.decode(stream);
break;
case XdrMessageType.SCP_QUORUMSET:
decodedStellarMessage.qSet = XdrSCPQuorumSet.decode(stream);
break;
case XdrMessageType.SCP_MESSAGE:
decodedStellarMessage.envelope = XdrSCPEnvelope.decode(stream);
break;
case XdrMessageType.GET_SCP_STATE:
decodedStellarMessage.getSCPLedgerSeq = XdrUint32.decode(stream);
break;
}
// TODO: survey
return decodedStellarMessage;
}