# Buggy code
def __create_bidder(self, registry, transacting: bool = False, hw_wallet: bool = False):
    client_password = None
    if transacting and not hw_wallet:
        client_password = get_client_password(checksum_address=self.bidder_address)
    bidder = Bidder(
        checksum_address=self.bidder_address,
        registry=registry,
        client_password=client_password,
    )
    return bidder


# 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 __create_bidder(self, registry, transacting: bool = False, hw_wallet: bool = False):
    client_password = None
    if transacting and not hw_wallet:
        client_password = get_client_password(checksum_address=self.bidder_address)
    bidder = Bidder(
        checksum_address=self.bidder_address,
        registry=registry,
        client_password=client_password,
        is_transacting=transacting,
    )
    return bidder