aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-09-19 20:42:39 +0800
committerGitHub <noreply@github.com>2018-09-19 20:42:39 +0800
commit125c0434d183f47ef2eff99146a021b42e39e2ef (patch)
tree55acbc5e26436fa9f29fb5626f051dad325e399a
parent785cbf40056e8d4c3c7629d37ec69b403e768aa9 (diff)
parent1770e9c02f2f80b7924920eaae44aeb7377b8ffe (diff)
downloaddexon-solidity-125c0434d183f47ef2eff99146a021b42e39e2ef.tar.gz
dexon-solidity-125c0434d183f47ef2eff99146a021b42e39e2ef.tar.zst
dexon-solidity-125c0434d183f47ef2eff99146a021b42e39e2ef.zip
Merge pull request #5004 from ethereum/solidity_types_abi
Note how Solidity types map to ABI types
-rw-r--r--docs/abi-spec.rst18
1 files changed, 18 insertions, 0 deletions
diff --git a/docs/abi-spec.rst b/docs/abi-spec.rst
index 92af8f0c..8a5e2f5c 100644
--- a/docs/abi-spec.rst
+++ b/docs/abi-spec.rst
@@ -81,6 +81,24 @@ It is possible to form tuples of tuples, arrays of tuples and so on. It is also
.. note::
Solidity supports all the types presented above with the same names with the exception of tuples. The ABI tuple type is utilised for encoding Solidity ``structs``.
+Mapping Solidity to ABI types
+-----------------------------
+The following table shows on the left column Solidity types that are not part of the ABI,
+and on the right column the ABI type that they map to.
+
++-------------------------------+-----------------------------------------------------------------------------+
+| Solidity | ABI |
++===============================+=============================================================================+
+|:ref:`address payable<address>`|``address`` |
++-------------------------------+-----------------------------------------------------------------------------+
+|:ref:`contract<contracts>` |``address`` |
++-------------------------------+-----------------------------------------------------------------------------+
+|:ref:`enum<enums>` |smallest ``uint`` type that is large enough to hold all values |
+| | |
+| |For example, an ``enum`` of 255 values or less is mapped to ``uint8`` and |
+| |an ``enum`` of 256 values is mapped to ``uint16``. |
++-------------------------------+-----------------------------------------------------------------------------+
+
Formal Specification of the Encoding
====================================