ETH Price: $2,976.97 (+2.63%)
Gas: 1 Gwei

Contract

0xfa68D9F61326223C7651Fbd2011221Ff561098FA
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
0x60a06040110189122020-10-09 3:41:231366 days ago1602214883IN
 Create: MultipleEpochRewardsClaimer
0 ETH0.050620330.3572575

Advanced mode:
Parent Transaction Hash Block From To Value
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MultipleEpochRewardsClaimer

Compiler Version
v0.6.6+commit.6c089d02

Optimization Enabled:
Yes with 100000 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-10-09
*/

// File: contracts/IEpochUtils.sol

pragma solidity 0.6.6;

interface IEpochUtils {
    function epochPeriodInSeconds() external view returns (uint256);

    function firstEpochStartTimestamp() external view returns (uint256);

    function getCurrentEpochNumber() external view returns (uint256);

    function getEpochNumber(uint256 timestamp) external view returns (uint256);
}

// File: contracts/IKyberDao.sol

pragma solidity 0.6.6;



interface IKyberDao is IEpochUtils {
    event Voted(address indexed staker, uint indexed epoch, uint indexed campaignID, uint option);

    function getLatestNetworkFeeDataWithCache()
        external
        returns (uint256 feeInBps, uint256 expiryTimestamp);

    function getLatestBRRDataWithCache()
        external
        returns (
            uint256 burnInBps,
            uint256 rewardInBps,
            uint256 rebateInBps,
            uint256 epoch,
            uint256 expiryTimestamp
        );

    function handleWithdrawal(address staker, uint256 penaltyAmount) external;

    function vote(uint256 campaignID, uint256 option) external;

    function getLatestNetworkFeeData()
        external
        view
        returns (uint256 feeInBps, uint256 expiryTimestamp);

    function shouldBurnRewardForEpoch(uint256 epoch) external view returns (bool);

    /**
     * @dev  return staker's reward percentage in precision for a past epoch only
     *       fee handler should call this function when a staker wants to claim reward
     *       return 0 if staker has no votes or stakes
     */
    function getPastEpochRewardPercentageInPrecision(address staker, uint256 epoch)
        external
        view
        returns (uint256);

    /**
     * @dev  return staker's reward percentage in precision for the current epoch
     *       reward percentage is not finalized until the current epoch is ended
     */
    function getCurrentEpochRewardPercentageInPrecision(address staker)
        external
        view
        returns (uint256);
}

// File: @kyber.network/utils-sc/contracts/IERC20.sol

pragma solidity 0.6.6;


interface IERC20 {
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);

    function approve(address _spender, uint256 _value) external returns (bool success);

    function transfer(address _to, uint256 _value) external returns (bool success);

    function transferFrom(
        address _from,
        address _to,
        uint256 _value
    ) external returns (bool success);

    function allowance(address _owner, address _spender) external view returns (uint256 remaining);

    function balanceOf(address _owner) external view returns (uint256 balance);

    function decimals() external view returns (uint8 digits);

    function totalSupply() external view returns (uint256 supply);
}


// to support backward compatible contract name -- so function signature remains same
abstract contract ERC20 is IERC20 {

}

// File: contracts/IERC20.sol

pragma solidity 0.6.6;

// File: contracts/IKyberFeeHandler.sol

pragma solidity 0.6.6;



interface IKyberFeeHandler {
    event RewardPaid(address indexed staker, uint256 indexed epoch, IERC20 indexed token, uint256 amount);
    event RebatePaid(address indexed rebateWallet, IERC20 indexed token, uint256 amount);
    event PlatformFeePaid(address indexed platformWallet, IERC20 indexed token, uint256 amount);
    event KncBurned(uint256 kncTWei, IERC20 indexed token, uint256 amount);

    function handleFees(
        IERC20 token,
        address[] calldata eligibleWallets,
        uint256[] calldata rebatePercentages,
        address platformWallet,
        uint256 platformFee,
        uint256 networkFee
    ) external payable;

    function claimReserveRebate(address rebateWallet) external returns (uint256);

    function claimPlatformFee(address platformWallet) external returns (uint256);

    function claimStakerReward(
        address staker,
        uint256 epoch
    ) external returns(uint amount);
}

// File: contracts/wrappers/IMultipleEpochRewardsClaimer.sol

pragma solidity 0.6.6;


interface IFeeHandler is IKyberFeeHandler {
    function hasClaimedReward(address, uint256) external view returns (bool);
}

interface IMultipleEpochRewardsClaimer {
    function claimMultipleRewards(
        IFeeHandler feeHandler,
        uint256[] calldata unclaimedEpochs
    ) external;

    function getUnclaimedEpochs(IFeeHandler feeHandler, address staker)
        external
        view
        returns (uint256[] memory unclaimedEpochs);
}

// File: @kyber.network/utils-sc/contracts/PermissionGroups.sol

