ETH Price: $2,427.41 (+5.30%)

Contract

0x957b28f93B0e01557E21e6c564Ab26ddc2d18EC5
 

Overview

ETH Balance

0.007313127413127413 ETH

Eth Value

$17.75 (@ $2,427.41/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer163590002023-01-08 2:11:11620 days ago1673143871IN
0x957b28f9...dc2d18EC5
0 ETH0.000852613.76185592
Transfer130792452021-08-23 3:48:061123 days ago1629690486IN
0x957b28f9...dc2d18EC5
0 ETH0.0059634396.2
Transfer130591332021-08-20 1:07:421126 days ago1629421662IN
0x957b28f9...dc2d18EC5
0 ETH0.0031601250.9779393
Transfer126515922021-06-17 11:09:091189 days ago1623928149IN
0x957b28f9...dc2d18EC5
0 ETH0.0014693822
Transfer126515582021-06-17 11:00:551189 days ago1623927655IN
0x957b28f9...dc2d18EC5
0 ETH0.0007626522
Transfer124441092021-05-16 7:18:381222 days ago1621149518IN
0x957b28f9...dc2d18EC5
0 ETH0.0036339770.2
Transfer124389832021-05-15 12:33:201222 days ago1621082000IN
0x957b28f9...dc2d18EC5
0 ETH0.0024257870
Transfer124389452021-05-15 12:23:011222 days ago1621081381IN
0x957b28f9...dc2d18EC5
0 ETH0.0037266266
Transfer115734702021-01-02 6:52:591356 days ago1609570379IN
0x957b28f9...dc2d18EC5
0 ETH0.0018000546.3
Transfer115620822020-12-31 12:57:521357 days ago1609419472IN
0x957b28f9...dc2d18EC5
0 ETH0.0037110480
Transfer111897502020-11-04 8:59:451415 days ago1604480385IN
0x957b28f9...dc2d18EC5
0 ETH0.0014065136.2
Transfer111731302020-11-01 19:38:061417 days ago1604259486IN
0x957b28f9...dc2d18EC5
0 ETH0.0012386423
Transfer110981512020-10-21 7:26:571429 days ago1603265217IN
0x957b28f9...dc2d18EC5
0 ETH0.0017872846
Transfer110922202020-10-20 9:36:031430 days ago1603186563IN
0x957b28f9...dc2d18EC5
0 ETH0.0015541640
Transfer110609422020-10-15 14:28:231434 days ago1602772103IN
0x957b28f9...dc2d18EC5
0 ETH0.0039851974
Transfer107417132020-08-27 9:13:141484 days ago1598519594IN
0x957b28f9...dc2d18EC5
0 ETH0.0042535179
Transfer96231222020-03-07 8:25:381657 days ago1583569538IN
0x957b28f9...dc2d18EC5
0 ETH0.000481977
Transfer95395032020-02-23 12:02:561669 days ago1582459376IN
0x957b28f9...dc2d18EC5
0 ETH0.000096911.8
Transfer94273702020-02-06 6:01:421687 days ago1580968902IN
0x957b28f9...dc2d18EC5
0 ETH0.000376977
Transfer92503932020-01-10 2:47:131714 days ago1578624433IN
0x957b28f9...dc2d18EC5
0 ETH0.00007772
Transfer91939962020-01-01 3:40:551723 days ago1577850055IN
0x957b28f9...dc2d18EC5
0 ETH0.000430838
Transfer90483162019-12-04 8:16:481751 days ago1575447408IN
0x957b28f9...dc2d18EC5
0 ETH0.0004783912
Transfer90483162019-12-04 8:16:481751 days ago1575447408IN
0x957b28f9...dc2d18EC5
0 ETH0.0004791612
Transfer90483162019-12-04 8:16:481751 days ago1575447408IN
0x957b28f9...dc2d18EC5
0 ETH0.0004783912
Transfer90483162019-12-04 8:16:481751 days ago1575447408IN
0x957b28f9...dc2d18EC5
0 ETH0.0004799212
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:
ProxyNemodax

Compiler Version
v0.5.4+commit.9549d8ff

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-05-08
*/

pragma solidity 0.5.4;


/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
    // Gas optimization: this is cheaper than asserting 'a' not being zero, but the
    // benefit is lost if 'b' is also tested.
    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
    if (a == 0) {
      return 0;
    }

    c = a * b;
    assert(c / a == b);
    return c;
  }

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

  /**
  * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
    c = a + b;
    assert(c >= a);
    return c;
  }
}

/**
 * @title MultiOwnable
 *
 * @dev Require majority approval of multiple owners to use and access to features
 *      when restrictions on access to critical functions are required.
 *
 */

contract MultiOwnable {
    using SafeMath for uint8;

    struct CommitteeStatusPack{
      /**
       * Key informations for decisions.
       * To save some gas, choosing the struct.
       */
        uint8 numOfOwners;
        uint8 numOfVotes;
        uint8 numOfMinOwners;
        bytes proposedFuncData;
    }
    CommitteeStatusPack public committeeStatus;

    address[] public ballot; // To make sure if it already was voted
    mapping(address => bool) public owner;

    event Vote(address indexed proposer, bytes indexed proposedFuncData);
    event Propose(address indexed proposer, bytes indexed proposedFuncData);
    event Dismiss(address indexed proposer, bytes indexed proposedFuncData);
    event AddedOwner(address newOwner);
    event RemovedOwner(address removedOwner);
    event TransferOwnership(address from, address to);


    /**
     * Organize initial committee.
     *
     * @notice committee must be 3 at least.
     *         you have to use this contract to be inherited because it is internal.
     *
     * @param _coOwner1 _coOwner2 _coOwner3 _coOwner4 _coOwner5 committee members
     */
    constructor(address _coOwner1, address _coOwner2, address _coOwner3, address _coOwner4, address _coOwner5) internal {
        require(_coOwner1 != address(0x0) &&
                _coOwner2 != address(0x0) &&
                _coOwner3 != address(0x0) &&
                _coOwner4 != address(0x0) &&
                _coOwner5 != address(0x0));
        require(_coOwner1 != _coOwner2 &&
                _coOwner1 != _coOwner3 &&
                _coOwner1 != _coOwner4 &&
                _coOwner1 != _coOwner5 &&
                _coOwner2 != _coOwner3 &&
                _coOwner2 != _coOwner4 &&
                _coOwner2 != _coOwner5 &&
                _coOwner3 != _coOwner4 &&
                _coOwner3 != _coOwner5 &&
                _coOwner4 != _coOwner5); // SmartDec Recommendations
        owner[_coOwner1] = true;
        owner[_coOwner2] = true;
        owner[_coOwner3] = true;
        owner[_coOwner4] = true;
        owner[_coOwner5] = true;
        committeeStatus.numOfOwners = 5;
        committeeStatus.numOfMinOwners = 5;
        emit AddedOwner(_coOwner1);
        emit AddedOwner(_coOwner2);
        emit AddedOwner(_coOwner3);
        emit AddedOwner(_coOwner4);
        emit AddedOwner(_coOwner5);
    }


    modifier onlyOwner() {
        require(owner[msg.sender]);
        _;
    }

    /**
     * Pre-check if it's decided by committee
     *
     * @notice If there is a majority approval,
     *         the function with this modifier will not be executed.
     */
    modifier committeeApproved() {
      /* check if proposed Function Name and real function Name are correct */
      require( keccak256(committeeStatus.proposedFuncData) == keccak256(msg.data) ); // SmartDec Recommendations

      /* To check majority */
      require(committeeStatus.numOfVotes > committeeStatus.numOfOwners.div(2));
      _;
      _dismiss(); //Once a commission-approved proposal is made, the proposal is initialized.
    }


    /**
     * Suggest the functions you want to use.
     *
     * @notice To use some importan functions, propose function must be done first and voted.
     */
    function propose(bytes memory _targetFuncData) onlyOwner public {
      /* Check if there're any ongoing proposals */
      require(committeeStatus.numOfVotes == 0);
      require(committeeStatus.proposedFuncData.length == 0);

      /* regist function informations that proposer want to run */
      committeeStatus.proposedFuncData = _targetFuncData;
      emit Propose(msg.sender, _targetFuncData);
    }

    /**
     * Proposal is withdrawn
     *
     * @notice When the proposed function is no longer used or deprecated,
     *         proposal is discarded
     */
    function dismiss() onlyOwner public {
      _dismiss();
    }

    /**
     * Suggest the functions you want to use.
     *
     * @notice 'dismiss' is executed even after successfully executing the proposed function.
     *          If 'msg.sender' want to pass permission, he can't pass the 'committeeApproved' modifier.
     *          internal functions are required to enable this.
     */

    function _dismiss() internal {
      emit Dismiss(msg.sender, committeeStatus.proposedFuncData);
      committeeStatus.numOfVotes = 0;
      committeeStatus.proposedFuncData = "";
      delete ballot;
    }


    /**
     * Owners vote for proposed item
     *
     * @notice if only there're proposals, 'vote' is processed.
     *         the result must be majority.
     *         one ticket for each owner.
     */

    function vote() onlyOwner public {
      // Check duplicated voting list.
      uint length = ballot.length; // SmartDec Recommendations
      for(uint i=0; i<length; i++) // SmartDec Recommendations
        require(ballot[i] != msg.sender);

      //onlyOnwers can vote, if there's ongoing proposal.
      require( committeeStatus.proposedFuncData.length != 0 );

      //Check, if everyone voted.
      //require(committeeStatus.numOfOwners > committeeStatus.numOfVotes); // SmartDec Recommendations
      committeeStatus.numOfVotes++;
      ballot.push(msg.sender);
      emit Vote(msg.sender, committeeStatus.proposedFuncData);
    }


    /**
     * Existing owner transfers permissions to new owner.
     *
     * @notice It transfers authority to the person who was not the owner.
     *           Approval from the committee is required.
     */
    function transferOwnership(address _newOwner) onlyOwner committeeApproved public {
        require( _newOwner != address(0x0) ); // callisto recommendation
        require( owner[_newOwner] == false );
        owner[msg.sender] = false;
        owner[_newOwner] = true;
        emit TransferOwnership(msg.sender, _newOwner);
    }

    /**
     * Add new Owner to committee
     *
     * @notice Approval from the committee is required.
     *
     */
    function addOwner(address _newOwner) onlyOwner committeeApproved public {
        require( _newOwner != address(0x0) );
        require( owner[_newOwner] != true );
        owner[_newOwner] = true;
        committeeStatus.numOfOwners++;
        emit AddedOwner(_newOwner);
    }

    /**
     * Remove the Owner from committee
     *
     * @notice Approval from the committee is required.
     *
     */
    function removeOwner(address _toRemove) onlyOwner committeeApproved public {
        require( _toRemove != address(0x0) );
        require( owner[_toRemove] == true );
        require( committeeStatus.numOfOwners > committeeStatus.numOfMinOwners ); // must keep Number of Minimum Owners at least.
        owner[_toRemove] = false;
        committeeStatus.numOfOwners--;
        emit RemovedOwner(_toRemove);
    }
}

