-
Notifications
You must be signed in to change notification settings - Fork 967
revive: Precompiles should return dummy code when queried #9001
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
Conversation
Why would This cast code 0x0000000000000000000000000000000000010000 return something different than the 0x1 - 0x9 precompiles Are there example of precompiles on ethereum that returns something else than 0x |
Because we access those pre-compiles via a Solidity interface. As opposed via YUL assembly as we do for 0x1-0x9 pre-compiles. And Solidity does emit checks if a contract exists via
Not on main net. Because those are all accessed via assembly circumventing Solidity. |
/cmd prdoc --audience runtime_dev |
added tests paritytech/evm-test-suite#100 |
Test suite seems to fail due to this bug: paritytech/revive#344 But there is no released version with the fix, yet. @xermicus |
I'll try to cut a release with the fix right now. |
Fixes paritytech/contract-issues#111
This fixes both the RPC and the opcodes
EXTCODESIZE
andEXTCODEHASH
.Also removed the disabled host function
is_contract
. Contracts do useEXTCODESIZE
to determine if something is a contract exclusively.Need to add some differential tests to our test suite to make sure that the RPC matches geth behaviour:
On kitchensink: