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

Posted

技术标签:

【中文标题】我应该为 Bep20 代币设置每笔交易/24 小时的最大卖出限额吗?【英文标题】:Should I set a maximum sell limit per transaction/24 hours on a Bep20 token? 【发布时间】:2021-08-12 15:33:17 【问题描述】:

我正在创建一个代币,并想解决抽水和转储的大鲸鱼问题,或者只是转储问题。因此,我考虑限制一个地址每笔交易或每 24 小时可以销售多少。

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

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

你会买这种代币吗?

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

感谢您的建议。

【问题讨论】:

【参考方案1】:

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

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 流程(链下)将每个真实的人连接到他们的地址,否则可以轻松绕过此限制。

【讨论】:

哇。感谢您确认可以完成。我的编码员可能只是在他的技能方面受到限制。哈哈。我没有足够的声誉来投票,但我确实投了。你知道 pancakeswap 是否有购买限制。如果我创建一个流动资金池,有人可以一次购买全部吗? 目前没有硬性限制 - 除了实际流动资金池中的资产数量限制(不能超过实际支出)。如果您即将提交一个会显着改变价格或花费大部分质押资产的订单,那么在 Pancake UI 上几乎不会出现警告(并且可能需要在提交实际交易之前进行确认)。 谢谢。我计划在流动资金池上花费 10 亿美元来购买 300 亿个代币。我知道这有多危险。 @NiftyMcG,幸好我不是你的程序员,pancakeswap 将价格影响限制在 15%。

以上是关于我应该为 Bep20 代币设置每笔交易/24 小时的最大卖出限额吗?的主要内容,如果未能解决你的问题,请参考以下文章

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

BEP-20 代币交易中被低估的交易

如何计算 BSC (BEP-20) 区块链中 USDT 等代币交易的 gasLimit?

具有空投功能的 BEP-20 智能合约

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

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