Files
openzeppelin-contracts/contracts/token/ERC777
0xclaudeshannon 80d8da0564 Do not reduce approval on transferFrom if current allowance is type(uint256).max (#3085)
* add feature request #3084

* Update contracts/token/ERC20/ERC20.sol

Co-authored-by: Francisco Giordano <frangio.1@gmail.com>

* Add changelog note

* add documentation

* test unlimitted allowance and add ERC777 unlimitted allowance

* reference PR in changelog

* documentation IERC20 -> ERC20

* use asciidoc note syntax

* use asciidoc note syntax

* typo

* typos

Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
2022-01-11 00:08:33 +01:00
..
2021-12-14 13:14:39 -03:00
2021-12-14 13:14:39 -03:00
2021-12-14 13:14:39 -03:00
2021-12-14 13:14:39 -03:00

= ERC 777

[.readme-notice]
NOTE: This document is better viewed at https://docs.openzeppelin.com/contracts/api/token/erc777

This set of interfaces and contracts are all related to the [ERC777 token standard](https://eips.ethereum.org/EIPS/eip-777).

TIP: For an overview of ERC777 tokens and a walk through on how to create a token contract read our xref:ROOT:erc777.adoc[ERC777 guide].

The token behavior itself is implemented in the core contracts: {IERC777}, {ERC777}.

Additionally there are interfaces used to develop contracts that react to token movements: {IERC777Sender}, {IERC777Recipient}.

== Core

{{IERC777}}

{{ERC777}}

== Hooks

{{IERC777Sender}}

{{IERC777Recipient}}

== Presets

These contracts are preconfigured combinations of features. They can be used through inheritance or as models to copy and paste their source code.

{{ERC777PresetFixedSupply}}