contract Pausable is MultiOwnable {
    event Pause();
    event Unpause();

    bool internal paused;

    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    modifier whenPaused() {
        require(paused);
        _;
    }

    modifier noReentrancy() {
        require(!paused);
        paused = true;
        _;
        paused = false;
    }

    /* When you discover your smart contract is under attack, you can buy time to upgrade the contract by
       immediately pausing the contract.
     */
    function pause() public onlyOwner committeeApproved whenNotPaused {
        paused = true;
        emit Pause();
    }

    function unpause() public onlyOwner committeeApproved whenPaused {
        paused = false;
        emit Unpause();
    }
}

/**
 * Contract Managing TokenExchanger's address used by ProxyNemodax
 */
contract RunningContractManager is Pausable {
    address public implementation; //SmartDec Recommendations

    event Upgraded(address indexed newContract);

    function upgrade(address _newAddr) onlyOwner committeeApproved external {
        require(implementation != _newAddr);
        implementation = _newAddr;
        emit Upgraded(_newAddr); // SmartDec Recommendations
    }

    /* SmartDec Recommendations
    function runningAddress() onlyOwner external view returns (address){
        return implementation;
    }
    */
}



/**
 * NemoLab ERC20 Token
 * Written by Shin HyunJae
 * version 12
 */
