diff --git a/EIPS/eip-777.md b/EIPS/eip-777.md index 72f4e821..7f77b041 100644 --- a/EIPS/eip-777.md +++ b/EIPS/eip-777.md @@ -549,8 +549,6 @@ Nonetheless, the rules below MUST be respected when minting for a *recipient*: - The `data` and `operatorData` MUST be immutable during the entire mint process—hence the same `data` and `operatorData` MUST be used to call the `tokensReceived` hook and emit the `Minted` event. -- The `data` field MUST be empty. - The token contract MUST `revert` when minting in any of the following cases: - The resulting *recipient* balance after the mint is not a multiple of the *granularity* defined by the token contract. @@ -576,6 +574,10 @@ The token contract MAY mint tokens for multiple *recipients* at once. In this ca *NOTE*: Minting an amount of zero (`0`) tokens is valid and MUST be treated as a regular mint. +*NOTE*: While during a send or a burn, the data is provided by the *holder*, it is inapplicable for a mint. +In this case the data MAY be provided by the token contract or the *operator*, +for example to ensure a successful minting to a *holder* expecting specific data. + *NOTE*: The `operatorData` field contains information provided by the *operator*—similar to the data field in a regular ether send transaction. The `tokensReceived()` hooks MAY use the information to decide if it wish to reject the transaction. @@ -594,7 +596,7 @@ Indicate the minting of `amount` of tokens to the `to` address by the `operator` > `operator`: Address which triggered the mint. > `to`: Recipient of the tokens. > `amount`: Number of tokens minted. -> `data`: MUST be empty. +> `data`: Information provided for the *recipient*. > `operatorData`: Information provided by the *operator*. #### **Burning Tokens**