ETH Price: $3,211.58 (+1.27%)

Contract

0xc5088267356BD817D40c6ACFB12a747555A0AFFf
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim Reward125712282021-06-05 0:21:141258 days ago1622852474IN
0xc5088267...555A0AFFf
0 ETH0.0025132114.01
Claim Reward125412532021-05-31 9:05:141263 days ago1622451914IN
0xc5088267...555A0AFFf
0 ETH0.0026909815.00000112
Claim Reward125412532021-05-31 9:05:141263 days ago1622451914IN
0xc5088267...555A0AFFf
0 ETH0.0026909815.00000112
Claim Reward114902552020-12-20 12:39:091424 days ago1608467949IN
0xc5088267...555A0AFFf
0 ETH0.0068237731.8
Claim Reward114814232020-12-19 4:11:421426 days ago1608351102IN
0xc5088267...555A0AFFf
0 ETH0.0110698650.6
Claim Reward114752192020-12-18 5:23:341427 days ago1608269014IN
0xc5088267...555A0AFFf
0 ETH0.0190140285.28
Claim Reward114685322020-12-17 4:35:061428 days ago1608179706IN
0xc5088267...555A0AFFf
0 ETH0.0144616266.1
Claim Reward114685112020-12-17 4:31:501428 days ago1608179510IN
0xc5088267...555A0AFFf
0 ETH0.020218389
Claim Reward114678522020-12-17 2:04:561428 days ago1608170696IN
0xc5088267...555A0AFFf
0 ETH0.0102232845
Claim Reward114676902020-12-17 1:32:561428 days ago1608168776IN
0xc5088267...555A0AFFf
0 ETH0.02550799114.4
Claim Reward114671372020-12-16 23:28:011428 days ago1608161281IN
0xc5088267...555A0AFFf
0 ETH0.0130037960.6
Claim Reward114671312020-12-16 23:27:191428 days ago1608161239IN
0xc5088267...555A0AFFf
0 ETH0.0128750460
Claim Reward114659672020-12-16 19:03:471428 days ago1608145427IN
0xc5088267...555A0AFFf
0 ETH0.0146847867.12
Claim Reward114654512020-12-16 17:17:381428 days ago1608139058IN
0xc5088267...555A0AFFf
0 ETH0.0118238453.144
Claim Reward114642302020-12-16 12:47:241428 days ago1608122844IN
0xc5088267...555A0AFFf
0 ETH0.012722356
Claim Reward114639032020-12-16 11:41:561428 days ago1608118916IN
0xc5088267...555A0AFFf
0 ETH0.0182846882
Claim Reward114632392020-12-16 9:15:231429 days ago1608110123IN
0xc5088267...555A0AFFf
0 ETH0.01418466.1
Claim Reward114630712020-12-16 8:36:591429 days ago1608107819IN
0xc5088267...555A0AFFf
0 ETH0.0091595947.32
Claim Reward114628772020-12-16 7:53:281429 days ago1608105208IN
0xc5088267...555A0AFFf
0 ETH0.0073686330.00000134
Claim Reward114625802020-12-16 6:48:181429 days ago1608101298IN
0xc5088267...555A0AFFf
0 ETH0.0206319167
Claim Reward114623682020-12-16 6:02:461429 days ago1608098566IN
0xc5088267...555A0AFFf
0 ETH0.0230368771
Claim Reward114623642020-12-16 6:01:211429 days ago1608098481IN
0xc5088267...555A0AFFf
0 ETH0.020528966
Claim Reward114623562020-12-16 5:59:001429 days ago1608098340IN
0xc5088267...555A0AFFf
0 ETH0.019316864.00000145
Claim Reward114623562020-12-16 5:59:001429 days ago1608098340IN
0xc5088267...555A0AFFf
0 ETH0.0189521564.77
Claim Reward114623492020-12-16 5:57:011429 days ago1608098221IN
0xc5088267...555A0AFFf
0 ETH0.0186271364.77
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-11-06
*/

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 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) {
                deleteRecord(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,
            expired_block: expired_block,
            sig: signature,
            receiver: msg.sender
        });
        claimHistory.push(newRecord);
        pending.push(newRecord);
    }

    function deleteRecord(uint256 index) internal {
        uint256 len = claimHistory.length;
        if (index >= len) return;
        for (uint256 i = index; i < len - 1; i++) {
            claimHistory[i] = claimHistory[i + 1];
        }
        delete claimHistory[len - 1];
        claimHistory.length--;
    }

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

60606040526040516020806116b183398101604052808051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050611600806100b16000396000f300606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063703fcf651461006757806376618f271461007c578063c91f5ebc146100eb578063f2fde38b14610124575b600080fd5b341561007257600080fd5b61007a61015d565b005b341561008757600080fd5b6100e9600480803590602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610367565b005b34156100f657600080fd5b610122600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610792565b005b341561012f57600080fd5b61015b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506109fa565b005b6000610167611319565b600091505b6003805490508210156103555760038281548110151561018857fe5b9060005260206000209060040201608060405190810160405290816000820154815260200160018201548152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561024f5780601f106102245761010080835404028352916020019161024f565b820191906000526020600020905b81548152906001019060200180831161023257829003601f168201915b505050505081526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050600015156102c18260400151610ad4565b151514156102e0576102db81606001518260000151610c7d565b610348565b6003828154811015156102ef57fe5b9060005260206000209060040201600080820160009055600182016000905560028201600061031e919061135e565b6003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550505b818060010192505061016c565b6003600061036391906113a6565b5050565b600080610372611319565b600061037c611319565b61038461015d565b6000881415151561039457600080fd5b60019450600093505b600280549050841015610523576002848154811015156103b957fe5b9060005260206000209060040201608060405190810160405290816000820154815260200160018201548152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104805780601f1061045557610100808354040283529160200191610480565b820191906000526020600020905b81548152906001019060200180831161046357829003601f168201915b505050505081526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509250600115156104f3878560400151610f46565b1515141561050057600094505b8260200151431115610516576105158461108a565b5b838060010194505061039d565b84151561052f57600080fd5b338888604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018381526020018281526020019350505050604051809103902091506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105d48388611228565b73ffffffffffffffffffffffffffffffffffffffff161415156105f657600080fd5b864310151561060457600080fd5b6080604051908101604052808981526020018881526020018781526020013373ffffffffffffffffffffffffffffffffffffffff1681525090506002805480600101828161065291906113ca565b91600052602060002090600402016000839091909150600082015181600001556020820151816001015560408201518160020190805190602001906106989291906113fc565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050600380548060010182816106f791906113ca565b916000526020600020906004020160008390919091506000820151816000015560208201518160010155604082015181600201908051906020019061073d9291906113fc565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050505050565b60003373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156107ef57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561082b57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156108f057600080fd5b6102c65a03f1151561090157600080fd5b505050604051805190509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156109da57600080fd5b6102c65a03f115156109eb57600080fd5b50505060405180519050505050565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a5557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a9157600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000610ae1611319565b60009250600091505b600380549050821015610c7057600382815481101515610b0657fe5b9060005260206000209060040201608060405190810160405290816000820154815260200160018201548152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bcd5780601f10610ba257610100808354040283529160200191610bcd565b820191906000526020600020905b815481529060010190602001808311610bb057829003601f168201915b505050505081526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050905060011515610c40868360400151610f46565b15151415610c63576001831415610c5a5760019350610c75565b82806001019350505b8180600101925050610aea565b600093505b505050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515610d4457600080fd5b6102c65a03f11515610d5557600080fd5b50505060405180519050905080821115610e5757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610e3657600080fd5b6102c65a03f11515610e4757600080fd5b5050506040518051905050610f41565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610f2457600080fd5b6102c65a03f11515610f3557600080fd5b50505060405180519050505b505050565b60008082518451141515610f5d5760009150611083565b600090505b835181101561107e578281815181101515610f7957fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168482815181101515610ff457fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415156110715760009150611083565b8080600101915050610f62565b600191505b5092915050565b600080600280549050915081831015156110a357611223565b8290505b600182038110156111a2576002600182018154811015156110c457fe5b90600052602060002090600402016002828154811015156110e157fe5b906000526020600020906004020160008201548160000155600182015481600101556002820181600201908054600181600116156101000203166002900461112a92919061147c565b506003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505080806001019150506110a7565b6002600183038154811015156111b457fe5b906000526020600020906004020160008082016000905560018201600090556002820160006111e3919061135e565b6003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055505060028054809190600190036112219190611503565b505b505050565b600080600080611237856112d5565b809350819450829550505050600186848484604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f115156112c157600080fd5b505060206040510351935050505092915050565b600080600080600080604187511415156112ee57600080fd5b6020870151925060408701519150606087015160001a90508083839550955095505050509193909250565b608060405190810160405280600081526020016000815260200161133b611535565b8152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b50805460018160011615610100020316600290046000825580601f1061138457506113a3565b601f0160209004906000526020600020908101906113a29190611549565b5b50565b50805460008255600402906000526020600020908101906113c7919061156e565b50565b8154818355818115116113f7576004028160040283600052602060002091820191016113f6919061156e565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061143d57805160ff191683800117855561146b565b8280016001018555821561146b579182015b8281111561146a57825182559160200191906001019061144f565b5b5090506114789190611549565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106114b557805485556114f2565b828001600101855582156114f257600052602060002091601f016020900482015b828111156114f15782548255916001019190600101906114d6565b5b5090506114ff9190611549565b5090565b8154818355818115116115305760040281600402836000526020600020918201910161152f919061156e565b5b505050565b602060405190810160405280600081525090565b61156b91905b8082111561156757600081600090555060010161154f565b5090565b90565b6115d191905b808211156115cd57600080820160009055600182016000905560028201600061159d919061135e565b6003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600401611574565b5090565b905600a165627a7a72305820bce812eb9f9c29c947abca77520b34786f2f0b77f207dbada526474e97ae65810029000000000000000000000000364a7381a5b378ced7ab33d1cdf6ff1bf162bfd6

Deployed Bytecode

0x606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063703fcf651461006757806376618f271461007c578063c91f5ebc146100eb578063f2fde38b14610124575b600080fd5b341561007257600080fd5b61007a61015d565b005b341561008757600080fd5b6100e9600480803590602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610367565b005b34156100f657600080fd5b610122600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610792565b005b341561012f57600080fd5b61015b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506109fa565b005b6000610167611319565b600091505b6003805490508210156103555760038281548110151561018857fe5b9060005260206000209060040201608060405190810160405290816000820154815260200160018201548152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561024f5780601f106102245761010080835404028352916020019161024f565b820191906000526020600020905b81548152906001019060200180831161023257829003601f168201915b505050505081526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050600015156102c18260400151610ad4565b151514156102e0576102db81606001518260000151610c7d565b610348565b6003828154811015156102ef57fe5b9060005260206000209060040201600080820160009055600182016000905560028201600061031e919061135e565b6003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550505b818060010192505061016c565b6003600061036391906113a6565b5050565b600080610372611319565b600061037c611319565b61038461015d565b6000881415151561039457600080fd5b60019450600093505b600280549050841015610523576002848154811015156103b957fe5b9060005260206000209060040201608060405190810160405290816000820154815260200160018201548152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104805780601f1061045557610100808354040283529160200191610480565b820191906000526020600020905b81548152906001019060200180831161046357829003601f168201915b505050505081526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509250600115156104f3878560400151610f46565b1515141561050057600094505b8260200151431115610516576105158461108a565b5b838060010194505061039d565b84151561052f57600080fd5b338888604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018381526020018281526020019350505050604051809103902091506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105d48388611228565b73ffffffffffffffffffffffffffffffffffffffff161415156105f657600080fd5b864310151561060457600080fd5b6080604051908101604052808981526020018881526020018781526020013373ffffffffffffffffffffffffffffffffffffffff1681525090506002805480600101828161065291906113ca565b91600052602060002090600402016000839091909150600082015181600001556020820151816001015560408201518160020190805190602001906106989291906113fc565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050600380548060010182816106f791906113ca565b916000526020600020906004020160008390919091506000820151816000015560208201518160010155604082015181600201908051906020019061073d9291906113fc565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050505050565b60003373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156107ef57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561082b57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156108f057600080fd5b6102c65a03f1151561090157600080fd5b505050604051805190509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156109da57600080fd5b6102c65a03f115156109eb57600080fd5b50505060405180519050505050565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a5557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a9157600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000610ae1611319565b60009250600091505b600380549050821015610c7057600382815481101515610b0657fe5b9060005260206000209060040201608060405190810160405290816000820154815260200160018201548152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bcd5780601f10610ba257610100808354040283529160200191610bcd565b820191906000526020600020905b815481529060010190602001808311610bb057829003601f168201915b505050505081526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050905060011515610c40868360400151610f46565b15151415610c63576001831415610c5a5760019350610c75565b82806001019350505b8180600101925050610aea565b600093505b505050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515610d4457600080fd5b6102c65a03f11515610d5557600080fd5b50505060405180519050905080821115610e5757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610e3657600080fd5b6102c65a03f11515610e4757600080fd5b5050506040518051905050610f41565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610f2457600080fd5b6102c65a03f11515610f3557600080fd5b50505060405180519050505b505050565b60008082518451141515610f5d5760009150611083565b600090505b835181101561107e578281815181101515610f7957fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168482815181101515610ff457fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415156110715760009150611083565b8080600101915050610f62565b600191505b5092915050565b600080600280549050915081831015156110a357611223565b8290505b600182038110156111a2576002600182018154811015156110c457fe5b90600052602060002090600402016002828154811015156110e157fe5b906000526020600020906004020160008201548160000155600182015481600101556002820181600201908054600181600116156101000203166002900461112a92919061147c565b506003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505080806001019150506110a7565b6002600183038154811015156111b457fe5b906000526020600020906004020160008082016000905560018201600090556002820160006111e3919061135e565b6003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055505060028054809190600190036112219190611503565b505b505050565b600080600080611237856112d5565b809350819450829550505050600186848484604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f115156112c157600080fd5b505060206040510351935050505092915050565b600080600080600080604187511415156112ee57600080fd5b6020870151925060408701519150606087015160001a90508083839550955095505050509193909250565b608060405190810160405280600081526020016000815260200161133b611535565b8152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b50805460018160011615610100020316600290046000825580601f1061138457506113a3565b601f0160209004906000526020600020908101906113a29190611549565b5b50565b50805460008255600402906000526020600020908101906113c7919061156e565b50565b8154818355818115116113f7576004028160040283600052602060002091820191016113f6919061156e565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061143d57805160ff191683800117855561146b565b8280016001018555821561146b579182015b8281111561146a57825182559160200191906001019061144f565b5b5090506114789190611549565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106114b557805485556114f2565b828001600101855582156114f257600052602060002091601f016020900482015b828111156114f15782548255916001019190600101906114d6565b5b5090506114ff9190611549565b5090565b8154818355818115116115305760040281600402836000526020600020918201910161152f919061156e565b5b505050565b602060405190810160405280600081525090565b61156b91905b8082111561156757600081600090555060010161154f565b5090565b90565b6115d191905b808211156115cd57600080820160009055600182016000905560028201600061159d919061135e565b6003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600401611574565b5090565b905600a165627a7a72305820bce812eb9f9c29c947abca77520b34786f2f0b77f207dbada526474e97ae65810029

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:4833:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5546:387;;;;;;;;;;;;;;3790:1093;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3272:226;;;;;;;;;;;;;;;;;;;;;;;;;;;;3124:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;5546:387;5599:9;5654:25;;:::i;:::-;5611:1;5599:13;;5594:305;5618:7;:14;;;;5614:1;:18;5594:305;;;5682:7;5690:1;5682:10;;;;;;;;;;;;;;;;;;;;5654:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5739:5;5711:33;;:24;5724:6;:10;;;5711:12;:24::i;:::-;:33;;;5707:181;;;5765:47;5781:6;:15;;;5798:6;:13;;;5765:15;:47::i;:::-;5707:181;;;5861:7;5869:1;5861:10;;;;;;;;;;;;;;;;;;;;;5853:19;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;5707:181;5634:3;;;;;;;5594:305;;;5917:7;;5909:16;;;;:::i;:::-;5546:387;;:::o;3790:1093::-;3981:24;4028:9;4088:25;;:::i;:::-;4427:15;4611:28;;:::i;:::-;3919:20;:18;:20::i;:::-;3968:1;3958:6;:11;;3950:20;;;;;;;;4008:4;3981:31;;4040:1;4028:13;;4023:355;4047:12;:19;;;;4043:1;:23;4023:355;;;4116:12;4129:1;4116:15;;;;;;;;;;;;;;;;;;;;4088:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4194:4;4150:48;;:40;4168:9;4179:6;:10;;;4150:17;:40::i;:::-;:48;;;4146:116;;;4241:5;4219:27;;4146:116;4295:6;:20;;;4280:12;:35;4276:91;;;4336:15;4349:1;4336:12;:15::i;:::-;4276:91;4068:3;;;;;;;4023:355;;;4396:19;4388:28;;;;;;;;4455:10;4467:6;4475:13;4445:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4427:62;;4545:6;;;;;;;;;;;4508:43;;:33;4522:7;4531:9;4508:13;:33::i;:::-;:43;;;4500:52;;;;;;;;4586:13;4571:12;:28;4563:37;;;;;;;;4642:160;;;;;;;;;4677:6;4642:160;;;;4713:13;4642:160;;;;4746:9;4642:160;;;;4780:10;4642:160;;;;;4611:191;;4813:12;:28;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;4831:9;4813:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4852:7;:23;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;4865:9;4852:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3790:1093;;;;;;;;:::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;5941:433::-;5997:4;6014:13;6047:9;6102:25;;:::i;:::-;6030:1;6014:17;;6059:1;6047:13;;6042:302;6066:7;:14;;;;6062:1;:18;6042:302;;;6130:7;6138:1;6130:10;;;;;;;;;;;;;;;;;;;;6102:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6197:4;6159:42;;:34;6177:3;6182:6;:10;;;6159:17;:34::i;:::-;:42;;;6155:178;;;6235:1;6226:5;:10;6222:70;;;6268:4;6261:11;;;;6222:70;6310:7;;;;;;;6155:178;6082:3;;;;;;;6042:302;;;6361:5;6354:12;;5941:433;;;;;;;:::o;6382:337::-;6457:27;6487:12;;;;;;;;;;;:22;;;6518:4;6487:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6457:67;;6549:19;6539:7;:29;6535:177;;;6585:12;;;;;;;;;;;:21;;;6607:3;6612:19;6585:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6535:177;;;6665:12;;;;;;;;;;;:21;;;6687:3;6692:7;6665:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6535:177;6382:337;;;:::o;5219:319::-;5287:4;5384:9;5320:1;:8;5308:1;:8;:20;;5304:65;;;5352:5;5345:12;;;;5304:65;5396:1;5384:13;;5379:130;5403:1;:8;5399:1;:12;5379:130;;;5445:1;5447;5445:4;;;;;;;;;;;;;;;;;;;;5437:12;;;:1;5439;5437:4;;;;;;;;;;;;;;;;;;;;:12;;;;;5433:65;;;5477:5;5470:12;;;;5433:65;5413:3;;;;;;;5379:130;;;5526:4;5519:11;;5219:319;;;;;;:::o;4891:320::-;4948:11;5032:9;4962:12;:19;;;;4948:33;;5005:3;4996:5;:12;;4992:25;;;5010:7;;4992:25;5044:5;5032:17;;5027:106;5061:1;5055:3;:7;5051:1;:11;5027:106;;;5102:12;5119:1;5115;:5;5102:19;;;;;;;;;;;;;;;;;;;;5084:12;5097:1;5084:15;;;;;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5064:3;;;;;;;5027:106;;;5150:12;5169:1;5163:3;:7;5150:21;;;;;;;;;;;;;;;;;;;;;5143:28;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;5182:12;:21;;;;;;;;;;;;:::i;:::-;;4891:320;;;;:::o;7338:272::-;7439:7;7464;7482:9;7502;7536:19;7551:3;7536:14;:19::i;:::-;7524:31;;;;;;;;;;;;7575:27;7585:7;7594:1;7597;7600;7575:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7568:34;;7338:272;;;;;;;:::o;6727:603::-;6826:5;6846:7;6868;6941:9;6961;6981:7;6925:2;6911:3;:10;:16;6903:25;;;;;;;;7101:2;7096:3;7092:12;7086:19;7081:24;;7171:2;7166:3;7162:12;7156:19;7151:24;;7278:2;7273:3;7269:12;7263:19;7260:1;7255:28;7250:33;;7314:1;7317;7320;7306:16;;;;;;6727:603;;;;;;;;:::o;2780:4833::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://bce812eb9f9c29c947abca77520b34786f2f0b77f207dbada526474e97ae6581

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.