Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0xe0C18Fe05895314F20E5100729f08baB3f3C3A45
Balance 0 ETH
Nonce 1
Code Size 6244 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

6244 bytes
0x6080604052600436106101dc5760003560e01c806367ffa82811610102578063a6f9dae111610095578063cec10c1111610064578063cec10c1114610580578063d7ad21ac146105a0578063dd62ed3e146105dd578063f89532a21461062357600080fd5b8063a6f9dae11461050a578063a9059cbb1461052a578063ac4dcb761461054a578063acb2ad6f1461056a57600080fd5b80638ebfc796116100d15780638ebfc796146104aa57806392a39d91146104ca57806395d89b411461023d5780639a44b9e3146104ea57600080fd5b806367ffa8281461041657806370a082311461043657806379cc67901461046c578063893d20e81461048c57600080fd5b80632b14ca561161017a57806342966c681161014957806342966c68146103a057806347062402146103c057806351cff8d9146103d657806365fe050e146103f657600080fd5b80632b14ca5614610316578063304561bb1461032c578063313ce567146103645780633eb193e21461038057600080fd5b806318160ddd116101b657806318160ddd146102a05780631d111d13146102bf57806323b872dd146102d65780632ac7b824146102f657600080fd5b806301e88208146101e857806306fdde031461023d578063095ea7b31461027057600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506102216102033660046115b7565b60076020526000908152604090205460ff8082169161010090041682565b6040805192151583529015156020830152015b60405180910390f35b34801561024957600080fd5b5060408051808201825260048152634649524560e01b6020820152905161023491906115d2565b34801561027c57600080fd5b5061029061028b366004611620565b610639565b6040519015158152602001610234565b3480156102ac57600080fd5b506001545b604051908152602001610234565b3480156102cb57600080fd5b506102d46106a6565b005b3480156102e257600080fd5b506102906102f136600461164a565b610731565b34801561030257600080fd5b506102d46103113660046115b7565b6107e9565b34801561032257600080fd5b506102b160055481565b34801561033857600080fd5b50600a5461034c906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b34801561037057600080fd5b5060405160128152602001610234565b34801561038c57600080fd5b506102d461039b3660046115b7565b6108f2565b3480156103ac57600080fd5b506102906103bb366004611686565b6109aa565b3480156103cc57600080fd5b506102b160045481565b3480156103e257600080fd5b506102d46103f13660046115b7565b6109b6565b34801561040257600080fd5b506102d46104113660046115b7565b610b3d565b34801561042257600080fd5b506102d46104313660046115b7565b610c48565b34801561044257600080fd5b506102b16104513660046115b7565b6001600160a01b031660009081526002602052604090205490565b34801561047857600080fd5b50610290610487366004611620565b610d00565b34801561049857600080fd5b506000546001600160a01b031661034c565b3480156104b657600080fd5b506102d46104c53660046116ad565b610db6565b3480156104d657600080fd5b5060085461034c906001600160a01b031681565b3480156104f657600080fd5b5060095461034c906001600160a01b031681565b34801561051657600080fd5b506102d46105253660046115b7565b610e69565b34801561053657600080fd5b50610290610545366004611620565b610eee565b34801561055657600080fd5b506102d46105653660046115b7565b610efb565b34801561057657600080fd5b506102b160065481565b34801561058c57600080fd5b506102d461059b3660046116e4565b610fb3565b3480156105ac57600080fd5b506105c06105bb36600461164a565b611107565b604080519283526001600160a01b03909116602083015201610234565b3480156105e957600080fd5b506102b16105f8366004611710565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561062f57600080fd5b506102b161271081565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106949086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146106d95760405162461bcd60e51b81526004016106d090611743565b60405180910390fd5b604051600090339047908381818185875af1925050503d806000811461071b576040519150601f19603f3d011682016040523d82523d6000602084013e610720565b606091505b505090508061072e57600080fd5b50565b6001600160a01b038316600090815260036020908152604080832033845290915281205482111561079d5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b60448201526064016106d0565b6001600160a01b0384166000908152600360209081526040808320338452909152812080548492906107d0908490611786565b909155506107e1905084848461122f565b949350505050565b6000546001600160a01b031633146108135760405162461bcd60e51b81526004016106d090611743565b6001600160a01b0381166108395760405162461bcd60e51b81526004016106d090611799565b6001600160a01b038116600090815260076020526040902054610100900460ff166108935760405162461bcd60e51b815260206004820152600a6024820152694e6f7420416e20414d4d60b01b60448201526064016106d0565b6001600160a01b0381166000818152600760209081526040808320805461ff00191690558051938452908301919091527fc61655276240ba149963bf00ed68118036aceb86661c8530fc627aeb83d9d1f291015b60405180910390a150565b6000546001600160a01b0316331461091c5760405162461bcd60e51b81526004016106d090611743565b6001600160a01b0381166109425760405162461bcd60e51b81526004016106d090611799565b600980546001600160a01b0319166001600160a01b038316908117909155600081815260076020908152604091829020805460ff1916600117905590519182527fc1705819a90a4e9c9fba1872573191b370b8778cd644e0050b90c99b3c0762a991016108e7565b60006106a03383611452565b6000546001600160a01b031633146109e05760405162461bcd60e51b81526004016106d090611743565b6001600160a01b038116610a065760405162461bcd60e51b81526004016106d090611799565b6040516370a0823160e01b81523060048201526000906001600160a01b0383169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610a57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7b91906117bf565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aea91906117d8565b905080610b395760405162461bcd60e51b815260206004820152601960248201527f4661696c757265204f6e20546f6b656e2057697468647261770000000000000060448201526064016106d0565b5050565b6000546001600160a01b03163314610b675760405162461bcd60e51b81526004016106d090611743565b6001600160a01b038116610b8d5760405162461bcd60e51b81526004016106d090611799565b6001600160a01b038116600090815260076020526040902054610100900460ff1615610bec5760405162461bcd60e51b815260206004820152600e60248201526d416c726561647920416e20414d4d60901b60448201526064016106d0565b6001600160a01b038116600081815260076020908152604091829020805461ff00191661010017905581519283526001908301527fc61655276240ba149963bf00ed68118036aceb86661c8530fc627aeb83d9d1f291016108e7565b6000546001600160a01b03163314610c725760405162461bcd60e51b81526004016106d090611743565b6001600160a01b038116610c985760405162461bcd60e51b81526004016106d090611799565b600880546001600160a01b0319166001600160a01b038316908117909155600081815260076020908152604091829020805460ff1916600117905590519182527fffba9995ed8a822e426a175c6a29db4e239f0788c470ba2588c6bb3cc486a44991016108e7565b6001600160a01b0382166000908152600360209081526040808320338452909152812054821115610d6c5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b60448201526064016106d0565b6001600160a01b038316600090815260036020908152604080832033845290915281208054849290610d9f908490611786565b90915550610daf90508383611452565b9392505050565b6000546001600160a01b03163314610de05760405162461bcd60e51b81526004016106d090611743565b6001600160a01b038216610e065760405162461bcd60e51b81526004016106d090611799565b6001600160a01b038216600081815260076020908152604091829020805460ff19168515159081179091558251938452908301527f2293b760d6615c0f087e78599ce64d67197a7dba78cdd9e241f3cd23b46101f3910160405180910390a15050565b6000546001600160a01b03163314610e935760405162461bcd60e51b81526004016106d090611743565b600080546040516001600160a01b03808516939216917f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73591a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610daf33848461122f565b6000546001600160a01b03163314610f255760405162461bcd60e51b81526004016106d090611743565b6001600160a01b038116610f4b5760405162461bcd60e51b81526004016106d090611799565b600a80546001600160a01b0319166001600160a01b038316908117909155600081815260076020908152604091829020805460ff1916600117905590519182527f78dd3f4c755a9774505b9155386a8765af9250233430ebf8ad314a8a76e43c6b91016108e7565b6000546001600160a01b03163314610fdd5760405162461bcd60e51b81526004016106d090611743565b6107d08311156110225760405162461bcd60e51b815260206004820152601060248201526f084eaf2408ccaca40a8dede4090d2ced60831b60448201526064016106d0565b6107d08211156110685760405162461bcd60e51b81526020600482015260116024820152700a6cad8d8408ccaca40a8dede4090d2ced607b1b60448201526064016106d0565b6107d08111156110b25760405162461bcd60e51b81526020600482015260156024820152740a8e4c2dce6cccae4408ccaca40a8dede4090d2ced605b1b60448201526064016106d0565b60048390556005829055600681905560408051848152602081018490529081018290527f37322890d66d781059d797be5e2f27dc160a34d8bc0a8e09116cb9a773ce88ef9060600160405180910390a1505050565b6001600160a01b038316600090815260076020526040812054819060ff168061114857506001600160a01b03841660009081526007602052604090205460ff165b1561115857506000905080611227565b6001600160a01b038516600090815260076020526040902054610100900460ff166111fa576001600160a01b038416600090815260076020526040902054610100900460ff166111ce57612710600654846111b391906117f5565b6111bd919061180c565b600a546001600160a01b0316611222565b612710600554846111df91906117f5565b6111e9919061180c565b6008546001600160a01b0316611222565b6127106004548461120b91906117f5565b611215919061180c565b6009546001600160a01b03165b915091505b935093915050565b60006001600160a01b0383166112785760405162461bcd60e51b815260206004820152600e60248201526d16995c9bc8149958da5c1a595b9d60921b60448201526064016106d0565b600082116112b65760405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8105b5bdd5b9d60aa1b60448201526064016106d0565b6001600160a01b0384166000908152600260205260409020548211156113155760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b60448201526064016106d0565b6001600160a01b0384166000908152600260205260408120805484929061133d908490611786565b909155506000905080611351868686611107565b909250905081156113d85760006001600160a01b038216156113735781611375565b305b6001600160a01b03808216600081815260026020526040908190208054880190555192935091908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113ce9087815260200190565b60405180910390a3505b60006113e48386611786565b6001600160a01b03808816600081815260026020526040908190208054850190555192935091908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061143d9085815260200190565b60405180910390a35060019695505050505050565b60006001600160a01b03831661147a5760405162461bcd60e51b81526004016106d090611799565b600082116114b85760405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8105b5bdd5b9d60aa1b60448201526064016106d0565b6001600160a01b0383166000908152600260205260409020548211156115175760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b60448201526064016106d0565b6001600160a01b0383166000908152600260205260408120805484929061153f908490611786565b9250508190555081600160008282546115589190611786565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610694565b80356001600160a01b03811681146115b257600080fd5b919050565b6000602082840312156115c957600080fd5b610daf8261159b565b600060208083528351808285015260005b818110156115ff578581018301518582016040015282016115e3565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561163357600080fd5b61163c8361159b565b946020939093013593505050565b60008060006060848603121561165f57600080fd5b6116688461159b565b92506116766020850161159b565b9150604084013590509250925092565b60006020828403121561169857600080fd5b5035919050565b801515811461072e57600080fd5b600080604083850312156116c057600080fd5b6116c98361159b565b915060208301356116d98161169f565b809150509250929050565b6000806000606084860312156116f957600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561172357600080fd5b61172c8361159b565b915061173a6020840161159b565b90509250929050565b60208082526013908201527221b0b63632b91034b9903737ba1037bbb732b960691b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156106a0576106a0611770565b6020808252600c908201526b5a65726f204164647265737360a01b604082015260600190565b6000602082840312156117d157600080fd5b5051919050565b6000602082840312156117ea57600080fd5b8151610daf8161169f565b80820281158282048414176106a0576106a0611770565b60008261182957634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212209aa5a0ed67e289ec03338f0935a7ea91984c471f9a9b18ce4e822b15625749f464736f6c63430008140033

