Skip to content

Commit 1e227a6

Browse files
kclowesnjgheorghita
authored andcommitted
Fix bug in package id and release id fetching strategy
1 parent e2c6fce commit 1e227a6

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

web3/pm.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@ def deploy_new_instance(cls, w3):
216216
"""
217217
pass
218218

219+
BATCH_SIZE = 100
219220

220221
class 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

Comments
 (0)