Commit Graph

65 Commits

Author SHA1 Message Date
Zizou
7da01c745b feat: Balancer V2 DCI integration (#219)
* 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>
2025-06-16 11:35:59 +02:00
Louise Poole
de5c9503bc feat: improve test logs (#217)
* feat: improve test logs

* refactor: remove unused code
2025-06-10 10:26:30 +02:00
kayibal
30a6e11363 Fix testing env stup script
- Fails now if any command errors
- Conda environment activation is more stable now
2025-04-30 00:03:08 +01:00
Zach
9740c92129 chore: update simulation dep (#190) 2025-04-03 09:25:09 +02:00
Louise Poole
97cab90b58 fix: fix script dependency check and paths (#186)
Allows you to run the script from outside of the testing directory.
2025-03-27 16:55:37 +01:00
Louise Poole
6acf16a8c6 fix: update tycho indexer testing dep to 0.60.0 (#183) 2025-03-25 17:01:09 +01:00
Louise Poole
494205b859 chore: update testing simulation dependency (#182)
Update to a version that supports account balances
2025-03-21 17:58:25 +02: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
tvinagre
4eea400af5 docs: remove local testing docs and point to web docs (#151) 2025-02-06 16:16:13 +00:00
tvinagre
dbb79a6dca feat(testing): Improve SDK Testing module (#148)
* 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
2025-02-05 15:48:45 -03:00
Thales Lima
52072849f6 feat: Remove testing Dockerfile as it's currently broken 2025-02-05 13:46:42 -03:00
Louise Poole
ffd6da916a docs: improve testing docs (#133) 2025-01-16 15:49:46 +02:00
Zizou
98c63c685f refactor: stop using private pypi (#132)
* 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>
2025-01-16 09:07:57 +00:00
Louise Poole
97a20b60c0 fix: address missed repo renaming (#128) 2025-01-07 16:13:01 +00: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
eea8b27112 fix(balancer): miscellaneous improvements before resync (#104)
* fix(balancer): ignore self balance change

Euler pool emit a balance change for the pool itself. We don't want to have it because it's an unknown token from Tycho's perspective.

example: https://etherscan.io/tx/0x4a9ea683052afefdae3d189862868c3a7dc8f431d1d9828b6bfd9451a8816426#eventlog#338

* refactor(balancer): rename balancer module to balancer-v2

* ci: make clippy happy

---------

Co-authored-by: zizou <111426680+flopell@users.noreply.github.com>
2024-10-31 15:12:37 +02:00
Mattia Papa
3013cd9bfd Sfraxeth adapter and substream with SDK integration (#87)
* first commit

* feat: implemented get tokens and improved modifier

* feat: added missing functions (to implement)

* feat: implemented getPoolIds

* feat: implemented getCapabilities

* feat: implemented getLimits function

* fix: fixed constructor

* feat and fix: implemented testGetLimitsFraxEthV3 and fixed getLimits

* feat: implementing getPriceAt function

* feat and fix: finished implementing getPriceAt, fixed modifier

* feat: price function and tests implemented

* fix: removed onlySupportedTokens modifier from getPriceAt and applied it in price and swap function

* feat: implemented sell, buy, and swap functions

* implementing final tests

* aligned with main branch

* fixes

* fix: Review Fixes

* feat: 🎨 sfraxeth substream initial scaffolding

* fix: 🎨 protocol component creation at deployment block

* build: 💚 cargo build

* feat: 🎨 map proper event to balance changes

* fix: 🚚 remove unnecessary files

* fix: 💚 ci checks

Due to the CI checks requiring the latest rust nightly, the rust-lang organisation
introduced new doc related rules. This commit fixes the CI errors by making
the necessary changes to the comments in substreams-balancer comments

* fix: 🐛 wasm output name

* fix: 🐛 update starting block = deployment block -1

* feat: 🎨 add store for reward cycles and update balances accounting after after deposit before Withdraw

* feat: 🎨 finish setting up block reward logic

* docs: 📝 add comments on extra module

* build: 📌 adapt dependencies to workspace dependencies

setting prost-types to workspace version causes build errors

* feat: 🎨 add support for several EVM compatible networks

* fix: 🐛 update balance delta accounting logic following the `NextRewardCycle` event only

* fix: 🐛 hex address string param encoding

* fix: 🐛 deployment transaction check

* ci: 💚 ci check passing

* fix: 🐛 issues with hex-binary encoding

* refactor: ♻️ address mappings for various networks

* fix: 💚 formatting

* feat: Implemented testPoolBehaviour

* chore: Removed unused comments

* feat: ⬆️ update to recent sdk

* feat: 🎨 testing setup

* test:  setup test environminte for sfraxeth

* fix: 🐛 unwrap error in map_protocol_changes

* build: ⬆️ update rust version

* build:  remove unnecessary deps

* build: 🚚 remove unnecessary pb/tycho

* fix: 🐛 remove balance owner attribute

* fix: 🐛 remove unnecessary static attributes

* fix: 🐛 remove manual updates

* fix: 🔥 remove unused data model from contract.proto

* fix: 🐛 filter by known components

* feat:  use store delta for reward change accounting

* refactor: ♻️ remove shallow create vault component

* feat:  replace is_deployment_tx logic with simpler txn match

* test:  manual testing with inspection against etherscan

https://etherscan.io/address/0xac3E018457B222d93114458476f3E3416Abbe38F#events

* ci: 💚 ci checks

* fix: 🐛 map_protocol_components output data

* fix: 🐛 output type on map_protocol_changes

* test: 🧪 skip balance checks

* fixed FraxV3FrxEthAdapter arguments for constructor in manifest.yaml

* fix: 🐛 adapter error with overflow/underflow and addresses

* restore: restored previous adater version

* fix: set minimum swap amount to prevent overflow/underflow

* fix: set minimum swap amount only for sfrxETH -> frxETH

* improve: added print block_number to runner.py when get_amout_out fails

* removed console.log

* alignment with propeller main

* Update forge-std submodule reference to include ds-test

* installed protosim_py 0.21.0

* commented out minimum swap amount for sfrxEth -> frxEth pair

* updated adapter limits

* working on fixes

* fix: Adjust getLimits according to protocol limitation.

Previously limits were estimated with token supplies, this commit simplifies limits and adjusts them so they correspond closely with what is supported by the sfrxETH contract.

* chore: fmt

* wip: Changed ubuntu to 20.04, fmt adapters

* wip: Updated python tests

* wip: Trying with ubuntu: latest

* chore: fmt adapters

* wip: Using ubuntu 20.04

* chore: Switched back to ubuntu-latest

---------

Co-authored-by: Ignazio Bovo <ignazio@jsgenesis.com>
Co-authored-by: domenicodev <domenico.romeo3919@gmail.com>
Co-authored-by: kayibal <alan@datarevenue.com>
Co-authored-by: domenicodev <domenico.rom3@gmail.com>
2024-10-23 14:17:45 +01:00
kayibal
378c1c2786 feat(testing): Test multiple amounts. 2024-10-23 12:54:15 +01: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
0e3c1268dd fix: correctly run pre_build.sh in setup_env context instead of in a subshell 2024-09-04 11:14:09 +02:00
Zizou
9c140a71af Merge pull request #67 from propeller-heads/zz/sdk/improve-onboarding-process
refactor: make onboarding easier
2024-08-20 11:33:20 +02:00
Florian Pellissier
c7b1796f7d refactor(testing): make setup_env.sh runnable only from within /testing 2024-08-20 09:07:34 +02:00
Florian Pellissier
2ad12cb659 docs(indexing): miscellaneous small docs improvements 2024-08-20 09:06:52 +02:00
Florian Pellissier
37f1fbfe04 docs(substreams): miscellaneous docs improvements and update 2024-08-19 11:56:55 +02:00
Florian Pellissier
bc2cd6bab2 refactor(testing): miscellaneous improvements and bugfixes
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.
2024-08-19 11:56:52 +02:00
Florian Pellissier
1f2316713f fix(curve): Update integration tests 2024-08-09 10:39:58 +02:00
Thales Lima
5eea31db40 Rename adapter_handler to adapter_builder and move responsibilities 2024-08-08 17:58:20 -03:00
Thales Lima
c0382fefdf Add aftermath logs 2024-08-08 17:58:20 -03:00
Thales Lima
c4024b9849 Better error diff and colorize it 2024-08-08 17:58:20 -03:00
Florian Pellissier
139f7ac3f5 refactor(substreams-testing): Remove shallow functions, be more 🐍 2024-08-08 17:58:20 -03:00
Florian Pellissier
1f9fe8d583 refactor(substreams-testing): Use Pydantic validators, Hexbytes and improve description 2024-08-08 17:58:20 -03:00
Florian Pellissier
95efda0423 refactor(substreams-testing): Use Pydantic to deserialize test_assets.yaml 2024-08-08 17:58:20 -03:00
kayibal
09d266a810 fix: Update requirements.txt
Assume both protosim_py and tycho-client are available from pypi.
2024-08-08 17:58:20 -03:00
kayibal
e302bfb4a6 feat: Request only contracts of interest
Instead of requesting all contracts just get what is specified by the components.
2024-08-08 17:58:20 -03:00
kayibal
9f4503e2a9 fix: Misc fixes around byte encoding.
Also initialize TychoDB for each test case individually.
2024-08-08 17:58:20 -03:00
Thales Lima
5238141771 Fix hexbytes comparison, fix attribute access 2024-08-08 17:58:20 -03:00
Thales Lima
cb6e997375 Add token_factory 2024-08-08 17:58:20 -03:00
Thales Lima
d0c248fcb6 Add build_snapshot_message method 2024-08-08 17:58:20 -03:00
Thales
d893ab264c Start using external modules 2024-08-08 17:58:20 -03:00
Thales Lima
8ea02613a2 Improve README, add foundry to docker, add handler to build targets 2024-08-08 17:58:20 -03:00
Thales
11619bf8be Add initialization-block to tycho runner, fix docker and improve docs 2024-08-08 17:58:20 -03:00
kayibal
2e50eaf4ba feat(testing): Nicer cli; expose trace parameter
Nicer name for the cli args and expose the vm_traces flag to quickly enable/disable tracing.
2024-08-01 12:09:58 +02:00
kayibal
75b66a85af fix(balancer): Get all balancer tests working. 2024-08-01 12:03:01 +02:00
Florian Pellissier
a6cff51bf6 feat: SDK improvements
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
2024-07-30 16:24:20 +01:00
kayibal
3fab5d6ea7 chore(testing): Move requirements.txt 2024-07-30 11:48:16 +01:00
kayibal
cc91ee27f6 chore(testing): Remove hard sell limit flag.
The setting is now inferred from the adapters capabilities.
2024-07-29 16:49:02 +01:00
kayibal
add412d712 fix(testing): Do not include balances with contracts.
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.
2024-07-29 16:47:21 +01:00
kayibal
7beaf731bf fix(testing): Fix postgres volume.
The volume was not mapped to the correct directory and when it was, the bitnami container would have no access for writing into that directory. That was limiting since we could only write about 100MB which for some tests is not enough. Now we simply increase the SHM and do not use any mapping to sidestep the permission issues.
2024-07-29 16:46:23 +01:00
kayibal
4c337a36d1 feat(runner): Support initialized accounts + misc fixes.
Simplifies a lot the setup of testing:

- Looks up tycho-indexer under the usual paths no OS specific naming necessary.
- Simply assumes that protosim can be pulled from our private PyPi
- Navigates the foundry out folder to find solidity runtime binaries

Includes some additional fixes to deal with some attribtues that may have to be reflected to defibot later on.
2024-07-25 19:31:54 +01:00
kayibal
fcaae2f643 chore: Move runner app to separate package 2024-07-25 14:11:29 +01:00