Verified Source Code Partial Match

Compiler: v0.8.20+commit.a1b79de6 EVM: paris Optimization: Yes (200 runs)
IERC20.sol 80 lines
//SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

interface IERC20 {

    function totalSupply() external view returns (uint256);
    
    function symbol() external view returns(string memory);
    
    function name() external view returns(string memory);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);
    
    /**
     * @dev Returns the number of decimal places
     */
    function decimals() external view returns (uint8);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
Ownable.sol 50 lines
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.20;

/**
 * @title Owner
 * @dev Set & change owner
 */
contract Ownable {

    address private owner;
    
    // event for EVM logging
    event OwnerSet(address indexed oldOwner, address indexed newOwner);
    
    // modifier to check if caller is owner
    modifier onlyOwner() {
        // If the first argument of 'require' evaluates to 'false', execution terminates and all
        // changes to the state and to Ether balances are reverted.
        // This used to consume all gas in old EVM versions, but not anymore.
        // It is often a good idea to use 'require' to check if functions are called correctly.
        // As a second argument, you can also provide an explanation about what went wrong.
        require(msg.sender == owner, "Caller is not owner");
        _;
    }
    
    /**
     * @dev Set contract deployer as owner
     */
    constructor() {
        owner = msg.sender; // 'msg.sender' is sender of current call, contract deployer for a constructor
        emit OwnerSet(address(0), owner);
    }

    /**
     * @dev Change owner
     * @param newOwner address of new owner
     */
    function changeOwner(address newOwner) public onlyOwner {
        emit OwnerSet(owner, newOwner);
        owner = newOwner;
    }

    /**
     * @dev Return owner address 
     * @return address of owner
     */
    function getOwner() external view returns (address) {
        return owner;
    }
}
FireToken.sol 256 lines
//SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

