ETH Price: $2,764.08 (+3.85%)

Contract

0x2d14464e68efe239E5E33B1F11440dB1745cb4E5
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Clear_pending_li...112068572020-11-06 23:49:531569 days ago1604706593IN
0x2d14464e...1745cb4E5
0 ETH0.0006495127
Clear_pending_li...112068542020-11-06 23:49:051569 days ago1604706545IN
0x2d14464e...1745cb4E5
0 ETH0.0019305227
Claim Reward112067672020-11-06 23:30:021569 days ago1604705402IN
0x2d14464e...1745cb4E5
0 ETH0.0448513730.7
Clear_pending_li...112067632020-11-06 23:29:331569 days ago1604705373IN
0x2d14464e...1745cb4E5
0 ETH0.0017920228
Move To New Chan...112066012020-11-06 22:54:181569 days ago1604703258IN
0x2d14464e...1745cb4E5
0 ETH0.0013486531
Claim Reward112065772020-11-06 22:45:401569 days ago1604702740IN
0x2d14464e...1745cb4E5
0 ETH0.0411312327
Claim Reward112065392020-11-06 22:35:441569 days ago1604702144IN
0x2d14464e...1745cb4E5
0 ETH0.038679227
Claim Reward112057132020-11-06 19:40:081569 days ago1604691608IN
0x2d14464e...1745cb4E5
0 ETH0.041140729
Claim Reward112052902020-11-06 17:59:331569 days ago1604685573IN
0x2d14464e...1745cb4E5
0 ETH0.0326961822
Clear_pending_li...112038382020-11-06 12:39:121569 days ago1604666352IN
0x2d14464e...1745cb4E5
0 ETH0.0042880667
Claim Reward112029662020-11-06 9:24:341569 days ago1604654674IN
0x2d14464e...1745cb4E5
0 ETH0.0438535531.1
Claim Reward112024262020-11-06 7:31:361569 days ago1604647896IN
0x2d14464e...1745cb4E5
0 ETH0.0675755448.40000023
Claim Reward112022822020-11-06 6:59:121569 days ago1604645952IN
0x2d14464e...1745cb4E5
0 ETH0.068904850
Claim Reward112009552020-11-06 2:11:501569 days ago1604628710IN
0x2d14464e...1745cb4E5
0 ETH0.1007846474.7
Claim Reward112004112020-11-06 0:07:341569 days ago1604621254IN
0x2d14464e...1745cb4E5
0 ETH0.0299341622.1
Claim Reward111983582020-11-05 16:42:001570 days ago1604594520IN
0x2d14464e...1745cb4E5
0 ETH0.16132752115
Clear_pending_li...111976772020-11-05 14:10:001570 days ago1604585400IN
0x2d14464e...1745cb4E5
0 ETH0.0047360774
Claim Reward111976482020-11-05 14:03:131570 days ago1604584993IN
0x2d14464e...1745cb4E5
0 ETH0.0997671.825594
Clear_pending_li...111975882020-11-05 13:49:411570 days ago1604584181IN
0x2d14464e...1745cb4E5
0 ETH0.0048640776
Claim Reward111975112020-11-05 13:30:311570 days ago1604583031IN
0x2d14464e...1745cb4E5
0 ETH0.0541557242
Claim Reward111970492020-11-05 11:53:011570 days ago1604577181IN
0x2d14464e...1745cb4E5
0 ETH0.0471515936.3000016
Claim Reward111964002020-11-05 9:32:001570 days ago1604568720IN
0x2d14464e...1745cb4E5
0 ETH0.0356780730
Claim Reward111960652020-11-05 8:23:151570 days ago1604564595IN
0x2d14464e...1745cb4E5
0 ETH0.0386600429
Claim Reward111959682020-11-05 8:02:221570 days ago1604563342IN
0x2d14464e...1745cb4E5
0 ETH0.0364603629
Claim Reward111953082020-11-05 5:29:371570 days ago1604554177IN
0x2d14464e...1745cb4E5
0 ETH0.0322182126
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:
RewardChannel

Compiler Version
v0.4.20+commit.3155dd80

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-10-25
*/

pragma solidity ^0.4.20;

interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract RewardChannel {
    address _owner;
    IERC20 reward_token;
    claimRecord[] claimHistory;
    claimRecord[] pending;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
    modifier onlyOwner() {
        require(_owner == msg.sender);
        _;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        _owner = newOwner;
    }

    function moveToNewChannel(address newChannel) public onlyOwner {
        require(newChannel != address(0));
        uint256 bal = reward_token.balanceOf(address(this));
        reward_token.transfer(newChannel, bal);
    }

    struct claimRecord {
        uint256 amount;
        uint256 blcok_number;
        uint256 expired_block;
        bytes sig;
        address receiver;
    }

    function RewardChannel(IERC20 _reward_token) public payable {
        _owner = msg.sender;
        reward_token = _reward_token;
    }

    function claimReward(
        uint256 amount,
        uint256 expired_block,
        bytes signature
    ) public {
        clear_pending_list();
        require(amount != 0);
        bool signature_not_exist = true;
        for (uint256 i = 0; i < claimHistory.length; i++) {
            claimRecord memory record = claimHistory[i];
            if (signature_compare(signature, record.sig) == true) {
                signature_not_exist = false;
            }
            if (block.number > record.expired_block) {
                delete (claimHistory[i]);
            }
        }
        require(signature_not_exist);
        bytes32 message = keccak256(msg.sender, amount, expired_block);
        require(recoverSigner(message, signature) == _owner);
        require(block.number < expired_block);
        claimRecord memory newRecord = claimRecord({
            amount: amount,
            blcok_number: block.number,
            expired_block: expired_block,
            sig: signature,
            receiver: msg.sender
        });
        claimHistory.push(newRecord);
        pending.push(newRecord);
    }

    function signature_compare(bytes a, bytes b) internal pure returns (bool) {
        if (a.length != b.length) {
            return false;
        }
        for (uint256 i = 0; i < a.length; i++) {
            if (a[i] != b[i]) {
                return false;
            }
        }
        return true;
    }

    function clear_pending_list() public {
        for (uint256 i = 0; i < pending.length; i++) {
            claimRecord memory record = pending[i];
            if (is_duplicate(record.sig) == false) {
                safeTGXTransfer(record.receiver, record.amount);
            } else {
                delete (pending[i]);
            }
        }
        delete (pending);
    }

    function is_duplicate(bytes sig) internal view returns (bool) {
        uint256 count = 0;
        for (uint256 i = 0; i < pending.length; i++) {
            claimRecord memory record = pending[i];
            if (signature_compare(sig, record.sig) == true) {
                if (count == 1) {
                    return true;
                }
                count++;
            }
        }
        return false;
    }

    function safeTGXTransfer(address _to, uint256 _amount) internal {
        uint256 reward_pool_balance = reward_token.balanceOf(address(this));
        if (_amount > reward_pool_balance) {
            reward_token.transfer(_to, reward_pool_balance);
        } else {
            reward_token.transfer(_to, _amount);
        }
    }

    function splitSignature(bytes sig)
        internal
        pure
        returns (
            uint8,
            bytes32,
            bytes32
        )
    {
        require(sig.length == 65);

        bytes32 r;
        bytes32 s;
        uint8 v;

        assembly {
            // first 32 bytes, after the length prefix
            r := mload(add(sig, 32))
            // second 32 bytes
            s := mload(add(sig, 64))
            // final byte (first byte of the next 32 bytes)
            v := byte(0, mload(add(sig, 96)))
        }

        return (v, r, s);
    }

    function recoverSigner(bytes32 message, bytes sig)
        internal
        pure
        returns (address)
    {
        uint8 v;
        bytes32 r;
        bytes32 s;

        (v, r, s) = splitSignature(sig);

        return ecrecover(message, v, r, s);
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[],"name":"clear_pending_list","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"},{"name":"expired_block","type":"uint256"},{"name":"signature","type":"bytes"}],"name":"claimReward","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newChannel","type":"address"}],"name":"moveToNewChannel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_reward_token","type":"address"}],"payable":true,"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

