mirror of https://github.com/nucypher/nucypher.git
Small bug fixes found while unit testing worklock
parent
cf1c40c919
commit
a731b749b4
|
@ -115,7 +115,10 @@ class BaseActor:
|
||||||
|
|
||||||
def __eq__(self, other) -> bool:
|
def __eq__(self, other) -> bool:
|
||||||
"""Actors are equal if they have the same address."""
|
"""Actors are equal if they have the same address."""
|
||||||
return bool(self.checksum_address == other.checksum_address)
|
try:
|
||||||
|
return bool(self.checksum_address == other.checksum_address)
|
||||||
|
except AttributeError:
|
||||||
|
return False
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def eth_balance(self) -> Decimal:
|
def eth_balance(self) -> Decimal:
|
||||||
|
|
|
@ -1282,7 +1282,8 @@ class WorkLockAgent(EthereumContractAgent):
|
||||||
|
|
||||||
def is_claiming_available(self) -> bool:
|
def is_claiming_available(self) -> bool:
|
||||||
"""Returns True if claiming is available"""
|
"""Returns True if claiming is available"""
|
||||||
return self.contract.functions.isClaimingAvailable().call()
|
result = self.contract.functions.isClaimingAvailable().call()
|
||||||
|
return result
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def next_bidder_to_check(self) -> int:
|
def next_bidder_to_check(self) -> int:
|
||||||
|
|
|
@ -436,26 +436,19 @@ class EthereumTesterClient(EthereumClient):
|
||||||
def unlock_account(self, account, password, duration: int = None) -> bool:
|
def unlock_account(self, account, password, duration: int = None) -> bool:
|
||||||
"""Returns True if the testing backend keyring has control of the given address."""
|
"""Returns True if the testing backend keyring has control of the given address."""
|
||||||
account = to_canonical_address(account)
|
account = to_canonical_address(account)
|
||||||
|
keystore_accounts = self.w3.provider.ethereum_tester.backend.get_accounts()
|
||||||
try:
|
if account in keystore_accounts:
|
||||||
# PyEVM backend
|
|
||||||
keystore = self.w3.provider.ethereum_tester.backend._key_lookup
|
|
||||||
except AttributeError:
|
|
||||||
# Mock provider, probably
|
|
||||||
keystore = self.w3.provider.ethereum_tester.backend.get_accounts()
|
|
||||||
|
|
||||||
if account in keystore:
|
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
return self.w3.provider.ethereum_tester.unlock_account(account=account,
|
return self.w3.provider.ethereum_tester.unlock_account(account=to_checksum_address(account),
|
||||||
password=password,
|
password=password,
|
||||||
unlock_seconds=duration)
|
unlock_seconds=duration)
|
||||||
|
|
||||||
def lock_account(self, account) -> bool:
|
def lock_account(self, account) -> bool:
|
||||||
"""Returns True if the testing backend keyring has control of the given address."""
|
"""Returns True if the testing backend keyring has control of the given address."""
|
||||||
account = to_canonical_address(account)
|
account = to_canonical_address(account)
|
||||||
keystore = self.w3.provider.ethereum_tester.backend._key_lookup
|
keystore_accounts = self.w3.provider.ethereum_tester.backend.get_accounts()
|
||||||
if account in keystore:
|
if account in keystore_accounts:
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
return self.w3.provider.ethereum_tester.lock_account(account=account)
|
return self.w3.provider.ethereum_tester.lock_account(account=account)
|
||||||
|
|
|
@ -154,7 +154,8 @@ def bid(general_config, worklock_options, force, hw_wallet, value):
|
||||||
worklock_agent = ContractAgency.get_agent(WorkLockAgent, registry=registry) # type: WorkLockAgent
|
worklock_agent = ContractAgency.get_agent(WorkLockAgent, registry=registry) # type: WorkLockAgent
|
||||||
now = maya.now().epoch
|
now = maya.now().epoch
|
||||||
if not worklock_agent.start_bidding_date <= now <= worklock_agent.end_bidding_date:
|
if not worklock_agent.start_bidding_date <= now <= worklock_agent.end_bidding_date:
|
||||||
raise click.Abort(f"You can't bid, the bidding window is closed.")
|
emitter.echo(f"You can't bid, the bidding window is closed.", color='red')
|
||||||
|
raise click.Abort()
|
||||||
|
|
||||||
if not worklock_options.bidder_address:
|
if not worklock_options.bidder_address:
|
||||||
worklock_options.bidder_address = select_client_account(emitter=emitter,
|
worklock_options.bidder_address = select_client_account(emitter=emitter,
|
||||||
|
|
Loading…
Reference in New Issue