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

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

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

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

你会买这种代币吗?

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

感谢您的建议。

【问题讨论】:

    标签: solidity smartcontracts cryptocurrency binance binance-smart-chain


    【解决方案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%。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 2022-12-03
    • 2021-11-17
    • 2022-07-02
    • 1970-01-01
    相关资源
    最近更新 更多