-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Implement EIP-1884: Repricing for trie-size-dependent opcodes in LegacyVM #5700
Conversation
Codecov Report
@@ Coverage Diff @@
## master #5700 +/- ##
==========================================
+ Coverage 63.22% 63.28% +0.06%
==========================================
Files 353 353
Lines 30276 30322 +46
Branches 3390 3392 +2
==========================================
+ Hits 19142 19190 +48
Misses 9898 9898
+ Partials 1236 1234 -2 |
3c5189b
to
64a3989
Compare
This is rebased and ready for review. |
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.
LGTM
Rebased. EIP is Accepted now, please review @chfast @halfalicious |
@gumb0 For reference, why was the account versioning EIP bumped from Istanbul? |
void testSelfBalanceisInvalidBeforeIstanbul() | ||
{ | ||
se.reset(ChainParams(genesisInfo(Network::ConstantinopleFixTest)).createSealEngine()); | ||
version = ConstantinopleFixSchedule.accountVersion; |
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.
How come the account version is available in the Constantinople Fix schedule..do we need to reference it in this test since from what I understand it's been punted to post-Istanbul?
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.
Versioning still exists in the code for all forks, with version being 0 in all forks before we activate version 1 (currently it's Experimental
fork)
This line is actually redundant.
Should we also add the following tests from the EIP:
|
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.
Approved with some minor questions not worth blocking merging for
@halfalicious Re account versioning: for now it's decided that no changes accepted for Istanbul are radical enough to put them under versioning. Actually I'm not sure anymore it will be ever needed. |
https://eips.ethereum.org/EIPS/eip-1884
Note that it puts repricing andSELFBALANCE
behind account versioning, i.e. reduced costs and the new opcode will be active only in contracts deployed with external transaction after Istanbul fork.If it's decided that it should be in effect for version 0, we'll need to introduce anotherEVMSchedule
("between" currentConstantinopleFixSchedule
andIstanbulSchedule
)Account versioning is disabled in Istanbul.