pragma solidity 0.6.6;

contract PermissionGroups {
    uint256 internal constant MAX_GROUP_SIZE = 50;

    address public admin;
    address public pendingAdmin;
    mapping(address => bool) internal operators;
    mapping(address => bool) internal alerters;
    address[] internal operatorsGroup;
    address[] internal alertersGroup;

    event AdminClaimed(address newAdmin, address previousAdmin);

    event TransferAdminPending(address pendingAdmin);

    event OperatorAdded(address newOperator, bool isAdd);

    event AlerterAdded(address newAlerter, bool isAdd);

    constructor(address _admin) public {
        require(_admin != address(0), "admin 0");
        admin = _admin;
    }

    modifier onlyAdmin() {
        require(msg.sender == admin, "only admin");
        _;
    }

    modifier onlyOperator() {
        require(operators[msg.sender], "only operator");
        _;
    }

    modifier onlyAlerter() {
        require(alerters[msg.sender], "only alerter");
        _;
    }

    function getOperators() external view returns (address[] memory) {
        return operatorsGroup;
    }

    function getAlerters() external view returns (address[] memory) {
        return alertersGroup;
    }

    /**
     * @dev Allows the current admin to set the pendingAdmin address.
     * @param newAdmin The address to transfer ownership to.
     */
    function transferAdmin(address newAdmin) public onlyAdmin {
        require(newAdmin != address(0), "new admin 0");
        emit TransferAdminPending(newAdmin);
        pendingAdmin = newAdmin;
    }

    /**
     * @dev Allows the current admin to set the admin in one tx. Useful initial deployment.
     * @param newAdmin The address to transfer ownership to.
     */
    function transferAdminQuickly(address newAdmin) public onlyAdmin {
        require(newAdmin != address(0), "admin 0");
        emit TransferAdminPending(newAdmin);
        emit AdminClaimed(newAdmin, admin);
        admin = newAdmin;
    }

    /**
     * @dev Allows the pendingAdmin address to finalize the change admin process.
     */
    function claimAdmin() public {
        require(pendingAdmin == msg.sender, "not pending");
        emit AdminClaimed(pendingAdmin, admin);
        admin = pendingAdmin;
        pendingAdmin = address(0);
    }

    function addAlerter(address newAlerter) public onlyAdmin {
        require(!alerters[newAlerter], "alerter exists"); // prevent duplicates.
        require(alertersGroup.length < MAX_GROUP_SIZE, "max alerters");

        emit AlerterAdded(newAlerter, true);
        alerters[newAlerter] = true;
        alertersGroup.push(newAlerter);
    }

    function removeAlerter(address alerter) public onlyAdmin {
        require(alerters[alerter], "not alerter");
        alerters[alerter] = false;

        for (uint256 i = 0; i < alertersGroup.length; ++i) {
            if (alertersGroup[i] == alerter) {
                alertersGroup[i] = alertersGroup[alertersGroup.length - 1];
                alertersGroup.pop();
                emit AlerterAdded(alerter, false);
                break;
            }
        }
    }

    function addOperator(address newOperator) public onlyAdmin {
        require(!operators[newOperator], "operator exists"); // prevent duplicates.
        require(operatorsGroup.length < MAX_GROUP_SIZE, "max operators");

        emit OperatorAdded(newOperator, true);
        operators[newOperator] = true;
        operatorsGroup.push(newOperator);
    }

    function removeOperator(address operator) public onlyAdmin {
        require(operators[operator], "not operator");
        operators[operator] = false;

        for (uint256 i = 0; i < operatorsGroup.length; ++i) {
            if (operatorsGroup[i] == operator) {
                operatorsGroup[i] = operatorsGroup[operatorsGroup.length - 1];
                operatorsGroup.pop();
                emit OperatorAdded(operator, false);
                break;
            }
        }
    }
}

// File: @kyber.network/utils-sc/contracts/Withdrawable.sol

pragma solidity 0.6.6;



contract Withdrawable is PermissionGroups {

    event TokenWithdraw(IERC20 token, uint256 amount, address sendTo);
    event EtherWithdraw(uint256 amount, address sendTo);

    constructor(address _admin) public PermissionGroups(_admin) {}

    /**
     * @dev Withdraw all IERC20 compatible tokens
     * @param token IERC20 The address of the token contract
     */
    function withdrawToken(
        IERC20 token,
        uint256 amount,
        address sendTo
    ) external onlyAdmin {
        token.transfer(sendTo, amount);
        emit TokenWithdraw(token, amount, sendTo);
    }

    /**
     * @dev Withdraw Ethers
     */
    function withdrawEther(uint256 amount, address payable sendTo) external onlyAdmin {
        (bool success, ) = sendTo.call{value: amount}("");
        require(success, "withdraw failed");
        emit EtherWithdraw(amount, sendTo);
    }
}

