ERC-20
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)
Balance
650,000 CRBValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | 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 Name:
CerebroProxy
Compiler Version
v0.6.12+commit.27d51765
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
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()) } } } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Contract Creation Code
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.