mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Explain the limitations of view and pure
This commit is contained in:
parent
f791ca3957
commit
2af949baaa
@ -469,6 +469,17 @@ View Functions
|
|||||||
|
|
||||||
Functions can be declared ``view`` in which case they promise not to modify the state.
|
Functions can be declared ``view`` in which case they promise not to modify the state.
|
||||||
|
|
||||||
|
The following statements are considered modifying the state:
|
||||||
|
|
||||||
|
#. Writing to state variables.
|
||||||
|
#. :ref:`Emitting events. <events>`.
|
||||||
|
#. :ref:`Creating other contracts <creating-contracts>`.
|
||||||
|
#. Using ``selfdestruct``.
|
||||||
|
#. Sending Ether via calls.
|
||||||
|
#. Calling any function not marked ``view`` or ``pure``.
|
||||||
|
#. Using low-level calls.
|
||||||
|
#. Using inline assembly that contains certain opcodes.
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
pragma solidity ^0.4.16;
|
pragma solidity ^0.4.16;
|
||||||
@ -496,6 +507,13 @@ Pure Functions
|
|||||||
|
|
||||||
Functions can be declared ``pure`` in which case they promise not to read from or modify the state.
|
Functions can be declared ``pure`` in which case they promise not to read from or modify the state.
|
||||||
|
|
||||||
|
In addition to the list of state modifying statements explained above, the following are considered reading from the state:
|
||||||
|
#. Reading from state variables.
|
||||||
|
#. Accessing ``this.balance`` or ``<address>.balance``.
|
||||||
|
#. Accessing any of the members of ``block``, ``tx``, ``msg`` (with the exception of ``msg.sig`` and ``msg.data``).
|
||||||
|
#. Calling any function not marked ``pure``.
|
||||||
|
#. Using inline assembly that contains certain opcodes.
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
pragma solidity ^0.4.16;
|
pragma solidity ^0.4.16;
|
||||||
|
Loading…
Reference in New Issue
Block a user