Contract 0x8967a7cfc4b455398be2356cd05cd43b7a39697e

Contract Overview

Balance:
0 Ether

Latest 25 internal transaction, Click here to view more Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
0xeb0234e6df157252763900c9e84d45480db44a9b7ed530728140288532d2f22e105729773 hrs 43 mins ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0x01fdc9cda995e65cf051f499cac11a5a4ec01301bd2c2cb9447f04327f27c65c105661831 day 13 hrs ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0x88278db0aacfb456b78baa48606549a18931c6a19699c2613beb0b1d4d60e92e105523354 days 39 mins ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0xe0a54ee615a227230f89989966580649bd502d9877d22f9ed8e58385813268f2105523234 days 41 mins ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0x7005f303ed56d39fb5321ac6b1f73056c715a5ed451d00fdec52268b9b733bf4105523024 days 45 mins ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0xea8ff5d2945f8f2cdd3e64824c02fa5f1b8823e3539ae19d4391740783fa8b57105505314 days 6 hrs ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0xbe42d491c3fb902c343a8a434cc6babe132e2a0edef4711080da50536af30f47105498304 days 9 hrs ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0x63e099a7db897e9cbe88c54c31cd85d130bf98bbe0363ad55fb4a3d85c521c03105497284 days 9 hrs ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0xfdce484cb00e9da8aa8e3e43deee0453a4f371ff4640aa90d495085ca0a60f37105488004 days 12 hrs ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0xe345bf26081c2ecd4d1500671b4d8f71c630cd7fbb223acaec274f78038e343b105464514 days 20 hrs ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0x8abb20f9729be7bd638e06e3e75236027970fb4ca30ad75b29ae005fba09b915105464334 days 20 hrs ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0xadc007cc62c5fddf246d21a89981b6138c046ddd61f2e9a1e46d05fadc002b5b105464054 days 20 hrs ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0x0809e1e2ba23f6214fb15bd310acd7b31a38aba42b54422eae9598f4a6cf01fd105461114 days 21 hrs ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0xdf8d75e6918ac46262c2513752bd8050096edd22148baabb5bc7e45664c7b72f105449165 days 1 hr ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0xbda6e1de01006f12000d27eced0892d316e713d3500d06d4c46279a725192113105435715 days 6 hrs ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0x993b2c12907ab94bc7688f542532bd6e216e365754d5860b9e7295d7b09a372c105411245 days 14 hrs ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0xea82c11d24a34424649efa2f081ecd1be2891632888ea98a61c7c975a7efd22d105411095 days 14 hrs ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0x2cc11d03a32fd1507642f37894755536e4c47354f9ce1a65295d2a1d621c8562105410985 days 14 hrs ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0xe909735b70049d7de6060abb58b5cabfbbc4c675b6e1a09db74dccf3666a8907105389515 days 21 hrs ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0x75303907307886d8933900a92a7fb67e661b5b21e20f4b8ec0e3530326d534cd105366316 days 5 hrs ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0x95bae4db9326ad253ec53ddd74a6f62e26470f7a388a5ba0e7062570e76491c2105365916 days 5 hrs ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0x4991df7d0286a93257f2a3706a81dbcecb01a82f02b428914f49684f5d0aa7e6105365056 days 6 hrs ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0x2dcc0d1f922315e99a9de8b35b3ee5757cd141e8cc383b45d09096d458b057b5105303677 days 2 hrs ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0xf5ab0a202ef6688b2d8221d383be80b7827eae0cc3c78bb2e1e6afad92113af1105302277 days 3 hrs ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
0x7e48eb188c11332ee95fcca7acb2b2b851f9895a4c4d18ee726baf5cef03aadb105233888 days 2 hrs ago0xde6d19d7a68d453244227b6ccc5d8e6c2314627a0x8967a7cfc4b455398be2356cd05cd43b7a39697e0 Ether
[ Download CSV Export 
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) Solidity Compiler Bugs.

Contract Source Code Verified (Similar Match)
Note: This contract matches the deployed ByteCode of the Verified Source Code for Contract 0x35a8f211763be879541656d692f057d108eec9aa
Contract Name: FeatureRegistry
Compiler Version: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimizer):  200