contract TokenERC20 is RunningContractManager {
    using SafeMath for uint256;

    // Public variables of the token
    string public name;
    string public symbol;
    uint8 public decimals = 18;    // 18 decimals is the strongly suggested default, avoid changing it
    uint256 public totalSupply;

    /* This creates an array with all balances */
    mapping (address => uint256) internal balances;
    mapping (address => mapping (address => uint256)) internal allowed;
    //mapping (address => bool) public frozenAccount; // SmartDec Recommendations
    mapping (address => uint256) public frozenExpired;

    //bool private initialized = false;
    bool private initialized; // SmartDec Recommendations

    /**
     * This is area for some variables to add.
     * Please add variables from the end of pre-declared variables
     * if you would have added some variables and re-deployed the contract,
     * tokenPerEth would get garbage value. so please reset tokenPerEth variable
     *
     * uint256 something..;
     */


    // This generates a public event on the blockchain that will notify clients
    event Transfer(address indexed from, address indexed to, uint256 value);
    event LastBalance(address indexed account, uint256 value);

    // This notifies clients about the allowance of balance
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);

    // This notifies clients about the amount burnt
    // event Burn(address indexed from, uint256 value); // callisto recommendation

    // This notifies clients about the freezing address
    //event FrozenFunds(address target, bool frozen); // callisto recommendation
    event FrozenFunds(address target, uint256 expirationDate); // SmartDec Recommendations

    /**
     * Initialize Token Function
     *
     * Initializes contract with initial supply tokens to the creator of the contract
     */

    function initToken(
        string memory _tokenName,
        string memory _tokenSymbol,
        uint256 _initialSupply,
        address _marketSaleManager,
        address _serviceOperationManager,
        address _dividendManager,
        address _incentiveManager,
        address _reserveFundManager
    ) internal onlyOwner committeeApproved {
        require( initialized == false );
        require(_initialSupply > 0 && _initialSupply <= 2**uint256(184)); // [2019.03.05] Fixed for Mythril Vulerablity SWC ID:101 => _initialSupply <= 2^184 <= (2^256 / 10^18)

        name = _tokenName;                                       // Set the name for display purposes
        symbol = _tokenSymbol;                                   // Set the symbol for display purposes
        //totalSupply = convertToDecimalUnits(_initialSupply);     // Update total supply with the decimal amount

        /*balances[msg.sender] = totalSupply;                     // Give the creator all initial tokens
        emit Transfer(address(this), address(0), totalSupply);
        emit LastBalance(address(this), 0);
        emit LastBalance(msg.sender, totalSupply);*/

        // SmartDec Recommendations
        uint256 tempSupply = convertToDecimalUnits(_initialSupply);

        uint256 dividendBalance = tempSupply.div(10);               // dividendBalance = 10%
        uint256 reserveFundBalance = dividendBalance;               // reserveFundBalance = 10%
        uint256 marketSaleBalance = tempSupply.div(5);              // marketSaleBalance = 20%
        uint256 serviceOperationBalance = marketSaleBalance.mul(2); // serviceOperationBalance = 40%
        uint256 incentiveBalance = marketSaleBalance;               // incentiveBalance = 20%

        balances[_marketSaleManager] = marketSaleBalance;
        balances[_serviceOperationManager] = serviceOperationBalance;
        balances[_dividendManager] = dividendBalance;
        balances[_incentiveManager] = incentiveBalance;
        balances[_reserveFundManager] = reserveFundBalance;

        totalSupply = tempSupply;

        emit Transfer(address(0), _marketSaleManager, marketSaleBalance);
        emit Transfer(address(0), _serviceOperationManager, serviceOperationBalance);
        emit Transfer(address(0), _dividendManager, dividendBalance);
        emit Transfer(address(0), _incentiveManager, incentiveBalance);
        emit Transfer(address(0), _reserveFundManager, reserveFundBalance);

        emit LastBalance(address(this), 0);
        emit LastBalance(_marketSaleManager, marketSaleBalance);
        emit LastBalance(_serviceOperationManager, serviceOperationBalance);
        emit LastBalance(_dividendManager, dividendBalance);
        emit LastBalance(_incentiveManager, incentiveBalance);
        emit LastBalance(_reserveFundManager, reserveFundBalance);

        assert( tempSupply ==
          marketSaleBalance.add(serviceOperationBalance).
                            add(dividendBalance).
                            add(incentiveBalance).
                            add(reserveFundBalance)
        );


        initialized = true;
    }


    /**
     * Convert tokens units to token decimal units
     *
     * @param _value Tokens units without decimal units
     */
    function convertToDecimalUnits(uint256 _value) internal view returns (uint256 value) {
        value = _value.mul(10 ** uint256(decimals));
        return value;
    }

    /**
     * Get tokens balance
     *
     * @notice Query tokens balance of the _account
     *
     * @param _account Account address to query tokens balance
     */
    function balanceOf(address _account) public view returns (uint256 balance) {
        balance = balances[_account];
        return balance;
    }

    /**
     * Get allowed tokens balance
     *
     * @notice Query tokens balance allowed to _spender
     *
     * @param _owner Owner address to query tokens balance
     * @param _spender The address allowed tokens balance
     */
    function allowance(address _owner, address _spender) external view returns (uint256 remaining) {
        remaining = allowed[_owner][_spender];
        return remaining;
    }

    /**
     * Internal transfer, only can be called by this contract
     */
    function _transfer(address _from, address _to, uint256 _value) internal {
        require(_to != address(0x0));                                            // Prevent transfer to 0x0 address.
        require(balances[_from] >= _value);                             // Check if the sender has enough
        if(frozenExpired[_from] != 0 ){                                 // Check if sender is frozen
            require(block.timestamp > frozenExpired[_from]);
            _unfreezeAccount(_from);
        }
        if(frozenExpired[_to] != 0 ){                                   // Check if recipient is frozen
            require(block.timestamp > frozenExpired[_to]);
            _unfreezeAccount(_to);
        }

        uint256 previousBalances = balances[_from].add(balances[_to]);  // Save this for an assertion in the future

        balances[_from] = balances[_from].sub(_value);                  // Subtract from the sender
        balances[_to] = balances[_to].add(_value);                      // Add the same to the recipient
        emit Transfer(_from, _to, _value);
        emit LastBalance(_from, balances[_from]);
        emit LastBalance(_to, balances[_to]);

        // Asserts are used to use static analysis to find bugs in your code. They should never fail
        assert(balances[_from] + balances[_to] == previousBalances);
    }

    /**
     * Transfer tokens
     *
     * @notice Send `_value` tokens to `_to` from your account
     *
     * @param _to The address of the recipient
     * @param _value the amount to send
     */
    function transfer(address _to, uint256 _value) public noReentrancy returns (bool success) {
        _transfer(msg.sender, _to, _value);
        success = true;
        return success;
    }


    /**
     * Transfer tokens from other address
     *
     * Send `_value` tokens to `_to` on behalf of `_from`
     *
     * @param _from The address of the sender
     * @param _to The address of the recipient
     * @param _value the amount to send
     */
    function transferFrom(address _from, address _to, uint256 _value) public noReentrancy returns (bool success) {
        require(_value <= allowed[_from][msg.sender]);     // Check allowance
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        _transfer(_from, _to, _value);
        success = true;
        return success;
    }

    /**
     * Internal approve, only can be called by this contract
     *
     * @param _spender The address authorized to spend
     * @param _value the max amount they can spend
     */
    function _approve(address _spender, uint256 _value) internal returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        success = true;
        return success;
    }

    /**
     * Set allowance for other address
     *
     * Allows `_spender` to spend no more than `_value` tokens on your behalf
     *
     * @param _spender The address authorized to spend
     * @param _value the max amount they can spend
     */
    function approve(address _spender, uint256 _value) public noReentrancy returns (bool success) {
        success = _approve(_spender, _value);
        return success;
    }


    /**
     * @dev Increase the amount of tokens that an owner allowed to a spender.
     * approve should be called when allowed[_spender] == 0. To increment
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * @param _spender The address which will spend the funds.
     * @param _addedValue The amount of tokens to increase the allowance by.
     */
    function increaseApproval(address _spender, uint256 _addedValue) public returns (bool) {
      allowed[msg.sender][_spender] = (
        allowed[msg.sender][_spender].add(_addedValue));
      emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
      return true;
    }

    /**
     * @dev Decrease the amount of tokens that an owner allowed to a spender.
     * approve should be called when allowed[_spender] == 0. To decrement
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * @param _spender The address which will spend the funds.
     * @param _subtractedValue The amount of tokens to decrease the allowance by.
     */
    function decreaseApproval(address _spender, uint256 _subtractedValue) public returns (bool) {
      uint256 oldValue = allowed[msg.sender][_spender];
      if (_subtractedValue >= oldValue) {
        allowed[msg.sender][_spender] = 0;
      } else {
        allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
      }
      emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
      return true;
    }




    /// @notice `freeze? Prevent` `target` from sending & receiving tokens
    /// @param target Address to be frozen
    function freezeAccount(address target, uint256 freezeExpiration) onlyOwner committeeApproved public {
        frozenExpired[target] = freezeExpiration;
        //emit FrozenFunds(target, true);
        emit FrozenFunds(target, freezeExpiration); // SmartDec Recommendations
    }

    /// @notice  `freeze? Allow` `target` from sending & receiving tokens
    /// @notice if expiration date was over, when this is called with transfer transaction, auto-unfreeze is occurred without committeeApproved
    ///         the reason why it's separated from wrapper function.
    /// @param target Address to be unfrozen
    function _unfreezeAccount(address target) internal returns (bool success) {
        frozenExpired[target] = 0;
        //emit FrozenFunds(target, false);
        emit FrozenFunds(target, 0); // SmartDec Recommendations
        success = true;
        return success;
    }

    /// @notice _unfreezeAccount wrapper function.
    /// @param target Address to be unfrozen
    function unfreezeAccount(address target) onlyOwner committeeApproved public returns(bool success) {
        success = _unfreezeAccount(target);
        return success;
    }

}


/**
 * @title TokenExchanger
 * @notice This is for exchange between Ether and 'Nemo' token
 *          It won't be needed after being listed on the exchange.
 */

