* fix: remove unnecessary tx field in ProtocolComponent
* chore: move ambient protobuf files to ambient module
* chore: remove dependency on common message types
This allows us to isolate the ambient specific messages within the ambient module
* feat: update ambient substream with new message structs
* chore: update substream configs
And remove use of deprecated BlockContractChanges.
* feat: implement From for AmbientProtocolComponent to ProtocolComponent
* refactor: stop using private pypi
This was required because our repos were not public. Now that they are, people can directly access our Python packages and therefore they don't need access to our private codeartifact anymore
* docs: add a list of dependencies in the readme and early check in the setup env script
---------
Co-authored-by: zizou <111426680+flopell@users.noreply.github.com>
Previously, build files iterated through ABIs in an inconsistent order, causing unwanted changes when the build was rerun, as the iteration order would differ. This commit resolves the issue by sorting ABIs by name, ensuring consistent formatting and preventing unintended changes in future commits.
Co-authored-by: zizou <111426680+flopell@users.noreply.github.com>
This is to make each substreams completely independent, before when we would need a new version of a dependency, we would have to change it for every crate which would lead to a change of every substreams module hash. We want to make every Substreams completely independant and frozen, this also helps to maintain a correct versionning.
Co-authored-by: zizou <111426680+flopell@users.noreply.github.com>
* chore: add sfrax to rust fmt ignore
* fix(substreams-sdk): correctly mark contract creation.
Previously we would mark a contract as created if it was created in any transaction in this block. This would lead to some unexpected behavior if the contract was created and updated in the same block but in different transactions. In that case the update would be tagged as creation.
* feat: extract asset types for ng factory
This will allow us to detect pools with rebasing tokens and blacklist them until we can support them in `tycho-simulation`
* fix: correctly index math implementation for twocrypto factory
This implementation is immutable and not dynamic.
* fix: index cryptopool factory
This factory is needed for simulations by pools that have admin fees.
* chore: fix build sfrax abi contract
* Bump curve version
---------
Co-authored-by: zizou <111426680+flopell@users.noreply.github.com>
Co-authored-by: tvinagre <tvinagre@gmail.com>
Co-authored-by: Thales <thales@datarevenue.com>
* refactor(substreams): ignore transaction if contracts update are ignored.
There are some cases where we ignore contracts updates (for example if the old and new values are the same). In that case if the transaction only contains ignored updates we don't emit it.
* refactor(substreams): ignore deletions for freshly created attributes.
There are cases where an attribute can be created and deleted during the same transaction. To avoid sending a confusing deletion for something that was never created before, we just ignore the deletion in that particular case.
* feat(substreams): Add uniswap V3 logs only module (#98)
* feat(substreams): add uniswapV3 logs only Substreams module
* refactor(substreams): encode everything as big endian
* refactor(substreams): mark changes as creation when a tick liq is updated from 0
This will allow the SDK to detect cases where a tick is created and deleted in the same transaction and ignore it.
* ci(substreams): ignore built files for uniswapv3 logs only module and clean code
* refactor(substreams): update uniswapv3 substreams with new SDK interface
* feat(subtreams): emit default token balances value for uniswapv3
---------
Co-authored-by: zizou <111426680+flopell@users.noreply.github.com>
---------
Co-authored-by: zizou <111426680+flopell@users.noreply.github.com>
* chore(lib): update testing suite with new naming
* refactor(curve): remove metapool
These pools aren't compatible yet due to how they are created (first the lp token and then later the pool). We will need DCI to handle this properly.
* chore(lib): use correct package name for tycho-simulation
---------
Co-authored-by: zizou <111426680+flopell@users.noreply.github.com>
* feat(balancer): add weigthed pool factory v1
* feat(balancer): add weigthed pool factory v2 and v3
* fix(evm): fix compilation bug due to a bugged solc version
---------
Co-authored-by: zizou <111426680+flopell@users.noreply.github.com>
The `aggregate_balances_changes` was keeping a map of token -> balance_change per transaction. Therefore, if a transaction was causing a balance change for the same token but on differents components we would only keep the update for the last component updated and drop the others.
Improvements include:
- exit the script if any non-recoverable step fails
- fix bug where cargo version was hardcoded to be detected in balancer package
- allow optional input of substream config file. This is necessary for protocols with forks as they will have multiple configs in one directory