Automatically merged updates to draft EIP(s) 1884 (#2239)

Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing
This commit is contained in:
Martin Holst Swende 2019-08-16 00:50:26 +02:00 committed by EIP Automerge Bot
parent 226cf77d98
commit 0ab7e9c31f
1 changed files with 9 additions and 1 deletions

View File

@ -114,7 +114,14 @@ I expect that certain patterns will be less used, for example the use of multipl
## Test Cases
No test cases are implemented as of yet.
Testcases that should be implemented:
- Test that `selfbalance == balance(address)`,
- Test that `balance(this)` costs as before,
- Test that `selfbalance` does not pop from stack
- Gascost verification of `SLOAD`, `EXTCODEHASH` and `SELFBALANCE`
- Verify that `SELFBALANCE` is invalid before Istanbul
Some testcases have been implemented as statetests at https://github.com/holiman/IstanbulTests/tree/master/GeneralStateTests
## Implementation
@ -139,6 +146,7 @@ func opSelfBalance(pc *uint64, interpreter *EVMInterpreter, contract *Contract,
- See backwards compatibility section.
- There are no special edgecases regarding `SELFBALANCE`, if we define it as `BALANCE` with `address` instead of popping an address from the stack -- since `BALANCE` is already well-defined.
- It should be investigated if Solidity contains any hardcoded expectations on the gas cost of these operations.
- In many cases, a recipient of `ether` from a `CALL` will want to issue a `LOG`. The `LOG` operation costs `375` plus `375` per topic. If the `LOG` also wants to do an `SLOAD`, this change may make some such transfers fail.
## Copyright
Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).