Right now, one can specify params for a module at a global level in a substreams.yaml file. Like in this manifest, I'm filtering Transfer events using the ethereum_common:filtered_events imported module:
Now, I want to build another substream that uses the store_erc20_tokens store and also wants to filter on the PoolCreated event on UniswapV3Factory contract. For that, I will need a manifest like this:
The issue here is that the uniswap_v3_pool_tokens substream overrides the params even for the erc20 substream, resulting in wrong output from the store_erc20_tokens store.
My proposal here is that it should be allowed to specify params at the level of a consumer module so that this use case can work as intended. Eg:
Right now, one can specify params for a module at a global level in a
substreams.yaml
file. Like in this manifest, I'm filteringTransfer
events using theethereum_common:filtered_events
imported module:Now, I want to build another substream that uses the
store_erc20_tokens
store and also wants to filter on thePoolCreated
event onUniswapV3Factory
contract. For that, I will need a manifest like this:The issue here is that the
uniswap_v3_pool_tokens
substream overrides the params even for theerc20
substream, resulting in wrong output from thestore_erc20_tokens
store.My proposal here is that it should be allowed to specify params at the level of a consumer module so that this use case can work as intended. Eg:
This way, a set of independent params can be applied to a source module when it's being used by multiple consumer modules.