Contract 0xfd0174784ebce943bdb8832ecdea9fea30e7c7a9

 

TxHash Block Age From To Value [TxFee]
0x79d4c33a101375ac5cff6a26d2b2655eaa526dd54d9c0010632b1e8768462c00(pending)secs ago0x5f2231e1a413df3a1bf4d6449a634bf9fe94c7e7  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0xf08534cd189f00c5279e19f8004356b161226ddd17fe2421c2a983366720aba5(pending)6 secs ago0x1768adc108560072f35082b081ee1dd1bf0964fc  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0x049c314260cc516ac95f3efc7862d8392da79036d90a5c05e5233874677fabf6(pending)23 secs ago0xb6ac98da317a5c2e652b364ae91b290269df7636  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0x8def0fef02a52dfac0f920e142de5d76f4dd2e50595e526d8923e4d743d13c66(pending)29 secs ago0x7fd7f51c912084e30de4c4cf213c4c8b94dff0b0  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0x1495056fd954ab38739858e07eb094864472f1123b3ff0ebad9fdfd58d1e0cef(pending)3 mins ago0xef6ea3561845e7fd2c601fc8ee6bdd2b11b7b724  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0xf873366b43f4329736bebdea239f2668d22d3eceaa0a789d223c1a20376b0656(pending)6 mins ago0x22b6a55b878437feb292606a8155c6c768f62992  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0xd67e69340f1250e52365d46e250990de04bed33d85af415dadf3c8c91e653a83(pending)6 mins ago0xab9e34ec04a8d3618ec6580650986026e2d539a3  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0x9424754b8fe15a3d0088026cca7369518c3949264f513aa49f7f1f823aa80ebb(pending)7 mins ago0xe7fceaf6cf87581a483900e036308b19248353a9  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0x41c3f8b0a1b89e4e09c2cca3f9fb1af4df305a628af4413d131023a21be87027(pending)7 mins ago0x3c74db2fe616a01f95d8b0d6a54f6484b789d241  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0xb5e31e987361f24bbe4163d327d74c5b98d07498847e8c6ae5cea259239087d6(pending)8 mins ago0xab759ca5b444f176ad0986e2d9c421c81b6abdd0  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0x59041e58055274c780b98aab674a48b4ed42dc5aef0bbca8e4805c987376e7ea(pending)10 mins ago0xd7dbcf8f5e26cc78672e76b38437ca6392bdaa95  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0x2312a75f93a0a290ca95efadf98f4372fbd13b6e81b27f03a21fbaa201fa167e(pending)11 mins ago0xe7fceaf6cf87581a483900e036308b19248353a9  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0xe406f0a60f54d8f7a15ca5265cb210277a7607205e4265c63ba9c71cc8524238(pending)13 mins ago0xd7dbcf8f5e26cc78672e76b38437ca6392bdaa95  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0x8dccd7451792b4a7543f98cd2dbc2e6532705e2eee005ce684b125bf1072e20a(pending)16 mins ago0x9442b286427f74d4bf70ad0aa482337cc9bd1706  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0x4bde8eea2794c0aba988d7643892dab36314fb49a44db6723374fb14a3a20c96(pending)19 mins ago0xd94d7922ed9dfa3bdb4253773bcdc78d5fc162e6  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0x457f1fd0deb4bca09a964cb709df957576a54bd8b8b1b617342197ba89c92b0f(pending)20 mins ago0x4bc2e4f0ed4f75c24cf759e324f76fb65bb75ec1  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0x189867179e5deac6be0a9b65f3f25e857b1953e07e00292444e3459f2921a50b(pending)22 mins ago0xe33881cac7b01f3efd53b83d559b8a5e724659ff  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0xe4a0918c5bd2b8ba0f654f58872ddf4e24f68316710a95e69a9e0f9c69aae345(pending)24 mins ago0xf6803c036baffecf6bd07dd5e50ebe86841598ba  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0x87622edeae621957cea49fbb8b4a1d2d17c9e5da0ffa3586fd8e1003f97b3159(pending)25 mins ago0xe33881cac7b01f3efd53b83d559b8a5e724659ff  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0xe72c7ad29fc34dd7b3e6ac1914ced498811e7a71ce6f5bf412b47a218e158dbd(pending)25 mins ago0xe33881cac7b01f3efd53b83d559b8a5e724659ff  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0x9cc916d6482742620b065293df438de0d52e37f14d1c553b7d09fa709c422bff(pending)26 mins ago0x4ead8b04bd32cd0a20c48eda89d6f24e2930b235  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0xc5a72a9adad1de28a3252cb7cc5f6af8cb5a38f1011a6dd236a5ba024fca2d5d(pending)28 mins ago0xbc038b0bf1b7fbf5b5eac9e8e59fbb23740ad8ce  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0x34c6225d4db9002f70651947366ab611a7aab937ca3805f738d694ec165185f2(pending)29 mins ago0x672817a6f2a7565c4dd7ff5294446d058225cc85  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0xf3c0ce7b23790cdfbbdc35170bffda7e36c0c1b06dd9ed2eb9bdbe9f0d2d698e(pending)31 mins ago0xa040a28cedf4846d2e8ce6fcf03cbb8627c444c3  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)
0x4750a788b57aa85388f5a6347fb2a53046d1932905ba5f8ed9536efaf0ec944e(pending)32 mins ago0x6881f804b0d3c63d7ed0182af46a4198d9022bd8  IN  0xfd0174784ebce943bdb8832ecdea9fea30e7c7a90 Ether(Pending)

Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
Contract Source Code Verified (Exact Match)
Contract Name: MCHDailyActionV2
Compiler Version: v0.5.2+commit.1df8f40c
Optimization Enabled: No
Runs (Optimizer):  200