import "./IERC20.sol";
import "./Ownable.sol";

contract FireToken is IERC20, Ownable {

    // total supply
    uint256 private _totalSupply = 4_500_000 * 10**18;

    // token data
    string private constant _name = "FIRE";
    string private constant _symbol = "FIRE";
    uint8  private constant _decimals = 18;

    // balances
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    // Taxation on transfers
    uint256 public buyFee             = 500;
    uint256 public sellFee            = 1250;
    uint256 public transferFee        = 0;
    uint256 public constant TAX_DENOM = 10000;

    // permissions
    struct Permissions {
        bool isFeeExempt;
        bool isLiquidityPool;
    }
    mapping ( address => Permissions ) public permissions;

    // Fee Recipients
    address public sellFeeRecipient;
    address public buyFeeRecipient;
    address public transferFeeRecipient;

    // events
    event SetBuyFeeRecipient(address recipient);
    event SetSellFeeRecipient(address recipient);
    event SetTransferFeeRecipient(address recipient);
    event SetFeeExemption(address account, bool isFeeExempt);
    event SetAutomatedMarketMaker(address account, bool isMarketMaker);
    event SetFees(uint256 buyFee, uint256 sellFee, uint256 transferFee);

    constructor() {

        // set initial token data
        address _owner = 0x42290Ba8C7770f7eFa8d8224675Ca3b658a9834C;

        // exempt sender for tax-free initial distribution
        permissions[msg.sender].isFeeExempt = true;
        permissions[_owner].isFeeExempt = true;

        // initial supply allocation
        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    
    function name() public pure override returns (string memory) {
        return _name;
    }

    function symbol() public pure override returns (string memory) {
        return _symbol;
    }

    function decimals() public pure override returns (uint8) {
        return _decimals;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    /** Transfer Function */
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    /** Transfer Function */
    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(
            _allowances[sender][msg.sender] >= amount,
            'Insufficient Allowance'
        );
        _allowances[sender][msg.sender] -= amount;
        return _transferFrom(sender, recipient, amount);
    }

    function burn(uint256 amount) external returns (bool) {
        return _burn(msg.sender, amount);
    }

    function burnFrom(address account, uint256 amount) external returns (bool) {
        require(
            _allowances[account][msg.sender] >= amount,
            'Insufficient Allowance'
        );
        _allowances[account][msg.sender] -= amount;
        return _burn(account, amount);
    }
    
    /** Internal Transfer */
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(
            recipient != address(0),
            'Zero Recipient'
        );
        require(
            amount > 0,
            'Zero Amount'
        );
        require(
            amount <= _balances[sender],
            'Insufficient Balance'
        );
        
        // decrement sender balance
        _balances[sender] -= amount;

        // fee for transaction
        (uint256 fee, address feeDestination) = getTax(sender, recipient, amount);

        // allocate fee
        if (fee > 0) {
            address feeRecipient = feeDestination == address(0) ? address(this) : feeDestination;
            unchecked {
                _balances[feeRecipient] += fee;
            }
            emit Transfer(sender, feeRecipient, fee);
        }

        // give amount to recipient
        uint256 sendAmount = amount - fee;
        unchecked {
            _balances[recipient] += sendAmount;
        }

        // emit transfer
        emit Transfer(sender, recipient, sendAmount);
        return true;
    }

    function withdraw(address token) external onlyOwner {
        require(token != address(0), 'Zero Address');
        bool s = IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this)));
        require(s, 'Failure On Token Withdraw');
    }

    function withdrawBNB() external onlyOwner {
        (bool s,) = payable(msg.sender).call{value: address(this).balance}("");
        require(s);
    }

    function setTransferFeeRecipient(address recipient) external onlyOwner {
        require(recipient != address(0), 'Zero Address');
        transferFeeRecipient = recipient;
        permissions[recipient].isFeeExempt = true;
        emit SetTransferFeeRecipient(recipient);
    }

    function setBuyFeeRecipient(address recipient) external onlyOwner {
        require(recipient != address(0), 'Zero Address');
        buyFeeRecipient = recipient;
        permissions[recipient].isFeeExempt = true;
        emit SetBuyFeeRecipient(recipient);
    }

    function setSellFeeRecipient(address recipient) external onlyOwner {
        require(recipient != address(0), 'Zero Address');
        sellFeeRecipient = recipient;
        permissions[recipient].isFeeExempt = true;
        emit SetSellFeeRecipient(recipient);
    }

    function registerAutomatedMarketMaker(address account) external onlyOwner {
        require(account != address(0), 'Zero Address');
        require(!permissions[account].isLiquidityPool, 'Already An AMM');
        permissions[account].isLiquidityPool = true;
        emit SetAutomatedMarketMaker(account, true);
    }

    function unRegisterAutomatedMarketMaker(address account) external onlyOwner {
        require(account != address(0), 'Zero Address');
        require(permissions[account].isLiquidityPool, 'Not An AMM');
        permissions[account].isLiquidityPool = false;
        emit SetAutomatedMarketMaker(account, false);
    }

    function setFees(uint _buyFee, uint _sellFee, uint _transferFee) external onlyOwner {
        require(
            _buyFee <= 2000,
            'Buy Fee Too High'
        );
        require(
            _sellFee <= 2000,
            'Sell Fee Too High'
        );
        require(
            _transferFee <= 2000,
            'Transfer Fee Too High'
        );

        buyFee = _buyFee;
        sellFee = _sellFee;
        transferFee = _transferFee;

        emit SetFees(_buyFee, _sellFee, _transferFee);
    }

    function setFeeExempt(address account, bool isExempt) external onlyOwner {
        require(account != address(0), 'Zero Address');
        permissions[account].isFeeExempt = isExempt;
        emit SetFeeExemption(account, isExempt);
    }

    function getTax(address sender, address recipient, uint256 amount) public view returns (uint256, address) {
        if ( permissions[sender].isFeeExempt || permissions[recipient].isFeeExempt ) {
            return (0, address(0));
        }
        return permissions[sender].isLiquidityPool ? 
               ((amount * buyFee) / TAX_DENOM, buyFeeRecipient) : 
               permissions[recipient].isLiquidityPool ? 
               ((amount * sellFee) / TAX_DENOM, sellFeeRecipient) :
               ((amount * transferFee) / TAX_DENOM, transferFeeRecipient);
    }

    function _burn(address account, uint256 amount) internal returns (bool) {
        require(
            account != address(0),
            'Zero Address'
        );
        require(
            amount > 0,
            'Zero Amount'
        );
        require(
            amount <= _balances[account],
            'Insufficient Balance'
        );
        _balances[account] -= amount;
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
        return true;
    }

    receive() external payable {}
}

