From 3ce3cc203598e1a5645a0d0305d0d50a349b7a57 Mon Sep 17 00:00:00 2001 From: Pedro Valido <80268365+pedrovalido@users.noreply.github.com> Date: Sun, 6 Oct 2024 16:14:44 +0100 Subject: [PATCH] feat: filter root pool factory on optimism --- contracts/LpSugar.vy | 16 +++++++++++++++- env.example | 2 ++ scripts/deploy.py | 1 + 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/contracts/LpSugar.vy b/contracts/LpSugar.vy index 3be5c0d..3b6753d 100644 --- a/contracts/LpSugar.vy +++ b/contracts/LpSugar.vy @@ -263,12 +263,15 @@ registry: public(IFactoryRegistry) convertor: public(address) cl_helper: public(ISlipstreamHelper) alm_factory: public(IAlmFactory) +root_pool_factory: public(address) +root_pool_factory_slipstream: public(address) # Methods @external def __init__(_voter: address, _registry: address,\ - _convertor: address, _slipstream_helper: address, _alm_factory: address): + _convertor: address, _slipstream_helper: address,\ + _alm_factory: address, _root_pool_factory: address, _root_pool_factory_slipstream: address): """ @dev Sets up our external contract addresses """ @@ -277,6 +280,8 @@ def __init__(_voter: address, _registry: address,\ self.convertor = _convertor self.cl_helper = ISlipstreamHelper(_slipstream_helper) self.alm_factory = IAlmFactory(_alm_factory) + self.root_pool_factory = _root_pool_factory + self.root_pool_factory_slipstream = _root_pool_factory_slipstream @internal @view @@ -302,6 +307,9 @@ def _pools(_limit: uint256, _offset: uint256)\ break factory: IPoolFactory = IPoolFactory(factories[index]) + if factory.address == self.root_pool_factory or factory.address == self.root_pool_factory_slipstream: + continue + pools_count: uint256 = factory.allPoolsLength() nfpm: address = self._fetch_nfpm(factory.address) @@ -348,6 +356,9 @@ def forSwaps(_limit: uint256, _offset: uint256) -> DynArray[SwapLp, MAX_POOLS]: break factory: IPoolFactory = IPoolFactory(factories[index]) + if factory.address == self.root_pool_factory or factory.address == self.root_pool_factory_slipstream: + continue + nfpm: address = self._fetch_nfpm(factory.address) pools_count: uint256 = factory.allPoolsLength() @@ -666,6 +677,9 @@ def _positions( break factory: IPoolFactory = IPoolFactory(_factories[index]) + if factory.address == self.root_pool_factory or factory.address == self.root_pool_factory_slipstream: + continue + nfpm: INFPositionManager = \ INFPositionManager(self._fetch_nfpm(factory.address)) diff --git a/env.example b/env.example index b9968e0..b4138c2 100644 --- a/env.example +++ b/env.example @@ -10,6 +10,8 @@ ALM_FACTORY_10=0xeD8b81E3fF6c54951621715F5992CA52007D88bA DIST_10=0x9D4736EC60715e71aFe72973f7885DCBC21EA99b RELAY_REGISTRY_ADDRESSES_10=0xe9F00f2e61CB0c6fb00A2e457546aCbF0fC303C2,0x6b1253B116B5919932399295C75116d33F8EfF96 GOVERNOR_10=0x1F82e10D58aEf03DeA2e478029fB0387A1cbE989 +ROOT_POOL_FACTORY_10=0x1111111111111111111111111111111111111111 +ROOT_POOL_FACTORY_SLIPSTREAM_10=0x1111111111111111111111111111111111111111 TEST_FACTORY_ADDRESS_10=0xCc0bDDB707055e04e497aB22a59c2aF4391cd12F TEST_ADDRESS_10=0xEeE7FB850D28f5cabd5f1EDF540646b5bEA17CE5 diff --git a/scripts/deploy.py b/scripts/deploy.py index f93e89c..bb81239 100644 --- a/scripts/deploy.py +++ b/scripts/deploy.py @@ -20,6 +20,7 @@ def main(): os.getenv(f'CONVERTOR_{chain_id}'), os.getenv(f'SLIPSTREAM_HELPER_{chain_id}'), os.getenv(f'ALM_FACTORY_{chain_id}'), + os.getenv(f'ROOT_POOL_FACTORY_{chain_id}'), {'from': account} )