From the solidity docs:

Calls are limited to a depth of 1024, which means that for more complex operations, loops should be preferred over recursive calls. Furthermore, only 63/64th of the gas can be forwarded in a message call, which causes a depth limit of a little less than 1000 in practice.

I know there are some security considerations for setting a limit on how much a callee can consume, but I'm curious to know why did they set the value to 63/64, specifically? Was it just efficient to divide by 64 and subtract the result?


There is link describing how 63/64 rule allowed to execute transaction but to waste a lot of gas instead of just failing: https://github.com/Synthetixio/synthetix/issues/243

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.