Почему ERC-20 transfer() может вернуть false вместо revert?
Стандарт ERC-20 (EIP-20) определяет transfer() как функцию, возвращающую bool. Реализация остаётся на усмотрение разработчика: одни токены делают revert при ошибке (USDC, DAI), другие возвращают false (ранние токены USDT, некоторые кастомные реализации). Контракт, не проверяющий return value, считает оба исхода успехом. Риск: при интеграции нестандартного токена уязвимость проявляется только в момент реального сбоя перевода — в тестах на «правильных» токенах она невидима.