Skip to content

Commit

Permalink
Fix bug in package id and release id fetching strategy
Browse files Browse the repository at this point in the history
  • Loading branch information
kclowes authored and njgheorghita committed Aug 21, 2019
1 parent e2c6fce commit dba7c73
Showing 1 changed file with 20 additions and 10 deletions.
30 changes: 20 additions & 10 deletions web3/pm.py
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,9 @@ def deploy_new_instance(cls, w3):
pass


BATCH_SIZE = 100


class SimpleRegistry(ERC1319Registry):
"""
This class represents an instance of the `Solidity Reference Registry implementation
Expand Down Expand Up @@ -245,11 +248,15 @@ def _get_package_name(self, package_id: bytes) -> str:
@to_tuple
def _get_all_package_ids(self) -> Iterable[Tuple[bytes]]:
num_packages = self._num_package_ids()
pointer = 0
package_ids = []
while pointer < num_packages:
new_ids, pointer = self.registry.functions.getAllPackageIds(
pointer,
(pointer + BATCH_SIZE)
).call()
package_ids.append(new_ids)
# Logic here b/c Solidity Reference Registry implementation returns ids in reverse order
package_ids = [
self.registry.functions.getAllPackageIds(index, (index + 4)).call()[0]
for index in range(0, num_packages, 4)
]
for package_id in concat([x[::-1] for x in package_ids]):
yield package_id

Expand All @@ -259,13 +266,16 @@ def _get_release_id(self, package_name: str, version: str) -> bytes:
@to_tuple
def _get_all_release_ids(self, package_name: str) -> Iterable[Tuple[bytes]]:
num_releases = self._num_release_ids(package_name)
pointer = 0
release_ids = []
while pointer < num_releases:
new_ids, pointer = self.registry.functions.getAllReleaseIds(
package_name,
pointer,
(pointer + BATCH_SIZE)
).call()
release_ids.append(new_ids)
# Logic here b/c Solidity Reference Registry implementation returns ids in reverse order
release_ids = [
self.registry.functions.getAllReleaseIds(
package_name, index, (index + 4)
).call()[0]
for index in range(0, num_releases, 4)
]
for release_id in concat([x[::-1] for x in release_ids]):
yield release_id

Expand Down

0 comments on commit dba7c73

Please sign in to comment.