Fix outdated references to byte[] type (it's now bytes1[])

This commit is contained in:
Kamil Śliwak 2021-07-08 13:04:00 +02:00
parent 691083c032
commit ddccd73a4b
4 changed files with 6 additions and 6 deletions

View File

@ -234,7 +234,7 @@ This means that the allocatable memory starts at ``0x80``, which is the initial
of the free memory pointer. of the free memory pointer.
Elements in memory arrays in Solidity always occupy multiples of 32 bytes (this is Elements in memory arrays in Solidity always occupy multiples of 32 bytes (this is
even true for ``byte[]``, but not for ``bytes`` and ``string``). Multi-dimensional memory even true for ``bytes1[]``, but not for ``bytes`` and ``string``). Multi-dimensional memory
arrays are pointers to memory arrays. The length of a dynamic array is stored at the arrays are pointers to memory arrays. The length of a dynamic array is stored at the
first slot of the array and followed by the array elements. first slot of the array and followed by the array elements.

View File

@ -19,7 +19,7 @@ Solidity always places new objects at the free memory pointer and
memory is never freed (this might change in the future). memory is never freed (this might change in the future).
Elements in memory arrays in Solidity always occupy multiples of 32 bytes (this Elements in memory arrays in Solidity always occupy multiples of 32 bytes (this
is even true for ``byte[]``, but not for ``bytes`` and ``string``). is even true for ``bytes1[]``, but not for ``bytes`` and ``string``).
Multi-dimensional memory arrays are pointers to memory arrays. The length of a Multi-dimensional memory arrays are pointers to memory arrays. The length of a
dynamic array is stored at the first slot of the array and followed by the array dynamic array is stored at the first slot of the array and followed by the array
elements. elements.

View File

@ -139,7 +139,7 @@ a reference to it.
``bytes`` and ``string`` as Arrays ``bytes`` and ``string`` as Arrays
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Variables of type ``bytes`` and ``string`` are special arrays. A ``bytes`` is similar to ``byte[]``, Variables of type ``bytes`` and ``string`` are special arrays. The ``bytes`` type is similar to ``bytes1[]``,
but it is packed tightly in calldata and memory. ``string`` is equal to ``bytes`` but does not allow but it is packed tightly in calldata and memory. ``string`` is equal to ``bytes`` but does not allow
length or index access. length or index access.
@ -148,8 +148,8 @@ third-party string libraries. You can also compare two strings by their keccak25
``keccak256(abi.encodePacked(s1)) == keccak256(abi.encodePacked(s2))`` and ``keccak256(abi.encodePacked(s1)) == keccak256(abi.encodePacked(s2))`` and
concatenate two strings using ``bytes.concat(bytes(s1), bytes(s2))``. concatenate two strings using ``bytes.concat(bytes(s1), bytes(s2))``.
You should use ``bytes`` over ``byte[]`` because it is cheaper, You should use ``bytes`` over ``bytes1[]`` because it is cheaper,
since ``byte[]`` adds 31 padding bytes between the elements. As a general rule, since ``bytes1[]`` adds 31 padding bytes between the elements. As a general rule,
use ``bytes`` for arbitrary-length raw byte data and ``string`` for arbitrary-length use ``bytes`` for arbitrary-length raw byte data and ``string`` for arbitrary-length
string (UTF-8) data. If you can limit the length to a certain number of bytes, string (UTF-8) data. If you can limit the length to a certain number of bytes,
always use one of the value types ``bytes1`` to ``bytes32`` because they are much cheaper. always use one of the value types ``bytes1`` to ``bytes32`` because they are much cheaper.

View File

@ -398,7 +398,7 @@ Members:
* ``.length`` yields the fixed length of the byte array (read-only). * ``.length`` yields the fixed length of the byte array (read-only).
.. note:: .. note::
The type ``byte[]`` is an array of bytes, but due to padding rules, it wastes The type ``bytes1[]`` is an array of bytes, but due to padding rules, it wastes
31 bytes of space for each element (except in storage). It is better to use the ``bytes`` 31 bytes of space for each element (except in storage). It is better to use the ``bytes``
type instead. type instead.