Przeglądaj źródła

Document ERC1155 event differences (#4666)

(cherry picked from commit 793d92a3331538d126033cbacb1ee5b8a7d95adc)
Francisco 2 lat temu
rodzic
commit
5161a4dc8a
2 zmienionych plików z 5 dodań i 2 usunięć
  1. 4 0
      CHANGELOG.md
  2. 1 2
      contracts/token/ERC1155/IERC1155.sol

+ 4 - 0
CHANGELOG.md

@@ -180,6 +180,10 @@ In this logic of removing hidden SLOADs, the `_isApprovedOrOwner` function was r
 
 The `_exists` function was removed. Calls to this function can be replaced by `_ownerOf(tokenId) != address(0)`.
 
+#### More about ERC1155
+
+Batch transfers will now emit `TransferSingle` if the batch consists of a single token, while in previous versions the `TransferBatch` event would be used for all transfers initiated through `safeBatchTransferFrom`. Both behaviors are compliant with the ERC-1155 specification.
+
 #### ERC165Storage
 
 Users that were registering EIP-165 interfaces with `_registerInterface` from `ERC165Storage` should instead do so so by overriding the `supportsInterface` function as seen below:

+ 1 - 2
contracts/token/ERC1155/IERC1155.sol

@@ -104,13 +104,12 @@ interface IERC1155 is IERC165 {
     /**
      * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.
      *
-     *
      * WARNING: This function can potentially allow a reentrancy attack when transferring tokens
      * to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver.
      * Ensure to follow the checks-effects-interactions pattern and consider employing
      * reentrancy guards when interacting with untrusted contracts.
      *
-     * Emits a {TransferBatch} event.
+     * Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments.
      *
      * Requirements:
      *