Я хочу установить требование, которое ограничивает, если у пользователя нет эфира больше, чем он ввел msg.value
Итак, я написал требуемый код, подобный этому.
function send() public payable {
require(msg.sender.balance >= msg.value);
}
Но это не работает из-за «Ошибка VM: возврат».
Как это может быть??
Вы можете попробовать это:
function send() public payable {
if (msg.sender.balance < msg.value) {
revert();
}
}
Надеюсь, это поможет вам.
Возможно, вы должны использовать функцию возврата, например:
function send() public payable {
if (msg.value > msg.sender.balance) {revert();}
}
Спасибо, я хочу поделиться с кем-нибудь об этом. revert(), assert() и т. д. medium.com/blockchannel/…
ура друзья!
Этот код, кажется, отлично работает для меня. Моя догадка очевидна: у отправителя нет осталось больше эфира, чем сумма, которую он отправил
send
.