Source Code
Overview
ETH Balance
0 ETH
More Info
ContractCreator
Multi Chain
Multichain Addresses
N/ALatest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
0x61049661 | 8217007 | 347 days 17 hrs ago | IN | Create: OperatorFiltererLib | 0 ETH | 0.00000041 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Txn Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
9371050 | 145 days 54 mins ago | 0 ETH | ||||
9371023 | 145 days 59 mins ago | 0 ETH | ||||
9371018 | 145 days 1 hr ago | 0 ETH | ||||
9366672 | 145 days 19 hrs ago | 0 ETH | ||||
9366615 | 145 days 20 hrs ago | 0 ETH | ||||
9366606 | 145 days 20 hrs ago | 0 ETH | ||||
9228252 | 170 days 18 hrs ago | 0 ETH | ||||
9228216 | 170 days 18 hrs ago | 0 ETH | ||||
9228192 | 170 days 18 hrs ago | 0 ETH | ||||
9226732 | 171 days 1 hr ago | 0 ETH | ||||
9226731 | 171 days 1 hr ago | 0 ETH | ||||
9226730 | 171 days 1 hr ago | 0 ETH | ||||
9226729 | 171 days 1 hr ago | 0 ETH | ||||
9226729 | 171 days 1 hr ago | 0 ETH | ||||
9226728 | 171 days 1 hr ago | 0 ETH | ||||
9226727 | 171 days 1 hr ago | 0 ETH | ||||
9226726 | 171 days 1 hr ago | 0 ETH | ||||
9226725 | 171 days 1 hr ago | 0 ETH | ||||
9226724 | 171 days 1 hr ago | 0 ETH | ||||
9226001 | 171 days 4 hrs ago | 0 ETH | ||||
9226000 | 171 days 4 hrs ago | 0 ETH | ||||
9225999 | 171 days 4 hrs ago | 0 ETH | ||||
9225993 | 171 days 4 hrs ago | 0 ETH | ||||
9225928 | 171 days 4 hrs ago | 0 ETH | ||||
9222533 | 171 days 18 hrs ago | 0 ETH |
Loading...
Loading
Contract Name:
OperatorFiltererLib
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-12-28 */ // Sources flattened with hardhat v2.12.0 https://hardhat.org // File contracts/opensea/IOperatorFilterRegistry.sol // SPDX-License-Identifier: MIT pragma solidity ^0.8.13; interface IOperatorFilterRegistry { function isOperatorAllowed( address registrant, address operator ) external view returns (bool); function register(address registrant) external; function unregister(address addr) external; function registerAndSubscribe( address registrant, address subscription ) external; function registerAndCopyEntries( address registrant, address registrantToCopy ) external; function updateOperator( address registrant, address operator, bool filtered ) external; function updateOperators( address registrant, address[] calldata operators, bool filtered ) external; function updateCodeHash( address registrant, bytes32 codehash, bool filtered ) external; function updateCodeHashes( address registrant, bytes32[] calldata codeHashes, bool filtered ) external; function subscribe( address registrant, address registrantToSubscribe ) external; function unsubscribe(address registrant, bool copyExistingEntries) external; function subscriptionOf(address addr) external returns (address registrant); function subscribers(address registrant) external returns (address[] memory); function subscriberAt( address registrant, uint256 index ) external returns (address); function copyEntriesOf(address registrant, address registrantToCopy) external; function isOperatorFiltered( address registrant, address operator ) external view returns (bool); function isCodeHashOfFiltered( address registrant, address operatorWithCode ) external view returns (bool); function isCodeHashFiltered( address registrant, bytes32 codeHash ) external view returns (bool); function filteredOperators( address addr ) external view returns (address[] memory); function filteredCodeHashes( address addr ) external view returns (bytes32[] memory); function filteredOperatorAt( address registrant, uint256 index ) external view returns (address); function filteredCodeHashAt( address registrant, uint256 index ) external view returns (bytes32); function isRegistered(address addr) external view returns (bool); function codeHashOf(address addr) external view returns (bytes32); } // File contracts/libraries/OperatorFiltererLib.sol pragma solidity ^0.8.11; library OperatorFiltererLib { error OperatorNotAllowed(address operator); IOperatorFilterRegistry public constant OPERATOR_FILTER_REGISTRY = IOperatorFilterRegistry(0x000000000000AAeB6D7670E522A718067333cd4E); function initializeFilter( address registrant, address subscriptionOrRegistrantToCopy, bool subscribe ) public { // If an inheriting token contract is deployed to a network without the registry deployed, the modifier // will not revert, but the contract will need to be registered with the registry once it is deployed in // order for the modifier to filter addresses. if (subscribe) { OPERATOR_FILTER_REGISTRY.registerAndSubscribe( registrant, subscriptionOrRegistrantToCopy ); } else { if (subscriptionOrRegistrantToCopy != address(0)) { OPERATOR_FILTER_REGISTRY.registerAndCopyEntries( registrant, subscriptionOrRegistrantToCopy ); } else { OPERATOR_FILTER_REGISTRY.register(registrant); } } } function onlyAllowedOperator( address registrant, address msgSender, address from ) public view { // Allow spending tokens from addresses with balance // Note that this still allows listings and marketplaces with escrow to transfer tokens if transferred // from an EOA. if (from == msgSender) { return; } if (!OPERATOR_FILTER_REGISTRY.isOperatorAllowed(registrant, msgSender)) { revert OperatorNotAllowed(msgSender); } } function onlyAllowedOperatorApproval( address registrant, address operator ) public view { if (!OPERATOR_FILTER_REGISTRY.isOperatorAllowed(registrant, operator)) { revert OperatorNotAllowed(operator); } } }
[{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"OperatorNotAllowed","type":"error"},{"inputs":[],"name":"OPERATOR_FILTER_REGISTRY","outputs":[{"internalType":"contract IOperatorFilterRegistry","name":"","type":"IOperatorFilterRegistry"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registrant","type":"address"},{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"from","type":"address"}],"name":"onlyAllowedOperator","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registrant","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"onlyAllowedOperatorApproval","outputs":[],"stateMutability":"view","type":"function"}]
Contract Creation Code
61049661003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c806341f434341461005b5780634e6041511461008c57806373d580ed146100a157806375664b0f146100c1575b600080fd5b6100706daaeb6d7670e522a718067333cd4e81565b6040516001600160a01b03909116815260200160405180910390f35b61009f61009a36600461036e565b6100d4565b005b8180156100ad57600080fd5b5061009f6100bc3660046103c2565b6101a2565b61009f6100cf366004610409565b6102a8565b816001600160a01b0316816001600160a01b0316036100f257505050565b604051633185c44d60e21b81526001600160a01b038085166004830152831660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa15801561014c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610170919061043c565b61019d57604051633b79c77360e21b81526001600160a01b03831660048201526024015b60405180910390fd5b505050565b801561021d57604051633e9f1edf60e11b81526001600160a01b038085166004830152831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe906044015b600060405180830381600087803b15801561020057600080fd5b505af1158015610214573d6000803e3d6000fd5b50505050505050565b6001600160a01b0382161561026e5760405163a0af290360e01b81526001600160a01b038085166004830152831660248201526daaeb6d7670e522a718067333cd4e9063a0af2903906044016101e6565b604051632210724360e11b81526001600160a01b03841660048201526daaeb6d7670e522a718067333cd4e90634420e486906024016101e6565b604051633185c44d60e21b81526001600160a01b038084166004830152821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015610302573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610326919061043c565b61034e57604051633b79c77360e21b81526001600160a01b0382166004820152602401610194565b5050565b80356001600160a01b038116811461036957600080fd5b919050565b60008060006060848603121561038357600080fd5b61038c84610352565b925061039a60208501610352565b91506103a860408501610352565b90509250925092565b80151581146103bf57600080fd5b50565b6000806000606084860312156103d757600080fd5b6103e084610352565b92506103ee60208501610352565b915060408401356103fe816103b1565b809150509250925092565b6000806040838503121561041c57600080fd5b61042583610352565b915061043360208401610352565b90509250929050565b60006020828403121561044e57600080fd5b8151610459816103b1565b939250505056fea26469706673582212205ba475177204356747a1819dbbf5f0fa65e74881f769631fc476a0db97268e2c64736f6c634300080d0033
Deployed Bytecode
0x739403e5361ca3706daf640ece4476ade6538bfecc30146080604052600436106100565760003560e01c806341f434341461005b5780634e6041511461008c57806373d580ed146100a157806375664b0f146100c1575b600080fd5b6100706daaeb6d7670e522a718067333cd4e81565b6040516001600160a01b03909116815260200160405180910390f35b61009f61009a36600461036e565b6100d4565b005b8180156100ad57600080fd5b5061009f6100bc3660046103c2565b6101a2565b61009f6100cf366004610409565b6102a8565b816001600160a01b0316816001600160a01b0316036100f257505050565b604051633185c44d60e21b81526001600160a01b038085166004830152831660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa15801561014c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610170919061043c565b61019d57604051633b79c77360e21b81526001600160a01b03831660048201526024015b60405180910390fd5b505050565b801561021d57604051633e9f1edf60e11b81526001600160a01b038085166004830152831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe906044015b600060405180830381600087803b15801561020057600080fd5b505af1158015610214573d6000803e3d6000fd5b50505050505050565b6001600160a01b0382161561026e5760405163a0af290360e01b81526001600160a01b038085166004830152831660248201526daaeb6d7670e522a718067333cd4e9063a0af2903906044016101e6565b604051632210724360e11b81526001600160a01b03841660048201526daaeb6d7670e522a718067333cd4e90634420e486906024016101e6565b604051633185c44d60e21b81526001600160a01b038084166004830152821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015610302573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610326919061043c565b61034e57604051633b79c77360e21b81526001600160a01b0382166004820152602401610194565b5050565b80356001600160a01b038116811461036957600080fd5b919050565b60008060006060848603121561038357600080fd5b61038c84610352565b925061039a60208501610352565b91506103a860408501610352565b90509250925092565b80151581146103bf57600080fd5b50565b6000806000606084860312156103d757600080fd5b6103e084610352565b92506103ee60208501610352565b915060408401356103fe816103b1565b809150509250925092565b6000806040838503121561041c57600080fd5b61042583610352565b915061043360208401610352565b90509250929050565b60006020828403121561044e57600080fd5b8151610459816103b1565b939250505056fea26469706673582212205ba475177204356747a1819dbbf5f0fa65e74881f769631fc476a0db97268e2c64736f6c634300080d0033
Deployed Bytecode Sourcemap
2675:1819:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2757:139;;2853:42;2757:139;;;;;-1:-1:-1;;;;;217:32:1;;;199:51;;187:2;172:18;2757:139:0;;;;;;;3758:490;;;;;;:::i;:::-;;:::i;:::-;;2903:849;;;;;;;;;;-1:-1:-1;2903:849:0;;;;;:::i;:::-;;:::i;4254:237::-;;;;;;:::i;:::-;;:::i;3758:490::-;4078:9;-1:-1:-1;;;;;4070:17:0;:4;-1:-1:-1;;;;;4070:17:0;;4066:46;;3758:490;;;:::o;4066:46::-;4123:65;;-1:-1:-1;;;4123:65:0;;-1:-1:-1;;;;;1790:15:1;;;4123:65:0;;;1772:34:1;1842:15;;1822:18;;;1815:43;2853:42:0;;4123;;1707:18:1;;4123:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4118:125;;4206:29;;-1:-1:-1;;;4206:29:0;;-1:-1:-1;;;;;217:32:1;;4206:29:0;;;199:51:1;172:18;;4206:29:0;;;;;;;;4118:125;3758:490;;;:::o;2903:849::-;3314:9;3310:437;;;3334:116;;-1:-1:-1;;;3334:116:0;;-1:-1:-1;;;;;1790:15:1;;;3334:116:0;;;1772:34:1;1842:15;;1822:18;;;1815:43;2853:42:0;;3334:45;;1707:18:1;;3334:116:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3758:490;;;:::o;3310:437::-;-1:-1:-1;;;;;3477:44:0;;;3473:267;;3534:124;;-1:-1:-1;;;3534:124:0;;-1:-1:-1;;;;;1790:15:1;;;3534:124:0;;;1772:34:1;1842:15;;1822:18;;;1815:43;2853:42:0;;3534:47;;1707:18:1;;3534:124:0;1560:304:1;3473:267:0;3685:45;;-1:-1:-1;;;3685:45:0;;-1:-1:-1;;;;;217:32:1;;3685:45:0;;;199:51:1;2853:42:0;;3685:33;;172:18:1;;3685:45:0;14:242:1;4254:237:0;4368:64;;-1:-1:-1;;;4368:64:0;;-1:-1:-1;;;;;1790:15:1;;;4368:64:0;;;1772:34:1;1842:15;;1822:18;;;1815:43;2853:42:0;;4368;;1707:18:1;;4368:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4363:123;;4450:28;;-1:-1:-1;;;4450:28:0;;-1:-1:-1;;;;;217:32:1;;4450:28:0;;;199:51:1;172:18;;4450:28:0;14:242:1;4363:123:0;4254:237;;:::o;261:173:1:-;329:20;;-1:-1:-1;;;;;378:31:1;;368:42;;358:70;;424:1;421;414:12;358:70;261:173;;;:::o;439:334::-;516:6;524;532;585:2;573:9;564:7;560:23;556:32;553:52;;;601:1;598;591:12;553:52;624:29;643:9;624:29;:::i;:::-;614:39;;672:38;706:2;695:9;691:18;672:38;:::i;:::-;662:48;;729:38;763:2;752:9;748:18;729:38;:::i;:::-;719:48;;439:334;;;;;:::o;778:118::-;864:5;857:13;850:21;843:5;840:32;830:60;;886:1;883;876:12;830:60;778:118;:::o;901:389::-;975:6;983;991;1044:2;1032:9;1023:7;1019:23;1015:32;1012:52;;;1060:1;1057;1050:12;1012:52;1083:29;1102:9;1083:29;:::i;:::-;1073:39;;1131:38;1165:2;1154:9;1150:18;1131:38;:::i;:::-;1121:48;;1219:2;1208:9;1204:18;1191:32;1232:28;1254:5;1232:28;:::i;:::-;1279:5;1269:15;;;901:389;;;;;:::o;1295:260::-;1363:6;1371;1424:2;1412:9;1403:7;1399:23;1395:32;1392:52;;;1440:1;1437;1430:12;1392:52;1463:29;1482:9;1463:29;:::i;:::-;1453:39;;1511:38;1545:2;1534:9;1530:18;1511:38;:::i;:::-;1501:48;;1295:260;;;;;:::o;1869:245::-;1936:6;1989:2;1977:9;1968:7;1964:23;1960:32;1957:52;;;2005:1;2002;1995:12;1957:52;2037:9;2031:16;2056:28;2078:5;2056:28;:::i;:::-;2103:5;1869:245;-1:-1:-1;;;1869:245:1:o
Swarm Source
ipfs://5ba475177204356747a1819dbbf5f0fa65e74881f769631fc476a0db97268e2c
Loading...
Loading
[ Download: CSV Export ]
[ 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.