From 93e6e83093ecd4a31035e7b6a62adabd3cd81c5a Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Wed, 16 Aug 2017 20:51:47 +0100 Subject: Document pure functions --- docs/contracts.rst | 23 ++++++++++++++++++++++- docs/miscellaneous.rst | 5 +++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/docs/contracts.rst b/docs/contracts.rst index 0f1a882c..50e7f3d1 100644 --- a/docs/contracts.rst +++ b/docs/contracts.rst @@ -475,7 +475,7 @@ Functions can be declared ``view`` in which case they promise not to modify the contract C { function f(uint a, uint b) view returns (uint) { - return a * (b + 42); + return a * (b + 42) + now; } } @@ -488,6 +488,27 @@ Functions can be declared ``view`` in which case they promise not to modify the .. warning:: The compiler does not enforce yet that a ``view`` method is not modifying state. +.. _pure-functions: + +************** +Pure Functions +************** + +Functions can be declared ``pure`` in which case they promise not to read from or modify the state. + +:: + + pragma solidity ^0.4.0; + + contract C { + function f(uint a, uint b) pure returns (uint) { + return a * (b + 42); + } + } + +.. warning:: + The compiler does not enforce yet that a ``pure`` method is not reading from the state. + .. index:: ! fallback function, function;fallback .. _fallback-function: diff --git a/docs/miscellaneous.rst b/docs/miscellaneous.rst index 7889fff2..e78c4807 100644 --- a/docs/miscellaneous.rst +++ b/docs/miscellaneous.rst @@ -500,12 +500,13 @@ Function Visibility Specifiers - ``internal``: only visible internally -.. index:: modifiers, constant, anonymous, indexed +.. index:: modifiers, pure, view, payable, constant, anonymous, indexed Modifiers ========= -- ``view`` for functions: Disallow modification of state - this is not enforced yet. +- ``pure`` for functions: Disallows modification or access of state - this is not enforced yet. +- ``view`` for functions: Disallows modification of state - this is not enforced yet. - ``payable`` for functions: Allows them to receive Ether together with a call. - ``constant`` for state variables: Disallows assignment (except initialisation), does not occupy storage slot. - ``constant`` for functions: Same as ``view``. -- cgit