What's the feature 🧐
Custom precompiles are capable of using callContract to make calls to other contracts or precompiles.
To have effective behavioral parity with calls out from standard smart contracts, callContract should respect the 63/64 rule applied by standard opCall logic.
Recommended approach and alternatives
callContract was used previously by the native asset precompile on the C-Chain, without the 63/64 rule applied. In order to maintain backwards compatibility with historic execution there could be an option to have callContract bypass the rule, and this option should be set in the (now fully deprecated) native asset precompile.
What's the feature 🧐
Custom precompiles are capable of using
callContractto make calls to other contracts or precompiles.To have effective behavioral parity with calls out from standard smart contracts,
callContractshould respect the 63/64 rule applied by standardopCalllogic.Recommended approach and alternatives
callContractwas used previously by the native asset precompile on the C-Chain, without the 63/64 rule applied. In order to maintain backwards compatibility with historic execution there could be an option to havecallContractbypass the rule, and this option should be set in the (now fully deprecated) native asset precompile.