Contract Source Code
pragma solidity 0.5.2;

// File: contracts/lib/github.com/OpenZeppelin/openzeppelin-solidity-2.1.1/contracts/cryptography/ECDSA.sol

/**
 * @title Elliptic curve signature operations
 * @dev Based on https://gist.github.com/axic/5b33912c6f61ae6fd96d6c4a47afde6d
 * TODO Remove this library once solidity supports passing a signature to ecrecover.
 * See https://github.com/ethereum/solidity/issues/864
 */

library ECDSA {
    /**
     * @dev Recover signer address from a message by using their signature
     * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.
     * @param signature bytes signature, the signature is generated using web3.eth.sign()
     */
    function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {
        bytes32 r;
        bytes32 s;
        uint8 v;

        // Check the signature length
        if (signature.length != 65) {
            return (address(0));
        }

        // Divide the signature in r, s and v variables
        // ecrecover takes the signature parameters, and the only way to get them
        // currently is to use assembly.
        // solhint-disable-next-line no-inline-assembly
        assembly {
            r := mload(add(signature, 0x20))
            s := mload(add(signature, 0x40))
            v := byte(0, mload(add(signature, 0x60)))
        }

        // Version of signature should be 27 or 28, but 0 and 1 are also possible versions
        if (v < 27) {
            v += 27;
        }

        // If the version is correct return the signer address
        if (v != 27 && v != 28) {
            return (address(0));
        } else {
            return ecrecover(hash, v, r, s);
        }
    }

    /**
     * toEthSignedMessageHash
     * @dev prefix a bytes32 value with "\x19Ethereum Signed Message:"
     * and hash the result
     */
    function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) {
        // 32 is the length in bytes of hash,
        // enforced by the type signature above
        return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash));
    }
}

// File: contracts/lib/github.com/OpenZeppelin/openzeppelin-solidity-2.1.1/contracts/ownership/Ownable.sol

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor () internal {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

    /**
     * @return the address of the owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(isOwner());
        _;
    }

    /**
     * @return true if `msg.sender` is the owner of the contract.
     */
    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }

    /**
     * @dev Allows the current owner to relinquish control of the contract.
     * @notice Renouncing to ownership will leave the contract without an owner.
     * It will not be possible to call the functions with the `onlyOwner`
     * modifier anymore.
     */
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0));
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

// File: contracts/lib/github.com/OpenZeppelin/openzeppelin-solidity-2.1.1/contracts/access/Roles.sol

/**
 * @title Roles
 * @dev Library for managing addresses assigned to a Role.
 */
library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    /**
     * @dev give an account access to this role
     */
    function add(Role storage role, address account) internal {
        require(account != address(0));
        require(!has(role, account));

        role.bearer[account] = true;
    }

    /**
     * @dev remove an account's access to this role
     */
    function remove(Role storage role, address account) internal {
        require(account != address(0));
        require(has(role, account));

        role.bearer[account] = false;
    }

    /**
     * @dev check if an account has this role
     * @return bool
     */
    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0));
        return role.bearer[account];
    }
}

// File: contracts/lib/github.com/OpenZeppelin/openzeppelin-solidity-2.1.1/contracts/access/roles/PauserRole.sol

contract PauserRole {
    using Roles for Roles.Role;

    event PauserAdded(address indexed account);
    event PauserRemoved(address indexed account);

    Roles.Role private _pausers;

    constructor () internal {
        _addPauser(msg.sender);
    }

    modifier onlyPauser() {
        require(isPauser(msg.sender));
        _;
    }

    function isPauser(address account) public view returns (bool) {
        return _pausers.has(account);
    }

    function addPauser(address account) public onlyPauser {
        _addPauser(account);
    }

    function renouncePauser() public {
        _removePauser(msg.sender);
    }

    function _addPauser(address account) internal {
        _pausers.add(account);
        emit PauserAdded(account);
    }

    function _removePauser(address account) internal {
        _pausers.remove(account);
        emit PauserRemoved(account);
    }
}

// File: contracts/lib/github.com/OpenZeppelin/openzeppelin-solidity-2.1.1/contracts/lifecycle/Pausable.sol

/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is PauserRole {
    event Paused(address account);
    event Unpaused(address account);

    bool private _paused;

    constructor () internal {
        _paused = false;
    }

    /**
     * @return true if the contract is paused, false otherwise.
     */
    function paused() public view returns (bool) {
        return _paused;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     */
    modifier whenNotPaused() {
        require(!_paused);
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     */
    modifier whenPaused() {
        require(_paused);
        _;
    }

    /**
     * @dev called by the owner to pause, triggers stopped state
     */
    function pause() public onlyPauser whenNotPaused {
        _paused = true;
        emit Paused(msg.sender);
    }

    /**
     * @dev called by the owner to unpause, returns to normal state
     */
    function unpause() public onlyPauser whenPaused {
        _paused = false;
        emit Unpaused(msg.sender);
    }
}

// File: contracts/lib/github.com/OpenZeppelin/openzeppelin-solidity-2.1.1/contracts/math/SafeMath.sol

/**
 * @title SafeMath
 * @dev Unsigned math operations with safety checks that revert on error
 */
library SafeMath {
    /**
    * @dev Multiplies two unsigned integers, reverts on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b);

        return c;
    }

    /**
    * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
    * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;

        return c;
    }

    /**
    * @dev Adds two unsigned integers, reverts on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);

        return c;
    }

    /**
    * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
    * reverts when dividing by zero.
    */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0);
        return a % b;
    }
}

// File: contracts/MCHDailyActionV2.sol

contract MCHDailyActionV2 is Ownable, Pausable {
    using SafeMath for uint256;

    uint256 public term;
    address public validater;
    mapping(address => mapping(address => uint256)) public counter;
    mapping(address => uint256) public latestActionTime;

    event Action(
        address indexed user,
        address indexed referrer,
        uint256 at
    );
    
    constructor() public {
        term = 86400 - 600;
    }
    
    function withdrawEther() external onlyOwner() {
        msg.sender.transfer(address(this).balance);
    }

    function setValidater(address _varidater) external onlyOwner() {
        validater = _varidater;
    }

    function updateTerm(uint256 _term) external onlyOwner() {
        term = _term;
    }

    function requestDailyActionReward(bytes calldata _signature, address _referrer) external whenNotPaused() {
        require(!isInTerm(msg.sender), "this sender got daily reward within term");
        uint256 count = getCount(msg.sender);
        require(validateSig(_signature, count), "invalid signature");
        emit Action(
            msg.sender,
            _referrer,
            block.timestamp
        );
        setCount(msg.sender, count + 1);
        latestActionTime[msg.sender] = block.timestamp;
    }

    function isInTerm(address _sender) public view returns (bool) {
        if (latestActionTime[_sender] == 0) {
            return false;
        } else if (block.timestamp >= latestActionTime[_sender].add(term)) {
            return false;
        }
        return true;
    }

    function getCount(address _sender) public view returns (uint256) {
        if (counter[validater][_sender] == 0) {
            return 1;
        }
        return counter[validater][_sender];
    }

    function setCount(address _sender, uint256 _count) private {
        counter[validater][_sender] = _count;
    }

    function validateSig(bytes memory _signature, uint256 _count) private view returns (bool) {
        require(validater != address(0));
        uint256 hash = uint256(msg.sender) * _count;
        address signer = ECDSA.recover(ECDSA.toEthSignedMessageHash(bytes32(hash)), _signature);
        return (signer == validater);
    }

    /* function getAddress(bytes32 hash, bytes memory signature) public pure returns (address) { */
    /*     return ECDSA.recover(ECDSA.toEthSignedMessageHash(hash), signature); */
    /* } */

}

Contract ABI
[{"constant":false,"inputs":[{"name":"_term","type":"uint256"}],"name":"updateTerm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isPauser","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"}],"name":"getCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renouncePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addPauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_signature","type":"bytes"},{"name":"_referrer","type":"address"}],"name":"requestDailyActionReward","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"}],"name":"isInTerm","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"term","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_varidater","type":"address"}],"name":"setValidater","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"counter","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"validater","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"latestActionTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":true,"name":"referrer","type":"address"},{"indexed":false,"name":"at","type":"uint256"}],"name":"Action","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