606060405260405160208061150f83398101604052808051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061145e806100b16000396000f300606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063703fcf651461006757806376618f271461007c578063c91f5ebc146100eb578063f2fde38b14610124575b600080fd5b341561007257600080fd5b61007a61015d565b005b341561008757600080fd5b6100e9600480803590602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610379565b005b34156100f657600080fd5b610122600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061082e565b005b341561012f57600080fd5b61015b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a96565b005b6000610167611221565b600091505b6003805490508210156103675760038281548110151561018857fe5b906000526020600020906005020160a06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156102595780601f1061022e57610100808354040283529160200191610259565b820191906000526020600020905b81548152906001019060200180831161023c57829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050600015156102cb8260600151610b70565b151514156102ea576102e581608001518260000151610d23565b61035a565b6003828154811015156102f957fe5b906000526020600020906005020160008082016000905560018201600090556002820160009055600382016000610330919061126d565b6004820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550505b818060010192505061016c565b6003600061037591906112b5565b5050565b600080610384611221565b600061038e611221565b61039661015d565b600088141515156103a657600080fd5b60019450600093505b6002805490508410156105a5576002848154811015156103cb57fe5b906000526020600020906005020160a06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561049c5780601f106104715761010080835404028352916020019161049c565b820191906000526020600020905b81548152906001019060200180831161047f57829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505092506001151561050f878560600151610fec565b1515141561051c57600094505b82604001514311156105985760028481548110151561053757fe5b90600052602060002090600502016000808201600090556001820160009055600282016000905560038201600061056e919061126d565b6004820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550505b83806001019450506103af565b8415156105b157600080fd5b338888604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018381526020018281526020019350505050604051809103902091506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106568388611130565b73ffffffffffffffffffffffffffffffffffffffff1614151561067857600080fd5b864310151561068657600080fd5b60a0604051908101604052808981526020014381526020018881526020018781526020013373ffffffffffffffffffffffffffffffffffffffff168152509050600280548060010182816106da91906112d9565b91600052602060002090600502016000839091909150600082015181600001556020820151816001015560408201518160020155606082015181600301908051906020019061072a92919061130b565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506003805480600101828161078991906112d9565b9160005260206000209060050201600083909190915060008201518160000155602082015181600101556040820151816002015560608201518160030190805190602001906107d992919061130b565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050505050565b60003373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561088b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156108c757600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561098c57600080fd5b6102c65a03f1151561099d57600080fd5b505050604051805190509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610a7657600080fd5b6102c65a03f11515610a8757600080fd5b50505060405180519050505050565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610af157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610b2d57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000610b7d611221565b60009250600091505b600380549050821015610d1657600382815481101515610ba257fe5b906000526020600020906005020160a06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c735780601f10610c4857610100808354040283529160200191610c73565b820191906000526020600020905b815481529060010190602001808311610c5657829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050905060011515610ce6868360600151610fec565b15151415610d09576001831415610d005760019350610d1b565b82806001019350505b8180600101925050610b86565b600093505b505050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515610dea57600080fd5b6102c65a03f11515610dfb57600080fd5b50505060405180519050905080821115610efd57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610edc57600080fd5b6102c65a03f11515610eed57600080fd5b5050506040518051905050610fe7565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610fca57600080fd5b6102c65a03f11515610fdb57600080fd5b50505060405180519050505b505050565b600080825184511415156110035760009150611129565b600090505b835181101561112457828181518110151561101f57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916848281518110151561109a57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415156111175760009150611129565b8080600101915050611008565b600191505b5092915050565b60008060008061113f856111dd565b809350819450829550505050600186848484604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f115156111c957600080fd5b505060206040510351935050505092915050565b600080600080600080604187511415156111f657600080fd5b6020870151925060408701519150606087015160001a90508083839550955095505050509193909250565b60a06040519081016040528060008152602001600081526020016000815260200161124a61138b565b8152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b50805460018160011615610100020316600290046000825580601f1061129357506112b2565b601f0160209004906000526020600020908101906112b1919061139f565b5b50565b50805460008255600502906000526020600020908101906112d691906113c4565b50565b8154818355818115116113065760050281600502836000526020600020918201910161130591906113c4565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061134c57805160ff191683800117855561137a565b8280016001018555821561137a579182015b8281111561137957825182559160200191906001019061135e565b5b509050611387919061139f565b5090565b602060405190810160405280600081525090565b6113c191905b808211156113bd5760008160009055506001016113a5565b5090565b90565b61142f91905b8082111561142b57600080820160009055600182016000905560028201600090556003820160006113fb919061126d565b6004820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506005016113ca565b5090565b905600a165627a7a7230582097c980633411666f8a03e7f213b2ce87036f77d56331c9de34fdc1a4be4a34020029000000000000000000000000364a7381a5b378ced7ab33d1cdf6ff1bf162bfd6

