ETH Price: $2,745.44 (+1.30%)

Contract

0xFD355cD3B6721Ec9301305B7Fa72BaBBE0Cdb33c
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim Reward114417162020-12-13 1:44:381530 days ago1607823878IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0051540119.97
Claim Reward114387092020-12-12 14:39:541531 days ago1607783994IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0104813933.889
Claim Reward114387042020-12-12 14:37:491531 days ago1607783869IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0097659833.00792135
Claim Reward114387012020-12-12 14:36:541531 days ago1607783814IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0076540133.1
Claim Reward114386982020-12-12 14:35:431531 days ago1607783743IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0073755733.1
Claim Reward114364262020-12-12 6:22:001531 days ago1607754120IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0064505722.1
Clear_pending_li...114241432020-12-10 8:34:581533 days ago1607589298IN
0xFD355cD3...BE0Cdb33c
0 ETH0.002908648
Claim Reward114241132020-12-10 8:28:091533 days ago1607588889IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0190280880
Claim Reward114227422020-12-10 3:16:311533 days ago1607570191IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0062659427.6
Claim Reward114224322020-12-10 2:13:191533 days ago1607566399IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0068277329
Claim Reward114222862020-12-10 1:42:581533 days ago1607564578IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0101513943.9
Claim Reward114219822020-12-10 0:33:361533 days ago1607560416IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0098267840.6
Claim Reward114181132020-12-09 10:25:161534 days ago1607509516IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0087657835
Claim Reward114160152020-12-09 2:38:001534 days ago1607481480IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0049155620.00000112
Claim Reward114094412020-12-08 2:28:021535 days ago1607394482IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0057600923.00000145
Claim Reward114091972020-12-08 1:36:151535 days ago1607391375IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0135137245
Clear_pending_li...114083802020-12-07 22:34:241535 days ago1607380464IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0023295634.21
Claim Reward114083742020-12-07 22:33:571535 days ago1607380437IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0084238334.21
Claim Reward114054962020-12-07 11:52:011536 days ago1607341921IN
0xFD355cD3...BE0Cdb33c
0 ETH0.004405118.2
Claim Reward114052262020-12-07 10:54:501536 days ago1607338490IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0062612725.00000112
Claim Reward114051322020-12-07 10:31:491536 days ago1607337109IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0105882743
Claim Reward114044042020-12-07 7:44:091536 days ago1607327049IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0073099430.2
Claim Reward114037712020-12-07 5:26:241536 days ago1607318784IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0033823715.3
Claim Reward114028412020-12-07 2:08:341536 days ago1607306914IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0078335725.2
Claim Reward114028282020-12-07 2:05:451536 days ago1607306745IN
0xFD355cD3...BE0Cdb33c
0 ETH0.0064760826.3
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-26
*/

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

