false
true
0

Contract Address Details

0x3398B3d448beAB3A12C21cfc5E6E630E512ca341

Token
ChudJack (Chud)
Creator
0x83a3fc–848f24 at 0x5bc909–dd7db9
Balance
0 PLS ( )
Tokens
Fetching tokens...
Transactions
533 Transactions
Transfers
0 Transfers
Gas Used
0
Last Balance Update
26612085
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
This contract has been partially verified via Sourcify. View contract in Sourcify repository
Contract name:
ERC20




Optimization enabled
true
Compiler version
v0.8.18+commit.87f61d96




Optimization runs
200
EVM Version
paris




Verified at
2025-02-25T13:50:47.097539Z

Constructor Arguments

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000103a435be00000000000000000000000000000000000000000000000000000000000000008436875644a61636b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044368756400000000000000000000000000000000000000000000000000000000

Arg [0] (string) : ChudJack
Arg [1] (string) : Chud
Arg [2] (uint256) : 69696969696

              

ERC20.sol

//SPDX-License-Identifier: Unlicensed
pragma solidity >=0.7.0 <0.9.0;
// Chud Twitter: https://twitter.com/Chudjakcoineth
// Chud Telegram: https://t.me/OfficialChudCoin
// Chud Website: https://www.mrchud.com/
abstract contract Context {
    function _msgSender() internal view returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view returns (bytes memory) {
        this;
        return msg.data;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    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);
}

contract ERC20 is Context, IERC20 {
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => uint256) public _balances;
    mapping(address => bool) liquidityPair;
    mapping(address => bool) liquidityProvider;

    uint256 _totalSupply;
    uint256 public maxWallet;
    uint256 public maxTransaction;
    bool limitInPlace;
    address public ownerWallet;

    string private _name;
    string private _symbol;

    modifier onlyOwner() {
        require(_msgSender() == ownerWallet, "You are not the owner");
        _;
    }

    constructor(string memory name_, string memory symbol_, uint256 supply) {
        _name = name_;
        _symbol = symbol_;
        _mint(_msgSender(), supply * (10**18));

        ownerWallet = _msgSender();
    }

    receive() external payable {}

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

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

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

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

    function transfer(address to, uint256 amount) public override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }
     
    function renounceOwnership() external onlyOwner {
        ownerWallet = address(0);
    }

    function transferOwnership(address newOwner) external onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address, use renounceOwnership Function");

        if(balanceOf(ownerWallet) > 0) _transfer(ownerWallet, newOwner, balanceOf(ownerWallet));

        ownerWallet = newOwner;
    }

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


        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);
    }

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);
    }

    function transferFrom(address from, address to, uint256 amount) public override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 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;
        emit Approval(owner, spender, amount);
    }

    function _spendAllowance(address owner, address spender, uint256 amount) internal {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal view {
        if(limitInPlace){
            if(liquidityPair[from]){
                require(amount <= maxTransaction && balanceOf(to) + amount <= maxWallet, "Amount is over Max Transaction");
            } else if(liquidityPair[to] && !liquidityProvider[from]) {
                require(amount <= maxTransaction, "Amount is over Max Transaction");
            }
        }
    }

    function _transfer(address from, address to, uint256 amount) internal {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(_balances[from] >= amount, "ERC20: transfer amount exceeds balance");
        _beforeTokenTransfer(from, to, amount);
        uint256 fromBalance = _balances[from];
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }
        emit Transfer(from, to, amount);
    }

    function setLimits(bool inPlace, uint256 _maxTransaction, uint256 _maxWallet) external onlyOwner {
        require(_maxTransaction >= 10 && _maxWallet > 10, "Max Transaction and Max Wallet must be over .1%");
        maxTransaction = (_totalSupply * _maxTransaction) / 10000;
        maxWallet = (_totalSupply * _maxWallet) / 10000;
        limitInPlace = inPlace;
    }

    function setLiquidityProvider(address provider, bool isProvider) external onlyOwner {
        liquidityProvider[provider] = isProvider;
    }

    function setPair(address pairs, bool isPair) external onlyOwner {
        liquidityPair[pairs] = isPair;
    }

    function burn(uint256 amount) external {
        _burn(_msgSender(), amount);
    }
}
        

Compiler Settings

