Как проверить, не отправлены ли отрицательные числа на смарт-контракт?

Я хочу, чтобы в моем контракте не принимались отрицательные значения, добавляемые к его балансу, поэтому я подумал, что добавлю обязательное значение> 0. Он выглядит так, поскольку значение, отправляемое с помощью функции payable, является беззнаковым и, следовательно, всегда положительным числом. Это означает, что если вы отправляете -1 эфир, он принимается и добавляет около 1 эфира. Как убедиться, что отрицательные числа не могут быть отправлены?

function () external payable {
  require(msg.value > 0); 
  require(msg.data.length == 0);
} 

Спасибо!

1 ответ

Решение

Невозможно отправить отрицательное значение в EVM. Так msg.value всегда неотрицателен Вам не нужно проверять это.

Другие вопросы по тегам