60606040526040516020806116b183398101604052808051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050611600806100b16000396000f300606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063703fcf651461006757806376618f271461007c578063c91f5ebc146100eb578063f2fde38b14610124575b600080fd5b341561007257600080fd5b61007a61015d565b005b341561008757600080fd5b6100e9600480803590602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610367565b005b34156100f657600080fd5b610122600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610792565b005b341561012f57600080fd5b61015b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506109fa565b005b6000610167611319565b600091505b6003805490508210156103555760038281548110151561018857fe5b9060005260206000209060040201608060405190810160405290816000820154815260200160018201548152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561024f5780601f106102245761010080835404028352916020019161024f565b820191906000526020600020905b81548152906001019060200180831161023257829003601f168201915b505050505081526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050600015156102c18260400151610ad4565b151514156102e0576102db81606001518260000151610c7d565b610348565b6003828154811015156102ef57fe5b9060005260206000209060040201600080820160009055600182016000905560028201600061031e919061135e565b6003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550505b818060010192505061016c565b6003600061036391906113a6565b5050565b600080610372611319565b600061037c611319565b61038461015d565b6000881415151561039457600080fd5b60019450600093505b600280549050841015610523576002848154811015156103b957fe5b9060005260206000209060040201608060405190810160405290816000820154815260200160018201548152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104805780601f1061045557610100808354040283529160200191610480565b820191906000526020600020905b81548152906001019060200180831161046357829003601f168201915b505050505081526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509250600115156104f3878560400151610f46565b1515141561050057600094505b8260200151431115610516576105158461108a565b5b838060010194505061039d565b84151561052f57600080fd5b338888604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018381526020018281526020019350505050604051809103902091506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105d48388611228565b73ffffffffffffffffffffffffffffffffffffffff161415156105f657600080fd5b864310151561060457600080fd5b6080604051908101604052808981526020018881526020018781526020013373ffffffffffffffffffffffffffffffffffffffff1681525090506002805480600101828161065291906113ca565b91600052602060002090600402016000839091909150600082015181600001556020820151816001015560408201518160020190805190602001906106989291906113fc565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050600380548060010182816106f791906113ca565b916000526020600020906004020160008390919091506000820151816000015560208201518160010155604082015181600201908051906020019061073d9291906113fc565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050505050565b60003373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156107ef57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561082b57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156108f057600080fd5b6102c65a03f1151561090157600080fd5b505050604051805190509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156109da57600080fd5b6102c65a03f115156109eb57600080fd5b50505060405180519050505050565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a5557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a9157600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000610ae1611319565b60009250600091505b600380549050821015610c7057600382815481101515610b0657fe5b9060005260206000209060040201608060405190810160405290816000820154815260200160018201548152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bcd5780601f10610ba257610100808354040283529160200191610bcd565b820191906000526020600020905b815481529060010190602001808311610bb057829003601f168201915b505050505081526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050905060011515610c40868360400151610f46565b15151415610c63576001831415610c5a5760019350610c75565b82806001019350505b8180600101925050610aea565b600093505b505050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515610d4457600080fd5b6102c65a03f11515610d5557600080fd5b50505060405180519050905080821115610e5757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610e3657600080fd5b6102c65a03f11515610e4757600080fd5b5050506040518051905050610f41565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610f2457600080fd5b6102c65a03f11515610f3557600080fd5b50505060405180519050505b505050565b60008082518451141515610f5d5760009150611083565b600090505b835181101561107e578281815181101515610f7957fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168482815181101515610ff457fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415156110715760009150611083565b8080600101915050610f62565b600191505b5092915050565b600080600280549050915081831015156110a357611223565b8290505b600182038110156111a2576002600182018154811015156110c457fe5b90600052602060002090600402016002828154811015156110e157fe5b906000526020600020906004020160008201548160000155600182015481600101556002820181600201908054600181600116156101000203166002900461112a92919061147c565b506003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505080806001019150506110a7565b6002600183038154811015156111b457fe5b906000526020600020906004020160008082016000905560018201600090556002820160006111e3919061135e565b6003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055505060028054809190600190036112219190611503565b505b505050565b600080600080611237856112d5565b809350819450829550505050600186848484604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f115156112c157600080fd5b505060206040510351935050505092915050565b600080600080600080604187511415156112ee57600080fd5b6020870151925060408701519150606087015160001a90508083839550955095505050509193909250565b608060405190810160405280600081526020016000815260200161133b611535565b8152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b50805460018160011615610100020316600290046000825580601f1061138457506113a3565b601f0160209004906000526020600020908101906113a29190611549565b5b50565b50805460008255600402906000526020600020908101906113c7919061156e565b50565b8154818355818115116113f7576004028160040283600052602060002091820191016113f6919061156e565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061143d57805160ff191683800117855561146b565b8280016001018555821561146b579182015b8281111561146a57825182559160200191906001019061144f565b5b5090506114789190611549565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106114b557805485556114f2565b828001600101855582156114f257600052602060002091601f016020900482015b828111156114f15782548255916001019190600101906114d6565b5b5090506114ff9190611549565b5090565b8154818355818115116115305760040281600402836000526020600020918201910161152f919061156e565b5b505050565b602060405190810160405280600081525090565b61156b91905b8082111561156757600081600090555060010161154f565b5090565b90565b6115d191905b808211156115cd57600080820160009055600182016000905560028201600061159d919061135e565b6003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600401611574565b5090565b905600a165627a7a723058203702e5796088e6bd511f45b0bf94ca1d1f406c34f03e03a7f9df1338dc58c0e000290000000000000000000000005c71bf122b5e1eec7fb2cf029d6fab7b224bd94f

Deployed Bytecode

0x606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063703fcf651461006757806376618f271461007c578063c91f5ebc146100eb578063f2fde38b14610124575b600080fd5b341561007257600080fd5b61007a61015d565b005b341561008757600080fd5b6100e9600480803590602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610367565b005b34156100f657600080fd5b610122600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610792565b005b341561012f57600080fd5b61015b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506109fa565b005b6000610167611319565b600091505b6003805490508210156103555760038281548110151561018857fe5b9060005260206000209060040201608060405190810160405290816000820154815260200160018201548152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561024f5780601f106102245761010080835404028352916020019161024f565b820191906000526020600020905b81548152906001019060200180831161023257829003601f168201915b505050505081526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050600015156102c18260400151610ad4565b151514156102e0576102db81606001518260000151610c7d565b610348565b6003828154811015156102ef57fe5b9060005260206000209060040201600080820160009055600182016000905560028201600061031e919061135e565b6003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550505b818060010192505061016c565b6003600061036391906113a6565b5050565b600080610372611319565b600061037c611319565b61038461015d565b6000881415151561039457600080fd5b60019450600093505b600280549050841015610523576002848154811015156103b957fe5b9060005260206000209060040201608060405190810160405290816000820154815260200160018201548152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104805780601f1061045557610100808354040283529160200191610480565b820191906000526020600020905b81548152906001019060200180831161046357829003601f168201915b505050505081526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509250600115156104f3878560400151610f46565b1515141561050057600094505b8260200151431115610516576105158461108a565b5b838060010194505061039d565b84151561052f57600080fd5b338888604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018381526020018281526020019350505050604051809103902091506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105d48388611228565b73ffffffffffffffffffffffffffffffffffffffff161415156105f657600080fd5b864310151561060457600080fd5b6080604051908101604052808981526020018881526020018781526020013373ffffffffffffffffffffffffffffffffffffffff1681525090506002805480600101828161065291906113ca565b91600052602060002090600402016000839091909150600082015181600001556020820151816001015560408201518160020190805190602001906106989291906113fc565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050600380548060010182816106f791906113ca565b916000526020600020906004020160008390919091506000820151816000015560208201518160010155604082015181600201908051906020019061073d9291906113fc565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050505050565b60003373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156107ef57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561082b57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156108f057600080fd5b6102c65a03f1151561090157600080fd5b505050604051805190509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156109da57600080fd5b6102c65a03f115156109eb57600080fd5b50505060405180519050505050565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a5557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a9157600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000610ae1611319565b60009250600091505b600380549050821015610c7057600382815481101515610b0657fe5b9060005260206000209060040201608060405190810160405290816000820154815260200160018201548152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bcd5780601f10610ba257610100808354040283529160200191610bcd565b820191906000526020600020905b815481529060010190602001808311610bb057829003601f168201915b505050505081526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050905060011515610c40868360400151610f46565b15151415610c63576001831415610c5a5760019350610c75565b82806001019350505b8180600101925050610aea565b600093505b505050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515610d4457600080fd5b6102c65a03f11515610d5557600080fd5b50505060405180519050905080821115610e5757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610e3657600080fd5b6102c65a03f11515610e4757600080fd5b5050506040518051905050610f41565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610f2457600080fd5b6102c65a03f11515610f3557600080fd5b50505060405180519050505b505050565b60008082518451141515610f5d5760009150611083565b600090505b835181101561107e578281815181101515610f7957fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168482815181101515610ff457fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415156110715760009150611083565b8080600101915050610f62565b600191505b5092915050565b600080600280549050915081831015156110a357611223565b8290505b600182038110156111a2576002600182018154811015156110c457fe5b90600052602060002090600402016002828154811015156110e157fe5b906000526020600020906004020160008201548160000155600182015481600101556002820181600201908054600181600116156101000203166002900461112a92919061147c565b506003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505080806001019150506110a7565b6002600183038154811015156111b457fe5b906000526020600020906004020160008082016000905560018201600090556002820160006111e3919061135e565b6003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055505060028054809190600190036112219190611503565b505b505050565b600080600080611237856112d5565b809350819450829550505050600186848484604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f115156112c157600080fd5b505060206040510351935050505092915050565b600080600080600080604187511415156112ee57600080fd5b6020870151925060408701519150606087015160001a90508083839550955095505050509193909250565b608060405190810160405280600081526020016000815260200161133b611535565b8152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b50805460018160011615610100020316600290046000825580601f1061138457506113a3565b601f0160209004906000526020600020908101906113a29190611549565b5b50565b50805460008255600402906000526020600020908101906113c7919061156e565b50565b8154818355818115116113f7576004028160040283600052602060002091820191016113f6919061156e565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061143d57805160ff191683800117855561146b565b8280016001018555821561146b579182015b8281111561146a57825182559160200191906001019061144f565b5b5090506114789190611549565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106114b557805485556114f2565b828001600101855582156114f257600052602060002091601f016020900482015b828111156114f15782548255916001019190600101906114d6565b5b5090506114ff9190611549565b5090565b8154818355818115116115305760040281600402836000526020600020918201910161152f919061156e565b5b505050565b602060405190810160405280600081525090565b61156b91905b8082111561156757600081600090555060010161154f565b5090565b90565b6115d191905b808211156115cd57600080820160009055600182016000905560028201600061159d919061135e565b6003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600401611574565b5090565b905600a165627a7a723058203702e5796088e6bd511f45b0bf94ca1d1f406c34f03e03a7f9df1338dc58c0e00029

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

