ETH Price: $3,196.38 (+2.10%)

Contract

0x5B36626594A126979A96C5A3D36E91650AabE645
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0x60a06040145724812022-04-12 18:53:18946 days ago1649789598IN
 Create: Storage
0 ETH0.0192124166.2163646

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Storage

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 2 : Storage.sol
pragma solidity ^0.6.12;

import "./Context.sol";

contract Storage is Context {

  mapping (address => bool) public governance;
  mapping (address => bool) public controller;

  address immutable public owner;

  constructor() public {
    owner = _msgSender();
    governance[_msgSender()] = true;
    controller[_msgSender()] = true;
  }

  
  function setGovernance(address _governance, bool _isGovernance) external {
    require(_msgSender() == owner, "not an owner");
    require(_governance != _msgSender(), "governance cannot modify itself");
    governance[_governance] = _isGovernance;
  }

  function setController(address _controller, bool _isController) external {
    require(governance[_msgSender()], "not a governance");
    controller[_controller] = _isController;
  }
}

File 2 of 2 : Context.sol
pragma solidity ^0.6.12;

// File: @openzeppelin/contracts/GSN/Context.sol

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
contract Context {
    // Empty internal constructor, to prevent people from mistakenly deploying
    // an instance of this contract, which should be used via inheritance.
    constructor () internal { }
    // solhint-disable-previous-line no-empty-blocks

    function _msgSender() internal view returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"controller","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"governance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_controller","type":"address"},{"internalType":"bool","name":"_isController","type":"bool"}],"name":"setController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_governance","type":"address"},{"internalType":"bool","name":"_isGovernance","type":"bool"}],"name":"setGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a060405234801561001057600080fd5b5061001961009b565b60601b6001600160601b031916608052600160008061003661009b565b6001600160a01b0316815260208101919091526040016000908120805460ff191692151592909217909155600190819061006e61009b565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561009f565b3390565b60805160601c6103726100c160003980610140528061026a52506103726000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063158a1ca11461005c5780638426e6c11461008c5780638da5cb5b146100c6578063c13aa7b5146100ea578063e0dba60f14610110575b600080fd5b61008a6004803603604081101561007257600080fd5b506001600160a01b038135169060200135151561013e565b005b6100b2600480360360208110156100a257600080fd5b50356001600160a01b0316610253565b604080519115158252519081900360200190f35b6100ce610268565b604080516001600160a01b039092168252519081900360200190f35b6100b26004803603602081101561010057600080fd5b50356001600160a01b031661028c565b61008a6004803603604081101561012657600080fd5b506001600160a01b03813516906020013515156102a1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610170610338565b6001600160a01b0316146101ba576040805162461bcd60e51b815260206004820152600c60248201526b3737ba1030b71037bbb732b960a11b604482015290519081900360640190fd5b6101c2610338565b6001600160a01b0316826001600160a01b03161415610228576040805162461bcd60e51b815260206004820152601f60248201527f676f7665726e616e63652063616e6e6f74206d6f6469667920697473656c6600604482015290519081900360640190fd5b6001600160a01b03919091166000908152602081905260409020805460ff1916911515919091179055565b60006020819052908152604090205460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60016020526000908152604090205460ff1681565b6000806102ac610338565b6001600160a01b0316815260208101919091526040016000205460ff1661030d576040805162461bcd60e51b815260206004820152601060248201526f6e6f74206120676f7665726e616e636560801b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b339056fea2646970667358221220df039e1bb7cdcb45048c8c1e2f5889c96aabebd0651c1db8256a009ca965755564736f6c634300060c0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063158a1ca11461005c5780638426e6c11461008c5780638da5cb5b146100c6578063c13aa7b5146100ea578063e0dba60f14610110575b600080fd5b61008a6004803603604081101561007257600080fd5b506001600160a01b038135169060200135151561013e565b005b6100b2600480360360208110156100a257600080fd5b50356001600160a01b0316610253565b604080519115158252519081900360200190f35b6100ce610268565b604080516001600160a01b039092168252519081900360200190f35b6100b26004803603602081101561010057600080fd5b50356001600160a01b031661028c565b61008a6004803603604081101561012657600080fd5b506001600160a01b03813516906020013515156102a1565b7f000000000000000000000000b2e1ecdc4dddfa1577fa4e0b36d84e4c50d7eb936001600160a01b0316610170610338565b6001600160a01b0316146101ba576040805162461bcd60e51b815260206004820152600c60248201526b3737ba1030b71037bbb732b960a11b604482015290519081900360640190fd5b6101c2610338565b6001600160a01b0316826001600160a01b03161415610228576040805162461bcd60e51b815260206004820152601f60248201527f676f7665726e616e63652063616e6e6f74206d6f6469667920697473656c6600604482015290519081900360640190fd5b6001600160a01b03919091166000908152602081905260409020805460ff1916911515919091179055565b60006020819052908152604090205460ff1681565b7f000000000000000000000000b2e1ecdc4dddfa1577fa4e0b36d84e4c50d7eb9381565b60016020526000908152604090205460ff1681565b6000806102ac610338565b6001600160a01b0316815260208101919091526040016000205460ff1661030d576040805162461bcd60e51b815260206004820152601060248201526f6e6f74206120676f7665726e616e636560801b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b339056fea2646970667358221220df039e1bb7cdcb45048c8c1e2f5889c96aabebd0651c1db8256a009ca965755564736f6c634300060c0033

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.