mrBovo
fc0fb1e540
BalancerV3: SwapAdapter and Substreams ( #126 )
...
* 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 >
2025-06-26 12:19:39 +02:00
greendianasaur
cfbf6812bd
chore: Remove old execution and encoding files ( #221 )
...
They are unused now. See https://github.com/propeller-heads/tycho-execution for the new workflow
2025-06-24 13:37:00 +00:00
Zach
fb0a57bf07
feat: Add Maverick V2 adapter and substreams ( #167 )
...
Co-authored-by: Thales <thales@datarevenue.com >
Co-authored-by: zizou <111426680+flopell@users.noreply.github.com >
2025-05-23 17:07:15 +02:00
Domenico
e484ea28ca
Sdk implementation: Sfrax adapter and substream ( #91 )
...
* feat: initial setup
* feat: implemented getCapabilities and getTokens
* chore: adjusted getPoolIds
* feat: Initial implementation of getLimits()
* feat: implemented getLimits, getTokens and internal functions for amounts
* feat: implemented price
* feat: implemented swap function
* fix and test: fixed minor issues on adapter and setup test
* debugging price function
* fix: debugged price function and fixed getPriceAt function
* test: testOneIncreasingPriceFoundFraxV3SFrax
* fix: debugging and fixing buy function
* fix: fixed getPriceAt
* test: testing post trade price
* fix: Fixed getPriceAt
* fix: Fixed getLimits
* fix: Fixed prices and improved readability
* fix: Fixed price and transfers in swap
* feat: Finished tests
* chore: Changed approve to safeIncreaseAllowance
* feat: created substream for staked frax
* feat: remove useless files
* feat: fixed dependencies in cargo.toml
* feat: rename folder
* feat: updated cargo.lock
* feat: changed lib.rs, added modules.rs
* feat: update modules.rs with corrects addresses
* feat: rename folder in ethereum-sfrax
* feat: remove useless comments, change locked asset address, rename
* feat: undo changes on mod.rs in ethereum-balancer
* feat: rename variable
* feat: update substreams/cargo.toml
* feat: modify ristfmt.toml
* feat: performed code formatting
* feat: modify src/abi
* feat: performed formatting with nightly
* feat: fix addition opeation
* feat: adjust code with for i, f
* feat: performed fmt inside ethereum-sfrax folder
* feat: performed clippy
* feat: fix with clippy warning suggests
* feat: undo any change in ethereum-balancer
* feat: change stakedfrax_contract.rs
* fix: stakedfrax_contract.rs
* feat: add blank line
* feat: add #[allow(clippy::all)] on ethereum-sfrax/src/abi/mod.rs
* feat: update comments on pool_factories.rs
* feat: update cargo.toml and substreams.yaml
* feat: add tycho evm in pb folder
* feat: add params to take contracts' addresses
* feat: add logic to map rewards_cycle
* feat: performed fmt and fix versioning
* feat: remove useless functions
* feat: add logic to track rewards_to_distribute
* feat: passing CI
* fix: substreams.yaml
* feat: fixed params in manifest
Co-authored-by: mrBovo <bovo.ignazio@proton.me >
* feat: fixed error in map_relative_balances function
* feat: passing CI checks
* fix: 🐛 hex-binary address encoding + refactoring vault-> underlying map
* style: 💄 fix formatting
* feat: Implemented testPoolBehaviour
* alignment with propeller main
* Update forge-std submodule reference to include ds-test
* files update to match propeller/main
* creating integration_test fir sfrax
* fixed FraxV3SFraxAdapter.sol import paths
* updated with correct addresses FraxV3SFraxAdapter manifest.yaml
* updated sfrax manifest.yaml
* updated to support sdk
* integration_test sfrax updated
* fix: 🐛 add reward processing
* chore: ♻️ minor cleanups
* fix: Fixed adapter limits
* fix: fix adapter and substream sdk tests
* fix: Fixed CI errors
* chore: fmt
* chore: Removed unused line
* fix: Fixed clippy warnings
* chore: formatted with rustup
* chore: Removed unused line
* chore: post-build formatting
* chore: Formatting using different toolchain vesion
* chore: 💄 format
* chore: 💄 format 2
* chore: Using static address for frax
* feat: Added second constructor param for sfrax
* fix: Fixed limits on frax sell
* chore: Fixed merge conflict with sfraxeth
* chore: Remove sfraxeth_contract changes
* chore: Fixed EOFs
* fix: Fixed fmt on stakedfrax contract
---------
Co-authored-by: mp-web3 <mp.web3.t@gmail.com >
Co-authored-by: gabrir99 <gabri.ruini@gmail.com >
Co-authored-by: mrBovo <bovo.ignazio@proton.me >
Co-authored-by: Ignazio Bovo <ignazio@jsgenesis.com >
Co-authored-by: mrBovo <bovoignazio.dev@gmail.com >
Co-authored-by: Mattia <mp.web3@gmail.com >
2024-10-25 18:53:06 +01: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
Diana Carvalho
a6caf84f55
feat: Add execution for curve
...
- Add CurveSwapStructEncoder and tests
- Add CurveSwapExecutorExposed and tests
- Add needed interfaces
#time 0m
#time 0m
#time 0m
2024-09-05 13:19:31 +01:00
Diana Carvalho
813f0fe9c8
chore: Rename SwapExecutorTest
2024-08-26 11:57:36 +01:00
Diana Carvalho
e49af99b1f
chore: Add BalancerSwapExecutor
2024-08-23 18:24:34 +01:00
Pierre
b3e3672172
Revert "ENG-3406: Add new bytes parameter to swap"
2024-08-08 22:24:35 +02:00
PierreMkt
07ca52b2ff
chore(adapters): Address PR review
...
keep mock data as empty bytes
2024-08-05 13:56:28 -04:00
PierreMkt
36c7e94e00
Merge branch 'refs/heads/main' into pm/eng-3406-add-swap-bytes-param
2024-08-05 10:44:55 -04:00
czanella
1ab96ce292
Update other failing tests
2024-08-05 10:32:43 +01:00
czanella
30bd0c2a5c
Fix some assertions in integration test
...
The foundation is:
marginal price > executed price > price after swap.
And this check is verified for multiple amounts
2024-08-03 10:54:25 +01:00
PierreMkt
ec903734e0
test(adapters): Fix balancer getCapabilities test
...
returns HardLimits too
2024-08-02 12:00:54 -04:00
PierreMkt
034d5ac8c2
feat(adapters): Add new bytes parameter to swap
...
that allows arbitrary data to be passed
2024-08-02 11:55:00 -04:00
czanella
1f509897ef
Make balance hard limits work correctly. Add back capability
2024-07-19 10:27:36 +01:00
czanella
772566c590
Add marginal price capability and update integration tests
...
Balancer now passes the test
Some misc aesthetics
2024-07-18 16:12:50 +01:00
czanella
5831aecc96
Implement adapter integration test and use it on uniswap and balancer
2024-07-17 15:03:31 +01:00
Louise Poole
cf7516df25
Format
2024-04-15 17:42:30 +01:00
Louise Poole
45dc7aa457
Fix prices function
2024-04-15 17:41:16 +01:00
Louise Poole
306293764c
Fix tests
2024-04-15 16:56:19 +01:00
pistomat
1b2e183a85
Remove test console logs
2024-04-13 11:17:03 +00:00
pistomat
54e4c9f92e
chore: forge fmt
2024-04-13 11:11:34 +00:00
pistomat
1738ca7bd2
Fix merge issues
2024-04-13 11:11:20 +00:00
pistomat
c49d78a2d9
Merge pull request #12 from propeller-heads/feature/etherfi-adapter
...
Etherfi adapter
2024-04-13 10:12:13 +00:00
pistomat
fbc2b004e5
Merge pull request #24 from propeller-heads/mp/use-safe-erc20
...
Remove IERC20 from ISwapAdapter and use SafeERC20 for IERC20
2024-04-13 10:11:46 +00:00
pistomat
6133e950ca
Merge pull request #20 from propeller-heads/feature/angle-adapter
...
Angle Adapter
2024-03-28 15:05:31 +01:00
Ale personal
17954c3ffe
fix: Change output number of Angle capabilities from 3 to 2
2024-03-27 15:33:40 +01:00
pistomat
dfa731a93d
Remove IERC20 from ISwapAdapter and use SafeERC20 for IERC20
2024-03-27 13:14:24 +01:00
pistomat
87c0c8baba
chore: forge fmt
2024-03-27 10:43:02 +01:00
Ale personal
bce771b253
Merge branch 'main' into feature/angle-adapter
2024-03-16 19:47:04 +01:00
Ale personal
511ca59f59
feat: Improve adapter and tests
2024-03-16 19:45:15 +01:00
domenicodev
2a6093a994
fix: Review fixes and improvements
2024-03-06 18:17:56 +01:00
domenicodev
3fabb48805
feat: Finalized tests
2024-03-04 10:10:23 +01:00
domenicodev
9deddb5241
feat: Finalized tests
2024-03-01 19:02:00 +01:00
domenicodev
24682409c4
fix: Fixed swap function and initial tests
2024-02-29 18:08:42 +01:00
domenicodev
1064fbf7eb
feat: Implemented swap
2024-02-28 16:32:37 +01:00
domenicodev
f18dce5c04
feat: Created AngleAdapter tests
2024-01-25 11:50:02 +01:00
domenicodev
174c4e158a
Revert "feat: Moved imports to main adapter file"
...
This reverts commit 96915bd158 .
2024-01-24 17:33:47 +01:00
domenicodev
96915bd158
feat: Moved imports to main adapter file
2024-01-24 17:33:10 +01:00
domenicodev
cf41c472c6
fix: Initial code review fixes
2024-01-17 15:24:18 +01:00
domenicodev
a7ea4d3604
fix: Fixed and Improved tests
2024-01-08 18:04:20 +01:00
domenicodev
46e9a3dd0e
feat: Added ConstantPrice capability
2024-01-08 16:53:55 +01:00
domenicodev
3a2e620246
fix: Fixed Fractions
2024-01-06 17:27:36 +01:00
mp-web3
c446a09caa
Fixing testSwapFuzzIntegral
2024-01-04 18:36:32 +01:00
mp-web3
bb28533951
fix: Fixed swap tests and limits calculations on IntegralSwapAdapter contract; feat: Added getTokens test
2023-12-27 17:58:03 +01:00
mp-web3
3141ef5b84
testGetCapabilitiesIntegral and testGetLimitsIntegral passed
2023-12-21 18:59:22 +01:00
mp-web3
f139236ec3
testSwappSellIncreasingIntegral and testSwapBuyIncreasingIntegral failed
2023-12-21 18:56:43 +01:00
mp-web3
3453b72a3a
testSwapFuzzIntegral fails at times
2023-12-21 18:46:52 +01:00
mp-web3
6a9cae7b0f
testSwapSellUsdcIntegral failed, check AmountIn must be AmountIn + Fee
2023-12-21 18:40:27 +01:00