aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2016-08-30 21:48:41 +0800
committerGitHub <noreply@github.com>2016-08-30 21:48:40 +0800
commit99862d15fe44c6192111bd07b24be646b0f91871 (patch)
tree10ca3a6cfef0fec9d49b4ad707eb368426fe0862
parentcf974fd103dbb56313eee40ce9ffe4d03d6c1b04 (diff)
parent8b488e3ee48cef2fd3218edf71d9af929a17081f (diff)
downloaddexon-solidity-99862d15fe44c6192111bd07b24be646b0f91871.tar.gz
dexon-solidity-99862d15fe44c6192111bd07b24be646b0f91871.tar.zst
dexon-solidity-99862d15fe44c6192111bd07b24be646b0f91871.zip
Merge pull request #972 from Denton-L/document-sha3
Document constant behaviour for hashes
-rw-r--r--docs/units-and-global-variables.rst4
1 files changed, 4 insertions, 0 deletions
diff --git a/docs/units-and-global-variables.rst b/docs/units-and-global-variables.rst
index d1d578ed..3da3c547 100644
--- a/docs/units-and-global-variables.rst
+++ b/docs/units-and-global-variables.rst
@@ -109,6 +109,10 @@ This means that the following are all identical::
If padding is needed, explicit type conversions can be used: ``sha3("\x00\x12")`` is the
same as ``sha3(uint16(0x12))``.
+Note that constants will be packed using the minimum number of bytes required to store them.
+This means that, for example, ``sha3(0) == sha3(uint8(0))`` and
+``sha3(0x12345678) == sha3(uint32(0x12345678))``.
+
It might be that you run into Out-of-Gas for ``sha256``, ``ripemd160`` or ``ecrecover`` on a *private blockchain*. The reason for this is that those are implemented as so-called precompiled contracts and these contracts only really exist after they received the first message (although their contract code is hardcoded). Messages to non-existing contracts are more expensive and thus the execution runs into an Out-of-Gas error. A workaround for this problem is to first send e.g. 1 Wei to each of the contracts before you use them in your actual contracts. This is not an issue on the official or test net.
.. _address_related: