【问题标题】:How to restrict pancakeswap users from adding initial liquidity for my issued token?如何限制 pancakeswap 用户为我发行的代币增加初始流动性?
【发布时间】:2022-11-12 17:07:56
【问题描述】:

我计划推出一个代币,但我不能马上增加流动性,因为第一次审计将被处理和预售。因此,我在想如何防止其他 pancakeswap 用户为我的代币添加初始流动性?我应该使用哪个功能? 我在想也许转移功能应该有某种白名单,所以转移只能通过代币所有者和预售合同进行。 请分享您对此类案例的经验。

【问题讨论】:

    标签: blockchain solidity binance-smart-chain


    【解决方案1】:

    因此,我在想如何防止其他 pancakeswap 用户为我的代币增加初始流动性?

    正确的。如果您的代币是可转让的,则您无法阻止您的代币交易。

    Here is an example how you can modify transfer() function with restrict conditions

    【讨论】:

      【解决方案2】:

      您必须使用要求来限制功能:

      contract Airdrop {
        address public admin;
      ...
      }
          
      constructor(address _token, address _admin) {
              admin = _admin; 
              token = IERC20(_token);
            }
          
           function addinitial(uint amount) external {
              require(msg.sender == admin, 'only admin');
              your function to add liquidities;
            }
      

      【讨论】:

      • 这是行不通的,因为您必须检查传输功能,并且传输功能必须对所有人公开。我想我只需要设置一些布尔值,如“已启动”,如果没有,则禁用交易并仅检查用户是否是管理员,如果是管理员,则意味着他/她添加流动性,然后切换布尔值以便每个人都可以转移
      • 该函数是公开的,但由于管理员地址存储在构造函数中,并且需要验证消息发送者是否为管理员,因此它将阻止任何其他人添加流动性。使用构造函数来存储管理地址是限制对函数的访问的最佳实践之一。看这个例子:github.com/jklepatch/eattheblocks/blob/master/…
      【解决方案3】:

      只需将总供应量的 100% 设置为所有者帐户即可。这样,没有人可以提供更多的流动性,因为目前没有其他人拥有该代币。

      【讨论】:

        猜你喜欢
        • 2022-10-16
        • 1970-01-01
        • 2021-07-17
        • 1970-01-01
        • 2021-11-05
        • 2020-07-13
        • 2021-12-07
        • 2021-06-28
        • 1970-01-01
        相关资源
        最近更新 更多