Implementation
static void encode(XdrDataOutputStream stream, XdrHostFunction encoded) {
stream.writeInt(encoded.discriminant.value);
switch (encoded.discriminant) {
case XdrHostFunctionType.HOST_FUNCTION_TYPE_INVOKE_CONTRACT:
int vecSize = encoded.invokeArgs!.length;
stream.writeInt(vecSize);
for (int i = 0; i < vecSize; i++) {
XdrSCVal.encode(stream, encoded.invokeArgs![i]);
}
break;
case XdrHostFunctionType.HOST_FUNCTION_TYPE_CREATE_CONTRACT:
XdrCreateContractArgs.encode(stream, encoded.createContractArgs!);
break;
case XdrHostFunctionType.HOST_FUNCTION_TYPE_INSTALL_CONTRACT_CODE:
XdrInstallContractCodeArgs.encode(
stream, encoded.installContractCodeArgs!);
break;
}
}