You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: development-guidelines/token_integration.md
+36Lines changed: 36 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -72,6 +72,42 @@ Reviews of token scarcity issues must be executed manually. Check for the follow
72
72
-[ ]**Users understand the risks associated with a large amount of funds or flash loans.** Contracts relying on the token balance must account for attackers with a large amount of funds or attacks executed through flash loans.
73
73
-[ ]**The token does not allow flash minting.** Flash minting can lead to substantial swings in the balance and the total supply, which necessitate strict and comprehensive overflow checks in the operation of the token.
74
74
75
+
### Known non-standard ERC20 tokens
76
+
77
+
The following tokens are known to be non-standard ERC20 tokens. They may have additional risks that must be covered.
|[Binance Coin (BNB)](https://etherscan.io/token/0xB8c77482e45F1F44dE1745F52C74426C631bDD52)| MISSING_RETURN_DATA | Only missing return data on `transfer`. `transferFrom` returns `true`. |
| NO_REVERT | Does not revert when a transfer fails due to missing funds. | Protocols must check the return value in addition to the call success status. |
95
+
| MISSING_RETURN_DATA | Does not return any data when transferring tokens. | Protocols that expect a return value when transferring tokens will revert. Solidity includes automatic checks on the return data size when calling `token.transfer`. |
96
+
| TRANSFER_HOOKS | Includes [ERC777](https://eips.ethereum.org/EIPS/eip-777)-like transfer hooks. | Protocols that interact with tokens that include transfer hooks must be extra careful to protect against reentrant calls. This can also affect cross-protocol reentrant calls to `view` functions. |
97
+
| PERMIT_NOOP | Does not revert when calling `permit`. | Protocols that use [EIP-2612 permits](https://eips.ethereum.org/EIPS/eip-2612) should check that the token allowance has increased. See [Multichain's incident](https://media.dedaub.com/phantom-functions-and-the-billion-dollar-no-op-c56f062ae49f). |
0 commit comments