// File: contracts/wrappers/MultipleEpochRewardsClaimer.sol

pragma solidity 0.6.6;





contract MultipleEpochRewardsClaimer is IMultipleEpochRewardsClaimer, Withdrawable {
    IKyberDao public immutable kyberDao;

    constructor(IKyberDao _kyberDao, address _admin) public Withdrawable(_admin) {
        kyberDao = _kyberDao;
    }

    /// @dev unclaimedEpochs is asusumed to be of reasonable length
    /// otherwise txns might run out of gas
    function claimMultipleRewards(
        IFeeHandler feeHandler,
        uint256[] calldata unclaimedEpochs
    ) external override {
        for (uint256 i = 0; i < unclaimedEpochs.length; i++) {
            feeHandler.claimStakerReward(msg.sender, unclaimedEpochs[i]);
        }
    }

    function getUnclaimedEpochs(IFeeHandler feeHandler, address staker)
        external
        view
        override
        returns (uint256[] memory unclaimedEpochs)
    {
        uint256 currentEpoch = kyberDao.getCurrentEpochNumber();
        uint256[] memory tempArray = new uint256[](currentEpoch);
        uint256 i;
        uint256 j;
        // full array size is expected to be of reasonable length
        // for the next 1-2 years
        // we thus start iterating from epoch 0
        for (i = 0; i < currentEpoch; i++) {
            if (
                !feeHandler.hasClaimedReward(staker, i) &&
                kyberDao.getPastEpochRewardPercentageInPrecision(staker, i) != 0
            ) {
                tempArray[j]= i;
                j++;
            }
        }
        unclaimedEpochs = new uint256[](j);
        for (i = 0; i < j; i++) {
            unclaimedEpochs[i] = tempArray[i];
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract IKyberDao","name":"_kyberDao","type":"address"},{"internalType":"address","name":"_admin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"}],"name":"AdminClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newAlerter","type":"address"},{"indexed":false,"internalType":"bool","name":"isAdd","type":"bool"}],"name":"AlerterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"sendTo","type":"address"}],"name":"EtherWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOperator","type":"address"},{"indexed":false,"internalType":"bool","name":"isAdd","type":"bool"}],"name":"OperatorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"sendTo","type":"address"}],"name":"TokenWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"pendingAdmin","type":"address"}],"name":"TransferAdminPending","type":"event"},{"inputs":[{"internalType":"address","name":"newAlerter","type":"address"}],"name":"addAlerter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator","type":"address"}],"name":"addOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IFeeHandler","name":"feeHandler","type":"address"},{"internalType":"uint256[]","name":"unclaimedEpochs","type":"uint256[]"}],"name":"claimMultipleRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAlerters","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOperators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IFeeHandler","name":"feeHandler","type":"address"},{"internalType":"address","name":"staker","type":"address"}],"name":"getUnclaimedEpochs","outputs":[{"internalType":"uint256[]","name":"unclaimedEpochs","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"kyberDao","outputs":[{"internalType":"contract IKyberDao","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"alerter","type":"address"}],"name":"removeAlerter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"removeOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"transferAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"transferAdminQuickly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address payable","name":"sendTo","type":"address"}],"name":"withdrawEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"sendTo","type":"address"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a060405234801561001057600080fd5b50604051611dd2380380611dd28339818101604052604081101561003357600080fd5b50805160209091015180806001600160a01b038116610083576040805162461bcd60e51b8152602060048201526007602482015266061646d696e20360cc1b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b03928316178155606085901b6001600160601b031916608052931692611cfb92506100d791503980610bfe5280610c265280610dc55250611cfb6000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806377f50f9711610097578063ac8a584a11610066578063ac8a584a14610325578063c285a4ae14610358578063ce56c454146103e5578063f851a4401461041e57610100565b806377f50f97146102af5780637acc8678146102b75780637c423f54146102ea5780639870d7fe146102f257610100565b8063408ee7fe116100d3578063408ee7fe146102065780634d8f510514610239578063559cb71e1461024157806375829def1461027c57610100565b806301a12fd314610105578063267822471461013a57806327a099d81461016b5780633ccdbb28146101c3575b600080fd5b6101386004803603602081101561011b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610426565b005b610142610756565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610173610772565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101af578181015183820152602001610197565b505050509050019250505060405180910390f35b610138600480360360608110156101d957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013591604090910135166107e1565b6101386004803603602081101561021c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610976565b610142610bfc565b6101736004803603604081101561025757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610c20565b6101386004803603602081101561029257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610f54565b6101386110ec565b610138600480360360208110156102cd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611217565b610173611404565b6101386004803603602081101561030857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611471565b6101386004803603602081101561033b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166116f7565b6101386004803603604081101561036e57600080fd5b73ffffffffffffffffffffffffffffffffffffffff82351691908101906040810160208201356401000000008111156103a657600080fd5b8201836020820111156103b857600080fd5b803590602001918460208302840111640100000000831117156103da57600080fd5b509092509050611a23565b610138600480360360408110156103fb57600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16611b01565b610142611ca9565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104ac57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090205460ff1661054057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e6f7420616c6572746572000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260036020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b600554811015610752578173ffffffffffffffffffffffffffffffffffffffff16600582815481106105ba57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561074a57600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061061257fe5b6000918252602090912001546005805473ffffffffffffffffffffffffffffffffffffffff909216918390811061064557fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600580548061069857fe5b6000828152602080822083017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559092019092556040805173ffffffffffffffffffffffffffffffffffffffff861681529182019290925281517f5611bf3e417d124f97bf2c788843ea8bb502b66079fbee02158ef30b172cb762929181900390910190a1610752565b60010161058c565b5050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054806020026020016040519081016040528092919081815260200182805480156107d757602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116107ac575b5050505050905090565b60005473ffffffffffffffffffffffffffffffffffffffff16331461086757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156108ee57600080fd5b505af1158015610902573d6000803e3d6000fd5b505050506040513d602081101561091857600080fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff80861682526020820185905283168183015290517f72cb8a894ddb372ceec3d2a7648d86f17d5a15caae0e986c53109b8a9a9385e69181900360600190a1505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146109fc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090205460ff1615610a9157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f616c657274657220657869737473000000000000000000000000000000000000604482015290519081900360640190fd5b600554603211610b0257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6d617820616c6572746572730000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff831681526001602082015281517f5611bf3e417d124f97bf2c788843ea8bb502b66079fbee02158ef30b172cb762929181900390910190a173ffffffffffffffffffffffffffffffffffffffff16600081815260036020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091556005805491820181559091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055565b7f000000000000000000000000000000000000000000000000000000000000000081565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634408d2ba6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8a57600080fd5b505afa158015610c9e573d6000803e3d6000fd5b505050506040513d6020811015610cb457600080fd5b5051905060608167ffffffffffffffff81118015610cd157600080fd5b50604051908082528060200260200182016040528015610cfb578160200160208202803683370190505b5090506000805b83821015610ec3578673ffffffffffffffffffffffffffffffffffffffff16637c36010187846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b158015610d8f57600080fd5b505afa158015610da3573d6000803e3d6000fd5b505050506040513d6020811015610db957600080fd5b5051158015610e9757507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166399e30ba887846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b158015610e6857600080fd5b505afa158015610e7c573d6000803e3d6000fd5b505050506040513d6020811015610e9257600080fd5b505115155b15610eb85781838281518110610ea957fe5b60209081029190910101526001015b600190910190610d02565b8067ffffffffffffffff81118015610eda57600080fd5b50604051908082528060200260200182016040528015610f04578160200160208202803683370190505b509450600091505b80821015610f4a57828281518110610f2057fe5b6020026020010151858381518110610f3457fe5b6020908102919091010152600190910190610f0c565b5050505092915050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610fda57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811661105c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e65772061646d696e2030000000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f3b81caf78fa51ecbc8acb482fd7012a277b428d9b80f9d156e8a54107496cc409181900360200190a1600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015473ffffffffffffffffffffffffffffffffffffffff16331461117257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e6f742070656e64696e67000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001546000546040805173ffffffffffffffffffffffffffffffffffffffff938416815292909116602083015280517f65da1cfc2c2e81576ad96afb24a581f8e109b7a403b35cbd3243a1c99efdb9ed9281900390910190a160018054600080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff841617909155169055565b60005473ffffffffffffffffffffffffffffffffffffffff16331461129d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811661131f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f61646d696e203000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f3b81caf78fa51ecbc8acb482fd7012a277b428d9b80f9d156e8a54107496cc409181900360200190a16000546040805173ffffffffffffffffffffffffffffffffffffffff8085168252909216602083015280517f65da1cfc2c2e81576ad96afb24a581f8e109b7a403b35cbd3243a1c99efdb9ed9281900390910190a1600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b606060058054806020026020016040519081016040528092919081815260200182805480156107d75760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116107ac575050505050905090565b60005473ffffffffffffffffffffffffffffffffffffffff1633146114f757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604090205460ff161561158c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6f70657261746f72206578697374730000000000000000000000000000000000604482015290519081900360640190fd5b6004546032116115fd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f6d6178206f70657261746f727300000000000000000000000000000000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff831681526001602082015281517f091a7a4b85135fdd7e8dbc18b12fabe5cc191ea867aa3c2e1a24a102af61d58b929181900390910190a173ffffffffffffffffffffffffffffffffffffffff16600081815260026020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091556004805491820181559091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055565b60005473ffffffffffffffffffffffffffffffffffffffff16331461177d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604090205460ff1661181157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f74206f70657261746f720000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b600454811015610752578173ffffffffffffffffffffffffffffffffffffffff166004828154811061188b57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415611a1b57600480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106118e357fe5b6000918252602090912001546004805473ffffffffffffffffffffffffffffffffffffffff909216918390811061191657fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600480548061196957fe5b6000828152602080822083017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559092019092556040805173ffffffffffffffffffffffffffffffffffffffff861681529182019290925281517f091a7a4b85135fdd7e8dbc18b12fabe5cc191ea867aa3c2e1a24a102af61d58b929181900390910190a1610752565b60010161185d565b60005b81811015611afb578373ffffffffffffffffffffffffffffffffffffffff166353fa2eb733858585818110611a5757fe5b905060200201356040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611ac757600080fd5b505af1158015611adb573d6000803e3d6000fd5b505050506040513d6020811015611af157600080fd5b5050600101611a26565b50505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611b8757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b60405160009073ffffffffffffffffffffffffffffffffffffffff83169084908381818185875af1925050503d8060008114611bdf576040519150601f19603f3d011682016040523d82523d6000602084013e611be4565b606091505b5050905080611c5457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f7769746864726177206661696c65640000000000000000000000000000000000604482015290519081900360640190fd5b6040805184815273ffffffffffffffffffffffffffffffffffffffff8416602082015281517fec47e7ed86c86774d1a72c19f35c639911393fe7c1a34031fdbd260890da90de929181900390910190a1505050565b60005473ffffffffffffffffffffffffffffffffffffffff168156fea2646970667358221220a3e676eb676fa22e688bfbedfa9b0aa45cf0d8ba82075b1c1b445492e18005e964736f6c6343000606003300000000000000000000000039e507f4f7c3e85ed799fdbdf04e42104a8f6b9a000000000000000000000000bdd33f411da0b40018922a3bc69001b458227f5c

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101005760003560e01c806377f50f9711610097578063ac8a584a11610066578063ac8a584a14610325578063c285a4ae14610358578063ce56c454146103e5578063f851a4401461041e57610100565b806377f50f97146102af5780637acc8678146102b75780637c423f54146102ea5780639870d7fe146102f257610100565b8063408ee7fe116100d3578063408ee7fe146102065780634d8f510514610239578063559cb71e1461024157806375829def1461027c57610100565b806301a12fd314610105578063267822471461013a57806327a099d81461016b5780633ccdbb28146101c3575b600080fd5b6101386004803603602081101561011b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610426565b005b610142610756565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610173610772565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101af578181015183820152602001610197565b505050509050019250505060405180910390f35b610138600480360360608110156101d957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013591604090910135166107e1565b6101386004803603602081101561021c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610976565b610142610bfc565b6101736004803603604081101561025757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610c20565b6101386004803603602081101561029257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610f54565b6101386110ec565b610138600480360360208110156102cd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611217565b610173611404565b6101386004803603602081101561030857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611471565b6101386004803603602081101561033b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166116f7565b6101386004803603604081101561036e57600080fd5b73ffffffffffffffffffffffffffffffffffffffff82351691908101906040810160208201356401000000008111156103a657600080fd5b8201836020820111156103b857600080fd5b803590602001918460208302840111640100000000831117156103da57600080fd5b509092509050611a23565b610138600480360360408110156103fb57600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16611b01565b610142611ca9565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104ac57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090205460ff1661054057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e6f7420616c6572746572000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260036020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b600554811015610752578173ffffffffffffffffffffffffffffffffffffffff16600582815481106105ba57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561074a57600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061061257fe5b6000918252602090912001546005805473ffffffffffffffffffffffffffffffffffffffff909216918390811061064557fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600580548061069857fe5b6000828152602080822083017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559092019092556040805173ffffffffffffffffffffffffffffffffffffffff861681529182019290925281517f5611bf3e417d124f97bf2c788843ea8bb502b66079fbee02158ef30b172cb762929181900390910190a1610752565b60010161058c565b5050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054806020026020016040519081016040528092919081815260200182805480156107d757602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116107ac575b5050505050905090565b60005473ffffffffffffffffffffffffffffffffffffffff16331461086757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156108ee57600080fd5b505af1158015610902573d6000803e3d6000fd5b505050506040513d602081101561091857600080fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff80861682526020820185905283168183015290517f72cb8a894ddb372ceec3d2a7648d86f17d5a15caae0e986c53109b8a9a9385e69181900360600190a1505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146109fc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090205460ff1615610a9157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f616c657274657220657869737473000000000000000000000000000000000000604482015290519081900360640190fd5b600554603211610b0257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6d617820616c6572746572730000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff831681526001602082015281517f5611bf3e417d124f97bf2c788843ea8bb502b66079fbee02158ef30b172cb762929181900390910190a173ffffffffffffffffffffffffffffffffffffffff16600081815260036020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091556005805491820181559091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055565b7f00000000000000000000000039e507f4f7c3e85ed799fdbdf04e42104a8f6b9a81565b606060007f00000000000000000000000039e507f4f7c3e85ed799fdbdf04e42104a8f6b9a73ffffffffffffffffffffffffffffffffffffffff16634408d2ba6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8a57600080fd5b505afa158015610c9e573d6000803e3d6000fd5b505050506040513d6020811015610cb457600080fd5b5051905060608167ffffffffffffffff81118015610cd157600080fd5b50604051908082528060200260200182016040528015610cfb578160200160208202803683370190505b5090506000805b83821015610ec3578673ffffffffffffffffffffffffffffffffffffffff16637c36010187846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b158015610d8f57600080fd5b505afa158015610da3573d6000803e3d6000fd5b505050506040513d6020811015610db957600080fd5b5051158015610e9757507f00000000000000000000000039e507f4f7c3e85ed799fdbdf04e42104a8f6b9a73ffffffffffffffffffffffffffffffffffffffff166399e30ba887846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b158015610e6857600080fd5b505afa158015610e7c573d6000803e3d6000fd5b505050506040513d6020811015610e9257600080fd5b505115155b15610eb85781838281518110610ea957fe5b60209081029190910101526001015b600190910190610d02565b8067ffffffffffffffff81118015610eda57600080fd5b50604051908082528060200260200182016040528015610f04578160200160208202803683370190505b509450600091505b80821015610f4a57828281518110610f2057fe5b6020026020010151858381518110610f3457fe5b6020908102919091010152600190910190610f0c565b5050505092915050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610fda57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811661105c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e65772061646d696e2030000000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f3b81caf78fa51ecbc8acb482fd7012a277b428d9b80f9d156e8a54107496cc409181900360200190a1600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015473ffffffffffffffffffffffffffffffffffffffff16331461117257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e6f742070656e64696e67000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001546000546040805173ffffffffffffffffffffffffffffffffffffffff938416815292909116602083015280517f65da1cfc2c2e81576ad96afb24a581f8e109b7a403b35cbd3243a1c99efdb9ed9281900390910190a160018054600080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff841617909155169055565b60005473ffffffffffffffffffffffffffffffffffffffff16331461129d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811661131f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f61646d696e203000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f3b81caf78fa51ecbc8acb482fd7012a277b428d9b80f9d156e8a54107496cc409181900360200190a16000546040805173ffffffffffffffffffffffffffffffffffffffff8085168252909216602083015280517f65da1cfc2c2e81576ad96afb24a581f8e109b7a403b35cbd3243a1c99efdb9ed9281900390910190a1600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b606060058054806020026020016040519081016040528092919081815260200182805480156107d75760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116107ac575050505050905090565b60005473ffffffffffffffffffffffffffffffffffffffff1633146114f757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604090205460ff161561158c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6f70657261746f72206578697374730000000000000000000000000000000000604482015290519081900360640190fd5b6004546032116115fd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f6d6178206f70657261746f727300000000000000000000000000000000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff831681526001602082015281517f091a7a4b85135fdd7e8dbc18b12fabe5cc191ea867aa3c2e1a24a102af61d58b929181900390910190a173ffffffffffffffffffffffffffffffffffffffff16600081815260026020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091556004805491820181559091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055565b60005473ffffffffffffffffffffffffffffffffffffffff16331461177d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604090205460ff1661181157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f74206f70657261746f720000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b600454811015610752578173ffffffffffffffffffffffffffffffffffffffff166004828154811061188b57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415611a1b57600480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106118e357fe5b6000918252602090912001546004805473ffffffffffffffffffffffffffffffffffffffff909216918390811061191657fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600480548061196957fe5b6000828152602080822083017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559092019092556040805173ffffffffffffffffffffffffffffffffffffffff861681529182019290925281517f091a7a4b85135fdd7e8dbc18b12fabe5cc191ea867aa3c2e1a24a102af61d58b929181900390910190a1610752565b60010161185d565b60005b81811015611afb578373ffffffffffffffffffffffffffffffffffffffff166353fa2eb733858585818110611a5757fe5b905060200201356040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611ac757600080fd5b505af1158015611adb573d6000803e3d6000fd5b505050506040513d6020811015611af157600080fd5b5050600101611a26565b50505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611b8757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b60405160009073ffffffffffffffffffffffffffffffffffffffff83169084908381818185875af1925050503d8060008114611bdf576040519150601f19603f3d011682016040523d82523d6000602084013e611be4565b606091505b5050905080611c5457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f7769746864726177206661696c65640000000000000000000000000000000000604482015290519081900360640190fd5b6040805184815273ffffffffffffffffffffffffffffffffffffffff8416602082015281517fec47e7ed86c86774d1a72c19f35c639911393fe7c1a34031fdbd260890da90de929181900390910190a1505050565b60005473ffffffffffffffffffffffffffffffffffffffff168156fea2646970667358221220a3e676eb676fa22e688bfbedfa9b0aa45cf0d8ba82075b1c1b445492e18005e964736f6c63430006060033

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

