戻り値の不足#
一部のトークンは、ERC20 メソッドでは bool を返さない場合があります(例:USDT
、BNB
、OMG
)。詳細はこちらをご覧ください(やや古い情報です)。
失敗時のリバートなし#
一部のトークンは、失敗時にリバートせずにfalse
を返す場合があります(例:ZRX)。
承認競争の保護#
一部のトークン(例:USDT
、KNC
)では、既に承認されている金額N > 0
がある場合、金額M > 0
を承認することはできません。これは、こちらで説明されている ERC20 の攻撃ベクトルから保護するためです。
ゼロアドレスへの承認時のリバート#
一部のトークン(例:OpenZeppelin)は、トークンの支出先にゼロアドレスを承認しようとするとリバートします(つまり、approve(address(0), amt)
への呼び出し)。
このようなトークンを使用する場合、統合者はこのロジックを処理するための特別なケースを追加する必要がある場合があります。
ゼロ値の転送時のリバート#
一部のトークン(例:LEND
)は、ゼロ値の金額を転送するとリバートします。
小数点以下の桁数#
- EURS' の
decimals
:2
大数の桁数#
- NEAR' の
decimals
:24
詳細はこちらもご覧ください:https://github.com/d-xo/weird-erc20