Adds more specific explanation of library view functions calls.

This commit is contained in:
Erik Kundt 2018-10-10 15:10:25 +02:00
parent 4beabf6686
commit 8a15058a21

View File

@ -486,8 +486,10 @@ Functions can be declared ``view`` in which case they promise not to modify the
If the compiler's EVM target is Byzantium or newer (default) the opcode If the compiler's EVM target is Byzantium or newer (default) the opcode
``STATICCALL`` is used for ``view`` functions which enforces the state ``STATICCALL`` is used for ``view`` functions which enforces the state
to stay unmodified as part of the EVM execution. For library ``view`` functions to stay unmodified as part of the EVM execution. For library ``view`` functions
``DELEGATECALL`` is used. Since they are executed in the context of the calling ``DELEGATECALL`` is used, because there is no combined ``DELEGATECALL`` and ``STATICCALL``.
contract, the static checker is extended to the library. This means library ``view`` functions do not have run-time checks that prevent state
modifications. This should not impact security negatively because library code is
usually known at compile-time and the static checker performs compile-time checks.
The following statements are considered modifying the state: The following statements are considered modifying the state: