Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Loading...
Loading
Contract Name:
BlockAllRegistry
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
Yes with 2000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.19; import {IBlockListRegistry} from "./IBlockListRegistry.sol"; /// @title BlockAllRegistry /// @notice BlockList that blocks all approvals /// can be used as a semi-soulbound token /// @author transientlabs.xyz /// @custom:version 4.1.0 contract BlockAllRegistry is IBlockListRegistry { /// @inheritdoc IBlockListRegistry function getBlockListStatus(address /*operator*/) external pure override returns(bool) { return true; } /// @inheritdoc IBlockListRegistry function setBlockListStatus(address[] calldata /*operators*/, bool /*status*/) external pure override { revert(); } /// @inheritdoc IBlockListRegistry function clearBlockList() external pure override { revert(); } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.19; /// @title BlockList Registry /// @notice interface for the BlockListRegistry Contract /// @author transientlabs.xyz /// @custom:version 4.0.0 interface IBlockListRegistry { /*////////////////////////////////////////////////////////////////////////// Events //////////////////////////////////////////////////////////////////////////*/ event BlockListStatusChange(address indexed user, address indexed operator, bool indexed status); event BlockListCleared(address indexed user); /*////////////////////////////////////////////////////////////////////////// Public Read Functions //////////////////////////////////////////////////////////////////////////*/ /// @notice function to get blocklist status with True meaning that the operator is blocked function getBlockListStatus(address operator) external view returns (bool); /*////////////////////////////////////////////////////////////////////////// Public Write Functions //////////////////////////////////////////////////////////////////////////*/ /// @notice function to set the block list status for multiple operators /// @dev must be called by the blockList owner function setBlockListStatus(address[] calldata operators, bool status) external; /// @notice function to clear the block list status /// @dev must be called by the blockList owner function clearBlockList() external; }
{ "remappings": [ "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", "openzeppelin/=lib/openzeppelin-contracts/contracts/", "tl-sol-tools/=lib/tl-sol-tools/src/" ], "optimizer": { "enabled": true, "runs": 2000 }, "metadata": { "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "london", "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"BlockListCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"bool","name":"status","type":"bool"}],"name":"BlockListStatusChange","type":"event"},{"inputs":[],"name":"clearBlockList","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getBlockListStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bool","name":"","type":"bool"}],"name":"setBlockListStatus","outputs":[],"stateMutability":"pure","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50610184806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063334980a514610046578063c75a60cf1461006e578063f99a1d1614610078575b600080fd5b61005a610054366004610086565b50600190565b604051901515815260200160405180910390f35b610076600080fd5b005b6100766100413660046100c3565b60006020828403121561009857600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146100bc57600080fd5b9392505050565b6000806000604084860312156100d857600080fd5b833567ffffffffffffffff808211156100f057600080fd5b818601915086601f83011261010457600080fd5b81358181111561011357600080fd5b8760208260051b850101111561012857600080fd5b60209283019550935050840135801515811461014357600080fd5b80915050925092509256fea2646970667358221220ba5240e0878d415c9b5b4a3e401146cfcf8e1ccec746450cdae315c92e937ba364736f6c63430008130033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063334980a514610046578063c75a60cf1461006e578063f99a1d1614610078575b600080fd5b61005a610054366004610086565b50600190565b604051901515815260200160405180910390f35b610076600080fd5b005b6100766100413660046100c3565b60006020828403121561009857600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146100bc57600080fd5b9392505050565b6000806000604084860312156100d857600080fd5b833567ffffffffffffffff808211156100f057600080fd5b818601915086601f83011261010457600080fd5b81358181111561011357600080fd5b8760208260051b850101111561012857600080fd5b60209283019550935050840135801515811461014357600080fd5b80915050925092509256fea2646970667358221220ba5240e0878d415c9b5b4a3e401146cfcf8e1ccec746450cdae315c92e937ba364736f6c63430008130033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
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.