ETH Price: $3,366.91 (+2.69%)

Token

Cerebro (CRB)
 

Overview

Max Total Supply

1,000,000 CRB

Holders

2

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Deflect Protocol: Deployer
Balance
650,000 CRB

Value
$0.00
0xa0690Cb3eaf85b9bB543a448Ee16464Ae8AD9AeD
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
CerebroProxy

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : CerebroProxy.sol
pragma solidity ^0.6.0;

contract CerebroProxy {
  bytes32 private constant implementationPosition = bytes32(uint256(keccak256("crb.proxy.implementation")) - 1);
  bytes32 private constant proxyOwnerPosition = bytes32(uint256(keccak256("crb.proxy.owner")) - 1);

  constructor() public {
    _setUpgradeabilityOwner(msg.sender);
  }

  function setup(address _implementation) external {
    require(msg.sender == proxyOwner());
    _setImplementation(_implementation);
  }

  function setupOwner(address _newOwner) external {
    require(msg.sender == proxyOwner());
    _setUpgradeabilityOwner(_newOwner);
  }

  // setter to set the position of an implementation from the implementation position onwards
  function _setImplementation(address _newImplementation) internal {
    require(msg.sender == proxyOwner());
    bytes32 position = implementationPosition;

    assembly {
      sstore(position, _newImplementation)
    }
  }

  // retrieving the address at the implementation position
  function implementation() public view returns (address impl) {
    bytes32 position = implementationPosition;
    assembly {
      impl := sload(position)
    }
  }

  function proxyOwner() public view returns (address owner) {
    bytes32 position = proxyOwnerPosition;
    assembly {
      owner := sload(position)
    }
  }

  function _setUpgradeabilityOwner(address _newProxyOwner) private {
    bytes32 position = proxyOwnerPosition;
    assembly {
      sstore(position, _newProxyOwner)
    }
  }

  fallback() external payable {
    address addr = implementation();

    assembly {
      calldatacopy(0, 0, calldatasize())
      let result := delegatecall(gas(), addr, 0, calldatasize(), 0, 0)
      returndatacopy(0, 0, returndatasize())
      switch result
        case 0 {
          revert(0, returndatasize())
        }
        default {
          return(0, returndatasize())
        }
    }
  }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"impl","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxyOwner","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"name":"setup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"setupOwner","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5061001a3361001f565b610043565b7f93a7f4a88087c5c09e3c5c07052d6ccb843680928ece767991833580209f2e6e55565b610269806100526000396000f3fe60806040526004361061003f5760003560e01c8063025313a21461006f57806344c318ec146100a05780635c60da1b146100d557806366d38203146100ea575b600061004961011d565b90503660008037600080366000845af43d6000803e80801561006a573d6000f35b3d6000fd5b34801561007b57600080fd5b50610084610142565b604080516001600160a01b039092168252519081900360200190f35b3480156100ac57600080fd5b506100d3600480360360208110156100c357600080fd5b50356001600160a01b0316610167565b005b3480156100e157600080fd5b5061008461011d565b3480156100f657600080fd5b506100d36004803603602081101561010d57600080fd5b50356001600160a01b0316610198565b7f42e40550d946d91d5306d0d690f4f1c5e8b3ff8f6933cffb6b903db55d1933905490565b7f93a7f4a88087c5c09e3c5c07052d6ccb843680928ece767991833580209f2e6e5490565b61016f610142565b6001600160a01b0316336001600160a01b03161461018c57600080fd5b610195816101c6565b50565b6101a0610142565b6001600160a01b0316336001600160a01b0316146101bd57600080fd5b610195816101ea565b7f93a7f4a88087c5c09e3c5c07052d6ccb843680928ece767991833580209f2e6e55565b6101f2610142565b6001600160a01b0316336001600160a01b03161461020f57600080fd5b7f42e40550d946d91d5306d0d690f4f1c5e8b3ff8f6933cffb6b903db55d1933905556fea26469706673582212206173e9823367457e9a1b30bd79018794cf63fcb98db4b35d35c5cd0ad42596e364736f6c634300060c0033

Deployed Bytecode

0x60806040526004361061003f5760003560e01c8063025313a21461006f57806344c318ec146100a05780635c60da1b146100d557806366d38203146100ea575b600061004961011d565b90503660008037600080366000845af43d6000803e80801561006a573d6000f35b3d6000fd5b34801561007b57600080fd5b50610084610142565b604080516001600160a01b039092168252519081900360200190f35b3480156100ac57600080fd5b506100d3600480360360208110156100c357600080fd5b50356001600160a01b0316610167565b005b3480156100e157600080fd5b5061008461011d565b3480156100f657600080fd5b506100d36004803603602081101561010d57600080fd5b50356001600160a01b0316610198565b7f42e40550d946d91d5306d0d690f4f1c5e8b3ff8f6933cffb6b903db55d1933905490565b7f93a7f4a88087c5c09e3c5c07052d6ccb843680928ece767991833580209f2e6e5490565b61016f610142565b6001600160a01b0316336001600160a01b03161461018c57600080fd5b610195816101c6565b50565b6101a0610142565b6001600160a01b0316336001600160a01b0316146101bd57600080fd5b610195816101ea565b7f93a7f4a88087c5c09e3c5c07052d6ccb843680928ece767991833580209f2e6e55565b6101f2610142565b6001600160a01b0316336001600160a01b03161461020f57600080fd5b7f42e40550d946d91d5306d0d690f4f1c5e8b3ff8f6933cffb6b903db55d1933905556fea26469706673582212206173e9823367457e9a1b30bd79018794cf63fcb98db4b35d35c5cd0ad42596e364736f6c634300060c0033

Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.