Как проверить, не отправлены ли отрицательные числа на смарт-контракт?
Я хочу, чтобы в моем контракте не принимались отрицательные значения, добавляемые к его балансу, поэтому я подумал, что добавлю обязательное значение> 0. Он выглядит так, поскольку значение, отправляемое с помощью функции payable, является беззнаковым и, следовательно, всегда положительным числом. Это означает, что если вы отправляете -1 эфир, он принимается и добавляет около 1 эфира. Как убедиться, что отрицательные числа не могут быть отправлены?
function () external payable {
require(msg.value > 0);
require(msg.data.length == 0);
}
Спасибо!
1 ответ
Решение
Невозможно отправить отрицательное значение в EVM. Так msg.value
всегда неотрицателен Вам не нужно проверять это.