Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x34ec564604C5BC80F40FBc62F2BC9f95C63e385f
Balance 0 ETH
Nonce 1
Code Size 6437 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

6437 bytes
0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063715018a61161008c578063a9059cbb11610066578063a9059cbb14610204578063c298266414610234578063c9567bf914610250578063dd62ed3e1461025a576100cf565b8063715018a6146101be5780638da5cb5b146101c857806395d89b41146101e6576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce5671461017057806370a082311461018e575b600080fd5b6100dc61028a565b6040516100e99190611076565b60405180910390f35b61010c60048036038101906101079190611136565b61031c565b6040516101199190611191565b60405180910390f35b61012a61033a565b60405161013791906111bb565b60405180910390f35b61015a600480360381019061015591906111d6565b610344565b6040516101679190611191565b60405180910390f35b61017861041d565b6040516101859190611245565b60405180910390f35b6101a860048036038101906101a39190611260565b610434565b6040516101b591906111bb565b60405180910390f35b6101c661047d565b005b6101d06105d0565b6040516101dd919061129c565b60405180910390f35b6101ee6105f9565b6040516101fb9190611076565b60405180910390f35b61021e60048036038101906102199190611136565b61068b565b60405161022b9190611191565b60405180910390f35b61024e6004803603810190610249919061131c565b6106a9565b005b6102586107dd565b005b610274600480360381019061026f9190611369565b6108df565b60405161028191906111bb565b60405180910390f35b606060068054610299906113d8565b80601f01602080910402602001604051908101604052809291908181526020018280546102c5906113d8565b80156103125780601f106102e757610100808354040283529160200191610312565b820191906000526020600020905b8154815290600101906020018083116102f557829003601f168201915b5050505050905090565b6000610330610329610966565b848461096e565b6001905092915050565b6000600554905090565b600061040784610352610966565b610402856040518060600160405280602881526020016118c860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006103b8610966565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b379092919063ffffffff16565b61096e565b610412848484610b9b565b600190509392505050565b6000600460009054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610485610966565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050990611455565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054610608906113d8565b80601f0160208091040260200160405190810160405280929190818152602001828054610634906113d8565b80156106815780601f1061065657610100808354040283529160200191610681565b820191906000526020600020905b81548152906001019060200180831161066457829003601f168201915b5050505050905090565b600061069f610698610966565b8484610b9b565b6001905092915050565b6106b1610966565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461073e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073590611455565b60405180910390fd5b60005b828290508110156107d85760016003600085858581811061076557610764611475565b5b905060200201602081019061077a9190611260565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610741565b505050565b6107e5610966565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610872576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086990611455565b60405180910390fd5b600860009054906101000a900460ff16156108c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b9906114f0565b60405180910390fd5b6001600860006101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d490611582565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4390611614565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b2a91906111bb565b60405180910390a3505050565b6000838311158290610b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b769190611076565b60405180910390fd5b5060008385610b8e9190611663565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0190611709565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c709061179b565b60405180910390fd5b610c838383610e6c565b610cc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb990611807565b60405180910390fd5b610ccd838383610f34565b610d1f81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f3990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610db481600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f8390919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e5491906111bb565b60405180910390a3610e67838383610fe1565b505050565b6000610e766105d0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eb15760019050610f2e565b600860009054906101000a900460ff1615610ecf5760019050610f2e565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f295760009050610f2e565b600190505b92915050565b505050565b6000610f7b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b37565b905092915050565b6000808284610f929190611827565b905083811015610fd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fce906118a7565b60405180910390fd5b8091505092915050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611020578082015181840152602081019050611005565b60008484015250505050565b6000601f19601f8301169050919050565b600061104882610fe6565b6110528185610ff1565b9350611062818560208601611002565b61106b8161102c565b840191505092915050565b60006020820190508181036000830152611090818461103d565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006110cd826110a2565b9050919050565b6110dd816110c2565b81146110e857600080fd5b50565b6000813590506110fa816110d4565b92915050565b6000819050919050565b61111381611100565b811461111e57600080fd5b50565b6000813590506111308161110a565b92915050565b6000806040838503121561114d5761114c611098565b5b600061115b858286016110eb565b925050602061116c85828601611121565b9150509250929050565b60008115159050919050565b61118b81611176565b82525050565b60006020820190506111a66000830184611182565b92915050565b6111b581611100565b82525050565b60006020820190506111d060008301846111ac565b92915050565b6000806000606084860312156111ef576111ee611098565b5b60006111fd868287016110eb565b935050602061120e868287016110eb565b925050604061121f86828701611121565b9150509250925092565b600060ff82169050919050565b61123f81611229565b82525050565b600060208201905061125a6000830184611236565b92915050565b60006020828403121561127657611275611098565b5b6000611284848285016110eb565b91505092915050565b611296816110c2565b82525050565b60006020820190506112b1600083018461128d565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126112dc576112db6112b7565b5b8235905067ffffffffffffffff8111156112f9576112f86112bc565b5b602083019150836020820283011115611315576113146112c1565b5b9250929050565b6000806020838503121561133357611332611098565b5b600083013567ffffffffffffffff8111156113515761135061109d565b5b61135d858286016112c6565b92509250509250929050565b600080604083850312156113805761137f611098565b5b600061138e858286016110eb565b925050602061139f858286016110eb565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806113f057607f821691505b602082108103611403576114026113a9565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061143f602083610ff1565b915061144a82611409565b602082019050919050565b6000602082019050818103600083015261146e81611432565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006114da601783610ff1565b91506114e5826114a4565b602082019050919050565b60006020820190508181036000830152611509816114cd565b9050919050565b7f65726332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061156c602483610ff1565b915061157782611510565b604082019050919050565b6000602082019050818103600083015261159b8161155f565b9050919050565b7f65726332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006115fe602283610ff1565b9150611609826115a2565b604082019050919050565b6000602082019050818103600083015261162d816115f1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061166e82611100565b915061167983611100565b925082820390508181111561169157611690611634565b5b92915050565b7f65726332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006116f3602583610ff1565b91506116fe82611697565b604082019050919050565b60006020820190508181036000830152611722816116e6565b9050919050565b7f65726332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611785602383610ff1565b915061179082611729565b604082019050919050565b600060208201905081810360008301526117b481611778565b9050919050565b7f74726164696e67206e6f7420616c6c6f77656400000000000000000000000000600082015250565b60006117f1601383610ff1565b91506117fc826117bb565b602082019050919050565b60006020820190508181036000830152611820816117e4565b9050919050565b600061183282611100565b915061183d83611100565b925082820190508082111561185557611854611634565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000611891601b83610ff1565b915061189c8261185b565b602082019050919050565b600060208201905081810360008301526118c081611884565b905091905056fe65726332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c9fede4ad192a6d62094d3f3f43c2efbf472d415e87d492a0acbbbd640b4810f64736f6c634300081a0033

