eth-brownie / brownie

A Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine.

Home Page:https://eth-brownie.readthedocs.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cannot access transaction's "return_value" with Anvil

no-fee-swap opened this issue · comments

Environment information

  • brownie Version: 1.20.2
  • anvil Version: 0.2.0 commit 43b4e23
  • solc Version: 0.8.24
  • Python Version: 3.12.1
  • OS: osx

What was wrong?

Brownie v1.20.2 works great! Thank you. But I have the following issue with it:

When I use Anvil, features such as "tx.return_value" or "tx.call_trace" do not work. They return none type. It works great with Hardhat. But Anvil is faster and it would be great if we can access "return_value" with Anvil as well.

Please include information like:

I first run anvil with the following command in terminal:
anvil --hardfork cancun

I then open another terminal and run brownie:
brownie console --network anvil

I then run the following script:

from brownie.network.gas.strategies import LinearScalingStrategy
from brownie.network import gas_price
gas_strategy = LinearScalingStrategy("60 gwei", "70 gwei", 1.1)
gas_price(gas_strategy)
token = ERC20FixedSupply.deploy("ERC20_0", "ERC20_0", 1, accounts[0], {'from': accounts[0]})
tx = token.transfer(accounts[1], 1, {'from': accounts[0]})

I am supposed to get a bool as return value, but the following command returns nothing:
tx.return_value

In this place we have to create or describe "_Value". In essence we are setting the digital parameters. The "_strategy" is to be defined based on concurrent data as well as the accounts from which you wish to send. I hope this Helps Cheers.

Does anvil expose the debug_traceTransaction endpoint?