如何检查发送到智能合约的负数?

How to check for negative numbers sent to smart contract?

我希望我的合同不接受负值被添加到它的余额中,所以我想我会添加一个 > 0 的要求值。它接缝虽然随着 payable 函数发送的值是无符号的,因此总是正数。这意味着如果您发送 -1 以太币,它会被接受并添加大约 1 以太币。如何确保不能发送负数?

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

谢谢!

不可能在EVM中发送负值。所以 msg.value 总是非负的。你不需要检查那个。