我应该为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(在其Pair合约中持有代币(例如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流程(链外(,将每个真实的人连接到他们的地址,否则这个限制很容易被绕过。

uint256 daysSinceUnixTimestampStarted = ((block.timestamp / secondsPerDay) + 4)
//user             //day    //counterOperations
mapping(address => mapping(uint256->uint256) operationsPerDay
require(operationsPerDay[msg.sender]++ < limit);

应该工作

很抱歉这么晚了。

最新更新