Skip to content

Commit 6bcb572

Browse files
committed
feat: add list of registries to RelaySugar constructor
1 parent 313fa0c commit 6bcb572

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed

contracts/RelaySugar.vy

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
MAX_RELAYS: constant(uint256) = 50
99
MAX_RESULTS: constant(uint256) = 1000
1010
MAX_PAIRS: constant(uint256) = 30
11+
MAX_REGISTRIES: constant(uint256) = 20
1112
WEEK: constant(uint256) = 7 * 24 * 60 * 60
1213

1314
struct LpVotes:
@@ -81,17 +82,17 @@ interface IRelay:
8182
def getRoleMember(_role: bytes32, _index: uint256) -> address: view
8283

8384
# Vars
84-
registry: public(IRelayRegistry)
85+
registries: public(DynArray[address, MAX_REGISTRIES])
8586
voter: public(IVoter)
8687
ve: public(IVotingEscrow)
8788
token: public(address)
8889

8990
@external
90-
def __init__(_registry: address, _voter: address):
91+
def __init__(_registries: DynArray[address, MAX_REGISTRIES], _voter: address):
9192
"""
9293
@dev Set up our external registry and voter contracts
9394
"""
94-
self.registry = IRelayRegistry(_registry)
95+
self.registries = _registries
9596
self.voter = IVoter(_voter)
9697
self.ve = IVotingEscrow(self.voter.ve())
9798
self.token = self.ve.token()
@@ -113,21 +114,26 @@ def _relays(_account: address) -> DynArray[Relay, MAX_RELAYS]:
113114
@return Array of Relay structs
114115
"""
115116
relays: DynArray[Relay, MAX_RELAYS] = empty(DynArray[Relay, MAX_RELAYS])
116-
factories: DynArray[address, MAX_RELAYS] = self.registry.getAll()
117-
118-
for factory_index in range(0, MAX_RELAYS):
119-
if factory_index == len(factories):
117+
for registry_index in range(0, MAX_REGISTRIES):
118+
if registry_index == len(self.registries):
120119
break
120+
121+
relay_registry: IRelayRegistry = IRelayRegistry(self.registries[registry_index])
122+
factories: DynArray[address, MAX_RELAYS] = relay_registry.getAll()
121123

122-
relay_factory: IRelayFactory = IRelayFactory(factories[factory_index])
123-
addresses: DynArray[address, MAX_RELAYS] = relay_factory.relays()
124-
125-
for index in range(0, MAX_RELAYS):
126-
if index == len(addresses):
124+
for factory_index in range(0, MAX_RELAYS):
125+
if factory_index == len(factories):
127126
break
128127

129-
relay: Relay = self._byAddress(addresses[index], _account)
130-
relays.append(relay)
128+
relay_factory: IRelayFactory = IRelayFactory(factories[factory_index])
129+
addresses: DynArray[address, MAX_RELAYS] = relay_factory.relays()
130+
131+
for index in range(0, MAX_RELAYS):
132+
if index == len(addresses):
133+
break
134+
135+
relay: Relay = self._byAddress(addresses[index], _account)
136+
relays.append(relay)
131137

132138
return relays
133139

0 commit comments

Comments
 (0)