dipdup-io / dipdup

Modular framework for creating selective indexers and featureful backends for dapps
https://dipdup.io
MIT License
92 stars 52 forks source link

ConfigInitializationException #751

Closed m-kus closed 1 year ago

m-kus commented 1 year ago

Steps to reproduce:

Run indexer from https://github.com/rohanphw/zenith using docker

What did you expect to happen:

Indexer runs correctly

What actually happened:

It indexed some queries but crashed with this error after sometime:

Traceback (most recent call last):
  File "/Users/rohan/.pyenv/versions/3.10.4/bin/dipdup", line 8, in <module>
    sys.exit(cli())
  File "/Users/rohan/.pyenv/versions/3.10.4/lib/python3.10/site-packages/asyncclick/core.py", line 1157, in __call__
    return anyio.run(self._main, main, args, kwargs, **opts)
  File "/Users/rohan/.pyenv/versions/3.10.4/lib/python3.10/site-packages/anyio/_core/_eventloop.py", line 68, in run
    return asynclib.run(func, *args, **backend_options)
  File "/Users/rohan/.pyenv/versions/3.10.4/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 204, in run
    return native_run(wrapper(), debug=debug)
  File "/Users/rohan/.pyenv/versions/3.10.4/lib/python3.10/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/Users/rohan/.pyenv/versions/3.10.4/lib/python3.10/asyncio/base_events.py", line 646, in run_until_complete
    return future.result()
  File "/Users/rohan/.pyenv/versions/3.10.4/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 199, in wrapper
    return await func(*args)
  File "/Users/rohan/.pyenv/versions/3.10.4/lib/python3.10/site-packages/asyncclick/core.py", line 1160, in _main
    return await main(*args, **kwargs)
  File "/Users/rohan/.pyenv/versions/3.10.4/lib/python3.10/site-packages/asyncclick/core.py", line 1076, in main
    rv = await self.invoke(ctx)
  File "/Users/rohan/.pyenv/versions/3.10.4/lib/python3.10/site-packages/asyncclick/core.py", line 1687, in invoke
    return await _process_result(await sub_ctx.command.invoke(sub_ctx))
  File "/Users/rohan/.pyenv/versions/3.10.4/lib/python3.10/site-packages/asyncclick/core.py", line 1434, in invoke
    return await ctx.invoke(self.callback, **ctx.params)
  File "/Users/rohan/.pyenv/versions/3.10.4/lib/python3.10/site-packages/asyncclick/core.py", line 780, in invoke
    rv = await rv
  File "/Users/rohan/.pyenv/versions/3.10.4/lib/python3.10/site-packages/dipdup/cli.py", line 66, in wrapper
    raise e
  File "/Users/rohan/.pyenv/versions/3.10.4/lib/python3.10/site-packages/dipdup/cli.py", line 57, in wrapper
    await fn(ctx, *args, **kwargs)
  File "/Users/rohan/.pyenv/versions/3.10.4/lib/python3.10/site-packages/dipdup/cli.py", line 205, in run
    await dipdup.run()
  File "/Users/rohan/.pyenv/versions/3.10.4/lib/python3.10/site-packages/dipdup/dipdup.py", line 463, in run
    await gather(*tasks)
  File "/Users/rohan/.pyenv/versions/3.10.4/lib/python3.10/site-packages/dipdup/dipdup.py", line 112, in run
    await gather(*tasks)
  File "/Users/rohan/.pyenv/versions/3.10.4/lib/python3.10/site-packages/dipdup/index.py", line 154, in process
    await self._synchronize(sync_level)
  File "/Users/rohan/.pyenv/versions/3.10.4/lib/python3.10/site-packages/dipdup/indexes/operation/index.py", line 258, in _synchronize
    await self._process_level_operations(operation_subgroups, sync_level)
  File "/Users/rohan/.pyenv/versions/3.10.4/lib/python3.10/site-packages/dipdup/indexes/operation/index.py", line 284, in _process_level_operations
    subgroup_handlers = match_operation_subgroup(
  File "/Users/rohan/.pyenv/versions/3.10.4/lib/python3.10/site-packages/dipdup/indexes/operation/matcher.py", line 185, in match_operation_subgroup
    args = prepare_operation_handler_args(handler_config, matched_operations)
  File "/Users/rohan/.pyenv/versions/3.10.4/lib/python3.10/site-packages/dipdup/indexes/operation/matcher.py", line 53, in prepare_operation_handler_args
    type_ = pattern_config.parameter_type_cls
  File "/Users/rohan/.pyenv/versions/3.10.4/lib/python3.10/site-packages/dipdup/config.py", line 571, in parameter_type_cls
    raise ConfigInitializationException
dipdup.exceptions.ConfigInitializationException

Environment

Wizard1209 commented 1 year ago

There is a typo in line 33 dipdup.yml, besides of that on_increase_position callback should have one more argument for transfer transfer: Transaction[TransferParameter, VUSDStorage]. We will think about validating this part of the config more clearly.