Deployed Bytecode

0x606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063703fcf651461006757806376618f271461007c578063c91f5ebc146100eb578063f2fde38b14610124575b600080fd5b341561007257600080fd5b61007a61015d565b005b341561008757600080fd5b6100e9600480803590602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610379565b005b34156100f657600080fd5b610122600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061082e565b005b341561012f57600080fd5b61015b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a96565b005b6000610167611221565b600091505b6003805490508210156103675760038281548110151561018857fe5b906000526020600020906005020160a06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156102595780601f1061022e57610100808354040283529160200191610259565b820191906000526020600020905b81548152906001019060200180831161023c57829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050600015156102cb8260600151610b70565b151514156102ea576102e581608001518260000151610d23565b61035a565b6003828154811015156102f957fe5b906000526020600020906005020160008082016000905560018201600090556002820160009055600382016000610330919061126d565b6004820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550505b818060010192505061016c565b6003600061037591906112b5565b5050565b600080610384611221565b600061038e611221565b61039661015d565b600088141515156103a657600080fd5b60019450600093505b6002805490508410156105a5576002848154811015156103cb57fe5b906000526020600020906005020160a06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561049c5780601f106104715761010080835404028352916020019161049c565b820191906000526020600020905b81548152906001019060200180831161047f57829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505092506001151561050f878560600151610fec565b1515141561051c57600094505b82604001514311156105985760028481548110151561053757fe5b90600052602060002090600502016000808201600090556001820160009055600282016000905560038201600061056e919061126d565b6004820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550505b83806001019450506103af565b8415156105b157600080fd5b338888604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018381526020018281526020019350505050604051809103902091506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106568388611130565b73ffffffffffffffffffffffffffffffffffffffff1614151561067857600080fd5b864310151561068657600080fd5b60a0604051908101604052808981526020014381526020018881526020018781526020013373ffffffffffffffffffffffffffffffffffffffff168152509050600280548060010182816106da91906112d9565b91600052602060002090600502016000839091909150600082015181600001556020820151816001015560408201518160020155606082015181600301908051906020019061072a92919061130b565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506003805480600101828161078991906112d9565b9160005260206000209060050201600083909190915060008201518160000155602082015181600101556040820151816002015560608201518160030190805190602001906107d992919061130b565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050505050565b60003373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561088b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156108c757600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561098c57600080fd5b6102c65a03f1151561099d57600080fd5b505050604051805190509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610a7657600080fd5b6102c65a03f11515610a8757600080fd5b50505060405180519050505050565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610af157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610b2d57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000610b7d611221565b60009250600091505b600380549050821015610d1657600382815481101515610ba257fe5b906000526020600020906005020160a06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c735780601f10610c4857610100808354040283529160200191610c73565b820191906000526020600020905b815481529060010190602001808311610c5657829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050905060011515610ce6868360600151610fec565b15151415610d09576001831415610d005760019350610d1b565b82806001019350505b8180600101925050610b86565b600093505b505050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515610dea57600080fd5b6102c65a03f11515610dfb57600080fd5b50505060405180519050905080821115610efd57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610edc57600080fd5b6102c65a03f11515610eed57600080fd5b5050506040518051905050610fe7565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610fca57600080fd5b6102c65a03f11515610fdb57600080fd5b50505060405180519050505b505050565b600080825184511415156110035760009150611129565b600090505b835181101561112457828181518110151561101f57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916848281518110151561109a57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415156111175760009150611129565b8080600101915050611008565b600191505b5092915050565b60008060008061113f856111dd565b809350819450829550505050600186848484604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f115156111c957600080fd5b505060206040510351935050505092915050565b600080600080600080604187511415156111f657600080fd5b6020870151925060408701519150606087015160001a90508083839550955095505050509193909250565b60a06040519081016040528060008152602001600081526020016000815260200161124a61138b565b8152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b50805460018160011615610100020316600290046000825580601f1061129357506112b2565b601f0160209004906000526020600020908101906112b1919061139f565b5b50565b50805460008255600502906000526020600020908101906112d691906113c4565b50565b8154818355818115116113065760050281600502836000526020600020918201910161130591906113c4565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061134c57805160ff191683800117855561137a565b8280016001018555821561137a579182015b8281111561137957825182559160200191906001019061135e565b5b509050611387919061139f565b5090565b602060405190810160405280600081525090565b6113c191905b808211156113bd5760008160009055506001016113a5565b5090565b90565b61142f91905b8082111561142b57600080820160009055600182016000905560028201600090556003820160006113fb919061126d565b6004820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506005016113ca565b5090565b905600a165627a7a7230582097c980633411666f8a03e7f213b2ce87036f77d56331c9de34fdc1a4be4a34020029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000364a7381a5b378ced7ab33d1cdf6ff1bf162bfd6