Contract Creation Code
60806040523480156200001157600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3620000e83362000113640100000000026401000000009004565b6000600260006101000a81548160ff02191690831515021790555062014f28600381905550620002d5565b620001378160016200017d6401000000000262001332179091906401000000009004565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515620001ba57600080fd5b620001d5828262000240640100000000026401000000009004565b151515620001e257600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156200027e57600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61157280620002e56000396000f3fe608060405234801561001057600080fd5b5060043610610149576000357c0100000000000000000000000000000000000000000000000000000000900480638bf9d979116100ca578063c14e50ce1161008e578063c14e50ce14610447578063c82fe9b11461048b578063d95b18eb14610503578063f2fde38b1461054d578063f73171f11461059157610149565b80638bf9d979146102c85780638da5cb5b146103615780638f32d59b146103ab578063937adbe6146103cd578063a10ffbed1461042957610149565b80636ef8d66d116101115780636ef8d66d1461025c578063715018a6146102665780637362377b1461027057806382dc1ec41461027a5780638456cb59146102be57610149565b806337c351571461014e5780633f4ba83a1461017c57806346fbf68e146101865780634f0cd27b146101e25780635c975abb1461023a575b600080fd5b61017a6004803603602081101561016457600080fd5b81019080803590602001909291905050506105e9565b005b610184610606565b005b6101c86004803603602081101561019c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106b5565b604051808215151515815260200191505060405180910390f35b610224600480360360208110156101f857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106d2565b6040518082815260200191505060405180910390f35b61024261082a565b604051808215151515815260200191505060405180910390f35b610264610841565b005b61026e61084c565b005b61027861091e565b005b6102bc6004803603602081101561029057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610991565b005b6102c66109b1565b005b61035f600480360360408110156102de57600080fd5b81019080803590602001906401000000008111156102fb57600080fd5b82018360208201111561030d57600080fd5b8035906020019184600183028401116401000000008311171561032f57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a61565b005b610369610c69565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103b3610c92565b604051808215151515815260200191505060405180910390f35b61040f600480360360208110156103e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ce9565b604051808215151515815260200191505060405180910390f35b610431610daa565b6040518082815260200191505060405180910390f35b6104896004803603602081101561045d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610db0565b005b6104ed600480360360408110156104a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e07565b6040518082815260200191505060405180910390f35b61050b610e2c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61058f6004803603602081101561056357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e52565b005b6105d3600480360360208110156105a757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e71565b6040518082815260200191505060405180910390f35b6105f1610c92565b15156105fc57600080fd5b8060038190555050565b61060f336106b5565b151561061a57600080fd5b600260009054906101000a900460ff16151561063557600080fd5b6000600260006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60006106cb826001610e8990919063ffffffff16565b9050919050565b60008060056000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156107835760019050610825565b60056000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b919050565b6000600260009054906101000a900460ff16905090565b61084a33610f1d565b565b610854610c92565b151561085f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610926610c92565b151561093157600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015801561098e573d6000803e3d6000fd5b50565b61099a336106b5565b15156109a557600080fd5b6109ae81610f77565b50565b6109ba336106b5565b15156109c557600080fd5b600260009054906101000a900460ff161515156109e157600080fd5b6001600260006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600260009054906101000a900460ff16151515610a7d57600080fd5b610a8633610ce9565b151515610ade576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061151f6028913960400191505060405180910390fd5b6000610ae9336106d2565b9050610b3984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505082610fd1565b1515610bad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f696e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f03bee8945a564e58a4243604a426d1168e3654790c5ad819fd04206500e60b36426040518082815260200191505060405180910390a3610c1f33600183016110c1565b42600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415610d3b5760009050610da5565b610d8f600354600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461116890919063ffffffff16565b42101515610da05760009050610da5565b600190505b919050565b60035481565b610db8610c92565b1515610dc357600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6005602052816000526040600020602052806000526040600020600091509150505481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e5a610c92565b1515610e6557600080fd5b610e6e81611189565b50565b60066020528060005260406000206000915090505481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610ec657600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610f3181600161128390919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b610f8b81600161133290919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561103057600080fd5b6000823373ffffffffffffffffffffffffffffffffffffffff16029050600061106461105e836001026113e2565b8661143a565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16149250505092915050565b8060056000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600080828401905083811015151561117f57600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156111c557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156112bf57600080fd5b6112c98282610e89565b15156112d457600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561136e57600080fd5b6113788282610e89565b15151561138457600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008160405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c01828152602001915050604051602081830303815290604052805190602001209050919050565b600080600080604185511415156114575760009350505050611518565b6020850151925060408501519150606085015160001a9050601b8160ff16101561148257601b810190505b601b8160ff161415801561149a5750601c8160ff1614155b156114ab5760009350505050611518565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611508573d6000803e3d6000fd5b5050506020604051035193505050505b9291505056fe746869732073656e64657220676f74206461696c79207265776172642077697468696e207465726da165627a7a72305820146f1cfb6a016889ef3a37330b38dd4c018bd587578235ac0fcbecdf6ca1f1cf0029


   Swarm Source:
bzzr://146f1cfb6a016889ef3a37330b38dd4c018bd587578235ac0fcbecdf6ca1f1cf
Block Age transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.