Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What I did
Detect contracts that are deployed via contract calls.
Closes #238
How I did it
TransactionReceipt.new_contracts
, a list of addresses of deployments. This information is gathered duringTransactionReceipt._expand_trace
.ContractContainer.at
compares actual bytecode at an address against the expected bytecode. If there is a difference, it returnsContract
instead ofProjectContract
. This avoids various issues with traces and coverage evaluation when using Vyper'screate_forwarder_to
.How to verify it
Run the tests. I included new test cases, this functionality is verified using
create_forwarder_to
in Vyper andnew
in Solidity (with bothCREATE
andCREATE2
).Checklist