@@ -216,6 +216,7 @@ def deploy_new_instance(cls, w3):
216216 """
217217 pass
218218
219+ BATCH_SIZE = 100
219220
220221class SimpleRegistry (ERC1319Registry ):
221222 """
@@ -245,11 +246,12 @@ def _get_package_name(self, package_id: bytes) -> str:
245246 @to_tuple
246247 def _get_all_package_ids (self ) -> Iterable [Tuple [bytes ]]:
247248 num_packages = self ._num_package_ids ()
249+ pointer = 0
250+ package_ids = []
251+ while pointer < num_packages :
252+ new_ids , pointer = self .registry .functions .getAllPackageIds (pointer , (pointer + BATCH_SIZE )).call ()
253+ package_ids .append (new_ids )
248254 # Logic here b/c Solidity Reference Registry implementation returns ids in reverse order
249- package_ids = [
250- self .registry .functions .getAllPackageIds (index , (index + 4 )).call ()[0 ]
251- for index in range (0 , num_packages , 4 )
252- ]
253255 for package_id in concat ([x [::- 1 ] for x in package_ids ]):
254256 yield package_id
255257
@@ -259,13 +261,12 @@ def _get_release_id(self, package_name: str, version: str) -> bytes:
259261 @to_tuple
260262 def _get_all_release_ids (self , package_name : str ) -> Iterable [Tuple [bytes ]]:
261263 num_releases = self ._num_release_ids (package_name )
264+ pointer = 0
265+ release_ids = []
266+ while pointer < num_releases :
267+ new_ids , pointer = self .registry .functions .getAllReleaseIds (package_name , pointer , (pointer + BATCH_SIZE )).call ()
268+ release_ids .append (new_ids )
262269 # Logic here b/c Solidity Reference Registry implementation returns ids in reverse order
263- release_ids = [
264- self .registry .functions .getAllReleaseIds (
265- package_name , index , (index + 4 )
266- ).call ()[0 ]
267- for index in range (0 , num_releases , 4 )
268- ]
269270 for release_id in concat ([x [::- 1 ] for x in release_ids ]):
270271 yield release_id
271272
0 commit comments