0000000000000000000000005c71bf122b5e1eec7fb2cf029d6fab7b224bd94f

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000005c71bf122b5e1eec7fb2cf029d6fab7b224bd94f


Deployed Bytecode Sourcemap

2780:4835:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5548:387;;;;;;;;;;;;;;3790:1093;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3272:226;;;;;;;;;;;;;;;;;;;;;;;;;;;;3124:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;5548:387;5601:9;5656:25;;:::i;:::-;5613:1;5601:13;;5596:305;5620:7;:14;;;;5616:1;:18;5596:305;;;5684:7;5692:1;5684:10;;;;;;;;;;;;;;;;;;;;5656:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5741:5;5713:33;;:24;5726:6;:10;;;5713:12;:24::i;:::-;:33;;;5709:181;;;5767:47;5783:6;:15;;;5800:6;:13;;;5767:15;:47::i;:::-;5709:181;;;5863:7;5871:1;5863:10;;;;;;;;;;;;;;;;;;;;;5855:19;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;5709:181;5636:3;;;;;;;5596:305;;;5919:7;;5911:16;;;;:::i;:::-;5548: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;5943:433::-;5999:4;6016:13;6049:9;6104:25;;:::i;:::-;6032:1;6016:17;;6061:1;6049:13;;6044:302;6068:7;:14;;;;6064:1;:18;6044:302;;;6132:7;6140:1;6132:10;;;;;;;;;;;;;;;;;;;;6104:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6199:4;6161:42;;:34;6179:3;6184:6;:10;;;6161:17;:34::i;:::-;:42;;;6157:178;;;6237:1;6228:5;:10;6224:70;;;6270:4;6263:11;;;;6224:70;6312:7;;;;;;;6157:178;6084:3;;;;;;;6044:302;;;6363:5;6356:12;;5943:433;;;;;;;:::o;6384:337::-;6459:27;6489:12;;;;;;;;;;;:22;;;6520:4;6489:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6459:67;;6551:19;6541:7;:29;6537:177;;;6587:12;;;;;;;;;;;:21;;;6609:3;6614:19;6587:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6537:177;;;6667:12;;;;;;;;;;;:21;;;6689:3;6694:7;6667:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6537:177;6384:337;;;:::o;5221:319::-;5289:4;5386:9;5322:1;:8;5310:1;:8;:20;;5306:65;;;5354:5;5347:12;;;;5306:65;5398:1;5386:13;;5381:130;5405:1;:8;5401:1;:12;5381:130;;;5447:1;5449;5447:4;;;;;;;;;;;;;;;;;;;;5439:12;;;:1;5441;5439:4;;;;;;;;;;;;;;;;;;;;:12;;;;;5435:65;;;5479:5;5472:12;;;;5435:65;5415:3;;;;;;;5381:130;;;5528:4;5521:11;;5221:319;;;;;;:::o;4891:322::-;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;;;5152:12;5171:1;5165:3;:7;5152:21;;;;;;;;;;;;;;;;;;;;;5145:28;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;5184:12;:21;;;;;;;;;;;;:::i;:::-;;4891:322;;;;:::o;7340:272::-;7441:7;7466;7484:9;7504;7538:19;7553:3;7538:14;:19::i;:::-;7526:31;;;;;;;;;;;;7577:27;7587:7;7596:1;7599;7602;7577:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7570:34;;7340:272;;;;;;;:::o;6729:603::-;6828:5;6848:7;6870;6943:9;6963;6983:7;6927:2;6913:3;:10;:16;6905:25;;;;;;;;7103:2;7098:3;7094:12;7088:19;7083:24;;7173:2;7168:3;7164:12;7158:19;7153:24;;7280:2;7275:3;7271:12;7265:19;7262:1;7257:28;7252:33;;7316:1;7319;7322;7308:16;;;;;;6729:603;;;;;;;;:::o;2780:4835::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://3702e5796088e6bd511f45b0bf94ca1d1f406c34f03e03a7f9df1338dc58c0e0

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.