# Buggy code
def __init__(self, checksum_address: str, client_password: str = None, *args, **kwargs):
    super().__init__(checksum_address=checksum_address, *args, **kwargs)
    self.worklock_agent = ContractAgency.get_agent(
        WorkLockAgent, registry=self.registry
    )
    self.staking_agent = ContractAgency.get_agent(
        StakingEscrowAgent, registry=self.registry
    )
    self.economics = EconomicsFactory.get_economics(registry=self.registry)

    if client_password:
        self.transacting_power = TransactingPower(
            password=client_password, account=checksum_address
        )
        self.transacting_power.activate()


# Traceback (nucypher.blockchain.eth.interfaces.InterfaceError)
Traceback (most recent call last):
File "/Users/david/.local/share/virtualenvs/nucypher-cjt3uwkK/bin/nucypher", line 11, in <module>
load_entry_point('nucypher', 'console_scripts', 'nucypher')()
File "/Users/david/.local/share/virtualenvs/nucypher-cjt3uwkK/lib/python3.7/site-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/Users/david/.local/share/virtualenvs/nucypher-cjt3uwkK/lib/python3.7/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/Users/david/.local/share/virtualenvs/nucypher-cjt3uwkK/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/david/.local/share/virtualenvs/nucypher-cjt3uwkK/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/david/.local/share/virtualenvs/nucypher-cjt3uwkK/lib/python3.7/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/david/.local/share/virtualenvs/nucypher-cjt3uwkK/lib/python3.7/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/Users/david/NuCypher/dev/nucypher/nucypher/cli/options.py", line 139, in wrapper
return func(**kwargs)
File "/Users/david/NuCypher/dev/nucypher/nucypher/cli/options.py", line 139, in wrapper
return func(**kwargs)
File "/Users/david/NuCypher/dev/nucypher/nucypher/cli/options.py", line 139, in wrapper
return func(**kwargs)
File "/Users/david/NuCypher/dev/nucypher/nucypher/cli/commands/worklock.py", line 139, in bid
receipt = bidder.place_bid(value=value)
File "/Users/david/NuCypher/dev/nucypher/nucypher/blockchain/eth/actors.py", line 1557, in place_bid
receipt = self.worklock_agent.bid(checksum_address=self.checksum_address, value=value)
File "/Users/david/NuCypher/dev/nucypher/nucypher/blockchain/eth/decorators.py", line 71, in wrapped
return func(*args, **kwargs)
File "/Users/david/NuCypher/dev/nucypher/nucypher/blockchain/eth/agents.py", line 993, in bid
payload={'value': value})
File "/Users/david/NuCypher/dev/nucypher/nucypher/blockchain/eth/decorators.py", line 71, in wrapped
return func(*args, **kwargs)
File "/Users/david/NuCypher/dev/nucypher/nucypher/blockchain/eth/interfaces.py", line 489, in send_transaction
confirmations=confirmations)
File "/Users/david/NuCypher/dev/nucypher/nucypher/blockchain/eth/interfaces.py", line 408, in sign_and_broadcast_transaction
raise self.InterfaceError(str(READ_ONLY_INTERFACE))
nucypher.blockchain.eth.interfaces.InterfaceError: READ_ONLY_INTERFACE

# Fixed code
def __init__(
    self,
    checksum_address: str,
    is_transacting: bool = True,
    client_password: str = None,
    *args,
    **kwargs,
):
    super().__init__(checksum_address=checksum_address, *args, **kwargs)
    self.worklock_agent = ContractAgency.get_agent(
        WorkLockAgent, registry=self.registry
    )
    self.staking_agent = ContractAgency.get_agent(
        StakingEscrowAgent, registry=self.registry
    )
    self.economics = EconomicsFactory.get_economics(registry=self.registry)

    if is_transacting:
        self.transacting_power = TransactingPower(
            password=client_password, account=checksum_address
        )
        self.transacting_power.activate()