币安BSC智能链发币教程——带黑白名单功能的合约代码【pdf+视频BSC发币教程下载】

  • A+
所属分类:币安BSC
摘要

带黑白名单功能的合约代码实现,取消手续费限制,取消开盘时间控制,最大持币数量限制及最大交易数量限制


chatGPT账号

BEP20实现带有黑白名单功能的合约代码。通过白名单可以限制部分钱包地址要执行某些特定的功能,或者绕开某些特定功能。比如目前主流的交易手续费(通缩,燃烧,基金会地址回流,加池分红,持币分红,持币生息)等功能都要在每一笔交易时实现扣除部分本币作为交易手续费。另外在添加资金池或者撤销流动性时都会收取部分本币手续费。但是对特定的钱包地址,比如主钱包地址需要设置免手续费,免通缩,免加池撤池手续费。

币安BSC智能链发币教程——带黑白名单功能的合约代码【pdf+视频BSC发币教程下载】

【附注20221206】

所谓黑白名单只是一个对特定钱包地址进行筛选的功能模块,黑白名单不是指具体的功能。在合约开发时可以随便定制黑白名单的功能,比如如下黑白名单功能:

a. 通过黑名单限制用户只能买入和转账,不能卖出;或者直接限制黑名单用户的所有交易

b. 黑名单只是限制在特定功能模块的交易,比如黑名单中的用户不能触发自动加池和代币兑换功能

c. 白名单中用户可以限制取消手续费,或者取消部分手续费流向,而非限制所有手续费

d. 白名单中的钱包地址可以在开盘时间前无限制交易,不受开盘时间或者添加流动性时间控制。

通过黑白名单功能实现设置特权账户,特权账户的地址可以绕开手续费限制。

黑名单可以强制用户必须收取交易手续费用。

实现黑白名单功能的合约核心代码部分如下:

contract Token is  {
    mapping(address => bool) private _isExcludedFromFee;
    constructor () public {
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;

        _balances[_msgSender()] = _totalSupply;

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

transfer函数部分代码如下:

function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");

      /**
         * 省略部分逻辑代码
         */
            if(
                _isExcludedFromFee[sender] || 
                _isExcludedFromFee[recipient] || 
               //省略部分逻辑代码
            ) {
                removeAllFee();
            }
            _transferStandard(sender, recipient, amount);
            if(
                _isExcludedFromFee[sender] || 
                _isExcludedFromFee[recipient] || 
                //省略部分逻辑代码
            ) {
                restoreAllFee();
            }
        }
    }

通过黑白名单来限制特定用户执行某些功能或者绕开某些功能。

合约部署完成后,可以在链上触发相关的黑白名单功能,最终实现对特定钱包地址是设置。

注意:设置了黑白名单功能后,对合约上的gas消耗是有影响的,如果设置的功能过于复杂是会大幅度提升转账的gas费用的,尤其是对于功能已经比较复杂的合约来说,譬如目前的燃烧+通缩+基金会地址回流+加持分红+持币分红+持币生息模式的合约代码,因此,要谨慎设置黑白名单功能,或者简化繁琐的功能,以平衡过高的gas费用。

至此,币安BSC智能链上带黑白名单功能的合约代码完成。

pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载:

币安智能链BSC发币(合约部署、开源、锁仓、LP、参数配置、开发、故障处理、工具使用)教程下载:

币安BSC智能链发币教程——带黑白名单功能的合约代码【pdf+视频BSC发币教程下载】

多模式(燃烧、回流指定营销地址、分红本币及任意币种,邀请推广八代收益,LP加池分红、交易分红、复利分红、NFT分红、自动筑池、动态手续费、定时开盘、回购)组合合约源代码下载:

币安BSC智能链发币教程——带黑白名单功能的合约代码【pdf+视频BSC发币教程下载】币安BSC智能链发币教程——带黑白名单功能的合约代码【pdf+视频BSC发币教程下载】

pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载地址:

此处为隐藏的内容!
登录后才能查看!

添加VX或者telegram获取全程线上免费指导

币安BSC智能链发币教程——带黑白名单功能的合约代码【pdf+视频BSC发币教程下载】
免责声明

免责声明:

本文不代表知点网立场,且不构成投资建议,请谨慎对待。用户由此造成的损失由用户自行承担,与知点网没有任何关系;

知点网不对网站所发布内容的准确性,真实性等任何方面做任何形式的承诺和保障;

网站内所有涉及到的区块链(衍生)项目,知点网对项目的真实性,准确性等任何方面均不做任何形式的承诺和保障;

网站内所有涉及到的区块链(衍生)项目,知点网不对其构成任何投资建议,用户由此造成的损失由用户自行承担,与知点网没有任何关系;

知点区块链研究院声明:知点区块链研究院内容由知点网发布,部分来源于互联网和行业分析师投稿收录,内容为知点区块链研究院加盟专职分析师独立观点,不代表知点网立场。

本文是全系列中第101 / 237篇:通证发行

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的电报
  • 这是我的电报扫一扫
  • weinxin
chatGPT账号
知点

发表评论

您必须登录才能发表评论!