00000000000000000000000039e507f4f7c3e85ed799fdbdf04e42104a8f6b9a000000000000000000000000bdd33f411da0b40018922a3bc69001b458227f5c

-----Decoded View---------------
Arg [0] : _kyberDao (address): 0x39E507f4F7c3e85eD799FDbdf04E42104a8f6b9A
Arg [1] : _admin (address): 0xbDd33F411DA0B40018922a3BC69001B458227f5c

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000039e507f4f7c3e85ed799fdbdf04e42104a8f6b9a
Arg [1] : 000000000000000000000000bdd33f411da0b40018922a3bc69001b458227f5c


Deployed Bytecode Sourcemap

9957:1625:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9957:1625:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;7494:482:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;7494:482:0;;;;:::i;:::-;;4900:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5805:105;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5805:105:0;;;;;;;;;;;;;;;;;9334:223;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;9334:223:0;;;;;;;;;;;;;;;;;;:::i;7139:347::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;7139:347:0;;;;:::i;10047:35::-;;;:::i;10628:951::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;10628:951:0;;;;;;;;;;;:::i;6180:203::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6180:203:0;;;;:::i;6917:214::-;;;:::i;6564:244::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6564:244:0;;;;:::i;5918:103::-;;;:::i;7984:360::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;7984:360:0;;;;:::i;8352:498::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;8352:498:0;;;;:::i;10329:291::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10329:291:0;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;10329:291:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;10329:291:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;10329:291:0;;-1:-1:-1;10329:291:0;-1:-1:-1;10329:291:0;:::i;9612:241::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;9612:241:0;;;;;;;;;:::i;4873:20::-;;;:::i;7494:482::-;5540:5;;;;5526:10;:19;5518:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7570:17:::1;::::0;::::1;;::::0;;;:8:::1;:17;::::0;;;;;::::1;;7562:41;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;7614:17;::::0;::::1;7634:5;7614:17:::0;;;:8:::1;:17;::::0;;;;:25;;;::::1;::::0;;7652:317:::1;7676:13;:20:::0;7672:24;::::1;7652:317;;;7742:7;7722:27;;:13;7736:1;7722:16;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;::::1;;:27;7718:240;;;7789:13;7803:20:::0;;:24;;;;7789:39;::::1;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;7770:13:::1;:16:::0;;7789:39:::1;::::0;;::::1;::::0;7784:1;;7770:16;::::1;;;;;;;;;;;;;:58;;;;;;;;;;;;;;;;;;7847:13;:19;;;;;;;;::::0;;;::::1;::::0;;;;;;;;;;;;::::1;::::0;;;;;;;;7890:28:::1;::::0;;7847:19:::1;7890:28:::0;::::1;::::0;;;;::::1;::::0;;;;;;::::1;::::0;;;;;;;;;::::1;7937:5;;7718:240;7698:3;;7652:317;;;;7494:482:::0;:::o;4900:27::-;;;;;;:::o;5805:105::-;5852:16;5888:14;5881:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5805:105;:::o;9334:223::-;5540:5;;;;5526:10;:19;5518:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9467:5:::1;:14;;;9482:6;9490;9467:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;9467:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;9467:30:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;;9513:36:0::1;::::0;;::::1;::::0;;::::1;::::0;;9467:30:::1;9513:36:::0;::::1;::::0;;;;::::1;::::0;;;;;;::::1;::::0;;;;;;;::::1;9334:223:::0;;;:::o;7139:347::-;5540:5;;;;5526:10;:19;5518:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7216:20:::1;::::0;::::1;;::::0;;;:8:::1;:20;::::0;;;;;::::1;;7215:21;7207:48;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;7297:13;:20:::0;4862:2:::1;-1:-1:-1::0;7289:62:0::1;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;7369:30;::::0;;::::1;::::0;::::1;::::0;;7394:4:::1;7369:30;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;;::::1;7410:20;;;::::0;;;:8:::1;:20;::::0;;;;:27;;;::::1;7433:4;7410:27:::0;;::::1;::::0;;;7448:13:::1;27:10:-1::0;;23:18;;::::1;45:23:::0;;7448:30:0;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;7139:347::o;10047:35::-;;;:::o;10628:951::-;10764:32;10814:20;10837:8;:30;;;:32;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10837:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10837:32:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;10837:32:0;;-1:-1:-1;10880:26:0;10837:32;10909:27;;;2:2:-1;;;;27:1;24;17:12;2:2;10909:27:0;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;10909:27:0;-1:-1:-1;10880:56:0;-1:-1:-1;10947:9:0;;11138:295;11154:12;11150:1;:16;11138:295;;;11211:10;:27;;;11239:6;11247:1;11211:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11211:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11211:38:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;11211:38:0;11210:39;:124;;;;;11270:8;:48;;;11319:6;11327:1;11270:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11270:59:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11270:59:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;11270:59:0;:64;;11210:124;11188:234;;;11383:1;11369:9;11379:1;11369:12;;;;;;;;;;;;;;;;;:15;11403:3;;11188:234;11168:3;;;;;11138:295;;;11475:1;11461:16;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11461:16:0;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;11461:16:0;;11443:34;;11497:1;11493:5;;11488:84;11504:1;11500;:5;11488:84;;;11548:9;11558:1;11548:12;;;;;;;;;;;;;;11527:15;11543:1;11527:18;;;;;;;;;;;;;;;;;:33;11507:3;;;;;11488:84;;;10628:951;;;;;;;;:::o;6180:203::-;5540:5;;;;5526:10;:19;5518:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6257:22:::1;::::0;::::1;6249:46;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;6311:30;::::0;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;::::1;6352:12;:23:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;6180:203::o;6917:214::-;6965:12;;:26;:12;6981:10;6965:26;6957:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7036:12;;;7050:5;7023:33;;;7036:12;;;;7023:33;;7050:5;;;;7023:33;;;;;;;;;;;;;;;;7075:12;;;;7067:20;;;;;;7075:12;;;7067:20;;;;7098:25;;;6917:214::o;6564:244::-;5540:5;;;;5526:10;:19;5518:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6648:22:::1;::::0;::::1;6640:42;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;6698:30;::::0;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;::::1;6767:5;::::0;6744:29:::1;::::0;;6767:5:::1;6744:29:::0;;::::1;::::0;;6767:5;;::::1;6744:29;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;::::1;6784:5;:16:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;6564:244::o;5918:103::-;5964:16;6000:13;5993:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5918:103;:::o;7984:360::-;5540:5;;;;5526:10;:19;5518:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8063:22:::1;::::0;::::1;;::::0;;;:9:::1;:22;::::0;;;;;::::1;;8062:23;8054:51;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;8147:14;:21:::0;4862:2:::1;-1:-1:-1::0;8139:64:0::1;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;8221:32;::::0;;::::1;::::0;::::1;::::0;;8248:4:::1;8221:32;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;;::::1;8264:22;;;::::0;;;:9:::1;:22;::::0;;;;:29;;;::::1;8289:4;8264:29:::0;;::::1;::::0;;;8304:14:::1;27:10:-1::0;;23:18;;::::1;45:23:::0;;8304:32:0;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;7984:360::o;8352:498::-;5540:5;;;;5526:10;:19;5518:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8430:19:::1;::::0;::::1;;::::0;;;:9:::1;:19;::::0;;;;;::::1;;8422:44;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;8477:19;::::0;::::1;8499:5;8477:19:::0;;;:9:::1;:19;::::0;;;;:27;;;::::1;::::0;;8517:326:::1;8541:14;:21:::0;8537:25;::::1;8517:326;;;8609:8;8588:29;;:14;8603:1;8588:17;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;::::1;;:29;8584:248;;;8658:14;8673:21:::0;;:25;;;;8658:41;::::1;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;8638:14:::1;:17:::0;;8658:41:::1;::::0;;::::1;::::0;8653:1;;8638:17;::::1;;;;;;;;;;;;;:61;;;;;;;;;;;;;;;;;;8718:14;:20;;;;;;;;::::0;;;::::1;::::0;;;;;;;;;;;;::::1;::::0;;;;;;;;8762:30:::1;::::0;;8718:20:::1;8762:30:::0;::::1;::::0;;;;::::1;::::0;;;;;;::::1;::::0;;;;;;;;;::::1;8811:5;;8584:248;8564:3;;8517:326;;10329:291:::0;10478:9;10473:140;10493:26;;;10473:140;;;10541:10;:28;;;10570:10;10582:15;;10598:1;10582:18;;;;;;;;;;;;;10541:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10541:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10541:60:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;10521:3:0;;10473:140;;;;10329:291;;;:::o;9612:241::-;5540:5;;;;5526:10;:19;5518:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9724:30:::1;::::0;9706:12:::1;::::0;9724:11:::1;::::0;::::1;::::0;9743:6;;9706:12;9724:30;9706:12;9724:30;9743:6;9724:11;:30:::1;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;9705:49:0;;;9773:7;9765:35;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;9816:29;::::0;;;;;::::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;;::::1;5571:1;9612:241:::0;;:::o;4873:20::-;;;;;;:::o

Swarm Source

ipfs://a3e676eb676fa22e688bfbedfa9b0aa45cf0d8ba82075b1c1b445492e18005e9

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.