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

问题描述 投票:0回答:1

我不希望我的合约接受将负值添加到其余额中,所以我想我应该添加一个要求值> 0。它看起来很接缝,因为与应付函数一起发送的值是无符号的,因此总是一个正数。这意味着如果您发送

-1
以太币,它会被接受并添加约
1
以太币。

如何确保不能发送负数?

function () external payable {
  require(msg.value > 0); 
  require(msg.data.length == 0);
} 
javascript ethereum solidity web3js truffle
1个回答
4
投票

EVM 中不可能发送负值。所以

msg.value
总是非负的。你不需要检查。

© www.soinside.com 2019 - 2024. All rights reserved.