Contract Source Code
pragma solidity ^0.4.24;

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


  event OwnershipRenounced(address indexed previousOwner);
  event OwnershipTransferred(
    address indexed previousOwner,
    address indexed newOwner
  );


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() public {
    owner = msg.sender;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  /**
   * @dev Allows the current owner to relinquish control of the contract.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipRenounced(owner);
    owner = address(0);
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function transferOwnership(address _newOwner) public onlyOwner {
    _transferOwnership(_newOwner);
  }

  /**
   * @dev Transfers control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function _transferOwnership(address _newOwner) internal {
    require(_newOwner != address(0));
    emit OwnershipTransferred(owner, _newOwner);
    owner = _newOwner;
  }
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
interface IERC20 {
    function decimals() external view returns (uint8);
    function totalSupply() external view returns (uint256);
    function balanceOf(address _owner) external view returns (uint256);
    function allowance(address _owner, address _spender) external view returns (uint256);
    function transfer(address _to, uint256 _value) external returns (bool);
    function transferFrom(address _from, address _to, uint256 _value) external returns (bool);
    function approve(address _spender, uint256 _value) external returns (bool);
    function decreaseApproval(address _spender, uint _subtractedValue) external returns (bool);
    function increaseApproval(address _spender, uint _addedValue) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @title Utility contract to allow owner to retreive any ERC20 sent to the contract
 */
contract ReclaimTokens is Ownable {

    /**
    * @notice Reclaim all ERC20Basic compatible tokens
    * @param _tokenContract The address of the token contract
    */
    function reclaimERC20(address _tokenContract) external onlyOwner {
        require(_tokenContract != address(0), "Invalid address");
        IERC20 token = IERC20(_tokenContract);
        uint256 balance = token.balanceOf(address(this));
        require(token.transfer(owner, balance), "Transfer failed");
    }
}

/**
 * @title Interface for managing polymath feature switches
 */
interface IFeatureRegistry {

    /**
     * @notice Get the status of a feature
     * @param _nameKey is the key for the feature status mapping
     * @return bool
     */
    function getFeatureStatus(string _nameKey) external view returns(bool);

}

/**
 * @title Registry for managing polymath feature switches
 */
contract FeatureRegistry is IFeatureRegistry, ReclaimTokens {

    mapping (bytes32 => bool) public featureStatus;

    event ChangeFeatureStatus(string _nameKey, bool _newStatus);

    /**
     * @notice Get the status of a feature
     * @param _nameKey is the key for the feature status mapping
     * @return bool
     */
    function getFeatureStatus(string _nameKey) external view returns(bool) {
        bytes32 key = keccak256(bytes(_nameKey));
        return featureStatus[key];
    }

    /**
     * @notice change a feature status
     * @dev feature status is set to false by default
     * @param _nameKey is the key for the feature status mapping
     * @param _newStatus is the new feature status
     */
    function setFeatureStatus(string _nameKey, bool _newStatus) public onlyOwner {
        bytes32 key = keccak256(bytes(_nameKey));
        require(featureStatus[key] != _newStatus, "Status unchanged");
        emit ChangeFeatureStatus(_nameKey, _newStatus);
        featureStatus[key] = _newStatus;
    }

}

Contract ABI
[{"constant":true,"inputs":[{"name":"_nameKey","type":"string"}],"name":"getFeatureStatus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenContract","type":"address"}],"name":"reclaimERC20","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"featureStatus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_nameKey","type":"string"},{"name":"_newStatus","type":"bool"}],"name":"setFeatureStatus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_nameKey","type":"string"},{"indexed":false,"name":"_newStatus","type":"bool"}],"name":"ChangeFeatureStatus","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

Contract Creation Code
608060405260008054600160a060020a03191633179055610744806100256000396000f3006080604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632f0019f28114610087578063715018a6146100bb5780638905fd4f146100d25780638da5cb5b146100f3578063e43c408314610124578063f29832571461013c578063f2fde38b14610199575b600080fd5b34801561009357600080fd5b506100a760048035602481019101356101ba565b604080519115158252519081900360200190f35b3480156100c757600080fd5b506100d06101f4565b005b3480156100de57600080fd5b506100d0600160a060020a0360043516610260565b3480156100ff57600080fd5b50610108610493565b60408051600160a060020a039092168252519081900360200190f35b34801561013057600080fd5b506100a76004356104a2565b34801561014857600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100d09436949293602493928401919081908401838280828437509497505050509135151592506104b7915050565b3480156101a557600080fd5b506100d0600160a060020a0360043516610678565b6000808383604051808383808284376040805191909301819003902060009081526001602052919091205460ff1698975050505050505050565b600054600160a060020a0316331461020b57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600080548190600160a060020a0316331461027a57600080fd5b600160a060020a03831615156102f157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f496e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051849350600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561035557600080fd5b505af1158015610369573d6000803e3d6000fd5b505050506040513d602081101561037f57600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b1580156103f557600080fd5b505af1158015610409573d6000803e3d6000fd5b505050506040513d602081101561041f57600080fd5b5051151561048e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e73666572206661696c65640000000000000000000000000000000000604482015290519081900360640190fd5b505050565b600054600160a060020a031681565b60016020526000908152604090205460ff1681565b60008054600160a060020a031633146104cf57600080fd5b826040518082805190602001908083835b602083106104ff5780518252601f1990920191602091820191016104e0565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320600081815260019094529220549194505060ff161515841515141591506105b3905057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f53746174757320756e6368616e67656400000000000000000000000000000000604482015290519081900360640190fd5b7fc4f204a5636d7eb3ef39174170beec580582233e28bc6c20a7458fd3209d08b88383604051808060200183151515158152602001828103825284818151815260200191508051906020019080838360005b8381101561061d578181015183820152602001610605565b50505050905090810190601f16801561064a5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a16000908152600160205260409020805460ff191691151591909117905550565b600054600160a060020a0316331461068f57600080fd5b6106988161069b565b50565b600160a060020a03811615156106b057600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a72305820d28a9dcdd1a4953f75209ea8c6e4aaf17ac8728104c15b82e85849ab0f17030b0029


   Swarm Source:
bzzr://d28a9dcdd1a4953f75209ea8c6e4aaf17ac8728104c15b82e85849ab0f17030b
Block Age Transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward