decode method Null safety

XdrHostFunctionArgs decode(
  1. XdrDataInputStream stream
)

Implementation

static XdrHostFunctionArgs decode(XdrDataInputStream stream) {
  XdrHostFunctionArgs decoded =
  XdrHostFunctionArgs(XdrHostFunctionType.decode(stream));
  switch (decoded.type) {
    case XdrHostFunctionType.HOST_FUNCTION_TYPE_INVOKE_CONTRACT:
      int vecSize = stream.readInt();
      decoded.invokeContract = List<XdrSCVal>.empty(growable: true);
      for (int i = 0; i < vecSize; i++) {
        decoded.invokeContract!.add(XdrSCVal.decode(stream));
      }
      break;
    case XdrHostFunctionType.HOST_FUNCTION_TYPE_CREATE_CONTRACT:
      decoded.createContract = XdrCreateContractArgs.decode(stream);
      break;
    case XdrHostFunctionType.HOST_FUNCTION_TYPE_UPLOAD_CONTRACT_WASM:
      decoded.uploadContractWasm =
          XdrUploadContractWasmArgs.decode(stream);
      break;
  }
  return decoded;
}