我不希望我的合约接受将负值添加到其余额中,所以我想我应该添加一个要求值> 0。它看起来很接缝,因为与应付函数一起发送的值是无符号的,因此总是一个正数。这意味着如果您发送
-1
以太币,它会被接受并添加约 1
以太币。
如何确保不能发送负数?
function () external payable {
require(msg.value > 0);
require(msg.data.length == 0);
}
EVM 中不可能发送负值。所以
msg.value
总是非负的。你不需要检查。