Overview
CRO Balance
0 CRO
CRO Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 458 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Update Royalty I... | 17211880 | 34 days ago | IN | 0 CRO | 0.5502581 | ||||
Update Royalty I... | 17211856 | 34 days ago | IN | 0 CRO | 0.88375 | ||||
Update Royalty I... | 17211848 | 34 days ago | IN | 0 CRO | 0.88375 | ||||
Update Royalty I... | 16317422 | 93 days ago | IN | 0 CRO | 0.5519626 | ||||
Update Royalty I... | 16184306 | 102 days ago | IN | 0 CRO | 0.32300187 | ||||
Update Royalty I... | 15805502 | 127 days ago | IN | 0 CRO | 0.22278075 | ||||
Update Royalty I... | 15805472 | 127 days ago | IN | 0 CRO | 0.23686015 | ||||
Update Royalty I... | 15069146 | 175 days ago | IN | 0 CRO | 0.54519429 | ||||
Update Royalty I... | 14942755 | 184 days ago | IN | 0 CRO | 0.55120942 | ||||
Update Royalty I... | 14680265 | 201 days ago | IN | 0 CRO | 0.5586642 | ||||
Update Royalty I... | 14151035 | 235 days ago | IN | 0 CRO | 0.53025 | ||||
Update Royalty I... | 14151026 | 235 days ago | IN | 0 CRO | 0.52770375 | ||||
Update Royalty I... | 14150999 | 235 days ago | IN | 0 CRO | 0.55013437 | ||||
Update Royalty I... | 13869783 | 254 days ago | IN | 0 CRO | 0.555288 | ||||
Update Royalty I... | 13843810 | 256 days ago | IN | 0 CRO | 0.54944844 | ||||
Update Royalty I... | 13660971 | 268 days ago | IN | 0 CRO | 0.5530962 | ||||
Update Royalty I... | 13634000 | 270 days ago | IN | 0 CRO | 0.55365578 | ||||
Update Royalty I... | 13422971 | 283 days ago | IN | 0 CRO | 0.22271457 | ||||
Update Royalty I... | 13173299 | 300 days ago | IN | 0 CRO | 0.22064117 | ||||
Update Royalty I... | 13173130 | 300 days ago | IN | 0 CRO | 0.5501066 | ||||
Update Royalty I... | 13130298 | 303 days ago | IN | 0 CRO | 0.30904392 | ||||
Transfer Ownersh... | 13015980 | 310 days ago | IN | 0 CRO | 0.14454615 | ||||
Update Royalty I... | 12894295 | 318 days ago | IN | 0 CRO | 0.44547327 | ||||
Update Royalty I... | 12894270 | 318 days ago | IN | 0 CRO | 1.10008621 | ||||
Update Royalty I... | 12849284 | 321 days ago | IN | 0 CRO | 1.10609984 |
Loading...
Loading
Contract Name:
RoyaltyFeeSetter
Compiler Version
v0.8.4+commit.c7e474f2
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/** .... .... .... #@@@? ^@@@@ :@@@@ P&&&! :@@@@ :@@@@ .... .... .... ..................... .... ............ ...!@@@@:... ............ ........!@@@@ !@@@& @@@@: G@@@Y .@@@@@@@@@@@@@@@@@@@@@. #@@@? !@@@@@@@@@@@@~ J@@@@@@@@@@@@^ P@@@@@@@@@@@@. B@@@@@@@@@@@@ !@@@& @@@@: G@@@5 .@@@@&&&&@@@@@&&&&@@@@. #@@@? !@@@@&&&&@@@@~ 7&&&&@@@@&&&&: P@@@@#&&&@@@@. B@@@@&&&&@@@@ ~&&&G #&&&. G@@@5 .@@@@. G@@@5 .@@@@. #@@@? !@@@& &@@@~ ^@@@@ P@@@G...~@@@@. B@@@Y ^@@@@ G@@@5 .@@@@. G@@@5 .@@@@. #@@@? !@@@& &@@@~ ^@@@@ P@@@@@@@@@@@@. B@@@J :@@@@ G@@@5 .@@@@. G@@@5 .@@@@. #@@@? !@@@& &@@@~ ^@@@@ P@@@@#&&&##&#. B@@@J :@@@@ ............B@@@5 .@@@@. G@@@5 .@@@@. #@@@? !@@@& &@@@~ ^@@@@ P@@@G........ B@@@5...!@@@@ !@@@@@@@@@@@@@@@@5 .@@@@. G@@@5 .@@@@. #@@@? 7@@@& &@@@~ ^@@@@ P@@@@@@@@@@@@. B@@@@@@@@@@@@ ~&&&&&&&&&&&&&&&&? .&&&# Y&&&? .&&&#. P&&&! ~&&&G B&&&^ :&&&# J&&&&&&&&&&&&. 5&&&&&&&&&&&# */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol"; import {IRoyaltyFeeRegistry} from "../interfaces/IRoyaltyFeeRegistry.sol"; import {IOwnable} from "../interfaces/IOwnable.sol"; /** * @title RoyaltyFeeSetter * @notice It is used to allow creators to set royalty parameters in the RoyaltyFeeRegistry. */ contract RoyaltyFeeSetter is Ownable { // ERC721 interfaceID bytes4 public constant INTERFACE_ID_ERC721 = 0x80ac58cd; // ERC1155 interfaceID bytes4 public constant INTERFACE_ID_ERC1155 = 0xd9b67a26; // ERC2981 interfaceID bytes4 public constant INTERFACE_ID_ERC2981 = 0x2a55205a; address public immutable royaltyFeeRegistry; /** * @notice Constructor * @param _royaltyFeeRegistry address of the royalty fee registry */ constructor(address _royaltyFeeRegistry) { royaltyFeeRegistry = _royaltyFeeRegistry; } /** * @notice Update royalty info for collection if admin * @dev Only to be called if there is no setter address * @param collection address of the NFT contract * @param setter address that sets the receiver * @param receiver receiver for the royalty fee * @param fee fee (500 = 5%, 1,000 = 10%) */ function updateRoyaltyInfoForCollectionIfAdmin( address collection, address setter, address receiver, uint256 fee ) external { require(!IERC165(collection).supportsInterface(INTERFACE_ID_ERC2981), "Admin: Must not be ERC2981"); require(msg.sender == IOwnable(collection).admin(), "Admin: Not the admin"); _updateRoyaltyInfoForCollectionIfOwnerOrAdmin(collection, setter, receiver, fee); } /** * @notice Update royalty info for collection if owner * @dev Only to be called if there is no setter address * @param collection address of the NFT contract * @param setter address that sets the receiver * @param receiver receiver for the royalty fee * @param fee fee (500 = 5%, 1,000 = 10%) */ function updateRoyaltyInfoForCollectionIfOwner( address collection, address setter, address receiver, uint256 fee ) external { require(!IERC165(collection).supportsInterface(INTERFACE_ID_ERC2981), "Owner: Must not be ERC2981"); require(msg.sender == IOwnable(collection).owner(), "Owner: Not the owner"); _updateRoyaltyInfoForCollectionIfOwnerOrAdmin(collection, setter, receiver, fee); } /** * @notice Update royalty info for collection * @dev Only to be called if there msg.sender is the setter * @param collection address of the NFT contract * @param setter address that sets the receiver * @param receiver receiver for the royalty fee * @param fee fee (500 = 5%, 1,000 = 10%) */ function updateRoyaltyInfoForCollectionIfSetter( address collection, address setter, address receiver, uint256 fee ) external { (address currentSetter, , ) = IRoyaltyFeeRegistry(royaltyFeeRegistry).royaltyFeeInfoCollection( collection ); require(msg.sender == currentSetter, "Setter: Not the setter"); IRoyaltyFeeRegistry(royaltyFeeRegistry).updateRoyaltyInfoForCollection( collection, setter, receiver, fee ); } /** * @notice Update royalty info for collection * @dev Can only be called by contract owner (of this) * @param collection address of the NFT contract * @param setter address that sets the receiver * @param receiver receiver for the royalty fee * @param fee fee (500 = 5%, 1,000 = 10%) */ function updateRoyaltyInfoForCollection( address collection, address setter, address receiver, uint256 fee ) external onlyOwner { IRoyaltyFeeRegistry(royaltyFeeRegistry).updateRoyaltyInfoForCollection( collection, setter, receiver, fee ); } /** * @notice Batch update royalty info for collection. * @dev Can only be called by contract owner (of this) * @param collections address of the NFT contract * @param setters address that sets the receiver * @param receivers receiver for the royalty fee * @param fees fee (500 = 5%, 1,000 = 10%) * @param numOfCollections number of collections */ function updateRoyaltyInfoForCollectionBatch( address[] memory collections, address[] memory setters, address[] memory receivers, uint256[] memory fees, uint256 numOfCollections ) external onlyOwner { require( (collections.length == numOfCollections) && (setters.length == numOfCollections) && (receivers.length == numOfCollections) && (fees.length == numOfCollections), "RoyaltyFeeSetter: length must match numOfCollections" ); for (uint256 i = 0; i < numOfCollections; i++) { require( !IERC165(collections[i]).supportsInterface(INTERFACE_ID_ERC2981), "RoyaltyFeeSetter: Must not be ERC2981" ); _updateRoyaltyInfoForCollectionIfOwnerOrAdmin(collections[i], setters[i], receivers[i], fees[i]); } } /** * @notice Update owner of royalty fee registry * @dev Can be used for migration of this royalty fee setter contract * @param _owner new owner address */ function updateOwnerOfRoyaltyFeeRegistry(address _owner) external onlyOwner { IOwnable(royaltyFeeRegistry).transferOwnership(_owner); } /** * @notice Update royalty info for collection * @param _royaltyFeeLimit new royalty fee limit (500 = 5%, 1,000 = 10%) */ function updateRoyaltyFeeLimit(uint256 _royaltyFeeLimit) external onlyOwner { IRoyaltyFeeRegistry(royaltyFeeRegistry).updateRoyaltyFeeLimit(_royaltyFeeLimit); } /** * @notice Check royalty info for collection * @param collection collection address * @return (whether there is a setter (address(0 if not)), * Position * 0: Royalty setter is set in the registry * 1: ERC2981 and no setter * 2: setter can be set using owner() * 3: setter can be set using admin() * 4: setter cannot be set, nor support for ERC2981 */ function checkForCollectionSetter(address collection) external view returns (address, uint8) { (address currentSetter, , ) = IRoyaltyFeeRegistry(royaltyFeeRegistry).royaltyFeeInfoCollection( collection ); if (currentSetter != address(0)) { return (currentSetter, 0); } try IERC165(collection).supportsInterface(INTERFACE_ID_ERC2981) returns (bool interfaceSupport) { if (interfaceSupport) { return (address(0), 1); } } catch {} try IOwnable(collection).owner() returns (address setter) { return (setter, 2); } catch { try IOwnable(collection).admin() returns (address setter) { return (setter, 3); } catch { return (address(0), 4); } } } /** * @notice Update information and perform checks before updating royalty fee registry * @param collection address of the NFT contract * @param setter address that sets the receiver * @param receiver receiver for the royalty fee * @param fee fee (500 = 5%, 1,000 = 10%) */ function _updateRoyaltyInfoForCollectionIfOwnerOrAdmin( address collection, address setter, address receiver, uint256 fee ) internal { (address currentSetter, , ) = IRoyaltyFeeRegistry(royaltyFeeRegistry).royaltyFeeInfoCollection( collection ); require(currentSetter == address(0), "Setter: Already set"); require( (IERC165(collection).supportsInterface(INTERFACE_ID_ERC721) || IERC165(collection).supportsInterface(INTERFACE_ID_ERC1155)), "Setter: Not ERC721/ERC1155" ); IRoyaltyFeeRegistry(royaltyFeeRegistry).updateRoyaltyInfoForCollection( collection, setter, receiver, fee ); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface IRoyaltyFeeRegistry { function updateRoyaltyInfoForCollection( address collection, address setter, address receiver, uint256 fee ) external; function updateRoyaltyFeeLimit(uint256 _royaltyFeeLimit) external; function royaltyInfo(address collection, uint256 amount) external view returns (address, uint256); function royaltyFeeInfoCollection(address collection) external view returns ( address, address, uint256 ); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface IOwnable { function transferOwnership(address newOwner) external; function owner() external view returns (address); function admin() external view returns (address); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @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 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. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_royaltyFeeRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"INTERFACE_ID_ERC1155","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INTERFACE_ID_ERC2981","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INTERFACE_ID_ERC721","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"collection","type":"address"}],"name":"checkForCollectionSetter","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"royaltyFeeRegistry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"updateOwnerOfRoyaltyFeeRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_royaltyFeeLimit","type":"uint256"}],"name":"updateRoyaltyFeeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"collection","type":"address"},{"internalType":"address","name":"setter","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"updateRoyaltyInfoForCollection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"collections","type":"address[]"},{"internalType":"address[]","name":"setters","type":"address[]"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"fees","type":"uint256[]"},{"internalType":"uint256","name":"numOfCollections","type":"uint256"}],"name":"updateRoyaltyInfoForCollectionBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"collection","type":"address"},{"internalType":"address","name":"setter","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"updateRoyaltyInfoForCollectionIfAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"collection","type":"address"},{"internalType":"address","name":"setter","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"updateRoyaltyInfoForCollectionIfOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"collection","type":"address"},{"internalType":"address","name":"setter","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"updateRoyaltyInfoForCollectionIfSetter","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60a060405234801561001057600080fd5b5060405161162c38038061162c83398101604081905261002f9161009d565b6100383361004d565b60601b6001600160601b0319166080526100cb565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100ae578081fd5b81516001600160a01b03811681146100c4578182fd5b9392505050565b60805160601c61151261011a600039600081816101e0015281816105140152818161061c01528181610a3701528181610aff01528181610b8701528181610e010152610eed01526115126000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063b060dd8611610097578063c16f515611610066578063c16f5156146101db578063c54e549714610202578063e72ba45614610236578063f2fde38b1461024957600080fd5b8063b060dd8614610199578063b9223c9d146101a7578063bbdf9b68146101ba578063bc6bc0cd146101cd57600080fd5b80633755fa80116100d35780633755fa8014610146578063715018a6146101595780638da5cb5b14610161578063ab0166701461018657600080fd5b80630ae0cc11146100fa578063275da5ef1461010f57806333bf615614610122575b600080fd5b61010d6101083660046112ac565b61025c565b005b61010d61011d36600461121a565b6104f2565b610130636cdb3d1360e11b81565b60405161013d91906113eb565b60405180910390f35b61010d61015436600461121a565b61067f565b61010d610829565b6000546001600160a01b03165b6040516001600160a01b03909116815260200161013d565b61010d61019436600461121a565b61085f565b61013063152a902d60e11b81565b61010d6101b53660046113d3565b6109f7565b61010d6101c836600461121a565b610a9f565b6101306380ac58cd60e01b81565b61016e7f000000000000000000000000000000000000000000000000000000000000000081565b6102156102103660046111db565b610b61565b604080516001600160a01b03909316835260ff90911660208301520161013d565b61010d6102443660046111db565b610db8565b61010d6102573660046111db565b610e30565b6000546001600160a01b0316331461028f5760405162461bcd60e51b815260040161028690611400565b60405180910390fd5b80855114801561029f5750808451145b80156102ab5750808351145b80156102b75750808251145b6103205760405162461bcd60e51b815260206004820152603460248201527f526f79616c74794665655365747465723a206c656e677468206d757374206d61604482015273746368206e756d4f66436f6c6c656374696f6e7360601b6064820152608401610286565b60005b818110156104ea5785818151811061034b57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166301ffc9a7632a55205a60e01b6040518263ffffffff1660e01b815260040161038591906113eb565b60206040518083038186803b15801561039d57600080fd5b505afa1580156103b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d591906113b3565b156104305760405162461bcd60e51b815260206004820152602560248201527f526f79616c74794665655365747465723a204d757374206e6f74206265204552604482015264433239383160d81b6064820152608401610286565b6104d886828151811061045357634e487b7160e01b600052603260045260246000fd5b602002602001015186838151811061047b57634e487b7160e01b600052603260045260246000fd5b60200260200101518684815181106104a357634e487b7160e01b600052603260045260246000fd5b60200260200101518685815181106104cb57634e487b7160e01b600052603260045260246000fd5b6020026020010151610ecb565b806104e28161148a565b915050610323565b505050505050565b6040516338c7be4760e21b81526001600160a01b0385811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063e31ef91c9060240160606040518083038186803b15801561055857600080fd5b505afa15801561056c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610590919061126a565b5090915050336001600160a01b038216146105e65760405162461bcd60e51b815260206004820152601660248201527529b2ba3a32b91d102737ba103a34329039b2ba3a32b960511b6044820152606401610286565b60405163177bf36d60e31b81526001600160a01b03868116600483015285811660248301528481166044830152606482018490527f0000000000000000000000000000000000000000000000000000000000000000169063bbdf9b6890608401600060405180830381600087803b15801561066057600080fd5b505af1158015610674573d6000803e3d6000fd5b505050505050505050565b6040516301ffc9a760e01b81526001600160a01b038516906301ffc9a7906106b29063152a902d60e11b906004016113eb565b60206040518083038186803b1580156106ca57600080fd5b505afa1580156106de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070291906113b3565b1561074f5760405162461bcd60e51b815260206004820152601a60248201527f4f776e65723a204d757374206e6f7420626520455243323938310000000000006044820152606401610286565b836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561078857600080fd5b505afa15801561079c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c091906111fe565b6001600160a01b0316336001600160a01b0316146108175760405162461bcd60e51b815260206004820152601460248201527327bbb732b91d102737ba103a34329037bbb732b960611b6044820152606401610286565b61082384848484610ecb565b50505050565b6000546001600160a01b031633146108535760405162461bcd60e51b815260040161028690611400565b61085d6000611113565b565b6040516301ffc9a760e01b81526001600160a01b038516906301ffc9a7906108929063152a902d60e11b906004016113eb565b60206040518083038186803b1580156108aa57600080fd5b505afa1580156108be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e291906113b3565b1561092f5760405162461bcd60e51b815260206004820152601a60248201527f41646d696e3a204d757374206e6f7420626520455243323938310000000000006044820152606401610286565b836001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b15801561096857600080fd5b505afa15801561097c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a091906111fe565b6001600160a01b0316336001600160a01b0316146108175760405162461bcd60e51b815260206004820152601460248201527320b236b4b71d102737ba103a34329030b236b4b760611b6044820152606401610286565b6000546001600160a01b03163314610a215760405162461bcd60e51b815260040161028690611400565b60405163b9223c9d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b9223c9d906024015b600060405180830381600087803b158015610a8457600080fd5b505af1158015610a98573d6000803e3d6000fd5b5050505050565b6000546001600160a01b03163314610ac95760405162461bcd60e51b815260040161028690611400565b60405163177bf36d60e31b81526001600160a01b03858116600483015284811660248301528381166044830152606482018390527f0000000000000000000000000000000000000000000000000000000000000000169063bbdf9b6890608401600060405180830381600087803b158015610b4357600080fd5b505af1158015610b57573d6000803e3d6000fd5b5050505050505050565b6040516338c7be4760e21b81526001600160a01b038281166004830152600091829182917f00000000000000000000000000000000000000000000000000000000000000009091169063e31ef91c9060240160606040518083038186803b158015610bcb57600080fd5b505afa158015610bdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c03919061126a565b50909150506001600160a01b03811615610c21579360009350915050565b6040516301ffc9a760e01b81526001600160a01b038516906301ffc9a790610c549063152a902d60e11b906004016113eb565b60206040518083038186803b158015610c6c57600080fd5b505afa925050508015610c9c575060408051601f3d908101601f19168201909252610c99918101906113b3565b60015b610ca557610cbb565b8015610cb957506000946001945092505050565b505b836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610cf457600080fd5b505afa925050508015610d24575060408051601f3d908101601f19168201909252610d21918101906111fe565b60015b610dad57836001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6157600080fd5b505afa925050508015610d91575060408051601f3d908101601f19168201909252610d8e918101906111fe565b60015b610da2575060009360049350915050565b946003945092505050565b946002945092505050565b6000546001600160a01b03163314610de25760405162461bcd60e51b815260040161028690611400565b60405163f2fde38b60e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b90602401610a6a565b6000546001600160a01b03163314610e5a5760405162461bcd60e51b815260040161028690611400565b6001600160a01b038116610ebf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610286565b610ec881611113565b50565b6040516338c7be4760e21b81526001600160a01b0385811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063e31ef91c9060240160606040518083038186803b158015610f3157600080fd5b505afa158015610f45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f69919061126a565b50909150506001600160a01b03811615610fbb5760405162461bcd60e51b815260206004820152601360248201527214d95d1d195c8e88105b1c9958591e481cd95d606a1b6044820152606401610286565b6040516301ffc9a760e01b81526001600160a01b038616906301ffc9a790610fee906380ac58cd60e01b906004016113eb565b60206040518083038186803b15801561100657600080fd5b505afa15801561101a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103e91906113b3565b806110c757506040516301ffc9a760e01b81526001600160a01b038616906301ffc9a79061107790636cdb3d1360e11b906004016113eb565b60206040518083038186803b15801561108f57600080fd5b505afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c791906113b3565b6105e65760405162461bcd60e51b815260206004820152601a60248201527f5365747465723a204e6f74204552433732312f455243313135350000000000006044820152606401610286565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600082601f830112611173578081fd5b8135602061118861118383611466565b611435565b80838252828201915082860187848660051b89010111156111a7578586fd5b855b858110156111ce5781356111bc816114c7565b845292840192908401906001016111a9565b5090979650505050505050565b6000602082840312156111ec578081fd5b81356111f7816114c7565b9392505050565b60006020828403121561120f578081fd5b81516111f7816114c7565b6000806000806080858703121561122f578283fd5b843561123a816114c7565b9350602085013561124a816114c7565b9250604085013561125a816114c7565b9396929550929360600135925050565b60008060006060848603121561127e578283fd5b8351611289816114c7565b602085015190935061129a816114c7565b80925050604084015190509250925092565b600080600080600060a086880312156112c3578081fd5b853567ffffffffffffffff808211156112da578283fd5b6112e689838a01611163565b96506020915081880135818111156112fc578384fd5b6113088a828b01611163565b96505060408801358181111561131c578384fd5b6113288a828b01611163565b95505060608801358181111561133c578384fd5b88019050601f8101891361134e578283fd5b803561135c61118382611466565b8082825284820191508484018c868560051b870101111561137b578687fd5b8694505b8385101561139d57803583526001949094019391850191850161137f565b50989b979a509598608001359695505050505050565b6000602082840312156113c4578081fd5b815180151581146111f7578182fd5b6000602082840312156113e4578081fd5b5035919050565b6001600160e01b031991909116815260200190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b604051601f8201601f1916810167ffffffffffffffff8111828210171561145e5761145e6114b1565b604052919050565b600067ffffffffffffffff821115611480576114806114b1565b5060051b60200190565b60006000198214156114aa57634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610ec857600080fdfea264697066735822122028731584a3928e336a17efe6a066ceac32b8508226f09e0f2f2dba99169e5ef764736f6c6343000804003300000000000000000000000002c48e6ad5443b0439e177b7a221b3584114a1a8
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100f55760003560e01c8063b060dd8611610097578063c16f515611610066578063c16f5156146101db578063c54e549714610202578063e72ba45614610236578063f2fde38b1461024957600080fd5b8063b060dd8614610199578063b9223c9d146101a7578063bbdf9b68146101ba578063bc6bc0cd146101cd57600080fd5b80633755fa80116100d35780633755fa8014610146578063715018a6146101595780638da5cb5b14610161578063ab0166701461018657600080fd5b80630ae0cc11146100fa578063275da5ef1461010f57806333bf615614610122575b600080fd5b61010d6101083660046112ac565b61025c565b005b61010d61011d36600461121a565b6104f2565b610130636cdb3d1360e11b81565b60405161013d91906113eb565b60405180910390f35b61010d61015436600461121a565b61067f565b61010d610829565b6000546001600160a01b03165b6040516001600160a01b03909116815260200161013d565b61010d61019436600461121a565b61085f565b61013063152a902d60e11b81565b61010d6101b53660046113d3565b6109f7565b61010d6101c836600461121a565b610a9f565b6101306380ac58cd60e01b81565b61016e7f00000000000000000000000002c48e6ad5443b0439e177b7a221b3584114a1a881565b6102156102103660046111db565b610b61565b604080516001600160a01b03909316835260ff90911660208301520161013d565b61010d6102443660046111db565b610db8565b61010d6102573660046111db565b610e30565b6000546001600160a01b0316331461028f5760405162461bcd60e51b815260040161028690611400565b60405180910390fd5b80855114801561029f5750808451145b80156102ab5750808351145b80156102b75750808251145b6103205760405162461bcd60e51b815260206004820152603460248201527f526f79616c74794665655365747465723a206c656e677468206d757374206d61604482015273746368206e756d4f66436f6c6c656374696f6e7360601b6064820152608401610286565b60005b818110156104ea5785818151811061034b57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166301ffc9a7632a55205a60e01b6040518263ffffffff1660e01b815260040161038591906113eb565b60206040518083038186803b15801561039d57600080fd5b505afa1580156103b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d591906113b3565b156104305760405162461bcd60e51b815260206004820152602560248201527f526f79616c74794665655365747465723a204d757374206e6f74206265204552604482015264433239383160d81b6064820152608401610286565b6104d886828151811061045357634e487b7160e01b600052603260045260246000fd5b602002602001015186838151811061047b57634e487b7160e01b600052603260045260246000fd5b60200260200101518684815181106104a357634e487b7160e01b600052603260045260246000fd5b60200260200101518685815181106104cb57634e487b7160e01b600052603260045260246000fd5b6020026020010151610ecb565b806104e28161148a565b915050610323565b505050505050565b6040516338c7be4760e21b81526001600160a01b0385811660048301526000917f00000000000000000000000002c48e6ad5443b0439e177b7a221b3584114a1a89091169063e31ef91c9060240160606040518083038186803b15801561055857600080fd5b505afa15801561056c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610590919061126a565b5090915050336001600160a01b038216146105e65760405162461bcd60e51b815260206004820152601660248201527529b2ba3a32b91d102737ba103a34329039b2ba3a32b960511b6044820152606401610286565b60405163177bf36d60e31b81526001600160a01b03868116600483015285811660248301528481166044830152606482018490527f00000000000000000000000002c48e6ad5443b0439e177b7a221b3584114a1a8169063bbdf9b6890608401600060405180830381600087803b15801561066057600080fd5b505af1158015610674573d6000803e3d6000fd5b505050505050505050565b6040516301ffc9a760e01b81526001600160a01b038516906301ffc9a7906106b29063152a902d60e11b906004016113eb565b60206040518083038186803b1580156106ca57600080fd5b505afa1580156106de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070291906113b3565b1561074f5760405162461bcd60e51b815260206004820152601a60248201527f4f776e65723a204d757374206e6f7420626520455243323938310000000000006044820152606401610286565b836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561078857600080fd5b505afa15801561079c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c091906111fe565b6001600160a01b0316336001600160a01b0316146108175760405162461bcd60e51b815260206004820152601460248201527327bbb732b91d102737ba103a34329037bbb732b960611b6044820152606401610286565b61082384848484610ecb565b50505050565b6000546001600160a01b031633146108535760405162461bcd60e51b815260040161028690611400565b61085d6000611113565b565b6040516301ffc9a760e01b81526001600160a01b038516906301ffc9a7906108929063152a902d60e11b906004016113eb565b60206040518083038186803b1580156108aa57600080fd5b505afa1580156108be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e291906113b3565b1561092f5760405162461bcd60e51b815260206004820152601a60248201527f41646d696e3a204d757374206e6f7420626520455243323938310000000000006044820152606401610286565b836001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b15801561096857600080fd5b505afa15801561097c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a091906111fe565b6001600160a01b0316336001600160a01b0316146108175760405162461bcd60e51b815260206004820152601460248201527320b236b4b71d102737ba103a34329030b236b4b760611b6044820152606401610286565b6000546001600160a01b03163314610a215760405162461bcd60e51b815260040161028690611400565b60405163b9223c9d60e01b8152600481018290527f00000000000000000000000002c48e6ad5443b0439e177b7a221b3584114a1a86001600160a01b03169063b9223c9d906024015b600060405180830381600087803b158015610a8457600080fd5b505af1158015610a98573d6000803e3d6000fd5b5050505050565b6000546001600160a01b03163314610ac95760405162461bcd60e51b815260040161028690611400565b60405163177bf36d60e31b81526001600160a01b03858116600483015284811660248301528381166044830152606482018390527f00000000000000000000000002c48e6ad5443b0439e177b7a221b3584114a1a8169063bbdf9b6890608401600060405180830381600087803b158015610b4357600080fd5b505af1158015610b57573d6000803e3d6000fd5b5050505050505050565b6040516338c7be4760e21b81526001600160a01b038281166004830152600091829182917f00000000000000000000000002c48e6ad5443b0439e177b7a221b3584114a1a89091169063e31ef91c9060240160606040518083038186803b158015610bcb57600080fd5b505afa158015610bdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c03919061126a565b50909150506001600160a01b03811615610c21579360009350915050565b6040516301ffc9a760e01b81526001600160a01b038516906301ffc9a790610c549063152a902d60e11b906004016113eb565b60206040518083038186803b158015610c6c57600080fd5b505afa925050508015610c9c575060408051601f3d908101601f19168201909252610c99918101906113b3565b60015b610ca557610cbb565b8015610cb957506000946001945092505050565b505b836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610cf457600080fd5b505afa925050508015610d24575060408051601f3d908101601f19168201909252610d21918101906111fe565b60015b610dad57836001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6157600080fd5b505afa925050508015610d91575060408051601f3d908101601f19168201909252610d8e918101906111fe565b60015b610da2575060009360049350915050565b946003945092505050565b946002945092505050565b6000546001600160a01b03163314610de25760405162461bcd60e51b815260040161028690611400565b60405163f2fde38b60e01b81526001600160a01b0382811660048301527f00000000000000000000000002c48e6ad5443b0439e177b7a221b3584114a1a8169063f2fde38b90602401610a6a565b6000546001600160a01b03163314610e5a5760405162461bcd60e51b815260040161028690611400565b6001600160a01b038116610ebf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610286565b610ec881611113565b50565b6040516338c7be4760e21b81526001600160a01b0385811660048301526000917f00000000000000000000000002c48e6ad5443b0439e177b7a221b3584114a1a89091169063e31ef91c9060240160606040518083038186803b158015610f3157600080fd5b505afa158015610f45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f69919061126a565b50909150506001600160a01b03811615610fbb5760405162461bcd60e51b815260206004820152601360248201527214d95d1d195c8e88105b1c9958591e481cd95d606a1b6044820152606401610286565b6040516301ffc9a760e01b81526001600160a01b038616906301ffc9a790610fee906380ac58cd60e01b906004016113eb565b60206040518083038186803b15801561100657600080fd5b505afa15801561101a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103e91906113b3565b806110c757506040516301ffc9a760e01b81526001600160a01b038616906301ffc9a79061107790636cdb3d1360e11b906004016113eb565b60206040518083038186803b15801561108f57600080fd5b505afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c791906113b3565b6105e65760405162461bcd60e51b815260206004820152601a60248201527f5365747465723a204e6f74204552433732312f455243313135350000000000006044820152606401610286565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600082601f830112611173578081fd5b8135602061118861118383611466565b611435565b80838252828201915082860187848660051b89010111156111a7578586fd5b855b858110156111ce5781356111bc816114c7565b845292840192908401906001016111a9565b5090979650505050505050565b6000602082840312156111ec578081fd5b81356111f7816114c7565b9392505050565b60006020828403121561120f578081fd5b81516111f7816114c7565b6000806000806080858703121561122f578283fd5b843561123a816114c7565b9350602085013561124a816114c7565b9250604085013561125a816114c7565b9396929550929360600135925050565b60008060006060848603121561127e578283fd5b8351611289816114c7565b602085015190935061129a816114c7565b80925050604084015190509250925092565b600080600080600060a086880312156112c3578081fd5b853567ffffffffffffffff808211156112da578283fd5b6112e689838a01611163565b96506020915081880135818111156112fc578384fd5b6113088a828b01611163565b96505060408801358181111561131c578384fd5b6113288a828b01611163565b95505060608801358181111561133c578384fd5b88019050601f8101891361134e578283fd5b803561135c61118382611466565b8082825284820191508484018c868560051b870101111561137b578687fd5b8694505b8385101561139d57803583526001949094019391850191850161137f565b50989b979a509598608001359695505050505050565b6000602082840312156113c4578081fd5b815180151581146111f7578182fd5b6000602082840312156113e4578081fd5b5035919050565b6001600160e01b031991909116815260200190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b604051601f8201601f1916810167ffffffffffffffff8111828210171561145e5761145e6114b1565b604052919050565b600067ffffffffffffffff821115611480576114806114b1565b5060051b60200190565b60006000198214156114aa57634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610ec857600080fdfea264697066735822122028731584a3928e336a17efe6a066ceac32b8508226f09e0f2f2dba99169e5ef764736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000002c48e6ad5443b0439e177b7a221b3584114a1a8
-----Decoded View---------------
Arg [0] : _royaltyFeeRegistry (address): 0x02c48E6Ad5443b0439e177B7a221B3584114a1a8
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000002c48e6ad5443b0439e177b7a221b3584114a1a8
Loading...
Loading
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.