Overview
ETH Balance
0 ETH
Eth Value
$0.00View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
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.