Commit Graph

89 Commits

Author SHA1 Message Date
dianacarvalho1
128de3037e fix: Misc improvements (#291)
* fix: Misc improvements

Make module_name optional and default to map_protocol_changes
Add build instructions for the DB image inside of the docker-compose
Improve error message
Remove unnecessary module_name from yaml files

#time 39m

* fix: Bring back module_name in balancer v3 tests

#time 8m

* fix: Fix balance and allowance overwrites

For tokens with proxies we need to use the address that is returned by the detector

#time 13m
2025-10-03 14:37:49 +00:00
dianacarvalho1
b577e7d6b2 refactor: Misc improvements to code (#277)
* refactor: Misc improvements to code

- Decouple validating logic from TychoRunner
- Move all data fetching and decoding the tycho message into the same method
- Split validate_state into validate_state, validate_token_balances and simulate_and_execute
- Make rpc_provider and runtime attributes of TestRunner
- Add references where possible to avoid clones
- Remove unnecessary code
- Make clippy happy

#time 2h 36m

#time 0m


#time 3m

* chore: Use tycho deps and foundry from tycho_simulation

This is to try to decrease the risk of using conflicting versions in the different repositories

#time 32m


#time 0m

* chore: Read RPC_URL in main.rs

#time 10m

* fix: Support eth trades (skip balance and allowance overwrites) and set balance overwrite to amount in

For tokens like USDC setting the balance super high was making us getting blacklisted

#time 1h 12m

* fix: Fix curve tests and filter components_by_id with the expected_component_ids

#time 1h 30m


#time 0m

* fix: Don't use all the possible executor addresses. Hardcode just one for the test

Refactor overwrites logic:
- renamed functions
- moved logic around that fits together
- don't use StateOverrides and then convert to alloy overrides. Use alloy's directly

#time 1h 21m

* fix: Assume that the executors mapping starts at storage value 1

Move setup_router_overwrites away from the rpc and into the execution file
Delete unnecessary get_storage_at

#time 33m
2025-09-25 17:27:05 +01:00
TAMARA LIPOWSKI
2c0c4d97fb refactor: Move module_name to integration test yaml
It's not good to keep this in the test_runner because then we have multiple points that we need to edit the test config, which can be hard to find.

We need this because the module name for uniswap_v2 is so far different from the rest of the protocols.
2025-09-23 00:42:23 -04:00
TAMARA LIPOWSKI
ca7998c5ce fix: Curve SDK tests
- Don't care about token order when comparing. We did not care in the python package. Not sure there is any advantage to caring.
2025-09-18 11:51:38 -04:00
Louise Poole
58324a199f chore: fix typos 2025-06-26 12:33:31 +02:00
Zizou
43764fa5cb refactor: update test config to include coins (#208)
* refactor: update test config to include `coins`

* refactor: rename package to `ethereum_curve` and add repository URL in substreams.yaml

---------

Co-authored-by: zizou <111426680+flopell@users.noreply.github.com>
2025-05-14 12:37:12 +02:00
Zizou
e8bde64a23 fix: update tycho-substreams version in all vm packages (#206)
This is needed after https://github.com/propeller-heads/tycho-protocol-sdk/pull/201

Co-authored-by: zizou <111426680+flopell@users.noreply.github.com>
2025-05-14 10:57:22 +02:00
Zizou
62b178ad8f feat(curve): add coins in static attributes (#205)
* feat(curve): add coins in static attributes

This will be used by tycho-execution when executing swaps on the pool. It is needed because the `exchange` function takes token indexes and not addresses as input.

* style: make clippy happy with `format!`

---------

Co-authored-by: zizou <111426680+flopell@users.noreply.github.com>
2025-05-13 18:57:06 +02:00
Louise Poole
409cf15864 Revert "chore: update format! macro use to satisfy latest clippy version (#194)" (#196)
This reverts commit f29de67f1f.
2025-04-25 18:09:38 +02:00
Louise Poole
f29de67f1f chore: update format! macro use to satisfy latest clippy version (#194) 2025-04-25 15:13:01 +00:00
Zizou
b1e7ba9e2f refactor(substreams): add rust-toolchain to the templates and modules. (#155)
* 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>
2025-02-17 08:29:07 +00:00
Zizou
5f319a6875 refactor: ensure consistent ABI iteration order in build files (#131)
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>
2025-01-10 11:45:14 +01:00
Zizou
39934347b3 refactor(substreams): remove workspace dependencies (#129)
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>
2025-01-07 16:04:17 +00:00
Zizou
b8aeaa3dc6 chore(curve): fix curve tests (#121)
Co-authored-by: zizou <111426680+flopell@users.noreply.github.com>
2024-12-09 18:01:42 +02:00
tvinagre
3c54b1d68d chore: bump curve version to 0.3.2 (#120) 2024-12-06 16:31:08 -05:00
Zizou
4d4d05203a fix(curve-substreams): miscellaneous fixes for balances extractions in Curve (#118)
* fix(curve-substreams): filter out reverted calls in `emit_eth_deltas`

* feat(substreams-sdk): extract balances from `Deposit` events in `extract_balance_deltas_from_tx`

* ci: ignore fmt for abi files

* feat(sdk): also account for `Withdrawal` event from WETH

* chore: reorder mod.rs, remove unused import

* chore: cargo fmt

---------

Co-authored-by: zizou <111426680+flopell@users.noreply.github.com>
Co-authored-by: Thales <thales@datarevenue.com>
2024-12-06 18:21:07 -03:00
Zizou
d766116421 fix: contract creation/update tagging (#117)
* 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>
2024-12-06 17:59:39 -03:00
Zizou
9561cc9b8a fix(curve): index two crypto factory (#114)
* fix: index two crypto factory

* ci: make clippy happy

---------

Co-authored-by: zizou <111426680+flopell@users.noreply.github.com>
2024-11-18 18:16:08 +01:00
Zizou
fa9e5180fc chore(curve): bump version to 0.3.0 (#110)
Co-authored-by: zizou <111426680+flopell@users.noreply.github.com>
2024-11-07 12:22:47 +07:00
Zizou
aca3bc4f71 refactor(curve): Update testing suite and remove metapools factories (#109)
* 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>
2024-11-07 05:05:37 +00:00
zizou
c90b190936 fix: correctly handle hexbytes convertion
There was a bug if the value was already a HexBytes that would lead to some tiny changes on the HexBytes, leading to our test being too permissive.
2024-09-06 17:27:31 +02:00
zizou
d0d81fc671 refactor: improve curve static attributes 2024-09-06 17:24:41 +02:00
zizou
4fbdb434c8 docs(curve): add static attr and ongoing task in curve readme 2024-09-06 17:22:29 +02:00
Florian Pellissier
c218252548 refactor(curve): stateless contracts as state attribute instead of static. 2024-08-15 10:42:06 +02:00
Florian Pellissier
420cf13466 refactor(curve): Remove unnecessary WETH stateless contracts
These contracts became unnecessary because we handle things differently on the Adapter side, we use native eth instead of WETH when possible.
2024-08-13 11:58:21 +02:00
Florian Pellissier
5c25d2fac0 style(curve): Fix CI 2024-08-09 11:24:36 +02:00
Florian Pellissier
bd59af67ed fix(curve): Add weth as stateless contract for CryptoPool with ETH 2024-08-09 11:00:58 +02:00
Florian Pellissier
1f2316713f fix(curve): Update integration tests 2024-08-09 10:39:58 +02:00
Florian Pellissier
6ac29335c7 docs(curve-substreams): Add docs for each tests 2024-08-09 10:39:14 +02:00
Florian Pellissier
d8d7a6d9fd fix(curve): add new missing initialized account and update Tycho binary 2024-08-09 10:39:14 +02:00
Florian Pellissier
388902b2ed fix(curve): index tricrypto2 dependencies 2024-08-09 10:39:14 +02:00
Florian Pellissier
9fa382ea60 refactor(curve): avoid RPC call when possible 2024-08-09 10:39:14 +02:00
Florian Pellissier
65ac765284 refactor(curve): add utils functions on ProtocolComponent 2024-08-09 10:39:14 +02:00
Florian Pellissier
a46e1e4a57 fix(curve): fix sUSD pool 2024-08-09 10:39:14 +02:00
Florian Pellissier
2f0b084cc6 refactor(curve): rename tests 2024-08-09 10:39:14 +02:00
Florian Pellissier
4d528ddab3 fix(curve): fix curve tests after SDKv2 update, also add a few missing tests 2024-08-09 10:39:14 +02:00
Florian Pellissier
95efda0423 refactor(substreams-testing): Use Pydantic to deserialize test_assets.yaml 2024-08-08 17:58:20 -03:00
kayibal
f5b4c54a99 chore: code formatting 2024-07-25 14:11:29 +01:00
Thales Lima
3ccf0a8a1f Add skip balance check flag for testing module 2024-07-23 15:32:52 +02:00
Thales Lima
e0c1ba3b50 Make tycho_client a python package, small bugfixes 2024-07-23 15:32:52 +02:00
Florian Pellissier
bd0a077917 refactor: Use new hybrid structs for Curve 2024-07-23 15:09:05 +02:00
Florian Pellissier
ec6e16f465 refactor: Clean code and update cargo.lock 2024-07-12 15:47:22 +02:00
Florian Pellissier
10a36c0a9b fix: Replace buggy balance extraction with SDK extract_balance_deltas_from_tx
The bug occurred when a Transfer event involved both the sender and recipient being pools. In such cases, the previous implementation only created a BalanceDelta for the "to" address and missed accounting for the "from" address.
2024-07-12 14:59:54 +02:00
Florian Pellissier
00cc45e2b8 feat: Add renBTC/wBTC/sBTC in get_token_from_pool 2024-07-12 13:02:45 +02:00
Florian Pellissier
12eeb72e9f chore: bump ethereum-curve to version 0.2.0 2024-07-02 17:08:45 +02:00
Florian Pellissier
62b4196d8d Revert "feat: add apool (but it uses rebasing tokens so balances are off)"
This reverts commit bdadf837cad52e54358d819afd3e1ca3f3c2d2f3.
2024-07-02 17:08:45 +02:00
Florian Pellissier
9a6d3ba4a5 feat: add apool (but it uses rebasing tokens so balances are off) 2024-07-02 17:08:45 +02:00
Florian Pellissier
3aa880a700 feat: add twocrypto factory 2024-07-02 17:08:45 +02:00
Florian Pellissier
fe27fc397f refactor: filter out empty tokens in address_map function 2024-07-02 17:08:45 +02:00
Florian Pellissier
959a08026a chore: remove unused abis 2024-07-02 17:08:45 +02:00