Самый простой и простой способ - проверить баланс отправителя и получателя до и после перевода.
Теперь о неудачном переводе. После прочтения договора я заметил, что в случае нехватки средстввы просто возвращаете false, что делает действительную транзакцию.Что вам нужно сделать, это отменить транзакции, используя require
, чтобы сделать чеки.Таким образом, неверная транзакция будет возвращена EVM, которая будет распознана etherscan и покажет, что транзакция не удалась.