Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
TransferManagerERC1155
Compiler Version
v0.8.7+commit.e28d00a7
Optimization Enabled:
Yes with 888888 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import {IERC1155} from "@openzeppelin/contracts/token/ERC1155/IERC1155.sol"; import {ITransferManagerNFT} from "../interfaces/ITransferManagerNFT.sol"; /** * @title TransferManagerERC1155 * @notice It allows the transfer of ERC1155 tokens. */ contract TransferManagerERC1155 is ITransferManagerNFT { address public immutable LOOKS_RARE_EXCHANGE; /** * @notice Constructor * @param _looksRareExchange address of the LooksRare exchange */ constructor(address _looksRareExchange) { LOOKS_RARE_EXCHANGE = _looksRareExchange; } /** * @notice Transfer ERC1155 token(s) * @param collection address of the collection * @param from address of the sender * @param to address of the recipient * @param tokenId tokenId * @param amount amount of tokens (1 and more for ERC1155) */ function transferNonFungibleToken( address collection, address from, address to, uint256 tokenId, uint256 amount ) external override { require(msg.sender == LOOKS_RARE_EXCHANGE, "Transfer: Only LooksRare Exchange"); // https://docs.openzeppelin.com/contracts/3.x/api/token/erc1155#IERC1155-safeTransferFrom-address-address-uint256-uint256-bytes- IERC1155(collection).safeTransferFrom(from, to, tokenId, amount, ""); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC1155/IERC1155.sol) pragma solidity ^0.8.0; import "../../utils/introspection/IERC165.sol"; /** * @dev Required interface of an ERC1155 compliant contract, as defined in the * https://eips.ethereum.org/EIPS/eip-1155[EIP]. * * _Available since v3.1._ */ interface IERC1155 is IERC165 { /** * @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`. */ event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value); /** * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all * transfers. */ event TransferBatch( address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values ); /** * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to * `approved`. */ event ApprovalForAll(address indexed account, address indexed operator, bool approved); /** * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. * * If an {URI} event was emitted for `id`, the standard * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value * returned by {IERC1155MetadataURI-uri}. */ event URI(string value, uint256 indexed id); /** * @dev Returns the amount of tokens of token type `id` owned by `account`. * * Requirements: * * - `account` cannot be the zero address. */ function balanceOf(address account, uint256 id) external view returns (uint256); /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. * * Requirements: * * - `accounts` and `ids` must have the same length. */ function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids) external view returns (uint256[] memory); /** * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, * * Emits an {ApprovalForAll} event. * * Requirements: * * - `operator` cannot be the caller. */ function setApprovalForAll(address operator, bool approved) external; /** * @dev Returns true if `operator` is approved to transfer ``account``'s tokens. * * See {setApprovalForAll}. */ function isApprovedForAll(address account, address operator) external view returns (bool); /** * @dev Transfers `amount` tokens of token type `id` from `from` to `to`. * * Emits a {TransferSingle} event. * * Requirements: * * - `to` cannot be the zero address. * - If the caller is not `from`, it must be have been approved to spend ``from``'s tokens via {setApprovalForAll}. * - `from` must have a balance of tokens of type `id` of at least `amount`. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the * acceptance magic value. */ function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes calldata data ) external; /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. * * Emits a {TransferBatch} event. * * Requirements: * * - `ids` and `amounts` must have the same length. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the * acceptance magic value. */ function safeBatchTransferFrom( address from, address to, uint256[] calldata ids, uint256[] calldata amounts, 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": 888888 }, "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":"_looksRareExchange","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"LOOKS_RARE_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":"amount","type":"uint256"}],"name":"transferNonFungibleToken","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60a060405234801561001057600080fd5b5060405161036038038061036083398101604081905261002f91610044565b60601b6001600160601b031916608052610074565b60006020828403121561005657600080fd5b81516001600160a01b038116811461006d57600080fd5b9392505050565b60805160601c6102c9610097600039600081816055015260b801526102c96000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806333f2fa9f1461003b5780633dd7df5014610050575b600080fd5b61004e61004936600461023e565b6100a0565b005b6100777f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f5472616e736665723a204f6e6c79204c6f6f6b73526172652045786368616e6760448201527f6500000000000000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301528481166024830152604482018490526064820183905260a06084830152600060a483015286169063f242432a9060c401600060405180830381600087803b1580156101f657600080fd5b505af115801561020a573d6000803e3d6000fd5b505050505050505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461023957600080fd5b919050565b600080600080600060a0868803121561025657600080fd5b61025f86610215565b945061026d60208701610215565b935061027b60408701610215565b9497939650939460608101359450608001359291505056fea26469706673582212201301838781cb6009ca4ad41d5f906e22f0f8eeabdb8218afcbc18046cefd3e4a64736f6c6343000807003300000000000000000000000059728544b08ab483533076417fbbb2fd0b17ce3a
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100365760003560e01c806333f2fa9f1461003b5780633dd7df5014610050575b600080fd5b61004e61004936600461023e565b6100a0565b005b6100777f00000000000000000000000059728544b08ab483533076417fbbb2fd0b17ce3a81565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000059728544b08ab483533076417fbbb2fd0b17ce3a1614610169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f5472616e736665723a204f6e6c79204c6f6f6b73526172652045786368616e6760448201527f6500000000000000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301528481166024830152604482018490526064820183905260a06084830152600060a483015286169063f242432a9060c401600060405180830381600087803b1580156101f657600080fd5b505af115801561020a573d6000803e3d6000fd5b505050505050505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461023957600080fd5b919050565b600080600080600060a0868803121561025657600080fd5b61025f86610215565b945061026d60208701610215565b935061027b60408701610215565b9497939650939460608101359450608001359291505056fea26469706673582212201301838781cb6009ca4ad41d5f906e22f0f8eeabdb8218afcbc18046cefd3e4a64736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000059728544b08ab483533076417fbbb2fd0b17ce3a
-----Decoded View---------------
Arg [0] : _looksRareExchange (address): 0x59728544B08AB483533076417FbBB2fD0B17CE3a
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000059728544b08ab483533076417fbbb2fd0b17ce3a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.