brownie icon indicating copy to clipboard operation
brownie copied to clipboard

KeyError: 'language' when allow_revert=True again

Open u39kun opened this issue 3 years ago • 1 comments

Environment information

  • brownie Version: 1.19.0
  • ganache-cli Version: 7.2.0
  • solc Version: 0.8.14
  • Python Version: 3.8.9
  • OS: osx + linux

What was wrong?

Very similar to https://github.com/eth-brownie/brownie/issues/1139

  File "brownie/_cli/run.py", line 51, in main
    return_value, frame = run(
  File "brownie/project/scripts.py", line 110, in run
    return_value = f_locals[method_name](*args, **kwargs)
  File "./scripts/scratch.py", line 51, in main
    tx = finder.withdrawEthWithRevertMessage(
  File "brownie/network/contract.py", line 1861, in __call__
    return self.transact(*args)
  File "brownie/network/contract.py", line 1734, in transact
    return tx["from"].transfer(
  File "brownie/network/account.py", line 682, in transfer
    receipt._raise_if_reverted(exc)
  File "brownie/network/transaction.py", line 441, in _raise_if_reverted
    marker = "//" if contract._build["language"] == "Solidity" else "#"
KeyError: 'language'

How can it be fixed?

Replace all instances of contract._build["language"] with contract._build.get("language") in transaction.py. I've patched my local copy to get around this issue.

u39kun avatar Jun 05 '22 22:06 u39kun

See PR #1555

u39kun avatar Jun 05 '22 22:06 u39kun