contract TokenExchanger is TokenERC20{
  using SafeMath for uint256;

    uint256 internal tokenPerEth;
    bool public opened;

    event ExchangeEtherToToken(address indexed from, uint256 etherValue, uint256 tokenPerEth);
    event ExchangeTokenToEther(address indexed from, uint256 etherValue, uint256 tokenPerEth);
    event WithdrawToken(address indexed to, uint256 value);
    event WithdrawEther(address indexed to, uint256 value);
    event SetExchangeRate(address indexed from, uint256 tokenPerEth);


    constructor(address _coOwner1,
                address _coOwner2,
                address _coOwner3,
                address _coOwner4,
                address _coOwner5)
        MultiOwnable( _coOwner1, _coOwner2, _coOwner3, _coOwner4, _coOwner5) public { opened = true; }

    /**
     * Initialize Exchanger Function
     *
     * Initialize Exchanger contract with tokenPerEth
     * and Initialize NemoCoin by calling initToken
     * It would call initToken in TokenERC20 with _tokenName, _tokenSymbol, _initalSupply
     * Last five arguments are manager account to supply currency (_marketSaleManager, _serviceOperationManager, _dividendManager, _incentiveManager, _reserveFundManager)
     *
     */
    function initExchanger(
        string calldata _tokenName,
        string calldata _tokenSymbol,
        uint256 _initialSupply,
        uint256 _tokenPerEth,
        address _marketSaleManager,
        address _serviceOperationManager,
        address _dividendManager,
        address _incentiveManager,
        address _reserveFundManager
    ) external onlyOwner committeeApproved {
        require(opened);
        //require(_tokenPerEth > 0 && _initialSupply > 0);  // [2019.03.05] Fixed for Mythril Vulerablity SWC ID:101
        require(_tokenPerEth > 0); // SmartDec Recommendations
        require(_marketSaleManager != address(0) &&
                _serviceOperationManager != address(0) &&
                _dividendManager != address(0) &&
                _incentiveManager != address(0) &&
                _reserveFundManager != address(0));
        require(_marketSaleManager != _serviceOperationManager &&
                _marketSaleManager != _dividendManager &&
                _marketSaleManager != _incentiveManager &&
                _marketSaleManager != _reserveFundManager &&
                _serviceOperationManager != _dividendManager &&
                _serviceOperationManager != _incentiveManager &&
                _serviceOperationManager != _reserveFundManager &&
                _dividendManager != _incentiveManager &&
                _dividendManager != _reserveFundManager &&
                _incentiveManager != _reserveFundManager); // SmartDec Recommendations

        super.initToken(_tokenName, _tokenSymbol, _initialSupply,
          // SmartDec Recommendations
          _marketSaleManager,
          _serviceOperationManager,
          _dividendManager,
          _incentiveManager,
          _reserveFundManager
        );
        tokenPerEth = _tokenPerEth;
        emit SetExchangeRate(msg.sender, tokenPerEth);
    }


    /**
     * Change tokenPerEth variable only by owner
     *
     * Because "TokenExchaner" is only used until be listed on the exchange,
     * tokenPerEth is needed by then and it would be managed by manager.
     */
    function setExchangeRate(uint256 _tokenPerEth) onlyOwner committeeApproved external returns (bool success){
        require(opened);
        require( _tokenPerEth > 0);
        tokenPerEth = _tokenPerEth;
        emit SetExchangeRate(msg.sender, tokenPerEth);

        success = true;
        return success;
    }

    function getExchangerRate() external view returns(uint256){
        return tokenPerEth;
    }

    /**
     * Exchange Ether To Token
     *
     * @notice Send `Nemo` tokens to msg sender as much as amount of ether received considering exchangeRate.
     */
    function exchangeEtherToToken() payable external noReentrancy returns (bool success){
        require(opened);
        uint256 tokenPayment;
        uint256 ethAmount = msg.value;

        require(ethAmount > 0);
        require(tokenPerEth != 0);
        tokenPayment = ethAmount.mul(tokenPerEth);

        super._transfer(address(this), msg.sender, tokenPayment);

        emit ExchangeEtherToToken(msg.sender, msg.value, tokenPerEth);

        success = true;
        return success;
    }

    /**
     * Exchange Token To Ether
     *
     * @notice Send Ether to msg sender as much as amount of 'Nemo' Token received considering exchangeRate.
     *
     * @param _value Amount of 'Nemo' token
     */
    function exchangeTokenToEther(uint256 _value) external noReentrancy returns (bool success){
      require(opened);
      require(tokenPerEth != 0);

      uint256 remainingEthBalance = address(this).balance;
      uint256 etherPayment = _value.div(tokenPerEth);
      uint256 remainder = _value % tokenPerEth; // [2019.03.06 Fixing Securify vulnerabilities-Division influences Transfer Amount]
      require(remainingEthBalance >= etherPayment);

      uint256 tokenAmount = _value.sub(remainder); // [2019.03.06 Fixing Securify vulnerabilities-Division influences Transfer Amount]
      super._transfer(msg.sender, address(this), tokenAmount); // [2019.03.06 Fixing Securify vulnerabilities-Division influences Transfer Amount]
      //require(address(msg.sender).send(etherPayment));
      address(msg.sender).transfer(etherPayment); // SmartDec Recommendations

      emit ExchangeTokenToEther(address(this), etherPayment, tokenPerEth);
      success = true;
      return success;
    }

    /**
     * Withdraw token from TokenExchanger contract
     *
     * @notice Withdraw charged Token to _recipient.
     *
     * @param _recipient The address to which the token was issued.
     * @param _value Amount of token to withdraw.
     */
    function withdrawToken(address _recipient, uint256 _value) onlyOwner committeeApproved noReentrancy public {
      //require(opened);
      super._transfer(address(this) ,_recipient, _value);
      emit WithdrawToken(_recipient, _value);
    }


    /**
     * Withdraw Ether from TokenExchanger contract
     *
     * @notice Withdraw charged Ether to _recipient.
     *
     * @param _recipient The address to which the Ether was issued.
     * @param _value Amount of Ether to withdraw.
     */
    function withdrawEther(address payable _recipient, uint256 _value) onlyOwner committeeApproved noReentrancy public {
        //require(opened);
        //require(_recipient.send(_value));
        _recipient.transfer(_value); // SmartDec Recommendations
        emit WithdrawEther(_recipient, _value);
    }

    /**
     * close the TokenExchanger functions permanently
     *
     * @notice This contract would be closed when the coin is actively traded and judged that its TokenExchanger function is not needed.
     */
    function closeExchanger() onlyOwner committeeApproved external {
        opened = false;
    }
}


/**
 * @title NemodaxStorage
 *
 * @dev This is contract for proxyNemodax data order list.
 *      Contract shouldn't be changed as possible.
 *      If it should be edited, please add from the end of the contract .
 */

contract NemodaxStorage is RunningContractManager {

    // Never ever change the order of variables below!!!!
    // Public variables of the token
    string public name;
    string public symbol;
    uint8 public decimals = 18;    // 18 decimals is the strongly suggested default, avoid changing it
    uint256 public totalSupply;

    /* This creates an array with all balances */
    mapping (address => uint256) internal balances;
    mapping (address => mapping (address => uint256)) internal allowed;
    mapping (address => uint256) public frozenExpired; // SmartDec Recommendations

    bool private initialized;

    uint256 internal tokenPerEth;
    bool public opened = true;
}

/**
 * @title ProxyNemodax
 *
 * @dev The only fallback function will forward transaction to TokenExchanger Contract.
 *      and the result of calculation would be stored in ProxyNemodax
 *
 */

contract ProxyNemodax is NemodaxStorage {

    /* Initialize new committee. this will be real committee accounts, not from TokenExchanger contract */
    constructor(address _coOwner1,
                address _coOwner2,
                address _coOwner3,
                address _coOwner4,
                address _coOwner5)
        MultiOwnable( _coOwner1, _coOwner2, _coOwner3, _coOwner4, _coOwner5) public {}

    function () payable external {
        address localImpl = implementation;
        require(localImpl != address(0x0));

        assembly {
            let ptr := mload(0x40)

            switch calldatasize
            case 0 {  } // just to receive ethereum

            default{
                calldatacopy(ptr, 0, calldatasize)

                let result := delegatecall(gas, localImpl, ptr, calldatasize, 0, 0)
                let size := returndatasize
                returndatacopy(ptr, 0, size)
                switch result

                case 0 { revert(ptr, size) }
                default { return(ptr, size) }
            }
        }
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newAddr","type":"address"}],"name":"upgrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"dismiss","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_toRemove","type":"address"}],"name":"removeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"committeeStatus","outputs":[{"name":"numOfOwners","type":"uint8"},{"name":"numOfVotes","type":"uint8"},{"name":"numOfMinOwners","type":"uint8"},{"name":"proposedFuncData","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_targetFuncData","type":"bytes"}],"name":"propose","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"opened","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"vote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"owner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenExpired","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"addOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"ballot","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_coOwner1","type":"address"},{"name":"_coOwner2","type":"address"},{"name":"_coOwner3","type":"address"},{"name":"_coOwner4","type":"address"},{"name":"_coOwner5","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newContract","type":"address"}],"name":"Upgraded","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"proposer","type":"address"},{"indexed":true,"name":"proposedFuncData","type":"bytes"}],"name":"Vote","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"proposer","type":"address"},{"indexed":true,"name":"proposedFuncData","type":"bytes"}],"name":"Propose","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"proposer","type":"address"},{"indexed":true,"name":"proposedFuncData","type":"bytes"}],"name":"Dismiss","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"AddedOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"removedOwner","type":"address"}],"name":"RemovedOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"}],"name":"TransferOwnership","type":"event"}]

