feat: add error traces for vvm #373
Open
+135
−21
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
Added basic support for error traces on vvm based contracts, the implementation assumes that the compiler output is the one generated by Vyper 0.3.10. Hopefully it won't be required to support older versions.
How I did it
VVMDeployer
VVMContract
that references source maps and source code through a pointer to the deployer.VVMContract
has astack_trace
function that behaves similarly to the one inABIContract
orVyperContract
, the function:vyper.utils.annotate_source_code
to prettify the error line.BoaError
when something reverts.How to verify it
Run unit tests.
Description for the changelog
as per title