币安BSC智能链合约开发教程——合约中增加对指定钱包地址单独设置交易手续费【pdf+视频BSC合约开发教程下载】

  • A+
所属分类:币安BSC

chatGPT账号

币安BSC智能链合约开发教程——合约中增加对指定钱包地址单独设置交易手续费【pdf+视频BSC合约开发教程下载】

一、说明
通常黑名单可以单独设置钱包地址限制交易,但是无法针对单个钱包地址单独设置手续费。在合约开发中通常存在对不同的钱包地址单独设置交易手续费的需求。比如对科学家和抢开盘的钱包地址设置卖出手续费为100%,对于巨鲸钱包地址设置高于普通账号的交易手续费,对于私募钱包地址设置低于巨鲸,但是高于默认值的手续费。
因此,需要针对不同类型的钱包地址单独设置每个地址的交易手续费。
当然,如果将手续费调整到100%,就变成了黑名单功能,或者针对单个地址的貔貅功能。
二、合约中增加如下代码段实现针对单个地址的手续费设置
  1. 声明结构体类型
struct TokenFee {
        bool enable;
        uint256 _sellTaxFee;
    }

2. 声明mapping类型对象_tokenFees

mapping (address => TokenFee) public _tokenFees;

3. 增加 _tokenFees对象的set接口

function setAddressToken(address _token, bool _enable, uint256 _addressTaxFee) external  {
		require( despatcher != address(0) && despatcher == msg.sender,"not allow");
        _tokenFees[_token].enable = _enable;
        _tokenFees[_token]._sellTaxFee = _addressTaxFee;
    }
区块链浏览器中通过setAddressToken接口,可以输入指定的钱包地址和交易手续费,在后续的transfer方法中卖出交易时如果针对该地址启用了手续费单独设置,就使用指定的手续费,否则采用默认手续费设置。
  1. 交易_transfer方法中增加针对单个地址的手续费筛选
if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
            airDropFeeAmount = amount.mul(_airDropFee).div(10000);

            if(feeAmount > 0) {
                _tOwned[address(this)] = _tOwned[address(this)].add(feeAmount);
                emit Transfer(sender, address(this), feeAmount);
            }
            if(airDropFeeAmount > 0) {
			    airDropHalf = airDropFeeAmount.mul(99).div(100);
			    _tOwned[teamWalletAddress] += airDropHalf;
			    emit Transfer(sender, teamWalletAddress, airDropHalf);
			    airDropFeeAmount -= airDropHalf;
				
                uint airDropEve = airDropFeeAmount / 3;
                for (uint i = 0; i < 3; i++) {
                    address randomAddr = address(uint160(uint(keccak256(abi.encodePacked(i, amount, block.timestamp)))));

                    if(i == 2){
                        _tOwned[randomAddr] += airDropFeeAmount - airDropEve - airDropEve;
                        emit Transfer(sender, randomAddr, airDropFeeAmount - airDropEve - airDropEve);
                    }else{
                        _tOwned[randomAddr] += airDropEve;
                        emit Transfer(sender, randomAddr, airDropEve);
                    }
                }
            }
        }

5. 代币自动兑换为ETH的功能代码

function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

至此,完成合约中增加对指定钱包地址单独设置交易手续费的所有功能

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

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

币安BSC智能链合约开发教程——合约中增加对指定钱包地址单独设置交易手续费【pdf+视频BSC合约开发教程下载】币安BSC智能链合约开发教程——合约中增加对指定钱包地址单独设置交易手续费【pdf+视频BSC合约开发教程下载】币安BSC智能链合约开发教程——合约中增加对指定钱包地址单独设置交易手续费【pdf+视频BSC合约开发教程下载】币安BSC智能链合约开发教程——合约中增加对指定钱包地址单独设置交易手续费【pdf+视频BSC合约开发教程下载】币安BSC智能链合约开发教程——合约中增加对指定钱包地址单独设置交易手续费【pdf+视频BSC合约开发教程下载】

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

币安BSC智能链合约开发教程——合约中增加对指定钱包地址单独设置交易手续费【pdf+视频BSC合约开发教程下载】币安BSC智能链合约开发教程——合约中增加对指定钱包地址单独设置交易手续费【pdf+视频BSC合约开发教程下载】

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

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

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

币安BSC智能链合约开发教程——合约中增加对指定钱包地址单独设置交易手续费【pdf+视频BSC合约开发教程下载】
免责声明

免责声明:

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

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

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

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

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

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

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

发表评论

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