Чтобы ответить на ваш вопрос в одной строке -:
Любая функция, помеченная как подлежащая оплате, может считаться получающей эфиры.
function testPayable() external payable {...}
Вышеуказанная функцияподлежит оплате и, следовательно, может получать.
Но не заблуждайтесь оплачиваемое ключевое слово используется только для получения эфиров, а не токенов ERC20.
Так что в вашем случае, насколько яМожно увидеть, что передаточная функция помечена как подлежащая оплате, что не должно быть в случае, если это токен ERC20.
Что-то звучит подозрительно для меня, не правда ли?