60806040526007805460ff19908116601217909155600e805490911660011790553480156200002d57600080fd5b5060405160a08062001887833981018060405260a08110156200004f57600080fd5b508051602082015160408301516060840151608090940151929391929091908484848484600160a060020a03851615801590620000945750600160a060020a03841615155b8015620000a95750600160a060020a03831615155b8015620000be5750600160a060020a03821615155b8015620000d35750600160a060020a03811615155b1515620000df57600080fd5b83600160a060020a031685600160a060020a03161415801562000114575082600160a060020a031685600160a060020a031614155b801562000133575081600160a060020a031685600160a060020a031614155b801562000152575080600160a060020a031685600160a060020a031614155b801562000171575082600160a060020a031684600160a060020a031614155b801562000190575081600160a060020a031684600160a060020a031614155b8015620001af575080600160a060020a031684600160a060020a031614155b8015620001ce575081600160a060020a031683600160a060020a031614155b8015620001ed575080600160a060020a031683600160a060020a031614155b80156200020c575080600160a060020a031682600160a060020a031614155b15156200021857600080fd5b600160a060020a0385811660008181526003602090815260408083208054600160ff1991821681179092558a871685528285208054821683179055898716855282852080548216831790558887168552828520805482168317905595871684528184208054871690911790558254600595169490941762ff0000191662050000179091558251918252915160008051602062001867833981519152929181900390910190a160408051600160a060020a03861681529051600080516020620018678339815191529181900360200190a160408051600160a060020a03851681529051600080516020620018678339815191529181900360200190a160408051600160a060020a03841681529051600080516020620018678339815191529181900360200190a160408051600160a060020a03831681529051600080516020620018678339815191529181900360200190a1505050505050505050506114e480620003836000396000f3fe608060405260043610610131576000357c0100000000000000000000000000000000000000000000000000000000900480635c60da1b116100bd5780637065cb48116100815780637065cb48146105295780638456cb591461055c57806395d89b4114610571578063e794273414610586578063f2fde38b146105b057610131565b80635c60da1b146104545780635f88eade14610485578063632a9a52146104ae578063666e1b39146104c35780636ebc9d6b146104f657610131565b806318160ddd1161010457806318160ddd14610286578063313ce567146102ad57806331d26094146102d857806337558af51461038c5780633f4ba83a1461043f57610131565b806306fdde031461017f5780630900f0101461020957806311c8ccb81461023e578063173825d914610253575b6004546101009004600160a060020a031680151561014e57600080fd5b60405136801561017a5736600083376000803684865af43d806000853e818015610176578185f35b8185fd5b505050005b34801561018b57600080fd5b506101946105e3565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ce5781810151838201526020016101b6565b50505050905090810190601f1680156101fb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021557600080fd5b5061023c6004803603602081101561022c57600080fd5b5035600160a060020a0316610671565b005b34801561024a57600080fd5b5061023c6107d8565b34801561025f57600080fd5b5061023c6004803603602081101561027657600080fd5b5035600160a060020a0316610800565b34801561029257600080fd5b5061029b6109ac565b60408051918252519081900360200190f35b3480156102b957600080fd5b506102c26109b2565b6040805160ff9092168252519081900360200190f35b3480156102e457600080fd5b506102ed6109bb565b604051808560ff1660ff1681526020018460ff1660ff1681526020018360ff1660ff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561034e578181015183820152602001610336565b50505050905090810190601f16801561037b5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b34801561039857600080fd5b5061023c600480360360208110156103af57600080fd5b8101906020810181356401000000008111156103ca57600080fd5b8201836020820111156103dc57600080fd5b803590602001918460018302840111640100000000831117156103fe57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a61945050505050565b34801561044b57600080fd5b5061023c610b4d565b34801561046057600080fd5b50610469610c79565b60408051600160a060020a039092168252519081900360200190f35b34801561049157600080fd5b5061049a610c8d565b604080519115158252519081900360200190f35b3480156104ba57600080fd5b5061023c610c96565b3480156104cf57600080fd5b5061049a600480360360208110156104e657600080fd5b5035600160a060020a0316610e24565b34801561050257600080fd5b5061029b6004803603602081101561051957600080fd5b5035600160a060020a0316610e39565b34801561053557600080fd5b5061023c6004803603602081101561054c57600080fd5b5035600160a060020a0316610e4b565b34801561056857600080fd5b5061023c610fe0565b34801561057d57600080fd5b5061019461110e565b34801561059257600080fd5b50610469600480360360208110156105a957600080fd5b5035611169565b3480156105bc57600080fd5b5061023c600480360360208110156105d357600080fd5b5035600160a060020a0316611191565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106695780601f1061063e57610100808354040283529160200191610669565b820191906000526020600020905b81548152906001019060200180831161064c57829003601f168201915b505050505081565b3360009081526003602052604090205460ff16151561068f57600080fd5b60003660405180838380828437604051920182900382206001805491965094509192508291849150600260001961010083851615020190911604801561070c5780601f106106ea57610100808354040283529182019161070c565b820191906000526020600020905b8154815290600101906020018083116106f8575b5050915050604051809103902014151561072557600080fd5b60005461073c9060ff16600263ffffffff61132416565b600054610100900460ff161161075157600080fd5b600454600160a060020a0382811661010090920416141561077157600080fd5b6004805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a038416908102919091179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a26107d5611339565b50565b3360009081526003602052604090205460ff1615156107f657600080fd5b6107fe611339565b565b3360009081526003602052604090205460ff16151561081e57600080fd5b60003660405180838380828437604051920182900382206001805491965094509192508291849150600260001961010083851615020190911604801561089b5780601f1061087957610100808354040283529182019161089b565b820191906000526020600020905b815481529060010190602001808311610887575b505091505060405180910390201415156108b457600080fd5b6000546108cb9060ff16600263ffffffff61132416565b600054610100900460ff16116108e057600080fd5b600160a060020a03811615156108f557600080fd5b600160a060020a03811660009081526003602052604090205460ff16151560011461091f57600080fd5b60005460ff620100008204811691161161093857600080fd5b600160a060020a0381166000818152600360209081526040808320805460ff19908116909155835460001960ff8281169190910116911617909255815192835290517ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf9281900390910190a16107d5611339565b60085481565b60075460ff1681565b600080546001805460408051602060026101008587161581026000190190951604601f810182900482028301820190935282825260ff808716979487048116966201000090041694919290830182828015610a575780601f10610a2c57610100808354040283529160200191610a57565b820191906000526020600020905b815481529060010190602001808311610a3a57829003601f168201915b5050505050905084565b3360009081526003602052604090205460ff161515610a7f57600080fd5b600054610100900460ff1615610a9457600080fd5b600180546002918116156101000260001901160415610ab257600080fd5b8051610ac5906001906020840190611403565b50806040518082805190602001908083835b60208310610af65780518252601f199092019160209182019101610ad7565b5181516020939093036101000a60001901801990911692169190911790526040519201829003822093503392507f641e122cc622920a3bce4840ce4dbc59f7bb5601be24c153c67daabb9134b2569160009150a350565b3360009081526003602052604090205460ff161515610b6b57600080fd5b600036604051808383808284376040519201829003822060018054919650945091925082918491506002600019610100838516150201909116048015610be85780601f10610bc6576101008083540402835291820191610be8565b820191906000526020600020905b815481529060010190602001808311610bd4575b50509150506040518091039020141515610c0157600080fd5b600054610c189060ff16600263ffffffff61132416565b600054610100900460ff1611610c2d57600080fd5b60045460ff161515610c3e57600080fd5b6004805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a16107fe611339565b6004546101009004600160a060020a031681565b600e5460ff1681565b3360009081526003602052604090205460ff161515610cb457600080fd5b60025460005b81811015610cfb576002805433919083908110610cd357fe5b600091825260209091200154600160a060020a03161415610cf357600080fd5b600101610cba565b5060018054600291811615610100026000190116041515610d1b57600080fd5b6000805460ff61010080830482166001908101909216810261ff0019909316929092178355600280548083018255938190527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace909301805473ffffffffffffffffffffffffffffffffffffffff19163317905560405181549193909283928592818416159092026000190116048015610deb5780601f10610dc9576101008083540402835291820191610deb565b820191906000526020600020905b815481529060010190602001808311610dd7575b505060405190819003812092503391507f1bacfd660758a6eee44b9973ba8e452aad60edbcffc67bbae34e8cb3fa3e52da90600090a350565b60036020526000908152604090205460ff1681565b600b6020526000908152604090205481565b3360009081526003602052604090205460ff161515610e6957600080fd5b600036604051808383808284376040519201829003822060018054919650945091925082918491506002600019610100838516150201909116048015610ee65780601f10610ec4576101008083540402835291820191610ee6565b820191906000526020600020905b815481529060010190602001808311610ed2575b50509150506040518091039020141515610eff57600080fd5b600054610f169060ff16600263ffffffff61132416565b600054610100900460ff1611610f2b57600080fd5b600160a060020a0381161515610f4057600080fd5b600160a060020a03811660009081526003602052604090205460ff16151560011415610f6b57600080fd5b600160a060020a03811660008181526003602090815260408083208054600160ff199182168117909255845490811660ff9182169092011617909255815192835290517f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea269281900390910190a16107d5611339565b3360009081526003602052604090205460ff161515610ffe57600080fd5b60003660405180838380828437604051920182900382206001805491965094509192508291849150600260001961010083851615020190911604801561107b5780601f1061105957610100808354040283529182019161107b565b820191906000526020600020905b815481529060010190602001808311611067575b5050915050604051809103902014151561109457600080fd5b6000546110ab9060ff16600263ffffffff61132416565b600054610100900460ff16116110c057600080fd5b60045460ff16156110d057600080fd5b6004805460ff191660011790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a16107fe611339565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106695780601f1061063e57610100808354040283529160200191610669565b600280548290811061117757fe5b600091825260209091200154600160a060020a0316905081565b3360009081526003602052604090205460ff1615156111af57600080fd5b60003660405180838380828437604051920182900382206001805491965094509192508291849150600260001961010083851615020190911604801561122c5780601f1061120a57610100808354040283529182019161122c565b820191906000526020600020905b815481529060010190602001808311611218575b5050915050604051809103902014151561124557600080fd5b60005461125c9060ff16600263ffffffff61132416565b600054610100900460ff161161127157600080fd5b600160a060020a038116151561128657600080fd5b600160a060020a03811660009081526003602052604090205460ff16156112ac57600080fd5b336000818152600360209081526040808320805460ff19908116909155600160a060020a038616808552938290208054909116600117905580519384529083019190915280517f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c9281900390910190a16107d5611339565b6000818381151561133157fe5b049392505050565b600060010160405180828054600181600116156101000203166002900480156113995780601f10611377576101008083540402835291820191611399565b820191906000526020600020905b815481529060010190602001808311611385575b505060405190819003812092503391507fd3a993c9c64be96d3e5d92cf1dee9b4f3c7d3278ee948819cc8552a9e3c49f5190600090a36000805461ff00191681556040805160208101918290528290526113f69160019190611403565b506107fe60026000611481565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061144457805160ff1916838001178555611471565b82800160010185558215611471579182015b82811115611471578251825591602001919060010190611456565b5061147d92915061149b565b5090565b50805460008255906000526020600020908101906107d591905b6114b591905b8082111561147d57600081556001016114a1565b9056fea165627a7a7230582074c0ae1b4ebeda8934f4a7a9c550893cbc2026406a5ac0b37145815a82bceb6300299465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea26000000000000000000000000b5e2d980bb3c9a0300d824fa0db47a92fec5fccf00000000000000000000000096f3e8c4c11fcd0aa7cce9b7c5221ebc26b4ada80000000000000000000000008323b1a64cc2579a5f899bb3277c7b616bde6276000000000000000000000000e2d57239c6785ee9586e94dc5eaa33b6978a6785000000000000000000000000f91ed17cd1f7849f2ff8617b2a38a67e4bfd0791

