-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for Solidity 0.8.4 #33
Conversation
…lues to avoid edge-cases with special characters and escap sequences.
Codecov Report
@@ Coverage Diff @@
## master #33 +/- ##
=======================================
Coverage 92.82% 92.83%
=======================================
Files 208 212 +4
Lines 4184 4257 +73
Branches 596 603 +7
=======================================
+ Hits 3884 3952 +68
- Misses 186 188 +2
- Partials 114 117 +3
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Couple of nits, otherwise LGTM.
Status
Ready. There is an issue with compiler release, that is not yet properly handled. However, I do not think that it blocks us from merge as compiler is already released so we would have to deal with it anyway. The onlything we can do is to explicitly throw an error when we meet a particular edge case.
Changes
web3-eth-abi
to^1.3.5
, also development dependencies to use latest tools.solc@0.8.4
).RevertStatement
.ErrorDefinition
.ContractDefinition
:usedErrors
andvUsedErrors
properties to track used errors.vErrors
property.usedErrors
(a breaking change).SourceUnit
:ExportedSymbol
type to also allowErrorDefinition
s (this also will affect imports, a breaking change).vErrors
property.NODE_LIST
to mention new nodes.ASTNodeFactory
to respect the changes.Concerns
I believe that
YulHexStringLiteral
s are underworked in compiler:YulHexStringLiteral
. Due to this, it is really hard to make a decision how to write any string literals (common string or hex). The Solidity AST haveLiteral.kind
, that allows to determine how to write node properly, but Yul does not.YulHexStringLiteral
content values to write them ashex""
and get same output, as input was. Maybe there is something happening during JSON serialization/deserialization, that causes content fragmentation. The most stable approach I recall produces something, that is different from expectations (see the original source).I created a related issue in Solidity repository to figure out how to solve this.
Notes
ContractDefinition
) and arguments forASTNodeFactory
methods.undefined
by default of legacy AST nodes and related processing logic.Related links
YulHexStringLiteral
s support for Solidity 0.8.4YulHexStringLiteral
s supportRegards.