fuzz-utils icon indicating copy to clipboard operation
fuzz-utils copied to clipboard

[Bug-Candidate]: If `deployContracts` is used, the generated test probably won't work

Open glarregay-tob opened this issue 1 year ago • 3 comments

Describe the issue:

Echidna allows contracts to be deployed to specific addresses using the deployContracts configuration option. However, when the tests are generated, only the harness is constructed and the other contracts are not deployed.

Not sure if this is an easy fix, just leaving it here for reference.

Code example to reproduce the issue:

Not an exact reproducer, but a general idea.

In echidna config file:

deployContracts:  [["0x12345", "ExampleContract"]]

In the echidna test contract:

constructor() {
    ExampleContract ec = ExampleContract(0x12345);
    uint256 value1 = ec.doSomething();
    assert(value1 == 123);
}

Version:

0.2.0

Relevant log output:

No response

glarregay-tob avatar Apr 19 '24 13:04 glarregay-tob

Are you saying that the constructor will revert during the external call? :thinking:

gustavo-grieco avatar Apr 19 '24 13:04 gustavo-grieco

Not necessarily. I fixed the example. Anyway, as I said, it's just a general idea and not a proper reproducer. I'm working on private code.

glarregay-tob avatar Apr 19 '24 13:04 glarregay-tob

We should be able to leverage deployCodeTo here https://book.getfoundry.sh/reference/forge-std/deployCodeTo#deploycodeto

montyly avatar Apr 22 '24 15:04 montyly