Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 56 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer Ownersh... | 14443493 | 922 days ago | IN | 0 ETH | 0.00114672 | ||||
Set NFT Permit | 14443412 | 922 days ago | IN | 0 ETH | 0.00238412 | ||||
Set NFT Permits | 14443409 | 922 days ago | IN | 0 ETH | 0.00465148 | ||||
Set NFT Permits | 14443397 | 922 days ago | IN | 0 ETH | 0.00580864 | ||||
Set NFT Permits | 14443396 | 922 days ago | IN | 0 ETH | 0.00580816 | ||||
Set NFT Permits | 14443395 | 922 days ago | IN | 0 ETH | 0.00580864 | ||||
Set NFT Permits | 14443394 | 922 days ago | IN | 0 ETH | 0.00580864 | ||||
Set NFT Permits | 14443393 | 922 days ago | IN | 0 ETH | 0.00580864 | ||||
Set NFT Permits | 14443391 | 922 days ago | IN | 0 ETH | 0.00580816 | ||||
Set NFT Permits | 14443388 | 922 days ago | IN | 0 ETH | 0.00580864 | ||||
Set NFT Permits | 14443387 | 922 days ago | IN | 0 ETH | 0.00580864 | ||||
Set NFT Permits | 14443384 | 922 days ago | IN | 0 ETH | 0.00580864 | ||||
Set NFT Permits | 14443372 | 922 days ago | IN | 0 ETH | 0.00580864 | ||||
Set NFT Permits | 14443368 | 922 days ago | IN | 0 ETH | 0.00580864 | ||||
Set NFT Permits | 14443367 | 922 days ago | IN | 0 ETH | 0.00580816 | ||||
Set NFT Permits | 14443365 | 922 days ago | IN | 0 ETH | 0.00580864 | ||||
Set NFT Permits | 14443351 | 922 days ago | IN | 0 ETH | 0.00580864 | ||||
Set NFT Permits | 14443341 | 922 days ago | IN | 0 ETH | 0.00580864 | ||||
Set NFT Permits | 14443333 | 922 days ago | IN | 0 ETH | 0.00580864 | ||||
Set NFT Permits | 14443332 | 922 days ago | IN | 0 ETH | 0.00580864 | ||||
Set NFT Permits | 14443327 | 922 days ago | IN | 0 ETH | 0.00580816 | ||||
Set NFT Permits | 14443326 | 922 days ago | IN | 0 ETH | 0.00580864 | ||||
Set NFT Permits | 14443262 | 922 days ago | IN | 0 ETH | 0.00580816 | ||||
Set NFT Permits | 14443261 | 922 days ago | IN | 0 ETH | 0.00580864 | ||||
Set NFT Permits | 14443259 | 922 days ago | IN | 0 ETH | 0.00580816 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
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:
PermittedNFTsAndTypeRegistry
Compiler Version
v0.8.4+commit.c7e474f2
Optimization Enabled:
Yes with 100 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: BUSL-1.1 pragma solidity 0.8.4; import "../interfaces/IPermittedNFTs.sol"; import "../interfaces/INftTypeRegistry.sol"; import "../interfaces/INftfiHub.sol"; import "../utils/Ownable.sol"; import "../utils/ContractKeys.sol"; /** * @title PermittedNFTsAndTypeRegistry * @author NFTfi * @dev Registry for NFT contracts supported by NFTfi. * Each NFT is associated with an NFT Type. */ contract PermittedNFTsAndTypeRegistry is Ownable, IPermittedNFTs { INftfiHub public hub; mapping(bytes32 => address) private nftTypes; /** * @notice A mapping from an NFT contract's address to the Token type of that contract. A zero Token Type indicates * non-permitted. */ mapping(address => bytes32) private nftPermits; /* ****** */ /* EVENTS */ /* ****** */ /** * @notice This event is fired whenever the admins register a ntf type. * * @param nftType - Nft type represented by keccak256('nft type'). * @param nftWrapper - Address of the wrapper contract. */ event TypeUpdated(bytes32 indexed nftType, address indexed nftWrapper); /** * @notice This event is fired whenever the admin sets a NFT's permit. * * @param nftContract - Address of the NFT contract. * @param nftType - NTF type e.g. bytes32("CRYPTO_KITTIES") */ event NFTPermit(address indexed nftContract, bytes32 indexed nftType); /* ********* */ /* MODIFIERS */ /* ********* */ /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwnerOrAirdropFactory(string memory _nftType) { if ( ContractKeys.getIdFromStringKey(_nftType) == ContractKeys.getIdFromStringKey(ContractKeys.AIRDROP_WRAPPER_STRING) ) { require(hub.getContract(ContractKeys.AIRDROP_FACTORY) == _msgSender(), "caller is not AirdropFactory"); } else { require(owner() == _msgSender(), "caller is not owner"); } _; } /* *********** */ /* CONSTRUCTOR */ /* *********** */ /** * @dev Sets `nftTypeRegistry` * Initialize `nftPermits` with a batch of permitted NFTs * * @param _admin - Initial admin of this contract. * @param _nftfiHub - Address of the NftfiHub contract * @param _definedNftTypes - All the ossible nft types * @param _definedNftWrappers - All the possible wrappers for the types * @param _permittedNftContracts - The addresses of the NFT contracts. * @param _permittedNftTypes - The NFT Types. e.g. "CRYPTO_KITTIES" * - "" means "disable this permit" * - != "" means "enable permit with the given NFT Type" */ constructor( address _admin, address _nftfiHub, string[] memory _definedNftTypes, address[] memory _definedNftWrappers, address[] memory _permittedNftContracts, string[] memory _permittedNftTypes ) Ownable(_admin) { hub = INftfiHub(_nftfiHub); _setNftTypes(_definedNftTypes, _definedNftWrappers); _setNFTPermits(_permittedNftContracts, _permittedNftTypes); } /* ********* */ /* FUNCTIONS */ /* ********* */ /** * @notice This function can be called by admins to change the permitted list status of an NFT contract. This * includes both adding an NFT contract to the permitted list and removing it. * `_nftContract` can not be zero address. * * @param _nftContract - The address of the NFT contract. * @param _nftType - The NFT Type. e.g. "CRYPTO_KITTIES" * - "" means "disable this permit" * - != "" means "enable permit with the given NFT Type" */ function setNFTPermit(address _nftContract, string memory _nftType) external override onlyOwnerOrAirdropFactory(_nftType) { _setNFTPermit(_nftContract, _nftType); } /** * @notice This function can be called by admins to change the permitted list status of a batch NFT contracts. This * includes both adding an NFT contract to the permitted list and removing it. * `_nftContract` can not be zero address. * * @param _nftContracts - The addresses of the NFT contracts. * @param _nftTypes - The NFT Types. e.g. "CRYPTO_KITTIES" * - "" means "disable this permit" * - != "" means "enable permit with the given NFT Type" */ function setNFTPermits(address[] memory _nftContracts, string[] memory _nftTypes) external onlyOwner { _setNFTPermits(_nftContracts, _nftTypes); } /** * @notice This function can be called by anyone to lookup the Nft Type associated with the contract. * @param _nftContract - The address of the NFT contract. * @notice Returns the NFT Type: * - bytes32("") means "not permitted" * - != bytes32("") means "permitted with the given NFT Type" */ function getNFTPermit(address _nftContract) external view override returns (bytes32) { return nftPermits[_nftContract]; } /** * @notice This function can be called by anyone to lookup the address of the NftWrapper associated to the * `_nftContract` type. * @param _nftContract - The address of the NFT contract. */ function getNFTWrapper(address _nftContract) external view override returns (address) { bytes32 nftType = nftPermits[_nftContract]; return getNftTypeWrapper(nftType); } /** * @notice Set or update the wrapper contract address for the given NFT Type. * Set address(0) for a nft type for un-register such type. * * @param _nftType - The nft type, e.g. "ERC721", or "ERC1155". * @param _nftWrapper - The address of the wrapper contract that implements INftWrapper behaviour for dealing with * NFTs. */ function setNftType(string memory _nftType, address _nftWrapper) external onlyOwner { _setNftType(_nftType, _nftWrapper); } /** * @notice Batch set or update the wrappers contract address for the given batch of NFT Types. * Set address(0) for a nft type for un-register such type. * * @param _nftTypes - The nft types, e.g. "ERC721", or "ERC1155". * @param _nftWrappers - The addresses of the wrapper contract that implements INftWrapper behaviour for dealing * with NFTs. */ function setNftTypes(string[] memory _nftTypes, address[] memory _nftWrappers) external onlyOwner { _setNftTypes(_nftTypes, _nftWrappers); } /** * @notice This function can be called by anyone to get the contract address that implements the given nft type. * * @param _nftType - The nft type, e.g. bytes32("ERC721"), or bytes32("ERC1155"). */ function getNftTypeWrapper(bytes32 _nftType) public view returns (address) { return nftTypes[_nftType]; } /** * @notice Set or update the wrapper contract address for the given NFT Type. * Set address(0) for a nft type for un-register such type. * * @param _nftType - The nft type, e.g. "ERC721", or "ERC1155". * @param _nftWrapper - The address of the wrapper contract that implements INftWrapper behaviour for dealing with * NFTs. */ function _setNftType(string memory _nftType, address _nftWrapper) internal { require(bytes(_nftType).length != 0, "nftType is empty"); bytes32 nftTypeKey = ContractKeys.getIdFromStringKey(_nftType); nftTypes[nftTypeKey] = _nftWrapper; emit TypeUpdated(nftTypeKey, _nftWrapper); } /** * @notice Batch set or update the wrappers contract address for the given batch of NFT Types. * Set address(0) for a nft type for un-register such type. * * @param _nftTypes - The nft types, e.g. keccak256("ERC721"), or keccak256("ERC1155"). * @param _nftWrappers - The addresses of the wrapper contract that implements INftWrapper behaviour for dealing * with NFTs. */ function _setNftTypes(string[] memory _nftTypes, address[] memory _nftWrappers) internal { require(_nftTypes.length == _nftWrappers.length, "setNftTypes function information arity mismatch"); for (uint256 i = 0; i < _nftWrappers.length; i++) { _setNftType(_nftTypes[i], _nftWrappers[i]); } } /** * @notice This function changes the permitted list status of an NFT contract. This includes both adding an NFT * contract to the permitted list and removing it. * @param _nftContract - The address of the NFT contract. * @param _nftType - The NFT Type. e.g. bytes32("CRYPTO_KITTIES") * - bytes32("") means "disable this permit" * - != bytes32("") means "enable permit with the given NFT Type" */ function _setNFTPermit(address _nftContract, string memory _nftType) internal { require(_nftContract != address(0), "nftContract is zero address"); bytes32 nftTypeKey = ContractKeys.getIdFromStringKey(_nftType); if (nftTypeKey != 0) { require(getNftTypeWrapper(nftTypeKey) != address(0), "NFT type not registered"); } require( nftPermits[_nftContract] != ContractKeys.getIdFromStringKey(ContractKeys.AIRDROP_WRAPPER_STRING), "AirdropWrapper can't be modified" ); nftPermits[_nftContract] = nftTypeKey; emit NFTPermit(_nftContract, nftTypeKey); } /** * @notice This function changes the permitted list status of a batch NFT contracts. This includes both adding an * NFT contract to the permitted list and removing it. * @param _nftContracts - The addresses of the NFT contracts. * @param _nftTypes - The NFT Types. e.g. "CRYPTO_KITTIES" * - "" means "disable this permit" * - != "" means "enable permit with the given NFT Type" */ function _setNFTPermits(address[] memory _nftContracts, string[] memory _nftTypes) internal { require(_nftContracts.length == _nftTypes.length, "setNFTPermits function information arity mismatch"); for (uint256 i = 0; i < _nftContracts.length; i++) { _setNFTPermit(_nftContracts[i], _nftTypes[i]); } } }
// SPDX-License-Identifier: BUSL-1.1 pragma solidity 0.8.4; interface IPermittedNFTs { function setNFTPermit(address _nftContract, string memory _nftType) external; function getNFTPermit(address _nftContract) external view returns (bytes32); function getNFTWrapper(address _nftContract) external view returns (address); }
// SPDX-License-Identifier: BUSL-1.1 pragma solidity 0.8.4; /** * @title INftTypeRegistry * @author NFTfi * @dev Interface for NFT Types Registry supported by NFTfi. */ interface INftTypeRegistry { function setNftType(bytes32 _nftType, address _nftWrapper) external; function getNftTypeWrapper(bytes32 _nftType) external view returns (address); }
// SPDX-License-Identifier: BUSL-1.1 pragma solidity 0.8.4; /** * @title INftfiHub * @author NFTfi * @dev NftfiHub interface */ interface INftfiHub { function setContract(string calldata _contractKey, address _contractAddress) external; function getContract(bytes32 _contractKey) external view returns (address); }
// SPDX-License-Identifier: BUSL-1.1 pragma solidity 0.8.4; import "@openzeppelin/contracts/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. * * Modified version from openzeppelin/contracts/access/Ownable.sol that allows to * initialize the owner using a parameter in the constructor */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor(address _initialOwner) { _setOwner(_initialOwner); } /** * @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"); _setOwner(_newOwner); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Sets the owner. */ function _setOwner(address _newOwner) private { address oldOwner = _owner; _owner = _newOwner; emit OwnershipTransferred(oldOwner, _newOwner); } }
// SPDX-License-Identifier: BUSL-1.1 pragma solidity 0.8.4; /** * @title ContractKeys * @author NFTfi * @dev Common library for contract keys */ library ContractKeys { bytes32 public constant PERMITTED_ERC20S = bytes32("PERMITTED_ERC20S"); bytes32 public constant PERMITTED_NFTS = bytes32("PERMITTED_NFTS"); bytes32 public constant PERMITTED_PARTNERS = bytes32("PERMITTED_PARTNERS"); bytes32 public constant NFT_TYPE_REGISTRY = bytes32("NFT_TYPE_REGISTRY"); bytes32 public constant LOAN_REGISTRY = bytes32("LOAN_REGISTRY"); bytes32 public constant PERMITTED_SNFT_RECEIVER = bytes32("PERMITTED_SNFT_RECEIVER"); bytes32 public constant PERMITTED_BUNDLE_ERC20S = bytes32("PERMITTED_BUNDLE_ERC20S"); bytes32 public constant PERMITTED_AIRDROPS = bytes32("PERMITTED_AIRDROPS"); bytes32 public constant AIRDROP_RECEIVER = bytes32("AIRDROP_RECEIVER"); bytes32 public constant AIRDROP_FACTORY = bytes32("AIRDROP_FACTORY"); bytes32 public constant AIRDROP_FLASH_LOAN = bytes32("AIRDROP_FLASH_LOAN"); bytes32 public constant NFTFI_BUNDLER = bytes32("NFTFI_BUNDLER"); string public constant AIRDROP_WRAPPER_STRING = "AirdropWrapper"; /** * @notice Returns the bytes32 representation of a string * @param _key the string key * @return id bytes32 representation */ function getIdFromStringKey(string memory _key) external pure returns (bytes32 id) { require(bytes(_key).length <= 32, "invalid key"); // solhint-disable-next-line no-inline-assembly assembly { id := mload(add(_key, 32)) } } }
// 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; } }
{ "metadata": { "bytecodeHash": "none", "useLiteralContent": true }, "optimizer": { "enabled": true, "runs": 100 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": { "contracts/utils/ContractKeys.sol": { "ContractKeys": "0xc0691b4bb84f05ec8e2255a50487c8d67bac7539" } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"address","name":"_nftfiHub","type":"address"},{"internalType":"string[]","name":"_definedNftTypes","type":"string[]"},{"internalType":"address[]","name":"_definedNftWrappers","type":"address[]"},{"internalType":"address[]","name":"_permittedNftContracts","type":"address[]"},{"internalType":"string[]","name":"_permittedNftTypes","type":"string[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"nftContract","type":"address"},{"indexed":true,"internalType":"bytes32","name":"nftType","type":"bytes32"}],"name":"NFTPermit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"nftType","type":"bytes32"},{"indexed":true,"internalType":"address","name":"nftWrapper","type":"address"}],"name":"TypeUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"_nftContract","type":"address"}],"name":"getNFTPermit","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_nftContract","type":"address"}],"name":"getNFTWrapper","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_nftType","type":"bytes32"}],"name":"getNftTypeWrapper","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hub","outputs":[{"internalType":"contract INftfiHub","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_nftContract","type":"address"},{"internalType":"string","name":"_nftType","type":"string"}],"name":"setNFTPermit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_nftContracts","type":"address[]"},{"internalType":"string[]","name":"_nftTypes","type":"string[]"}],"name":"setNFTPermits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_nftType","type":"string"},{"internalType":"address","name":"_nftWrapper","type":"address"}],"name":"setNftType","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string[]","name":"_nftTypes","type":"string[]"},{"internalType":"address[]","name":"_nftWrappers","type":"address[]"}],"name":"setNftTypes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162001a1738038062001a1783398101604081905262000034916200082d565b85620000408162000080565b50600180546001600160a01b0319166001600160a01b038716179055620000688484620000d0565b620000748282620001c8565b50505050505062000a1e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80518251146200013f5760405162461bcd60e51b815260206004820152602f60248201527f7365744e667454797065732066756e6374696f6e20696e666f726d6174696f6e60448201526e040c2e4d2e8f240dad2e6dac2e8c6d608b1b60648201526084015b60405180910390fd5b60005b8151811015620001c357620001ae8382815181106200017157634e487b7160e01b600052603260045260246000fd5b60200260200101518383815181106200019a57634e487b7160e01b600052603260045260246000fd5b6020026020010151620002b960201b60201c565b80620001ba81620009e0565b91505062000142565b505050565b8051825114620002355760405162461bcd60e51b815260206004820152603160248201527f7365744e46545065726d6974732066756e6374696f6e20696e666f726d6174696044820152700dedc40c2e4d2e8f240dad2e6dac2e8c6d607b1b606482015260840162000136565b60005b8251811015620001c357620002a48382815181106200026757634e487b7160e01b600052603260045260246000fd5b60200260200101518383815181106200029057634e487b7160e01b600052603260045260246000fd5b6020026020010151620003e760201b60201c565b80620002b081620009e0565b91505062000238565b8151620002fc5760405162461bcd60e51b815260206004820152601060248201526f6e66745479706520697320656d70747960801b604482015260640162000136565b60405163f99a8ffb60e01b815260009073c0691b4bb84f05ec8e2255a50487c8d67bac75399063f99a8ffb90620003389086906004016200091f565b60206040518083038186803b1580156200035157600080fd5b505af415801562000366573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038c919062000906565b60008181526002602052604080822080546001600160a01b0319166001600160a01b03871690811790915590519293509183917f22be69269c1f7d73e73dcb25b710dd88c7aa1cf374c16d945def98df2107c2f891a3505050565b6001600160a01b0382166200043f5760405162461bcd60e51b815260206004820152601b60248201527f6e6674436f6e7472616374206973207a65726f20616464726573730000000000604482015260640162000136565b60405163f99a8ffb60e01b815260009073c0691b4bb84f05ec8e2255a50487c8d67bac75399063f99a8ffb906200047b9085906004016200091f565b60206040518083038186803b1580156200049457600080fd5b505af4158015620004a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004cf919062000906565b905080156200053e576000818152600260205260409020546001600160a01b03166200053e5760405162461bcd60e51b815260206004820152601760248201527f4e46542074797065206e6f742072656769737465726564000000000000000000604482015260640162000136565b604080518082018252600e81526d20b4b9323937b82bb930b83832b960911b6020820152905163f99a8ffb60e01b815273c0691b4bb84f05ec8e2255a50487c8d67bac75399163f99a8ffb916200059991906004016200091f565b60206040518083038186803b158015620005b257600080fd5b505af4158015620005c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005ed919062000906565b6001600160a01b0384166000908152600360205260409020541415620006565760405162461bcd60e51b815260206004820181905260248201527f41697264726f70577261707065722063616e2774206265206d6f646966696564604482015260640162000136565b6001600160a01b038316600081815260036020526040808220849055518392917f903a211c8bcdc0ab18afc116fc4776504a9aac5c0121be0fda712d399017bd2291a3505050565b80516001600160a01b0381168114620006b657600080fd5b919050565b600082601f830112620006cc578081fd5b81516020620006e5620006df8362000987565b62000954565b80838252828201915082860187848660051b890101111562000705578586fd5b855b858110156200072e576200071b826200069e565b8452928401929084019060010162000707565b5090979650505050505050565b6000601f83818401126200074d578182fd5b8251602062000760620006df8362000987565b80838252828201915082870188848660051b8a0101111562000780578687fd5b865b858110156200081f5781516001600160401b0380821115620007a257898afd5b818b0191508b603f830112620007b657898afd5b86820151604082821115620007cf57620007cf62000a08565b620007e2828c01601f19168a0162000954565b92508183528d81838601011115620007f8578b8cfd5b62000809828a8501838701620009ad565b5050855250928401929084019060010162000782565b509098975050505050505050565b60008060008060008060c0878903121562000846578182fd5b62000851876200069e565b955062000861602088016200069e565b60408801519095506001600160401b03808211156200087e578384fd5b6200088c8a838b016200073b565b95506060890151915080821115620008a2578384fd5b620008b08a838b01620006bb565b94506080890151915080821115620008c6578384fd5b620008d48a838b01620006bb565b935060a0890151915080821115620008ea578283fd5b50620008f989828a016200073b565b9150509295509295509295565b60006020828403121562000918578081fd5b5051919050565b602081526000825180602084015262000940816040850160208701620009ad565b601f01601f19169190910160400192915050565b604051601f8201601f191681016001600160401b03811182821017156200097f576200097f62000a08565b604052919050565b60006001600160401b03821115620009a357620009a362000a08565b5060051b60200190565b60005b83811015620009ca578181015183820152602001620009b0565b83811115620009da576000848401525b50505050565b600060001982141562000a0157634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b610fe98062000a2e6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806395244b941161006657806395244b941461013a578063b8c8aff81461014d578063c88641a214610160578063d8e4e93e14610173578063f2fde38b1461018657600080fd5b80630a21cc43146100a35780631a3dd0a5146100b8578063365a86fc146100e85780636651f11d146100fb5780638da5cb5b14610132575b600080fd5b6100b66100b1366004610dda565b610199565b005b6100cb6100c6366004610e30565b6101df565b6040516001600160a01b0390911681526020015b60405180910390f35b6001546100cb906001600160a01b031681565b610124610109366004610cff565b6001600160a01b031660009081526003602052604090205490565b6040519081526020016100df565b6100cb6101fa565b6100b6610148366004610d84565b610209565b6100cb61015b366004610cff565b610242565b6100b661016e366004610d37565b61026b565b6100b6610181366004610e60565b6104f3565b6100b6610194366004610cff565b61052c565b336101a26101fa565b6001600160a01b0316146101d15760405162461bcd60e51b81526004016101c890610f02565b60405180910390fd5b6101db82826105cc565b5050565b6000908152600260205260409020546001600160a01b031690565b6000546001600160a01b031690565b336102126101fa565b6001600160a01b0316146102385760405162461bcd60e51b81526004016101c890610f02565b6101db82826106ab565b6001600160a01b038116600090815260036020526040812054610264816101df565b9392505050565b604080518082018252600e81526d20b4b9323937b82bb930b83832b960911b6020820152905163f99a8ffb60e01b8152829173c0691b4bb84f05ec8e2255a50487c8d67bac75399163f99a8ffb916102c591600401610eaf565b60206040518083038186803b1580156102dd57600080fd5b505af41580156102f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103159190610e48565b60405163f99a8ffb60e01b815273c0691b4bb84f05ec8e2255a50487c8d67bac75399063f99a8ffb9061034c908590600401610eaf565b60206040518083038186803b15801561036457600080fd5b505af4158015610378573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039c9190610e48565b141561048f5733600154604051631c2d8fb360e31b81526e41495244524f505f464143544f525960881b60048201526001600160a01b03928316929091169063e16c7d989060240160206040518083038186803b1580156103fc57600080fd5b505afa158015610410573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104349190610d1b565b6001600160a01b03161461048a5760405162461bcd60e51b815260206004820152601c60248201527f63616c6c6572206973206e6f742041697264726f70466163746f72790000000060448201526064016101c8565b6104e4565b336104986101fa565b6001600160a01b0316146104e45760405162461bcd60e51b815260206004820152601360248201527231b0b63632b91034b9903737ba1037bbb732b960691b60448201526064016101c8565b6104ee838361078c565b505050565b336104fc6101fa565b6001600160a01b0316146105225760405162461bcd60e51b81526004016101c890610f02565b6101db8282610a28565b336105356101fa565b6001600160a01b03161461055b5760405162461bcd60e51b81526004016101c890610f02565b6001600160a01b0381166105c05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101c8565b6105c981610b4e565b50565b80518251146106355760405162461bcd60e51b815260206004820152602f60248201527f7365744e667454797065732066756e6374696f6e20696e666f726d6174696f6e60448201526e040c2e4d2e8f240dad2e6dac2e8c6d608b1b60648201526084016101c8565b60005b81518110156104ee5761069983828151811061066457634e487b7160e01b600052603260045260246000fd5b602002602001015183838151811061068c57634e487b7160e01b600052603260045260246000fd5b6020026020010151610a28565b806106a381610f8a565b915050610638565b80518251146107165760405162461bcd60e51b815260206004820152603160248201527f7365744e46545065726d6974732066756e6374696f6e20696e666f726d6174696044820152700dedc40c2e4d2e8f240dad2e6dac2e8c6d607b1b60648201526084016101c8565b60005b82518110156104ee5761077a83828151811061074557634e487b7160e01b600052603260045260246000fd5b602002602001015183838151811061076d57634e487b7160e01b600052603260045260246000fd5b602002602001015161078c565b8061078481610f8a565b915050610719565b6001600160a01b0382166107e25760405162461bcd60e51b815260206004820152601b60248201527f6e6674436f6e7472616374206973207a65726f2061646472657373000000000060448201526064016101c8565b60405163f99a8ffb60e01b815260009073c0691b4bb84f05ec8e2255a50487c8d67bac75399063f99a8ffb9061081c908590600401610eaf565b60206040518083038186803b15801561083457600080fd5b505af4158015610848573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086c9190610e48565b905080156108d057600061087f826101df565b6001600160a01b031614156108d05760405162461bcd60e51b8152602060048201526017602482015276139195081d1e5c19481b9bdd081c9959da5cdd195c9959604a1b60448201526064016101c8565b604080518082018252600e81526d20b4b9323937b82bb930b83832b960911b6020820152905163f99a8ffb60e01b815273c0691b4bb84f05ec8e2255a50487c8d67bac75399163f99a8ffb916109299190600401610eaf565b60206040518083038186803b15801561094157600080fd5b505af4158015610955573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109799190610e48565b6001600160a01b03841660009081526003602052604090205414156109e05760405162461bcd60e51b815260206004820181905260248201527f41697264726f70577261707065722063616e2774206265206d6f64696669656460448201526064016101c8565b6001600160a01b038316600081815260036020526040808220849055518392917f903a211c8bcdc0ab18afc116fc4776504a9aac5c0121be0fda712d399017bd2291a3505050565b8151610a695760405162461bcd60e51b815260206004820152601060248201526f6e66745479706520697320656d70747960801b60448201526064016101c8565b60405163f99a8ffb60e01b815260009073c0691b4bb84f05ec8e2255a50487c8d67bac75399063f99a8ffb90610aa3908690600401610eaf565b60206040518083038186803b158015610abb57600080fd5b505af4158015610acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af39190610e48565b60008181526002602052604080822080546001600160a01b0319166001600160a01b03871690811790915590519293509183917f22be69269c1f7d73e73dcb25b710dd88c7aa1cf374c16d945def98df2107c2f891a3505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600082601f830112610bae578081fd5b81356020610bc3610bbe83610f67565b610f37565b80838252828201915082860187848660051b8901011115610be2578586fd5b855b85811015610c09578135610bf781610fc7565b84529284019290840190600101610be4565b5090979650505050505050565b600082601f830112610c26578081fd5b81356020610c36610bbe83610f67565b80838252828201915082860187848660051b8901011115610c55578586fd5b855b85811015610c095781356001600160401b03811115610c74578788fd5b610c828a87838c0101610c95565b8552509284019290840190600101610c57565b600082601f830112610ca5578081fd5b81356001600160401b03811115610cbe57610cbe610fb1565b610cd1601f8201601f1916602001610f37565b818152846020838601011115610ce5578283fd5b816020850160208301379081016020019190915292915050565b600060208284031215610d10578081fd5b813561026481610fc7565b600060208284031215610d2c578081fd5b815161026481610fc7565b60008060408385031215610d49578081fd5b8235610d5481610fc7565b915060208301356001600160401b03811115610d6e578182fd5b610d7a85828601610c95565b9150509250929050565b60008060408385031215610d96578182fd5b82356001600160401b0380821115610dac578384fd5b610db886838701610b9e565b93506020850135915080821115610dcd578283fd5b50610d7a85828601610c16565b60008060408385031215610dec578182fd5b82356001600160401b0380821115610e02578384fd5b610e0e86838701610c16565b93506020850135915080821115610e23578283fd5b50610d7a85828601610b9e565b600060208284031215610e41578081fd5b5035919050565b600060208284031215610e59578081fd5b5051919050565b60008060408385031215610e72578182fd5b82356001600160401b03811115610e87578283fd5b610e9385828601610c95565b9250506020830135610ea481610fc7565b809150509250929050565b6000602080835283518082850152825b81811015610edb57858101830151858201604001528201610ebf565b81811115610eec5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b604051601f8201601f191681016001600160401b0381118282101715610f5f57610f5f610fb1565b604052919050565b60006001600160401b03821115610f8057610f80610fb1565b5060051b60200190565b6000600019821415610faa57634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146105c957600080fdfea164736f6c6343000804000a000000000000000000000000214a4bc7c7843918ddbef45ee47ebed1688b0ff2000000000000000000000000d99b8075cb583fde8f60a2c3ac84ee37c701a57800000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003a00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000064552433732310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d43727970746f4b6974746965730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000074552433131353500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e41697264726f70577261707065720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000b2c2fce38a0b7a89ab51f046b7052892ba55eb2b00000000000000000000000080d6540b88ea6c7ae2e229b900fc6542182cf9420000000000000000000000003d40ff88d532721d44594ca4f062e94556b9cc9b000000000000000000000000b2c2fce38a0b7a89ab51f046b7052892ba55eb2b0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000f87e31492faf9a91b02ee0deaad50d51d56d5d4d00000000000000000000000079986af15539de2db9a5086382daeda917a9cf0c000000000000000000000000913ae503153d9a335398d0785ba60a2d63ddb4e200000000000000000000000050f5474724e0ee42d9a4e711ccfb275809fd6d4a0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000064552433732310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000645524337323100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006455243373231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064552433732310000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806395244b941161006657806395244b941461013a578063b8c8aff81461014d578063c88641a214610160578063d8e4e93e14610173578063f2fde38b1461018657600080fd5b80630a21cc43146100a35780631a3dd0a5146100b8578063365a86fc146100e85780636651f11d146100fb5780638da5cb5b14610132575b600080fd5b6100b66100b1366004610dda565b610199565b005b6100cb6100c6366004610e30565b6101df565b6040516001600160a01b0390911681526020015b60405180910390f35b6001546100cb906001600160a01b031681565b610124610109366004610cff565b6001600160a01b031660009081526003602052604090205490565b6040519081526020016100df565b6100cb6101fa565b6100b6610148366004610d84565b610209565b6100cb61015b366004610cff565b610242565b6100b661016e366004610d37565b61026b565b6100b6610181366004610e60565b6104f3565b6100b6610194366004610cff565b61052c565b336101a26101fa565b6001600160a01b0316146101d15760405162461bcd60e51b81526004016101c890610f02565b60405180910390fd5b6101db82826105cc565b5050565b6000908152600260205260409020546001600160a01b031690565b6000546001600160a01b031690565b336102126101fa565b6001600160a01b0316146102385760405162461bcd60e51b81526004016101c890610f02565b6101db82826106ab565b6001600160a01b038116600090815260036020526040812054610264816101df565b9392505050565b604080518082018252600e81526d20b4b9323937b82bb930b83832b960911b6020820152905163f99a8ffb60e01b8152829173c0691b4bb84f05ec8e2255a50487c8d67bac75399163f99a8ffb916102c591600401610eaf565b60206040518083038186803b1580156102dd57600080fd5b505af41580156102f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103159190610e48565b60405163f99a8ffb60e01b815273c0691b4bb84f05ec8e2255a50487c8d67bac75399063f99a8ffb9061034c908590600401610eaf565b60206040518083038186803b15801561036457600080fd5b505af4158015610378573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039c9190610e48565b141561048f5733600154604051631c2d8fb360e31b81526e41495244524f505f464143544f525960881b60048201526001600160a01b03928316929091169063e16c7d989060240160206040518083038186803b1580156103fc57600080fd5b505afa158015610410573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104349190610d1b565b6001600160a01b03161461048a5760405162461bcd60e51b815260206004820152601c60248201527f63616c6c6572206973206e6f742041697264726f70466163746f72790000000060448201526064016101c8565b6104e4565b336104986101fa565b6001600160a01b0316146104e45760405162461bcd60e51b815260206004820152601360248201527231b0b63632b91034b9903737ba1037bbb732b960691b60448201526064016101c8565b6104ee838361078c565b505050565b336104fc6101fa565b6001600160a01b0316146105225760405162461bcd60e51b81526004016101c890610f02565b6101db8282610a28565b336105356101fa565b6001600160a01b03161461055b5760405162461bcd60e51b81526004016101c890610f02565b6001600160a01b0381166105c05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101c8565b6105c981610b4e565b50565b80518251146106355760405162461bcd60e51b815260206004820152602f60248201527f7365744e667454797065732066756e6374696f6e20696e666f726d6174696f6e60448201526e040c2e4d2e8f240dad2e6dac2e8c6d608b1b60648201526084016101c8565b60005b81518110156104ee5761069983828151811061066457634e487b7160e01b600052603260045260246000fd5b602002602001015183838151811061068c57634e487b7160e01b600052603260045260246000fd5b6020026020010151610a28565b806106a381610f8a565b915050610638565b80518251146107165760405162461bcd60e51b815260206004820152603160248201527f7365744e46545065726d6974732066756e6374696f6e20696e666f726d6174696044820152700dedc40c2e4d2e8f240dad2e6dac2e8c6d607b1b60648201526084016101c8565b60005b82518110156104ee5761077a83828151811061074557634e487b7160e01b600052603260045260246000fd5b602002602001015183838151811061076d57634e487b7160e01b600052603260045260246000fd5b602002602001015161078c565b8061078481610f8a565b915050610719565b6001600160a01b0382166107e25760405162461bcd60e51b815260206004820152601b60248201527f6e6674436f6e7472616374206973207a65726f2061646472657373000000000060448201526064016101c8565b60405163f99a8ffb60e01b815260009073c0691b4bb84f05ec8e2255a50487c8d67bac75399063f99a8ffb9061081c908590600401610eaf565b60206040518083038186803b15801561083457600080fd5b505af4158015610848573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086c9190610e48565b905080156108d057600061087f826101df565b6001600160a01b031614156108d05760405162461bcd60e51b8152602060048201526017602482015276139195081d1e5c19481b9bdd081c9959da5cdd195c9959604a1b60448201526064016101c8565b604080518082018252600e81526d20b4b9323937b82bb930b83832b960911b6020820152905163f99a8ffb60e01b815273c0691b4bb84f05ec8e2255a50487c8d67bac75399163f99a8ffb916109299190600401610eaf565b60206040518083038186803b15801561094157600080fd5b505af4158015610955573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109799190610e48565b6001600160a01b03841660009081526003602052604090205414156109e05760405162461bcd60e51b815260206004820181905260248201527f41697264726f70577261707065722063616e2774206265206d6f64696669656460448201526064016101c8565b6001600160a01b038316600081815260036020526040808220849055518392917f903a211c8bcdc0ab18afc116fc4776504a9aac5c0121be0fda712d399017bd2291a3505050565b8151610a695760405162461bcd60e51b815260206004820152601060248201526f6e66745479706520697320656d70747960801b60448201526064016101c8565b60405163f99a8ffb60e01b815260009073c0691b4bb84f05ec8e2255a50487c8d67bac75399063f99a8ffb90610aa3908690600401610eaf565b60206040518083038186803b158015610abb57600080fd5b505af4158015610acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af39190610e48565b60008181526002602052604080822080546001600160a01b0319166001600160a01b03871690811790915590519293509183917f22be69269c1f7d73e73dcb25b710dd88c7aa1cf374c16d945def98df2107c2f891a3505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600082601f830112610bae578081fd5b81356020610bc3610bbe83610f67565b610f37565b80838252828201915082860187848660051b8901011115610be2578586fd5b855b85811015610c09578135610bf781610fc7565b84529284019290840190600101610be4565b5090979650505050505050565b600082601f830112610c26578081fd5b81356020610c36610bbe83610f67565b80838252828201915082860187848660051b8901011115610c55578586fd5b855b85811015610c095781356001600160401b03811115610c74578788fd5b610c828a87838c0101610c95565b8552509284019290840190600101610c57565b600082601f830112610ca5578081fd5b81356001600160401b03811115610cbe57610cbe610fb1565b610cd1601f8201601f1916602001610f37565b818152846020838601011115610ce5578283fd5b816020850160208301379081016020019190915292915050565b600060208284031215610d10578081fd5b813561026481610fc7565b600060208284031215610d2c578081fd5b815161026481610fc7565b60008060408385031215610d49578081fd5b8235610d5481610fc7565b915060208301356001600160401b03811115610d6e578182fd5b610d7a85828601610c95565b9150509250929050565b60008060408385031215610d96578182fd5b82356001600160401b0380821115610dac578384fd5b610db886838701610b9e565b93506020850135915080821115610dcd578283fd5b50610d7a85828601610c16565b60008060408385031215610dec578182fd5b82356001600160401b0380821115610e02578384fd5b610e0e86838701610c16565b93506020850135915080821115610e23578283fd5b50610d7a85828601610b9e565b600060208284031215610e41578081fd5b5035919050565b600060208284031215610e59578081fd5b5051919050565b60008060408385031215610e72578182fd5b82356001600160401b03811115610e87578283fd5b610e9385828601610c95565b9250506020830135610ea481610fc7565b809150509250929050565b6000602080835283518082850152825b81811015610edb57858101830151858201604001528201610ebf565b81811115610eec5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b604051601f8201601f191681016001600160401b0381118282101715610f5f57610f5f610fb1565b604052919050565b60006001600160401b03821115610f8057610f80610fb1565b5060051b60200190565b6000600019821415610faa57634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146105c957600080fdfea164736f6c6343000804000a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000214a4bc7c7843918ddbef45ee47ebed1688b0ff2000000000000000000000000d99b8075cb583fde8f60a2c3ac84ee37c701a57800000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003a00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000064552433732310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d43727970746f4b6974746965730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000074552433131353500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e41697264726f70577261707065720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000b2c2fce38a0b7a89ab51f046b7052892ba55eb2b00000000000000000000000080d6540b88ea6c7ae2e229b900fc6542182cf9420000000000000000000000003d40ff88d532721d44594ca4f062e94556b9cc9b000000000000000000000000b2c2fce38a0b7a89ab51f046b7052892ba55eb2b0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000f87e31492faf9a91b02ee0deaad50d51d56d5d4d00000000000000000000000079986af15539de2db9a5086382daeda917a9cf0c000000000000000000000000913ae503153d9a335398d0785ba60a2d63ddb4e200000000000000000000000050f5474724e0ee42d9a4e711ccfb275809fd6d4a0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000064552433732310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000645524337323100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006455243373231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064552433732310000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _admin (address): 0x214a4bC7C7843918DDbeF45EE47EBEd1688B0ff2
Arg [1] : _nftfiHub (address): 0xd99b8075Cb583FdE8F60A2C3aC84eE37c701a578
Arg [2] : _definedNftTypes (string[]): ERC721,CryptoKitties,ERC1155,AirdropWrapper
Arg [3] : _definedNftWrappers (address[]): 0xB2C2fCe38a0B7A89aB51F046B7052892Ba55EB2B,0x80D6540B88EA6C7Ae2e229b900fc6542182Cf942,0x3d40fF88D532721D44594Ca4F062e94556b9Cc9B,0xB2C2fCe38a0B7A89aB51F046B7052892Ba55EB2B
Arg [4] : _permittedNftContracts (address[]): 0xF87E31492Faf9A91B02Ee0dEAAd50d51d56D5d4d,0x79986aF15539de2db9A5086382daEdA917A9CF0C,0x913ae503153d9A335398D0785Ba60A2d63dDB4e2,0x50f5474724e0Ee42D9a4e711ccFB275809Fd6d4a
Arg [5] : _permittedNftTypes (string[]): ERC721,ERC721,ERC721,ERC721
-----Encoded View---------------
42 Constructor Arguments found :
Arg [0] : 000000000000000000000000214a4bc7c7843918ddbef45ee47ebed1688b0ff2
Arg [1] : 000000000000000000000000d99b8075cb583fde8f60a2c3ac84ee37c701a578
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000260
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000300
Arg [5] : 00000000000000000000000000000000000000000000000000000000000003a0
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [8] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [12] : 4552433732310000000000000000000000000000000000000000000000000000
Arg [13] : 000000000000000000000000000000000000000000000000000000000000000d
Arg [14] : 43727970746f4b69747469657300000000000000000000000000000000000000
Arg [15] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [16] : 4552433131353500000000000000000000000000000000000000000000000000
Arg [17] : 000000000000000000000000000000000000000000000000000000000000000e
Arg [18] : 41697264726f7057726170706572000000000000000000000000000000000000
Arg [19] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [20] : 000000000000000000000000b2c2fce38a0b7a89ab51f046b7052892ba55eb2b
Arg [21] : 00000000000000000000000080d6540b88ea6c7ae2e229b900fc6542182cf942
Arg [22] : 0000000000000000000000003d40ff88d532721d44594ca4f062e94556b9cc9b
Arg [23] : 000000000000000000000000b2c2fce38a0b7a89ab51f046b7052892ba55eb2b
Arg [24] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [25] : 000000000000000000000000f87e31492faf9a91b02ee0deaad50d51d56d5d4d
Arg [26] : 00000000000000000000000079986af15539de2db9a5086382daeda917a9cf0c
Arg [27] : 000000000000000000000000913ae503153d9a335398d0785ba60a2d63ddb4e2
Arg [28] : 00000000000000000000000050f5474724e0ee42d9a4e711ccfb275809fd6d4a
Arg [29] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [30] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [31] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [32] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [33] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [34] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [35] : 4552433732310000000000000000000000000000000000000000000000000000
Arg [36] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [37] : 4552433732310000000000000000000000000000000000000000000000000000
Arg [38] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [39] : 4552433732310000000000000000000000000000000000000000000000000000
Arg [40] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [41] : 4552433732310000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.