Merge pull request #9887 from ethereum/evmhost

EVMHost: keep precompile balance/settings across resets
This commit is contained in:
chriseth
2020-09-24 21:15:06 +02:00
committed by GitHub
4 changed files with 74 additions and 11 deletions
@@ -0,0 +1,28 @@
contract C {
constructor() payable {}
function f() public returns (uint256 ret) {
assembly {
ret := balance(0)
}
}
function g() public returns (uint256 ret) {
assembly {
ret := balance(1)
}
}
function h() public returns (uint256 ret) {
assembly {
ret := balance(address())
}
}
}
// ====
// EVMVersion: >=constantinople
// compileViaYul: also
// ----
// constructor(), 23 wei ->
// f() -> 0
// g() -> 1
// h() -> 23
@@ -0,0 +1,25 @@
contract C {
function f() public returns (bytes32 ret) {
assembly {
ret := extcodehash(0)
}
}
function g() public returns (bytes32 ret) {
assembly {
ret := extcodehash(1)
}
}
function h() public returns (bool ret) {
assembly {
ret := iszero(iszero(extcodehash(address())))
}
}
}
// ====
// EVMVersion: >=constantinople
// compileViaYul: also
// ----
// f() -> 0
// g() -> 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
// h() -> true