From a7592fa8016401b4674faa5059b0ae00dc7ece68 Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Tue, 26 Sep 2017 21:21:49 +0100 Subject: Document packed ABI --- docs/abi-spec.rst | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'docs/abi-spec.rst') diff --git a/docs/abi-spec.rst b/docs/abi-spec.rst index 29d98645..0361458f 100644 --- a/docs/abi-spec.rst +++ b/docs/abi-spec.rst @@ -442,3 +442,22 @@ would result in the JSON: "outputs": [] } ] + +.. _abi_packed_mode: + +Non-standard Packed Mode +======================== + +Solidity supports a non-standard packed mode where: + +- no :ref:`function selector ` is encoded, +- short types are not zero padded and +- dynamic types are encoded in-place and without the length. + +As an example encoding ``uint1, bytes1, uint8, string`` with values ``1, 0x42, 0x2424, "Hello, world!"`` results in :: + + 0x0142242448656c6c6f2c20776f726c6421 + ^^ uint1(1) + ^^ bytes1(0x42) + ^^^^ uint8(0x2424) + ^^^^^^^^^^^^^^^^^^^^^^^^^^ string("Hello, world!") without a length field -- cgit