* feat: update tycho-client and support testing DCI enabled protocols
* refactor: improve python Typing
* test: update test suite tycho-simulation dependency
The updated version includes an account_balances fix.
* refactor: use sets instead of lists
* feat: update tycho-client test dependency
* feat: add balancer swapAdapter and Substreams
* fix: undo tycho-substreams logs, ignore abi on rustmft
* ci: prevent warnings from failing CI
* ci: skip size check on CI
* chore: forge fmt
* feat: vault balance from storage
Vault contract tokenBalance message are set according to the vault
storage changes in the `_reserveOf` storage variable VaultStorage.sol
contract
This was the culprit that caused the failure in simulation since
balancer enforces the invariant that `token.balanceOf(vault_addr) == _reservesOf[token]`
* ci: warnings
* fix: avoid duplicated balance changes
* fix: order by ordinal
* chore: format
* feat: extract new contracts before extracting balance changes
* feat: skip unnecessary steps if no balance change is found
* refactor: filter out account balances for tokens that aren't part of any protocol components.
On the indexer side, when we receive an account balance, we need to know about the token. This commit ensure that the token was introduced before we emit any account balance with it.
* refactor: don't index liquidity buffers.
Liquidity buffers rely on rate providers. Therefore we need DCI (feature to be able to index previously created contract) to deal with them.
* refactor: cleanup tests and add docstrings
* chore: lock tycho-substreams version
* ci: set Foundry workflow to use stable foundry
* feat(DCI): Add DCI Entrypoints to BalancerV3 components (#218)
* refactor: fix typo in weighted_pool_factory_contract name
* feat: add rate_providers static attributes
* feat: add DCI entrypoints to BalancerV3 components
* fix: set default trade price to Fraction(0, 1)
* feat: remove buffers as components
Buffers are to be used internally by Boosted pools (stable/weighted pools that use ERC4626 tokens). They are not to be treated as a separate swap component.
* test: update test blocks
Extend tests some tests block range to ensure liquidity was added to the pool and can be simulated on
* feat: remove buffers as components
Remove balance updates for buffer components
* feat: listen for pool pause/unpause events
* chore: formating
* fix: encoding call data
* test: update Balancer V3 tests to use DCI
* test: set indexer log level to info
* docs: add comment on support of boosted pools
* feat: update balancer v3 package version
---------
Co-authored-by: Thales <thales@datarevenue.com>
Co-authored-by: zizou <111426680+flopell@users.noreply.github.com>
Co-authored-by: Louise Poole <louise@datarevenue.com>
Co-authored-by: Louise Poole <louisecarmenpoole@gmail.com>
* feat: Add DCI Entrypoints to BalancerV2 components
* fix: miscellaneous fixes before Balancer V2 resync
This commit fixes the entrypoints created by Balancer v2 packages, removes some disabled factories and remove support for BPT tokens (this is still to be investigated but so far we won't be able to support them)
* refactor: fix CI and bump version
* chore: update comments
---------
Co-authored-by: Thales <thales@datarevenue.com>
Co-authored-by: zizou <111426680+flopell@users.noreply.github.com>
Co-authored-by: Louise Poole <louise@datarevenue.com>
* refactor(substreams): add `rust-toolchain` to the templates and modules.
This freezes the wasm output for each module, allowing us to have full control over each packages and when we break the modules hashes.
* fix(testing): allow no `initialized_accounts` in tests
---------
Co-authored-by: zizou <111426680+flopell@users.noreply.github.com>
* feat: import to tycho simulation initialized accounts defined on yaml file
* feat: update tycho-simulation dep, black formatting
* feat: Add additional logging to test runner
* feat: Fail test if expected component fails to get decoded
* feat: Warn if initialized contracts are not specified on ProtocolComponent contracts
* 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>
* 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>
Includes bugfix on `tycho-indexer-client` and `protosim_py`, a script to simplify setting up testing python env and cli improvements. Also add support for building runtime for SwapAdapters with many args that was bugged before.
Add a way to pull stateless contracts code from node, add more settings to test_assets.yaml, add logic to allow dynamic stateless contract by calling another contract
Manually inserted contracts do not have balances attached to them so this would lead to 500 errors on the tycho side. With balances disabled, things work fine now.