Deployed Bytecode

0x608060405260043610610131576000357c0100000000000000000000000000000000000000000000000000000000900480635c60da1b116100bd5780637065cb48116100815780637065cb48146105295780638456cb591461055c57806395d89b4114610571578063e794273414610586578063f2fde38b146105b057610131565b80635c60da1b146104545780635f88eade14610485578063632a9a52146104ae578063666e1b39146104c35780636ebc9d6b146104f657610131565b806318160ddd1161010457806318160ddd14610286578063313ce567146102ad57806331d26094146102d857806337558af51461038c5780633f4ba83a1461043f57610131565b806306fdde031461017f5780630900f0101461020957806311c8ccb81461023e578063173825d914610253575b6004546101009004600160a060020a031680151561014e57600080fd5b60405136801561017a5736600083376000803684865af43d806000853e818015610176578185f35b8185fd5b505050005b34801561018b57600080fd5b506101946105e3565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ce5781810151838201526020016101b6565b50505050905090810190601f1680156101fb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021557600080fd5b5061023c6004803603602081101561022c57600080fd5b5035600160a060020a0316610671565b005b34801561024a57600080fd5b5061023c6107d8565b34801561025f57600080fd5b5061023c6004803603602081101561027657600080fd5b5035600160a060020a0316610800565b34801561029257600080fd5b5061029b6109ac565b60408051918252519081900360200190f35b3480156102b957600080fd5b506102c26109b2565b6040805160ff9092168252519081900360200190f35b3480156102e457600080fd5b506102ed6109bb565b604051808560ff1660ff1681526020018460ff1660ff1681526020018360ff1660ff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561034e578181015183820152602001610336565b50505050905090810190601f16801561037b5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b34801561039857600080fd5b5061023c600480360360208110156103af57600080fd5b8101906020810181356401000000008111156103ca57600080fd5b8201836020820111156103dc57600080fd5b803590602001918460018302840111640100000000831117156103fe57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a61945050505050565b34801561044b57600080fd5b5061023c610b4d565b34801561046057600080fd5b50610469610c79565b60408051600160a060020a039092168252519081900360200190f35b34801561049157600080fd5b5061049a610c8d565b604080519115158252519081900360200190f35b3480156104ba57600080fd5b5061023c610c96565b3480156104cf57600080fd5b5061049a600480360360208110156104e657600080fd5b5035600160a060020a0316610e24565b34801561050257600080fd5b5061029b6004803603602081101561051957600080fd5b5035600160a060020a0316610e39565b34801561053557600080fd5b5061023c6004803603602081101561054c57600080fd5b5035600160a060020a0316610e4b565b34801561056857600080fd5b5061023c610fe0565b34801561057d57600080fd5b5061019461110e565b34801561059257600080fd5b50610469600480360360208110156105a957600080fd5b5035611169565b3480156105bc57600080fd5b5061023c600480360360208110156105d357600080fd5b5035600160a060020a0316611191565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106695780601f1061063e57610100808354040283529160200191610669565b820191906000526020600020905b81548152906001019060200180831161064c57829003601f168201915b505050505081565b3360009081526003602052604090205460ff16151561068f57600080fd5b60003660405180838380828437604051920182900382206001805491965094509192508291849150600260001961010083851615020190911604801561070c5780601f106106ea57610100808354040283529182019161070c565b820191906000526020600020905b8154815290600101906020018083116106f8575b5050915050604051809103902014151561072557600080fd5b60005461073c9060ff16600263ffffffff61132416565b600054610100900460ff161161075157600080fd5b600454600160a060020a0382811661010090920416141561077157600080fd5b6004805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a038416908102919091179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a26107d5611339565b50565b3360009081526003602052604090205460ff1615156107f657600080fd5b6107fe611339565b565b3360009081526003602052604090205460ff16151561081e57600080fd5b60003660405180838380828437604051920182900382206001805491965094509192508291849150600260001961010083851615020190911604801561089b5780601f1061087957610100808354040283529182019161089b565b820191906000526020600020905b815481529060010190602001808311610887575b505091505060405180910390201415156108b457600080fd5b6000546108cb9060ff16600263ffffffff61132416565b600054610100900460ff16116108e057600080fd5b600160a060020a03811615156108f557600080fd5b600160a060020a03811660009081526003602052604090205460ff16151560011461091f57600080fd5b60005460ff620100008204811691161161093857600080fd5b600160a060020a0381166000818152600360209081526040808320805460ff19908116909155835460001960ff8281169190910116911617909255815192835290517ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf9281900390910190a16107d5611339565b60085481565b60075460ff1681565b600080546001805460408051602060026101008587161581026000190190951604601f810182900482028301820190935282825260ff808716979487048116966201000090041694919290830182828015610a575780601f10610a2c57610100808354040283529160200191610a57565b820191906000526020600020905b815481529060010190602001808311610a3a57829003601f168201915b5050505050905084565b3360009081526003602052604090205460ff161515610a7f57600080fd5b600054610100900460ff1615610a9457600080fd5b600180546002918116156101000260001901160415610ab257600080fd5b8051610ac5906001906020840190611403565b50806040518082805190602001908083835b60208310610af65780518252601f199092019160209182019101610ad7565b5181516020939093036101000a60001901801990911692169190911790526040519201829003822093503392507f641e122cc622920a3bce4840ce4dbc59f7bb5601be24c153c67daabb9134b2569160009150a350565b3360009081526003602052604090205460ff161515610b6b57600080fd5b600036604051808383808284376040519201829003822060018054919650945091925082918491506002600019610100838516150201909116048015610be85780601f10610bc6576101008083540402835291820191610be8565b820191906000526020600020905b815481529060010190602001808311610bd4575b50509150506040518091039020141515610c0157600080fd5b600054610c189060ff16600263ffffffff61132416565b600054610100900460ff1611610c2d57600080fd5b60045460ff161515610c3e57600080fd5b6004805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a16107fe611339565b6004546101009004600160a060020a031681565b600e5460ff1681565b3360009081526003602052604090205460ff161515610cb457600080fd5b60025460005b81811015610cfb576002805433919083908110610cd357fe5b600091825260209091200154600160a060020a03161415610cf357600080fd5b600101610cba565b5060018054600291811615610100026000190116041515610d1b57600080fd5b6000805460ff61010080830482166001908101909216810261ff0019909316929092178355600280548083018255938190527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace909301805473ffffffffffffffffffffffffffffffffffffffff19163317905560405181549193909283928592818416159092026000190116048015610deb5780601f10610dc9576101008083540402835291820191610deb565b820191906000526020600020905b815481529060010190602001808311610dd7575b505060405190819003812092503391507f1bacfd660758a6eee44b9973ba8e452aad60edbcffc67bbae34e8cb3fa3e52da90600090a350565b60036020526000908152604090205460ff1681565b600b6020526000908152604090205481565b3360009081526003602052604090205460ff161515610e6957600080fd5b600036604051808383808284376040519201829003822060018054919650945091925082918491506002600019610100838516150201909116048015610ee65780601f10610ec4576101008083540402835291820191610ee6565b820191906000526020600020905b815481529060010190602001808311610ed2575b50509150506040518091039020141515610eff57600080fd5b600054610f169060ff16600263ffffffff61132416565b600054610100900460ff1611610f2b57600080fd5b600160a060020a0381161515610f4057600080fd5b600160a060020a03811660009081526003602052604090205460ff16151560011415610f6b57600080fd5b600160a060020a03811660008181526003602090815260408083208054600160ff199182168117909255845490811660ff9182169092011617909255815192835290517f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea269281900390910190a16107d5611339565b3360009081526003602052604090205460ff161515610ffe57600080fd5b60003660405180838380828437604051920182900382206001805491965094509192508291849150600260001961010083851615020190911604801561107b5780601f1061105957610100808354040283529182019161107b565b820191906000526020600020905b815481529060010190602001808311611067575b5050915050604051809103902014151561109457600080fd5b6000546110ab9060ff16600263ffffffff61132416565b600054610100900460ff16116110c057600080fd5b60045460ff16156110d057600080fd5b6004805460ff191660011790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a16107fe611339565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106695780601f1061063e57610100808354040283529160200191610669565b600280548290811061117757fe5b600091825260209091200154600160a060020a0316905081565b3360009081526003602052604090205460ff1615156111af57600080fd5b60003660405180838380828437604051920182900382206001805491965094509192508291849150600260001961010083851615020190911604801561122c5780601f1061120a57610100808354040283529182019161122c565b820191906000526020600020905b815481529060010190602001808311611218575b5050915050604051809103902014151561124557600080fd5b60005461125c9060ff16600263ffffffff61132416565b600054610100900460ff161161127157600080fd5b600160a060020a038116151561128657600080fd5b600160a060020a03811660009081526003602052604090205460ff16156112ac57600080fd5b336000818152600360209081526040808320805460ff19908116909155600160a060020a038616808552938290208054909116600117905580519384529083019190915280517f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c9281900390910190a16107d5611339565b6000818381151561133157fe5b049392505050565b600060010160405180828054600181600116156101000203166002900480156113995780601f10611377576101008083540402835291820191611399565b820191906000526020600020905b815481529060010190602001808311611385575b505060405190819003812092503391507fd3a993c9c64be96d3e5d92cf1dee9b4f3c7d3278ee948819cc8552a9e3c49f5190600090a36000805461ff00191681556040805160208101918290528290526113f69160019190611403565b506107fe60026000611481565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061144457805160ff1916838001178555611471565b82800160010185558215611471579182015b82811115611471578251825591602001919060010190611456565b5061147d92915061149b565b5090565b50805460008255906000526020600020908101906107d591905b6114b591905b8082111561147d57600081556001016114a1565b9056fea165627a7a7230582074c0ae1b4ebeda8934f4a7a9c550893cbc2026406a5ac0b37145815a82bceb630029

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

