Implementation
static void encode(XdrDataOutputStream stream, XdrHostFunctionArgs encoded) {
stream.writeInt(encoded.type.value);
switch (encoded.type) {
case XdrHostFunctionType.HOST_FUNCTION_TYPE_INVOKE_CONTRACT:
int vecSize = encoded.invokeContract!.length;
stream.writeInt(vecSize);
for (int i = 0; i < vecSize; i++) {
XdrSCVal.encode(stream, encoded.invokeContract![i]);
}
break;
case XdrHostFunctionType.HOST_FUNCTION_TYPE_CREATE_CONTRACT:
XdrCreateContractArgs.encode(stream, encoded.createContract!);
break;
case XdrHostFunctionType.HOST_FUNCTION_TYPE_UPLOAD_CONTRACT_WASM:
XdrUploadContractWasmArgs.encode(
stream, encoded.uploadContractWasm!);
break;
}
}