微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我应该为 Bep20 代币设置每笔交易/24 小时的最大卖出限额吗?

如何解决我应该为 Bep20 代币设置每笔交易/24 小时的最大卖出限额吗?

我正在创建一个令牌,并希望解决大鲸鱼的抽水和转储问题,或者只是转储问题。因此,我考虑过限制地址每笔交易或每 24 小时的销售量。

这在 Bep20 智能合约中可行吗?我的程序员告诉我不是。如果是,这是否也会自动影响一个人可以购买的数量

这种限制会产生未知的负面后果吗?

您会购买这种类型的代币吗?

最后,目前是否有任何 BEP20(或其他区块链)代币正在实施此功能

感谢您的建议。

解决方法

可以限制一个地址在一段时间内可以接收多少代币。

struct TransferHistory {
    uint32 transferTime;
    address from;
    address to;
    uint256 amount;
}

mapping (address => TransferHistory[]) transferHistoryPerReceiver;

function transfer(address _to,uint256 _amount) external returns (bool) {
    require(receivedDuringPast24Hours(_to) <= 100,'You can only receive up to 100 tokens during the past 24 hours');
}

function receivedDuringPast24Hours(address _who) external view returns (uint256) {
    // todo loop through `transferHistoryPerReceiver[_who]`
    // filter and return sum based on the time period
}

去中心化交易所(例如 PancakeSwap)在其配对合约中持有代币(例如 YourToken/CAKE 是一对合约,YourToken/WBNB 是另一对合约,...)。您可以根据 msg.sender(即配对合约)限制转账。

if (msg.sender == pancakeswapPairAddress) {
    require(receivedDuringPast24Hours(_to) <= 100,'You can only receive up to 100 tokens during the past 24 hours');
}

然而,一个人实际上可以拥有无​​限数量的地址。因此,除非您执行一些 KYC 流程(链下)将每个真实的人连接到他们的地址,否则可以轻松绕过此限制。

,

我正在考虑将相同的内容应用于鲸鱼保护,实际上我有一个非常酷的令牌用例。如果接收者已经拥有的数量超过了最大可以拥有的数量,我只是使用 require() 来恢复传输。所以一个钱包里的总金额是有上限的。但就像@Petr Hejda 所说的,可以使用不同的钱包。实施不同的税率可能会有所帮助吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?