Overview
CRO Balance
CRO Value
$0.00More Info
Private Name Tags
ContractCreator
Multichain Info
No addresses found
Loading...
Loading
Contract Name:
TransferManagerERC721
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 {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import {ITransferManagerNFT} from "../interfaces/ITransferManagerNFT.sol"; /** * @title TransferManagerERC721 * @notice It allows the transfer of ERC721 tokens. */ contract TransferManagerERC721 is ITransferManagerNFT { address public immutable MINTED_EXCHANGE; /** * @notice Constructor * @param _mintedExchange address of the Minted exchange */ constructor(address _mintedExchange) { MINTED_EXCHANGE = _mintedExchange; } /** * @notice Transfer ERC721 token * @param collection address of the collection * @param from address of the sender * @param to address of the recipient * @param tokenId tokenId * @dev For ERC721, amount is not used */ function transferNonFungibleToken( address collection, address from, address to, uint256 tokenId, uint256 ) external override { require(msg.sender == MINTED_EXCHANGE, "Transfer: Only Minted Exchange"); // https://docs.openzeppelin.com/contracts/2.x/api/token/erc721#IERC721-safeTransferFrom IERC721(collection).safeTransferFrom(from, to, tokenId); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721.sol) pragma solidity ^0.8.0; import "../../utils/introspection/IERC165.sol"; /** * @dev Required interface of an ERC721 compliant contract. */ interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface ITransferManagerNFT { function transferNonFungibleToken( address collection, address from, address to, uint256 tokenId, uint256 amount ) external; }
// 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); }
{ "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
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_mintedExchange","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"MINTED_EXCHANGE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"collection","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"transferNonFungibleToken","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60a060405234801561001057600080fd5b506040516102bb3803806102bb83398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c6102266100956000396000818160400152609e01526102266000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806323c24c791461003b57806333f2fa9f1461007e575b600080fd5b6100627f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b61009161008c36600461019c565b610093565b005b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461010f5760405162461bcd60e51b815260206004820152601e60248201527f5472616e736665723a204f6e6c79204d696e7465642045786368616e67650000604482015260640160405180910390fd5b604051632142170760e11b81526001600160a01b0385811660048301528481166024830152604482018490528616906342842e0e90606401600060405180830381600087803b15801561016157600080fd5b505af1158015610175573d6000803e3d6000fd5b505050505050505050565b80356001600160a01b038116811461019757600080fd5b919050565b600080600080600060a086880312156101b3578081fd5b6101bc86610180565b94506101ca60208701610180565b93506101d860408701610180565b9497939650939460608101359450608001359291505056fea264697066735822122019ec063d58fb721db8b95bcb883f2cb190b2c4597eb5bab0b28b6d2974d120e864736f6c6343000804003300000000000000000000000040cbf9c75a46b147e0fd9ab47df5e064ae015f92
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100365760003560e01c806323c24c791461003b57806333f2fa9f1461007e575b600080fd5b6100627f00000000000000000000000040cbf9c75a46b147e0fd9ab47df5e064ae015f9281565b6040516001600160a01b03909116815260200160405180910390f35b61009161008c36600461019c565b610093565b005b336001600160a01b037f00000000000000000000000040cbf9c75a46b147e0fd9ab47df5e064ae015f92161461010f5760405162461bcd60e51b815260206004820152601e60248201527f5472616e736665723a204f6e6c79204d696e7465642045786368616e67650000604482015260640160405180910390fd5b604051632142170760e11b81526001600160a01b0385811660048301528481166024830152604482018490528616906342842e0e90606401600060405180830381600087803b15801561016157600080fd5b505af1158015610175573d6000803e3d6000fd5b505050505050505050565b80356001600160a01b038116811461019757600080fd5b919050565b600080600080600060a086880312156101b3578081fd5b6101bc86610180565b94506101ca60208701610180565b93506101d860408701610180565b9497939650939460608101359450608001359291505056fea264697066735822122019ec063d58fb721db8b95bcb883f2cb190b2c4597eb5bab0b28b6d2974d120e864736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000040cbf9c75a46b147e0fd9ab47df5e064ae015f92
-----Decoded View---------------
Arg [0] : _mintedExchange (address): 0x40cBf9C75a46b147E0fd9aB47df5E064aE015f92
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000040cbf9c75a46b147e0fd9ab47df5e064ae015f92
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.