000000000000000000000000b5e2d980bb3c9a0300d824fa0db47a92fec5fccf00000000000000000000000096f3e8c4c11fcd0aa7cce9b7c5221ebc26b4ada80000000000000000000000008323b1a64cc2579a5f899bb3277c7b616bde6276000000000000000000000000e2d57239c6785ee9586e94dc5eaa33b6978a6785000000000000000000000000f91ed17cd1f7849f2ff8617b2a38a67e4bfd0791

-----Decoded View---------------
Arg [0] : _coOwner1 (address): 0xb5e2D980bB3C9A0300d824fa0db47A92fEc5fccf
Arg [1] : _coOwner2 (address): 0x96f3E8c4C11fcd0Aa7CCE9b7C5221EBC26b4Ada8
Arg [2] : _coOwner3 (address): 0x8323B1a64cc2579A5f899BB3277C7B616bDE6276
Arg [3] : _coOwner4 (address): 0xe2D57239c6785ee9586E94Dc5EAa33b6978a6785
Arg [4] : _coOwner5 (address): 0xF91ED17cD1f7849f2Ff8617b2A38a67e4bFD0791

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000b5e2d980bb3c9a0300d824fa0db47a92fec5fccf
Arg [1] : 00000000000000000000000096f3e8c4c11fcd0aa7cce9b7c5221ebc26b4ada8
Arg [2] : 0000000000000000000000008323b1a64cc2579a5f899bb3277c7b616bde6276
Arg [3] : 000000000000000000000000e2d57239c6785ee9586e94dc5eaa33b6978a6785
Arg [4] : 000000000000000000000000f91ed17cd1f7849f2ff8617b2a38a67e4bfd0791


Deployed Bytecode Sourcemap