{"remappings":[],"optimizer":{"runs":200,"enabled":true},"metadata":{"bytecodeHash":"ipfs"},"libraries":{},"evmVersion":"paris","compilationTarget":{"ERC20.sol":"ERC20"}}
              

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[{"type":"string","name":"name_","internalType":"string"},{"type":"string","name":"symbol_","internalType":"string"},{"type":"uint256","name":"supply","internalType":"uint256"}]},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"address","name":"spender","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_balances","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"allowance","inputs":[{"type":"address","name":"owner","internalType":"address"},{"type":"address","name":"spender","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"burn","inputs":[{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"pure","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"decreaseAllowance","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"subtractedValue","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"increaseAllowance","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"addedValue","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"maxTransaction","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"maxWallet","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"ownerWallet","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"renounceOwnership","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setLimits","inputs":[{"type":"bool","name":"inPlace","internalType":"bool"},{"type":"uint256","name":"_maxTransaction","internalType":"uint256"},{"type":"uint256","name":"_maxWallet","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setLiquidityProvider","inputs":[{"type":"address","name":"provider","internalType":"address"},{"type":"bool","name":"isProvider","internalType":"bool"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setPair","inputs":[{"type":"address","name":"pairs","internalType":"address"},{"type":"bool","name":"isPair","internalType":"bool"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"from","internalType":"address"},{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transferOwnership","inputs":[{"type":"address","name":"newOwner","internalType":"address"}]},{"type":"receive","stateMutability":"payable"}]
              

Contract Creation Code

Verify & Publish
0x60806040523480156200001157600080fd5b50604051620015e1380380620015e183398101604081905262000034916200021e565b600862000042848262000320565b50600962000051838262000320565b5062000071336200006b83670de0b6b3a764000062000402565b62000091565b505060078054610100600160a81b03191633610100021790555062000438565b6001600160a01b038216620000ec5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806004600082825462000100919062000422565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200018157600080fd5b81516001600160401b03808211156200019e576200019e62000159565b604051601f8301601f19908116603f01168101908282118183101715620001c957620001c962000159565b81604052838152602092508683858801011115620001e657600080fd5b600091505b838210156200020a5785820183015181830184015290820190620001eb565b600093810190920192909252949350505050565b6000806000606084860312156200023457600080fd5b83516001600160401b03808211156200024c57600080fd5b6200025a878388016200016f565b945060208601519150808211156200027157600080fd5b5062000280868287016200016f565b925050604084015190509250925092565b600181811c90821680620002a657607f821691505b602082108103620002c757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200031b57600081815260208120601f850160051c81016020861015620002f65750805b601f850160051c820191505b81811015620003175782815560010162000302565b5050505b505050565b81516001600160401b038111156200033c576200033c62000159565b62000354816200034d845462000291565b84620002cd565b602080601f8311600181146200038c5760008415620003735750858301515b600019600386901b1c1916600185901b17855562000317565b600085815260208120601f198616915b82811015620003bd578886015182559484019460019091019084016200039c565b5085821015620003dc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200041c576200041c620003ec565b92915050565b808201808211156200041c576200041c620003ec565b61119980620004486000396000f3fe60806040526004361061012e5760003560e01c8063756ba9d8116100ab578063a9059cbb1161006f578063a9059cbb1461035c578063c3f70b521461037c578063dd62ed3e14610392578063e8f6ae29146103b2578063f2fde38b146103d2578063f8b45b05146103f257600080fd5b8063756ba9d8146102aa57806386a22eff146102ca5780639335dcb7146102ea57806395d89b4114610327578063a457c2d71461033c57600080fd5b806339509351116100f257806339509351146101f057806342966c68146102105780636ebcf6071461023257806370a082311461025f578063715018a61461029557600080fd5b806306fdde031461013a578063095ea7b31461016557806318160ddd1461019557806323b872dd146101b4578063313ce567146101d457600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5061014f610408565b60405161015c9190610eed565b60405180910390f35b34801561017157600080fd5b50610185610180366004610f57565b61049a565b604051901515815260200161015c565b3480156101a157600080fd5b506004545b60405190815260200161015c565b3480156101c057600080fd5b506101856101cf366004610f81565b6104b4565b3480156101e057600080fd5b506040516012815260200161015c565b3480156101fc57600080fd5b5061018561020b366004610f57565b6104d8565b34801561021c57600080fd5b5061023061022b366004610fbd565b6104fa565b005b34801561023e57600080fd5b506101a661024d366004610fd6565b60016020526000908152604090205481565b34801561026b57600080fd5b506101a661027a366004610fd6565b6001600160a01b031660009081526001602052604090205490565b3480156102a157600080fd5b50610230610507565b3480156102b657600080fd5b506102306102c5366004611008565b61055b565b3480156102d657600080fd5b506102306102e536600461103b565b61065a565b3480156102f657600080fd5b5060075461030f9061010090046001600160a01b031681565b6040516001600160a01b03909116815260200161015c565b34801561033357600080fd5b5061014f6106bd565b34801561034857600080fd5b50610185610357366004610f57565b6106cc565b34801561036857600080fd5b50610185610377366004610f57565b610747565b34801561038857600080fd5b506101a660065481565b34801561039e57600080fd5b506101a66103ad36600461106e565b610755565b3480156103be57600080fd5b506102306103cd36600461103b565b61077e565b3480156103de57600080fd5b506102306103ed366004610fd6565b6107e1565b3480156103fe57600080fd5b506101a660055481565b60606008805461041790611098565b80601f016020809104026020016040519081016040528092919081815260200182805461044390611098565b80156104905780601f1061046557610100808354040283529160200191610490565b820191906000526020600020905b81548152906001019060200180831161047357829003601f168201915b5050505050905090565b6000336104a881858561091e565b60019150505b92915050565b6000336104c2858285610a41565b6104cd858585610abb565b506001949350505050565b6000336104a88185856104eb8383610755565b6104f591906110e8565b61091e565b6105043382610c6f565b50565b60075461010090046001600160a01b0316336001600160a01b0316146105485760405162461bcd60e51b815260040161053f906110fb565b60405180910390fd5b60078054610100600160a81b0319169055565b60075461010090046001600160a01b0316336001600160a01b0316146105935760405162461bcd60e51b815260040161053f906110fb565b600a82101580156105a45750600a81115b6106085760405162461bcd60e51b815260206004820152602f60248201527f4d6178205472616e73616374696f6e20616e64204d61782057616c6c6574206d60448201526e757374206265206f766572202e312560881b606482015260840161053f565b61271082600454610619919061112a565b6106239190611141565b6006556004546127109061063890839061112a565b6106429190611141565b60055550506007805460ff1916911515919091179055565b60075461010090046001600160a01b0316336001600160a01b0316146106925760405162461bcd60e51b815260040161053f906110fb565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b60606009805461041790611098565b600033816106da8286610755565b90508381101561073a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161053f565b6104cd828686840361091e565b6000336104a8818585610abb565b6001600160a01b0391821660009081526020818152604080832093909416825291909152205490565b60075461010090046001600160a01b0316336001600160a01b0316146107b65760405162461bcd60e51b815260040161053f906110fb565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b60075461010090046001600160a01b0316336001600160a01b0316146108195760405162461bcd60e51b815260040161053f906110fb565b6001600160a01b0381166108a45760405162461bcd60e51b815260206004820152604660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573732c207573652072656e6f756e63654f776e6572736869702046756064820152653731ba34b7b760d11b608482015260a40161053f565b60075461010090046001600160a01b031660009081526001602052604081205411156108f65760075461010090046001600160a01b03166000818152600160205260409020546108f691908390610abb565b600780546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b0383166109805760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161053f565b6001600160a01b0382166109e15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161053f565b6001600160a01b038381166000818152602081815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000610a4d8484610755565b90506000198114610ab55781811015610aa85760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161053f565b610ab5848484840361091e565b50505050565b6001600160a01b038316610b1f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161053f565b6001600160a01b038216610b815760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161053f565b6001600160a01b038316600090815260016020526040902054811115610bf85760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161053f565b610c03838383610d9b565b6001600160a01b038381166000818152600160209081526040808320805487810390915594871680845292819020805487019055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b6001600160a01b038216610ccf5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161053f565b6001600160a01b03821660009081526001602052604090205481811015610d435760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161053f565b6001600160a01b03831660008181526001602090815260408083208686039055600480548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610a34565b60075460ff1615610e50576001600160a01b03831660009081526002602052604090205460ff1615610e55576006548111158015610e04575060055481610df7846001600160a01b031660009081526001602052604090205490565b610e0191906110e8565b11155b610e505760405162461bcd60e51b815260206004820152601e60248201527f416d6f756e74206973206f766572204d6178205472616e73616374696f6e0000604482015260640161053f565b505050565b6001600160a01b03821660009081526002602052604090205460ff168015610e9657506001600160a01b03831660009081526003602052604090205460ff16155b15610e5057600654811115610e505760405162461bcd60e51b815260206004820152601e60248201527f416d6f756e74206973206f766572204d6178205472616e73616374696f6e0000604482015260640161053f565b600060208083528351808285015260005b81811015610f1a57858101830151858201604001528201610efe565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610f5257600080fd5b919050565b60008060408385031215610f6a57600080fd5b610f7383610f3b565b946020939093013593505050565b600080600060608486031215610f9657600080fd5b610f9f84610f3b565b9250610fad60208501610f3b565b9150604084013590509250925092565b600060208284031215610fcf57600080fd5b5035919050565b600060208284031215610fe857600080fd5b610ff182610f3b565b9392505050565b80358015158114610f5257600080fd5b60008060006060848603121561101d57600080fd5b61102684610ff8565b95602085013595506040909401359392505050565b6000806040838503121561104e57600080fd5b61105783610f3b565b915061106560208401610ff8565b90509250929050565b6000806040838503121561108157600080fd5b61108a83610f3b565b915061106560208401610f3b565b600181811c908216806110ac57607f821691505b6020821081036110cc57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156104ae576104ae6110d2565b6020808252601590820152742cb7ba9030b932903737ba103a34329037bbb732b960591b604082015260600190565b80820281158282048414176104ae576104ae6110d2565b60008261115e57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b6bd75c2a428ac0b619e6e448f3c176023d3ba76843fe6c97044aad437699ebf64736f6c63430008120033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000103a435be00000000000000000000000000000000000000000000000000000000000000008436875644a61636b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044368756400000000000000000000000000000000000000000000000000000000

Deployed ByteCode

0x60806040526004361061012e5760003560e01c8063756ba9d8116100ab578063a9059cbb1161006f578063a9059cbb1461035c578063c3f70b521461037c578063dd62ed3e14610392578063e8f6ae29146103b2578063f2fde38b146103d2578063f8b45b05146103f257600080fd5b8063756ba9d8146102aa57806386a22eff146102ca5780639335dcb7146102ea57806395d89b4114610327578063a457c2d71461033c57600080fd5b806339509351116100f257806339509351146101f057806342966c68146102105780636ebcf6071461023257806370a082311461025f578063715018a61461029557600080fd5b806306fdde031461013a578063095ea7b31461016557806318160ddd1461019557806323b872dd146101b4578063313ce567146101d457600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5061014f610408565b60405161015c9190610eed565b60405180910390f35b34801561017157600080fd5b50610185610180366004610f57565b61049a565b604051901515815260200161015c565b3480156101a157600080fd5b506004545b60405190815260200161015c565b3480156101c057600080fd5b506101856101cf366004610f81565b6104b4565b3480156101e057600080fd5b506040516012815260200161015c565b3480156101fc57600080fd5b5061018561020b366004610f57565b6104d8565b34801561021c57600080fd5b5061023061022b366004610fbd565b6104fa565b005b34801561023e57600080fd5b506101a661024d366004610fd6565b60016020526000908152604090205481565b34801561026b57600080fd5b506101a661027a366004610fd6565b6001600160a01b031660009081526001602052604090205490565b3480156102a157600080fd5b50610230610507565b3480156102b657600080fd5b506102306102c5366004611008565b61055b565b3480156102d657600080fd5b506102306102e536600461103b565b61065a565b3480156102f657600080fd5b5060075461030f9061010090046001600160a01b031681565b6040516001600160a01b03909116815260200161015c565b34801561033357600080fd5b5061014f6106bd565b34801561034857600080fd5b50610185610357366004610f57565b6106cc565b34801561036857600080fd5b50610185610377366004610f57565b610747565b34801561038857600080fd5b506101a660065481565b34801561039e57600080fd5b506101a66103ad36600461106e565b610755565b3480156103be57600080fd5b506102306103cd36600461103b565b61077e565b3480156103de57600080fd5b506102306103ed366004610fd6565b6107e1565b3480156103fe57600080fd5b506101a660055481565b60606008805461041790611098565b80601f016020809104026020016040519081016040528092919081815260200182805461044390611098565b80156104905780601f1061046557610100808354040283529160200191610490565b820191906000526020600020905b81548152906001019060200180831161047357829003601f168201915b5050505050905090565b6000336104a881858561091e565b60019150505b92915050565b6000336104c2858285610a41565b6104cd858585610abb565b506001949350505050565b6000336104a88185856104eb8383610755565b6104f591906110e8565b61091e565b6105043382610c6f565b50565b60075461010090046001600160a01b0316336001600160a01b0316146105485760405162461bcd60e51b815260040161053f906110fb565b60405180910390fd5b60078054610100600160a81b0319169055565b60075461010090046001600160a01b0316336001600160a01b0316146105935760405162461bcd60e51b815260040161053f906110fb565b600a82101580156105a45750600a81115b6106085760405162461bcd60e51b815260206004820152602f60248201527f4d6178205472616e73616374696f6e20616e64204d61782057616c6c6574206d60448201526e757374206265206f766572202e312560881b606482015260840161053f565b61271082600454610619919061112a565b6106239190611141565b6006556004546127109061063890839061112a565b6106429190611141565b60055550506007805460ff1916911515919091179055565b60075461010090046001600160a01b0316336001600160a01b0316146106925760405162461bcd60e51b815260040161053f906110fb565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b60606009805461041790611098565b600033816106da8286610755565b90508381101561073a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161053f565b6104cd828686840361091e565b6000336104a8818585610abb565b6001600160a01b0391821660009081526020818152604080832093909416825291909152205490565b60075461010090046001600160a01b0316336001600160a01b0316146107b65760405162461bcd60e51b815260040161053f906110fb565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b60075461010090046001600160a01b0316336001600160a01b0316146108195760405162461bcd60e51b815260040161053f906110fb565b6001600160a01b0381166108a45760405162461bcd60e51b815260206004820152604660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573732c207573652072656e6f756e63654f776e6572736869702046756064820152653731ba34b7b760d11b608482015260a40161053f565b60075461010090046001600160a01b031660009081526001602052604081205411156108f65760075461010090046001600160a01b03166000818152600160205260409020546108f691908390610abb565b600780546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b0383166109805760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161053f565b6001600160a01b0382166109e15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161053f565b6001600160a01b038381166000818152602081815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000610a4d8484610755565b90506000198114610ab55781811015610aa85760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161053f565b610ab5848484840361091e565b50505050565b6001600160a01b038316610b1f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161053f565b6001600160a01b038216610b815760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161053f565b6001600160a01b038316600090815260016020526040902054811115610bf85760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161053f565b610c03838383610d9b565b6001600160a01b038381166000818152600160209081526040808320805487810390915594871680845292819020805487019055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b6001600160a01b038216610ccf5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161053f565b6001600160a01b03821660009081526001602052604090205481811015610d435760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161053f565b6001600160a01b03831660008181526001602090815260408083208686039055600480548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610a34565b60075460ff1615610e50576001600160a01b03831660009081526002602052604090205460ff1615610e55576006548111158015610e04575060055481610df7846001600160a01b031660009081526001602052604090205490565b610e0191906110e8565b11155b610e505760405162461bcd60e51b815260206004820152601e60248201527f416d6f756e74206973206f766572204d6178205472616e73616374696f6e0000604482015260640161053f565b505050565b6001600160a01b03821660009081526002602052604090205460ff168015610e9657506001600160a01b03831660009081526003602052604090205460ff16155b15610e5057600654811115610e505760405162461bcd60e51b815260206004820152601e60248201527f416d6f756e74206973206f766572204d6178205472616e73616374696f6e0000604482015260640161053f565b600060208083528351808285015260005b81811015610f1a57858101830151858201604001528201610efe565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610f5257600080fd5b919050565b60008060408385031215610f6a57600080fd5b610f7383610f3b565b946020939093013593505050565b600080600060608486031215610f9657600080fd5b610f9f84610f3b565b9250610fad60208501610f3b565b9150604084013590509250925092565b600060208284031215610fcf57600080fd5b5035919050565b600060208284031215610fe857600080fd5b610ff182610f3b565b9392505050565b80358015158114610f5257600080fd5b60008060006060848603121561101d57600080fd5b61102684610ff8565b95602085013595506040909401359392505050565b6000806040838503121561104e57600080fd5b61105783610f3b565b915061106560208401610ff8565b90509250929050565b6000806040838503121561108157600080fd5b61108a83610f3b565b915061106560208401610f3b565b600181811c908216806110ac57607f821691505b6020821081036110cc57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156104ae576104ae6110d2565b6020808252601590820152742cb7ba9030b932903737ba103a34329037bbb732b960591b604082015260600190565b80820281158282048414176104ae576104ae6110d2565b60008261115e57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b6bd75c2a428ac0b619e6e448f3c176023d3ba76843fe6c97044aad437699ebf64736f6c63430008120033