BEP20 如何从 maxlimit 函数中排除销毁钱包

Posted

技术标签:

【中文标题】BEP20 如何从 maxlimit 函数中排除销毁钱包【英文标题】:BEP20 How to exclude the burn wallet from the maxlimit function 【发布时间】:2021-08-18 21:44:44 【问题描述】:

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

代码:

@函数_transfer(

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

向凯文问好!

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

以上是关于BEP20 如何从 maxlimit 函数中排除销毁钱包的主要内容,如果未能解决你的问题,请参考以下文章

NodeJs 上的 BEP-20 代币交易

如何获得USDT余额BEP-20? web3.eth.getBalance

传输 BEP20 令牌时发件人无效

bep20 web3 在帐户之间发送令牌示例

Solidity BEP20:此时 transferFrom 未(或尚未)声明或可见

返回错误:BEP-20 代币交易中的交易价格过低