Implementation
static XdrHashIDPreimage decode(XdrDataInputStream stream) {
XdrHashIDPreimage decoded =
XdrHashIDPreimage(XdrEnvelopeType.decode(stream));
switch (decoded.discriminant) {
case XdrEnvelopeType.ENVELOPE_TYPE_OP_ID:
decoded.operationID = XdrHashIDPreimageOperationID.decode(stream);
break;
case XdrEnvelopeType.ENVELOPE_TYPE_POOL_REVOKE_OP_ID:
decoded.revokeID = XdrHashIDPreimageRevokeID.decode(stream);
break;
case XdrEnvelopeType.ENVELOPE_TYPE_CONTRACT_ID_FROM_ED25519:
decoded.ed25519ContractID =
XdrHashIDPreimageEd25519ContractID.decode(stream);
break;
case XdrEnvelopeType.ENVELOPE_TYPE_CONTRACT_ID_FROM_CONTRACT:
decoded.contractID = XdrHashIDPreimageContractID.decode(stream);
break;
case XdrEnvelopeType.ENVELOPE_TYPE_CONTRACT_ID_FROM_ASSET:
decoded.fromAsset = XdrHashIDPreimageFromAsset.decode(stream);
break;
case XdrEnvelopeType.ENVELOPE_TYPE_CONTRACT_ID_FROM_SOURCE_ACCOUNT:
decoded.sourceAccountContractID =
XdrHashIDPreimageSourceAccountContractID.decode(stream);
break;
case XdrEnvelopeType.ENVELOPE_TYPE_CREATE_CONTRACT_ARGS:
decoded.createContractArgs =
XdrHashIDPreimageCreateContractArgs.decode(stream);
break;
case XdrEnvelopeType.ENVELOPE_TYPE_CONTRACT_AUTH:
decoded.contractAuth = XdrHashIDPreimageContractAuth.decode(stream);
break;
}
return decoded;
}