-----Decoded View---------------
Arg [0] : _reward_token (address): 0x364A7381A5b378CeD7AB33d1CDf6ff1bf162Bfd6

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000364a7381a5b378ced7ab33d1cdf6ff1bf162bfd6


Deployed Bytecode Sourcemap

2780:4586:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5299:387;;;;;;;;;;;;;;3821:1143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3272:226;;;;;;;;;;;;;;;;;;;;;;;;;;;;3124:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;5299:387;5352:9;5407:25;;:::i;:::-;5364:1;5352:13;;5347:305;5371:7;:14;;;;5367:1;:18;5347:305;;;5435:7;5443:1;5435:10;;;;;;;;;;;;;;;;;;;;5407:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5492:5;5464:33;;:24;5477:6;:10;;;5464:12;:24::i;:::-;:33;;;5460:181;;;5518:47;5534:6;:15;;;5551:6;:13;;;5518:15;:47::i;:::-;5460:181;;;5614:7;5622:1;5614:10;;;;;;;;;;;;;;;;;;;;;5606:19;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;5460:181;5387:3;;;;;;;5347:305;;;5670:7;;5662:16;;;;:::i;:::-;5299:387;;:::o;3821:1143::-;4012:24;4059:9;4119:25;;:::i;:::-;4467:15;4651:28;;:::i;:::-;3950:20;:18;:20::i;:::-;3999:1;3989:6;:11;;3981:20;;;;;;;;4039:4;4012:31;;4071:1;4059:13;;4054:364;4078:12;:19;;;;4074:1;:23;4054:364;;;4147:12;4160:1;4147:15;;;;;;;;;;;;;;;;;;;;4119:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4225:4;4181:48;;:40;4199:9;4210:6;:10;;;4181:17;:40::i;:::-;:48;;;4177:116;;;4272:5;4250:27;;4177:116;4326:6;:20;;;4311:12;:35;4307:100;;;4375:12;4388:1;4375:15;;;;;;;;;;;;;;;;;;;;;4367:24;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4307:100;4099:3;;;;;;;4054:364;;;4436:19;4428:28;;;;;;;;4495:10;4507:6;4515:13;4485:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4467:62;;4585:6;;;;;;;;;;;4548:43;;:33;4562:7;4571:9;4548:13;:33::i;:::-;:43;;;4540:52;;;;;;;;4626:13;4611:12;:28;4603:37;;;;;;;;4682:201;;;;;;;;;4717:6;4682:201;;;;4752:12;4682:201;;;;4794:13;4682:201;;;;4827:9;4682:201;;;;4861:10;4682:201;;;;;4651:232;;4894:12;:28;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;4912:9;4894:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4933:7;:23;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;4946:9;4933:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3821:1143;;;;;;;;:::o;3272:226::-;3390:11;3085:10;3075:20;;:6;;;;;;;;;;;:20;;;3067:29;;;;;;;;3376:1;3354:24;;:10;:24;;;;3346:33;;;;;;;;3404:12;;;;;;;;;;;:22;;;3435:4;3404:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3390:51;;3452:12;;;;;;;;;;;:21;;;3474:10;3486:3;3452:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3272:226;;:::o;3124:140::-;3085:10;3075:20;;:6;;;;;;;;;;;:20;;;3067:29;;;;;;;;3225:1;3205:22;;:8;:22;;;;3197:31;;;;;;;;3248:8;3239:6;;:17;;;;;;;;;;;;;;;;;;3124:140;:::o;5694:433::-;5750:4;5767:13;5800:9;5855:25;;:::i;:::-;5783:1;5767:17;;5812:1;5800:13;;5795:302;5819:7;:14;;;;5815:1;:18;5795:302;;;5883:7;5891:1;5883:10;;;;;;;;;;;;;;;;;;;;5855:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5950:4;5912:42;;:34;5930:3;5935:6;:10;;;5912:17;:34::i;:::-;:42;;;5908:178;;;5988:1;5979:5;:10;5975:70;;;6021:4;6014:11;;;;5975:70;6063:7;;;;;;;5908:178;5835:3;;;;;;;5795:302;;;6114:5;6107:12;;5694:433;;;;;;;:::o;6135:337::-;6210:27;6240:12;;;;;;;;;;;:22;;;6271:4;6240:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6210:67;;6302:19;6292:7;:29;6288:177;;;6338:12;;;;;;;;;;;:21;;;6360:3;6365:19;6338:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6288:177;;;6418:12;;;;;;;;;;;:21;;;6440:3;6445:7;6418:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6288:177;6135:337;;;:::o;4972:319::-;5040:4;5137:9;5073:1;:8;5061:1;:8;:20;;5057:65;;;5105:5;5098:12;;;;5057:65;5149:1;5137:13;;5132:130;5156:1;:8;5152:1;:12;5132:130;;;5198:1;5200;5198:4;;;;;;;;;;;;;;;;;;;;5190:12;;;:1;5192;5190:4;;;;;;;;;;;;;;;;;;;;:12;;;;;5186:65;;;5230:5;5223:12;;;;5186:65;5166:3;;;;;;;5132:130;;;5279:4;5272:11;;4972:319;;;;;;:::o;7091:272::-;7192:7;7217;7235:9;7255;7289:19;7304:3;7289:14;:19::i;:::-;7277:31;;;;;;;;;;;;7328:27;7338:7;7347:1;7350;7353;7328:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7321:34;;7091:272;;;;;;;:::o;6480:603::-;6579:5;6599:7;6621;6694:9;6714;6734:7;6678:2;6664:3;:10;:16;6656:25;;;;;;;;6854:2;6849:3;6845:12;6839:19;6834:24;;6924:2;6919:3;6915:12;6909:19;6904:24;;7031:2;7026:3;7022:12;7016:19;7013:1;7008:28;7003:33;;7067:1;7070;7073;7059:16;;;;;;6480:603;;;;;;;;:::o;2780:4586::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://97c980633411666f8a03e7f213b2ce87036f77d56331c9de34fdc1a4be4a3402

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.