Verified Source Code Partial Match

Compiler: v0.8.26+commit.8a97fa7a EVM: paris Optimization: No
Token.sol 275 lines
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.20;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

contract Token is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _transferLimitExempt;

    uint8 private _decimals;
    uint256 private _tTotal;
    string private _name;
    string private _symbol;

    bool private tradingOpen;

    constructor(
        string memory __symbol,
        string memory __name,
        uint8 __decimals,
        uint256 __totalSupply
    ) {
        _name = __name;
        _symbol = __symbol;
        _decimals = __decimals;
        _tTotal = __totalSupply;
        _balances[_msgSender()] = _tTotal;

        _transferLimitExempt[owner()] = true;
        _transferLimitExempt[address(this)] = true;

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

    function name() public view returns (string memory) {
        return _name;
    }

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

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

    function totalSupply() public view override returns (uint256) {
        return _tTotal;
    }

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

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }

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

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "erc20: approve from the zero address");
        require(spender != address(0), "erc20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "erc20: transfer from the zero address");
        require(to != address(0), "erc20: transfer to the zero address");
        require(_tradingAllowed(from, to), "trading not allowed");
        _beforeTokenTransfer(from, to, amount);
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount);
        emit Transfer(from, to, amount);
        _afterTokenTransfer(from, to, amount);
    }

    function _tradingAllowed(address from, address to)
        private
        view
        returns (bool)
    {
        if (from == owner()) return true;
        if (tradingOpen) return true;
        if (!_transferLimitExempt[to]) return false;
        return true;
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

    function setTransferLimitExempt(address[] calldata _addresses)
        public
        onlyOwner
    {
        for (uint256 i = 0; i < _addresses.length; i++) {
            _transferLimitExempt[_addresses[i]] = true;
        }
    }

    function openTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        tradingOpen = true;
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 6 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
openTrading 0xc9567bf9
No parameters
renounceOwnership 0x715018a6
No parameters
setTransferLimitExempt 0xc2982664
address[] _addresses
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool

Recent Transactions

No transactions found for this address