def get_safe_info(self, safe_address: str) -> SafeInfo: try: safe = Safe(safe_address, self.ethereum_client) return safe.retrieve_all_info() except IOError as exc: raise NodeConnectionError from exc except CannotRetrieveSafeInfoException as e: raise CannotGetSafeInfo from e
def retrieve_safe_info(self, address: str) -> SafeInfo: safe = Safe(address, self.ethereum_client) if not self.ethereum_client.is_contract(address): raise SafeNotDeployed('Safe with address=%s not deployed' % address) try: return safe.retrieve_all_info() except CannotRetrieveSafeInfoException as e: raise CannotRetrieveSafeInfo(address) from e
def get_safe_info_from_blockchain( self, safe_address: ChecksumAddress) -> SafeInfo: """ :param safe_address: :return: SafeInfo from blockchain """ try: safe = Safe(safe_address, self.ethereum_client) safe_info = safe.retrieve_all_info() # Return same master copy information than the db method return replace( safe_info, version=SafeMasterCopy.objects.get_version_for_address( safe_info.master_copy), ) except IOError as exc: raise NodeConnectionException from exc except CannotRetrieveSafeInfoException as exc: raise CannotGetSafeInfoFromBlockchain(safe_address) from exc
def get_safe_info(self, safe_address: str) -> SafeInfo: safe = Safe(safe_address, self.ethereum_client) return safe.retrieve_all_info()