Read Contract

TAX_DENOM 0xf89532a2 → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
buyFee 0x47062402 → uint256
buyFeeRecipient 0x9a44b9e3 → address
decimals 0x313ce567 → uint8
getOwner 0x893d20e8 → address
getTax 0xd7ad21ac → uint256, address
name 0x06fdde03 → string
permissions 0x01e88208 → bool, bool
sellFee 0x2b14ca56 → uint256
sellFeeRecipient 0x92a39d91 → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
transferFee 0xacb2ad6f → uint256
transferFeeRecipient 0x304561bb → address

Write Contract 15 functions

These functions modify contract state and require a wallet transaction to execute.

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
burn 0x42966c68
uint256 amount
returns: bool
burnFrom 0x79cc6790
address account
uint256 amount
returns: bool
changeOwner 0xa6f9dae1
address newOwner
registerAutomatedMarketMaker 0x65fe050e
address account
setBuyFeeRecipient 0x3eb193e2
address recipient
setFeeExempt 0x8ebfc796
address account
bool isExempt
setFees 0xcec10c11
uint256 _buyFee
uint256 _sellFee
uint256 _transferFee
setSellFeeRecipient 0x67ffa828
address recipient
setTransferFeeRecipient 0xac4dcb76
address recipient
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
unRegisterAutomatedMarketMaker 0x2ac7b824
address account
withdraw 0x51cff8d9
address token
withdrawBNB 0x1d111d13
No parameters

Recent Transactions

No transactions found for this address