aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorAlex Beregszaszi <alex@rtfs.hu>2016-10-16 05:34:35 +0800
committerAlex Beregszaszi <alex@rtfs.hu>2016-10-19 21:02:50 +0800
commit1b3713742f10a4749e6f15b9344d8ffaef19790e (patch)
tree97e978d750a2305d2cb8d4086c78c434a2af29fa /docs
parentf0f2d5a612e0f646c7d6cec0092d2713ba9d686b (diff)
downloaddexon-solidity-1b3713742f10a4749e6f15b9344d8ffaef19790e.tar
dexon-solidity-1b3713742f10a4749e6f15b9344d8ffaef19790e.tar.gz
dexon-solidity-1b3713742f10a4749e6f15b9344d8ffaef19790e.tar.bz2
dexon-solidity-1b3713742f10a4749e6f15b9344d8ffaef19790e.tar.lz
dexon-solidity-1b3713742f10a4749e6f15b9344d8ffaef19790e.tar.xz
dexon-solidity-1b3713742f10a4749e6f15b9344d8ffaef19790e.tar.zst
dexon-solidity-1b3713742f10a4749e6f15b9344d8ffaef19790e.zip
Document constant functions
Diffstat (limited to 'docs')
-rw-r--r--docs/contracts.rst27
-rw-r--r--docs/frequently-asked-questions.rst14
2 files changed, 24 insertions, 17 deletions
diff --git a/docs/contracts.rst b/docs/contracts.rst
index 986d05b3..e2fdf3f3 100644
--- a/docs/contracts.rst
+++ b/docs/contracts.rst
@@ -421,9 +421,9 @@ change by overriding).
.. index:: ! constant
-**********
-Constants
-**********
+************************
+Constant State Variables
+************************
State variables can be declared as constant (this is not yet implemented
for array and struct types and not possible for mapping types).
@@ -442,6 +442,27 @@ for these variables and every occurrence is replaced by their constant value.
The value expression can only contain integer arithmetics.
+******************
+Constant Functions
+******************
+
+Functions can be declared constant. These functions promise not to modify the state.
+
+::
+
+ pragma solidity ^0.4.0;
+
+ contract C {
+ function f(uint a, uint b) constant returns (uint) {
+ return a * (b + 42);
+ }
+ }
+
+.. note::
+ Accessor methods are marked constant.
+
+.. warning::
+ The compiler does not enforce yet that a constant method is not modifying state.
.. index:: ! fallback function, function;fallback
diff --git a/docs/frequently-asked-questions.rst b/docs/frequently-asked-questions.rst
index e0bdcfb4..6d47e4a7 100644
--- a/docs/frequently-asked-questions.rst
+++ b/docs/frequently-asked-questions.rst
@@ -97,20 +97,6 @@ Its type is the type of the contract. Since any contract type basically inherits
``address`` type, ``this`` is always convertible to ``address`` and in this case contains
its own address.
-What is the difference between a function marked ``constant`` and one that is not?
-==================================================================================
-
-``constant`` functions can perform some action and return a value, but cannot
-change state (this is not yet enforced by the compiler). In other words, a
-constant function cannot save or update any variables within the contract or wider
-blockchain. These functions are called using ``c.someFunction(...)`` from
-geth or any other web3.js environment.
-
-"non-constant" functions (those lacking the ``constant`` specifier) must be called
-with ``c.someMethod.sendTransaction({from:eth.accounts[x], gas: 1000000});``
-That is, because they can change state, they have to have a gas
-payment sent along to get the work done.
-
Get a contract to return its funds to you (not using ``selfdestruct(...)``).
============================================================================