0

我正在尝试创建一个项目和新的solidity。我添加了一个最大限制以防止鲸鱼钱包。限制是 150m 代币,我想烧掉更多的代币,如何从这个函数中排除烧录地址 0x0000000000000000000000000000000000000000。

代码:

@函数 _transfer(

 uint256 contractBalanceRecepient = balanceOf(to);
 require(contractBalanceRecepient + amount <= _maxWalletToken, "Exceeds maximum wallet token amount (150,000,000)");

亲切的问候凯文!

4

1 回答 1

0

您可以扩展条件require(),使其仅适用于非 0x0 的地址。

require(
    (
        contractBalanceRecepient + amount <= _maxWalletToken
        && to != address(0x0)
    ),
    "Exceeds maximum wallet token amount (150,000,000)"
);

注意:大多数烧录实现不会将代币转移到0x0. 相反,他们只是降低总供应量,降低发件人余额并发出Transfer()事件,就好像他们正在转移到 0x0 - 而不执行实际转移......但是您的方式(实际转移到 0x0)也是可能的。

于 2021-05-31T16:30:17.083 回答