31256:1108:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31743:14;;;;;-1:-1:-1;;;;;31743:14:0;31776:25;;;31768:34;;;;;;31856:4;31850:11;31884:12;31910:11;;;;32012:12;32009:1;32004:3;31991:34;32110:1;32107;32093:12;32088:3;32077:9;32072:3;32059:53;32142:14;32197:4;32194:1;32189:3;32174:28;32227:6;32253:28;;;;32321:4;32316:3;32309:17;32253:28;32274:4;32269:3;32262:17;31910:11;31877:466;31824:530;;31256:1108;30497:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30497:18:0;;;:::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;30497:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9633:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9633:224:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9633:224:0;-1:-1:-1;;;;;9633:224:0;;:::i;:::-;;5519:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5519:63:0;;;:::i;8145:420::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8145:420:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8145:420:0;-1:-1:-1;;;;;8145:420:0;;:::i;30653:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30653:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;30549;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30549:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1927:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1927:42:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1927:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4926:415;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4926:415:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4926:415:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;4926:415:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4926:415:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4926:415:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4926:415:0;;-1:-1:-1;4926:415:0;;-1:-1:-1;;;;;4926:415:0:i;9257:123::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9257:123:0;;;:::i;9516:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9516:29:0;;;:::i;:::-;;;;-1:-1:-1;;;;;9516:29:0;;;;;;;;;;;;;;31019:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31019:25:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;6371:651;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6371:651:0;;;:::i;2048:37::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2048:37:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2048:37:0;-1:-1:-1;;;;;2048:37:0;;:::i;30865:49::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30865:49:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30865:49:0;-1:-1:-1;;;;;30865:49:0;;:::i;7722:284::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7722:284:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7722:284:0;-1:-1:-1;;;;;7722:284:0;;:::i;9128:121::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9128:121:0;;;:::i;30522:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30522:20:0;;;:::i;1978:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1978:23:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1978:23:0;;:::i;7252:336::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7252:336:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7252:336:0;-1:-1:-1;;;;;7252:336:0;;:::i;30497:18::-;;;;;;;;;;;;;;;-1:-1:-1;;30497:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9633:224::-;4066:10;4060:17;;;;:5;:17;;;;;;;;4052:26;;;;;;;;4482:8;;4472:19;;;;;30:3:-1;22:6;14;1:33;4472:19:0;;45:16:-1;;4472:19:0;;;;;4435:32;4425:43;;4472:19;;-1:-1:-1;4435:32:0;-1:-1:-1;4472:19:0;;-1:-1:-1;4472:19:0;;4435:32;;-1:-1:-1;4425:43:0;-1:-1:-1;;4425:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:66;4416:77;;;;;;;;4600:15;:27;:34;;:27;;4632:1;4600:34;:31;:34;:::i;:::-;4571:15;:26;;;;;;:63;4563:72;;;;;;9724:14;;-1:-1:-1;;;;;9724:26:0;;;:14;;;;;:26;;9716:35;;;;;;9762:14;:25;;-1:-1:-1;;9762:25:0;;-1:-1:-1;;;;;9762:25:0;;;;;;;;;;;;9803:18;;;;-1:-1:-1;;9803:18:0;4654:10;:8;:10::i;:::-;9633:224;:::o;5519:63::-;4066:10;4060:17;;;;:5;:17;;;;;;;;4052:26;;;;;;;;5564:10;:8;:10::i;:::-;5519:63::o;8145:420::-;4066:10;4060:17;;;;:5;:17;;;;;;;;4052:26;;;;;;;;4482:8;;4472:19;;;;;30:3:-1;22:6;14;1:33;4472:19:0;;45:16:-1;;4472:19:0;;;;;4435:32;4425:43;;4472:19;;-1:-1:-1;4435:32:0;-1:-1:-1;4472:19:0;;-1:-1:-1;4472:19:0;;4435:32;;-1:-1:-1;4425:43:0;-1:-1:-1;;4425:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:66;4416:77;;;;;;;;4600:15;:27;:34;;:27;;4632:1;4600:34;:31;:34;:::i;:::-;4571:15;:26;;;;;;:63;4563:72;;;;;;-1:-1:-1;;;;;8240:25:0;;;;8231:36;;;;;;-1:-1:-1;;;;;8287:16:0;;;;;;:5;:16;;;;;;;;:24;;:16;:24;8278:35;;;;;;8363:15;:30;;;;;;;8333:27;;:60;8324:71;;;;;;-1:-1:-1;;;;;8454:16:0;;8473:5;8454:16;;;:5;:16;;;;;;;;:24;;-1:-1:-1;;8454:24:0;;;;;;8489:29;;-1:-1:-1;;8454:24:0;8489:29;;;;;;;;;;;;;;8534:23;;;;;;;;;;;;;;;;;4654:10;:8;:10::i;30653:26::-;;;;:::o;30549:::-;;;;;;:::o;1927:42::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1927:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4926:415::-;4066:10;4060:17;;;;:5;:17;;;;;;;;4052:26;;;;;;;;5060:15;:26;;;;;;:31;5052:40;;;;;;5109:32;:39;;;;;;;;;-1:-1:-1;;5109:39:0;;;:44;5101:53;;;;;;5233:50;;;;:32;;:50;;;;;:::i;:::-;;5317:15;5297:36;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;;;;365:33;;5297:36:0;;;;;;;;;;-1:-1:-1;5305:10:0;;-1:-1:-1;5297:36:0;;-1:-1:-1;;;5297:36:0;4926:415;:::o;9257:123::-;4066:10;4060:17;;;;:5;:17;;;;;;;;4052:26;;;;;;;;4482:8;;4472:19;;;;;30:3:-1;22:6;14;1:33;4472:19:0;;45:16:-1;;4472:19:0;;;;;4435:32;4425:43;;4472:19;;-1:-1:-1;4435:32:0;-1:-1:-1;4472:19:0;;-1:-1:-1;4472:19:0;;4435:32;;-1:-1:-1;4425:43:0;-1:-1:-1;;4425:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:66;4416:77;;;;;;;;4600:15;:27;:34;;:27;;4632:1;4600:34;:31;:34;:::i;:::-;4571:15;:26;;;;;;:63;4563:72;;;;;;8807:6;;;;8799:15;;;;;;;;9333:6;:14;;-1:-1:-1;;9333:14:0;;;9363:9;;;;9342:5;;9363:9;4654:10;:8;:10::i;9516:29::-;;;;;;-1:-1:-1;;;;;9516:29:0;;:::o;31019:25::-;;;;;;:::o;6371:651::-;4066:10;4060:17;;;;:5;:17;;;;;;;;4052:26;;;;;;;;6467:6;:13;6453:11;6517:98;6533:6;6531:1;:8;6517:98;;;6591:6;:9;;6604:10;;6591:6;6598:1;;6591:9;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6591:9:0;:23;;6583:32;;;;;;6541:3;;6517:98;;;-1:-1:-1;6694:32:0;:39;;;;;;;;;-1:-1:-1;;6694:39:0;;;:44;;6685:55;;;;;;6890:15;:28;;;;;;;;;:26;:28;;;;;;;;-1:-1:-1;;6890:28:0;;;;;;;;;6927:6;27:10:-1;;23:18;;;45:23;;6927::0;;;;;;;;;;-1:-1:-1;;6927:23:0;6939:10;6927:23;;;6964:50;;;;6890:26;;6964:50;;;;6890:26;;6964:50;;;;;;;-1:-1:-1;;6964:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6964:50:0;;;;;;;;;-1:-1:-1;6969:10:0;;-1:-1:-1;6964:50:0;;;;;4089:1;6371:651::o;2048:37::-;;;;;;;;;;;;;;;:::o;30865:49::-;;;;;;;;;;;;;:::o;7722:284::-;4066:10;4060:17;;;;:5;:17;;;;;;;;4052:26;;;;;;;;4482:8;;4472:19;;;;;30:3:-1;22:6;14;1:33;4472:19:0;;45:16:-1;;4472:19:0;;;;;4435:32;4425:43;;4472:19;;-1:-1:-1;4435:32:0;-1:-1:-1;4472:19:0;;-1:-1:-1;4472:19:0;;4435:32;;-1:-1:-1;4425:43:0;-1:-1:-1;;4425:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:66;4416:77;;;;;;;;4600:15;:27;:34;;:27;;4632:1;4600:34;:31;:34;:::i;:::-;4571:15;:26;;;;;;:63;4563:72;;;;;;-1:-1:-1;;;;;7814:25:0;;;;7805:36;;;;;;-1:-1:-1;;;;;7861:16:0;;;;;;:5;:16;;;;;;;;:24;;:16;:24;;7852:35;;;;;;-1:-1:-1;;;;;7898:16:0;;;;;;:5;:16;;;;;;;;:23;;7917:4;-1:-1:-1;;7898:23:0;;;;;;;;7932:29;;;;;7898:23;7932:29;;;;;;;;;;;7977:21;;;;;;;;;;;;;;;;;4654:10;:8;:10::i;9128:121::-;4066:10;4060:17;;;;:5;:17;;;;;;;;4052:26;;;;;;;;4482:8;;4472:19;;;;;30:3:-1;22:6;14;1:33;4472:19:0;;45:16:-1;;4472:19:0;;;;;4435:32;4425:43;;4472:19;;-1:-1:-1;4435:32:0;-1:-1:-1;4472:19:0;;-1:-1:-1;4472:19:0;;4435:32;;-1:-1:-1;4425:43:0;-1:-1:-1;;4425:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:66;4416:77;;;;;;;;4600:15;:27;:34;;:27;;4632:1;4600:34;:31;:34;:::i;:::-;4571:15;:26;;;;;;:63;4563:72;;;;;;8731:6;;;;8730:7;8722:16;;;;;;9205:6;:13;;-1:-1:-1;;9205:13:0;9214:4;9205:13;;;9234:7;;;;9205:6;;9234:7;4654:10;:8;:10::i;30522:20::-;;;;;;;;;;;;;;;-1:-1:-1;;30522:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1978:23;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1978:23:0;;-1:-1:-1;1978:23:0;:::o;7252:336::-;4066:10;4060:17;;;;:5;:17;;;;;;;;4052:26;;;;;;;;4482:8;;4472:19;;;;;30:3:-1;22:6;14;1:33;4472:19:0;;45:16:-1;;4472:19:0;;;;;4435:32;4425:43;;4472:19;;-1:-1:-1;4435:32:0;-1:-1:-1;4472:19:0;;-1:-1:-1;4472:19:0;;4435:32;;-1:-1:-1;4425:43:0;-1:-1:-1;;4425:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:66;4416:77;;;;;;;;4600:15;:27;:34;;:27;;4632:1;4600:34;:31;:34;:::i;:::-;4571:15;:26;;;;;;:63;4563:72;;;;;;-1:-1:-1;;;;;7353:25:0;;;;7344:36;;;;;;-1:-1:-1;;;;;7427:16:0;;;;;;:5;:16;;;;;;;;:25;7418:36;;;;;;7471:10;7485:5;7465:17;;;:5;:17;;;;;;;;:25;;-1:-1:-1;;7465:25:0;;;;;;-1:-1:-1;;;;;7501:16:0;;;;;;;;;:23;;;;;7465:25;7501:23;;;7540:40;;;;;;;;;;;;;;;;;;;;;;;;4654:10;:8;:10::i;684:277::-;742:7;954:1;950;:5;;;;;;;;;684:277;-1:-1:-1;;;684:277:0:o;5931:211::-;5994:15;:32;;5974:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5974:53:0;;;;;;;;;-1:-1:-1;5982:10:0;;-1:-1:-1;5974:53:0;;;;;6065:1;6036:30;;-1:-1:-1;;6036:30:0;;;6075:37;;;;;;;;;;;;;;;6036:26;;6075:37;;:::i;:::-;-1:-1:-1;6121:13:0;6128:6;;6121:13;:::i;31256:1108::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31256:1108:0;;;-1:-1:-1;31256:1108:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://74c0ae1b4ebeda8934f4a7a9c550893cbc2026406a5ac0b37145815a82bceb63

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.