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:
LucisTrade
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.19; import {Ownable} from "openzeppelin/access/Ownable.sol"; import {IERC721} from "openzeppelin/token/ERC721/IERC721.sol"; contract LucisTrade is Ownable { /*////////////////////////////////////////////////////////////////////////// Events //////////////////////////////////////////////////////////////////////////*/ event SkullClaimed(uint256 indexed _ticketId, uint256 indexed _skullId, address indexed _claimer); event WinnersSet( uint256[] _winningTicketIds, string[] _ticketIdComments, uint256[] _skullIdsForWinners ); /*////////////////////////////////////////////////////////////////////////// Structs //////////////////////////////////////////////////////////////////////////*/ struct Ticket { string comment; uint256 skullId; } /*////////////////////////////////////////////////////////////////////////// State Variables //////////////////////////////////////////////////////////////////////////*/ uint256 private _semaphore; address public skullHolder; IERC721 public skullNFTAddress; IERC721 public ticketAddress; mapping(uint256 => Ticket) public winners; bool public winnersSelected; /*////////////////////////////////////////////////////////////////////////// Modifiers //////////////////////////////////////////////////////////////////////////*/ modifier addressesSet() { require(skullHolder != address(0), "a0"); require(address(skullNFTAddress) != address(0), "a1"); require(address(ticketAddress) != address(0), "a2"); _; } modifier guarded() { require(_semaphore == 0); _semaphore = 1; _; _semaphore = 0; } /*////////////////////////////////////////////////////////////////////////// Constructor //////////////////////////////////////////////////////////////////////////*/ constructor( address _skullHolder, address _skullNFTAddress, address _ticketAddress ) { skullHolder = _skullHolder; skullNFTAddress = IERC721(_skullNFTAddress); ticketAddress = IERC721(_ticketAddress); } /*////////////////////////////////////////////////////////////////////////// Admin Functions //////////////////////////////////////////////////////////////////////////*/ function setSkullHolder(address _skullHolder) external onlyOwner { skullHolder = _skullHolder; } function setSkullNFTAddress(address _skullNFTAddress) external onlyOwner { skullNFTAddress = IERC721(_skullNFTAddress); } function setTicketAddress(address _ticketAddress) external onlyOwner { ticketAddress = IERC721(_ticketAddress); } function setTicketWinnersAndSkulls( uint256[] calldata _winningTicketIds, string[] calldata _ticketIdComments, uint256[] calldata _skullIdsForWinners ) external onlyOwner { require(_winningTicketIds.length == 3); require(_ticketIdComments.length == 3); require(_skullIdsForWinners.length == 3); for (uint8 i = 0; i < 3; i++) { winners[_winningTicketIds[i]] = Ticket( _ticketIdComments[i], _skullIdsForWinners[i] ); } winnersSelected = true; emit WinnersSet( _winningTicketIds, _ticketIdComments, _skullIdsForWinners ); } /*////////////////////////////////////////////////////////////////////////// External Functions //////////////////////////////////////////////////////////////////////////*/ function claimSkull(uint256[] calldata _ticketIds) external addressesSet guarded { require(winnersSelected, "c5"); require(skullNFTAddress.isApprovedForAll(skullHolder, address(this)), "c0"); require(ticketAddress.isApprovedForAll(msg.sender, address(this)), "c1"); require(_ticketIds.length <= 3, "c2"); for (uint8 i = 0; i < _ticketIds.length; i++) { Ticket memory ticket = winners[_ticketIds[i]]; delete winners[_ticketIds[i]]; require(ticketAddress.ownerOf(_ticketIds[i]) == msg.sender, "c3"); require(bytes(ticket.comment).length != 0, "c4"); skullNFTAddress.safeTransferFrom(skullHolder, msg.sender, ticket.skullId, bytes(ticket.comment)); ticketAddress.safeTransferFrom(msg.sender, skullHolder, _ticketIds[i]); emit SkullClaimed(_ticketIds[i], ticket.skullId, msg.sender); } } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (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 Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling 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 (last updated v4.9.0) (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`. * * 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; /** * @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 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: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must * understand this adds an external call which potentially creates a reentrancy vulnerability. * * 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 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 the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @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); }
// 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; } }
// 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); }
{ "remappings": [ "ds-test/=lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "openzeppelin/=lib/openzeppelin-contracts/contracts/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "paris", "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_skullHolder","type":"address"},{"internalType":"address","name":"_skullNFTAddress","type":"address"},{"internalType":"address","name":"_ticketAddress","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_ticketId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_skullId","type":"uint256"},{"indexed":true,"internalType":"address","name":"_claimer","type":"address"}],"name":"SkullClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256[]","name":"_winningTicketIds","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"_ticketIdComments","type":"string[]"},{"indexed":false,"internalType":"uint256[]","name":"_skullIdsForWinners","type":"uint256[]"}],"name":"WinnersSet","type":"event"},{"inputs":[{"internalType":"uint256[]","name":"_ticketIds","type":"uint256[]"}],"name":"claimSkull","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_skullHolder","type":"address"}],"name":"setSkullHolder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_skullNFTAddress","type":"address"}],"name":"setSkullNFTAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_ticketAddress","type":"address"}],"name":"setTicketAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_winningTicketIds","type":"uint256[]"},{"internalType":"string[]","name":"_ticketIdComments","type":"string[]"},{"internalType":"uint256[]","name":"_skullIdsForWinners","type":"uint256[]"}],"name":"setTicketWinnersAndSkulls","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"skullHolder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"skullNFTAddress","outputs":[{"internalType":"contract IERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ticketAddress","outputs":[{"internalType":"contract IERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"winners","outputs":[{"internalType":"string","name":"comment","type":"string"},{"internalType":"uint256","name":"skullId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"winnersSelected","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162001337380380620013378339810160408190526200003491620000ef565b6200003f3362000082565b600280546001600160a01b039485166001600160a01b03199182161790915560038054938516938216939093179092556004805491909316911617905562000139565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620000ea57600080fd5b919050565b6000806000606084860312156200010557600080fd5b6200011084620000d2565b92506200012060208501620000d2565b91506200013060408501620000d2565b90509250925092565b6111ee80620001496000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806379fc9f921161008c578063a2fb117511610066578063a2fb11751461019b578063d03777fb146101bc578063ed9a5bbb146101cf578063f2fde38b146101e257600080fd5b806379fc9f921461015a5780638bc532851461016d5780638da5cb5b1461018a57600080fd5b806307dc42ba146100d457806341e1d3e4146100e95780634afbcb3d146100fc57806357a8e3fe1461010f578063715018a61461013f5780637529cc7d14610147575b600080fd5b6100e76100e2366004610c9b565b6101f5565b005b6100e76100f7366004610cdd565b610824565b6100e761010a366004610d8c565b6109a8565b600454610122906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e76109d2565b600354610122906001600160a01b031681565b6100e7610168366004610d8c565b6109e6565b60065461017a9060ff1681565b6040519015158152602001610136565b6000546001600160a01b0316610122565b6101ae6101a9366004610db0565b610a10565b604051610136929190610e0f565b600254610122906001600160a01b031681565b6100e76101dd366004610d8c565b610ab4565b6100e76101f0366004610d8c565b610ade565b6002546001600160a01b03166102375760405162461bcd60e51b8152602060048201526002602482015261061360f41b60448201526064015b60405180910390fd5b6003546001600160a01b03166102745760405162461bcd60e51b8152602060048201526002602482015261613160f01b604482015260640161022e565b6004546001600160a01b03166102b15760405162461bcd60e51b8152602060048201526002602482015261309960f11b604482015260640161022e565b600154156102be57600080fd5b6001805560065460ff166102f95760405162461bcd60e51b8152602060048201526002602482015261633560f01b604482015260640161022e565b60035460025460405163e985e9c560e01b81526001600160a01b03918216600482015230602482015291169063e985e9c590604401602060405180830381865afa15801561034b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036f9190610e31565b6103a05760405162461bcd60e51b8152602060048201526002602482015261063360f41b604482015260640161022e565b6004805460405163e985e9c560e01b815233928101929092523060248301526001600160a01b03169063e985e9c590604401602060405180830381865afa1580156103ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104139190610e31565b6104445760405162461bcd60e51b8152602060048201526002602482015261633160f01b604482015260640161022e565b600381111561047a5760405162461bcd60e51b8152602060048201526002602482015261319960f11b604482015260640161022e565b60005b60ff811682111561081a5760006005600085858560ff168181106104a3576104a3610e53565b9050602002013581526020019081526020016000206040518060400160405290816000820180546104d390610e69565b80601f01602080910402602001604051908101604052809291908181526020018280546104ff90610e69565b801561054c5780601f106105215761010080835404028352916020019161054c565b820191906000526020600020905b81548152906001019060200180831161052f57829003601f168201915b5050505050815260200160018201548152505090506005600085858560ff1681811061057a5761057a610e53565b905060200201358152602001908152602001600020600080820160006105a09190610c01565b5060006001919091015560045433906001600160a01b0316636352211e868660ff87168181106105d2576105d2610e53565b905060200201356040518263ffffffff1660e01b81526004016105f791815260200190565b602060405180830381865afa158015610614573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106389190610ea3565b6001600160a01b0316146106735760405162461bcd60e51b8152602060048201526002602482015261633360f01b604482015260640161022e565b8051516000036106aa5760405162461bcd60e51b815260206004820152600260248201526118cd60f21b604482015260640161022e565b60035460025460208301518351604051635c46a7ef60e11b81526001600160a01b039485169463b88d4fde946106e7949116923392600401610ec0565b600060405180830381600087803b15801561070157600080fd5b505af1158015610715573d6000803e3d6000fd5b50506004546002546001600160a01b0391821693506342842e0e9250339116878760ff881681811061074957610749610e53565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b1580156107a057600080fd5b505af11580156107b4573d6000803e3d6000fd5b5050506020820151339150858560ff86168181106107d4576107d4610e53565b905060200201357f42491392b34b38fbb8a18b1aa3dfb44e9518984ec1917f5a191dc19058d1643860405160405180910390a4508061081281610efd565b91505061047d565b5050600060015550565b61082c610b57565b6003851461083957600080fd5b6003831461084657600080fd5b6003811461085357600080fd5b60005b60038160ff16101561095057604051806040016040528086868460ff1681811061088257610882610e53565b90506020028101906108949190610f2a565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602001848460ff85168181106108e3576108e3610e53565b905060200201358152506005600089898560ff1681811061090657610906610e53565b90506020020135815260200190815260200160002060008201518160000190816109309190610fd6565b50602091909101516001909101558061094881610efd565b915050610856565b506006805460ff191660011790556040517f52354d5674968ae782fad3ce9f31532fd29e0a2b33dc302f32d9666522e8ea0490610998908890889088908890889088906110f1565b60405180910390a1505050505050565b6109b0610b57565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6109da610b57565b6109e46000610bb1565b565b6109ee610b57565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600560205260009081526040902080548190610a2b90610e69565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5790610e69565b8015610aa45780601f10610a7957610100808354040283529160200191610aa4565b820191906000526020600020905b815481529060010190602001808311610a8757829003601f168201915b5050505050908060010154905082565b610abc610b57565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b610ae6610b57565b6001600160a01b038116610b4b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161022e565b610b5481610bb1565b50565b6000546001600160a01b031633146109e45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161022e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b508054610c0d90610e69565b6000825580601f10610c1d575050565b601f016020900490600052602060002090810190610b5491905b80821115610c4b5760008155600101610c37565b5090565b60008083601f840112610c6157600080fd5b50813567ffffffffffffffff811115610c7957600080fd5b6020830191508360208260051b8501011115610c9457600080fd5b9250929050565b60008060208385031215610cae57600080fd5b823567ffffffffffffffff811115610cc557600080fd5b610cd185828601610c4f565b90969095509350505050565b60008060008060008060608789031215610cf657600080fd5b863567ffffffffffffffff80821115610d0e57600080fd5b610d1a8a838b01610c4f565b90985096506020890135915080821115610d3357600080fd5b610d3f8a838b01610c4f565b90965094506040890135915080821115610d5857600080fd5b50610d6589828a01610c4f565b979a9699509497509295939492505050565b6001600160a01b0381168114610b5457600080fd5b600060208284031215610d9e57600080fd5b8135610da981610d77565b9392505050565b600060208284031215610dc257600080fd5b5035919050565b6000815180845260005b81811015610def57602081850181015186830182015201610dd3565b506000602082860101526020601f19601f83011685010191505092915050565b604081526000610e226040830185610dc9565b90508260208301529392505050565b600060208284031215610e4357600080fd5b81518015158114610da957600080fd5b634e487b7160e01b600052603260045260246000fd5b600181811c90821680610e7d57607f821691505b602082108103610e9d57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215610eb557600080fd5b8151610da981610d77565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610ef390830184610dc9565b9695505050505050565b600060ff821660ff8103610f2157634e487b7160e01b600052601160045260246000fd5b60010192915050565b6000808335601e19843603018112610f4157600080fd5b83018035915067ffffffffffffffff821115610f5c57600080fd5b602001915036819003821315610c9457600080fd5b634e487b7160e01b600052604160045260246000fd5b601f821115610fd157600081815260208120601f850160051c81016020861015610fae5750805b601f850160051c820191505b81811015610fcd57828155600101610fba565b5050505b505050565b815167ffffffffffffffff811115610ff057610ff0610f71565b61100481610ffe8454610e69565b84610f87565b602080601f83116001811461103957600084156110215750858301515b600019600386901b1c1916600185901b178555610fcd565b600085815260208120601f198616915b8281101561106857888601518255948401946001909101908401611049565b50858210156110865787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81835260006001600160fb1b038311156110af57600080fd5b8260051b80836020870137939093016020019392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061110560608301888a611096565b602083820381850152818783528183019050818860051b8401018960005b8a81101561119357858303601f190184528135368d9003601e1901811261114957600080fd5b8c01858101903567ffffffffffffffff81111561116557600080fd5b80360382131561117457600080fd5b61117f8582846110c8565b958701959450505090840190600101611123565b505085810360408701526111a881888a611096565b9c9b50505050505050505050505056fea264697066735822122079fb46aec539682a65180331827f2eb5575afeac2387975b39fb78161a467ff364736f6c63430008130033000000000000000000000000cc7427393ddb3414a3337aa884e45f3057428935000000000000000000000000c9041f80dce73721a5f6a779672ec57ef255d27c000000000000000000000000da6558fa1c2452938168ef79dfd29c45aba8a32b
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806379fc9f921161008c578063a2fb117511610066578063a2fb11751461019b578063d03777fb146101bc578063ed9a5bbb146101cf578063f2fde38b146101e257600080fd5b806379fc9f921461015a5780638bc532851461016d5780638da5cb5b1461018a57600080fd5b806307dc42ba146100d457806341e1d3e4146100e95780634afbcb3d146100fc57806357a8e3fe1461010f578063715018a61461013f5780637529cc7d14610147575b600080fd5b6100e76100e2366004610c9b565b6101f5565b005b6100e76100f7366004610cdd565b610824565b6100e761010a366004610d8c565b6109a8565b600454610122906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e76109d2565b600354610122906001600160a01b031681565b6100e7610168366004610d8c565b6109e6565b60065461017a9060ff1681565b6040519015158152602001610136565b6000546001600160a01b0316610122565b6101ae6101a9366004610db0565b610a10565b604051610136929190610e0f565b600254610122906001600160a01b031681565b6100e76101dd366004610d8c565b610ab4565b6100e76101f0366004610d8c565b610ade565b6002546001600160a01b03166102375760405162461bcd60e51b8152602060048201526002602482015261061360f41b60448201526064015b60405180910390fd5b6003546001600160a01b03166102745760405162461bcd60e51b8152602060048201526002602482015261613160f01b604482015260640161022e565b6004546001600160a01b03166102b15760405162461bcd60e51b8152602060048201526002602482015261309960f11b604482015260640161022e565b600154156102be57600080fd5b6001805560065460ff166102f95760405162461bcd60e51b8152602060048201526002602482015261633560f01b604482015260640161022e565b60035460025460405163e985e9c560e01b81526001600160a01b03918216600482015230602482015291169063e985e9c590604401602060405180830381865afa15801561034b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036f9190610e31565b6103a05760405162461bcd60e51b8152602060048201526002602482015261063360f41b604482015260640161022e565b6004805460405163e985e9c560e01b815233928101929092523060248301526001600160a01b03169063e985e9c590604401602060405180830381865afa1580156103ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104139190610e31565b6104445760405162461bcd60e51b8152602060048201526002602482015261633160f01b604482015260640161022e565b600381111561047a5760405162461bcd60e51b8152602060048201526002602482015261319960f11b604482015260640161022e565b60005b60ff811682111561081a5760006005600085858560ff168181106104a3576104a3610e53565b9050602002013581526020019081526020016000206040518060400160405290816000820180546104d390610e69565b80601f01602080910402602001604051908101604052809291908181526020018280546104ff90610e69565b801561054c5780601f106105215761010080835404028352916020019161054c565b820191906000526020600020905b81548152906001019060200180831161052f57829003601f168201915b5050505050815260200160018201548152505090506005600085858560ff1681811061057a5761057a610e53565b905060200201358152602001908152602001600020600080820160006105a09190610c01565b5060006001919091015560045433906001600160a01b0316636352211e868660ff87168181106105d2576105d2610e53565b905060200201356040518263ffffffff1660e01b81526004016105f791815260200190565b602060405180830381865afa158015610614573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106389190610ea3565b6001600160a01b0316146106735760405162461bcd60e51b8152602060048201526002602482015261633360f01b604482015260640161022e565b8051516000036106aa5760405162461bcd60e51b815260206004820152600260248201526118cd60f21b604482015260640161022e565b60035460025460208301518351604051635c46a7ef60e11b81526001600160a01b039485169463b88d4fde946106e7949116923392600401610ec0565b600060405180830381600087803b15801561070157600080fd5b505af1158015610715573d6000803e3d6000fd5b50506004546002546001600160a01b0391821693506342842e0e9250339116878760ff881681811061074957610749610e53565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b1580156107a057600080fd5b505af11580156107b4573d6000803e3d6000fd5b5050506020820151339150858560ff86168181106107d4576107d4610e53565b905060200201357f42491392b34b38fbb8a18b1aa3dfb44e9518984ec1917f5a191dc19058d1643860405160405180910390a4508061081281610efd565b91505061047d565b5050600060015550565b61082c610b57565b6003851461083957600080fd5b6003831461084657600080fd5b6003811461085357600080fd5b60005b60038160ff16101561095057604051806040016040528086868460ff1681811061088257610882610e53565b90506020028101906108949190610f2a565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602001848460ff85168181106108e3576108e3610e53565b905060200201358152506005600089898560ff1681811061090657610906610e53565b90506020020135815260200190815260200160002060008201518160000190816109309190610fd6565b50602091909101516001909101558061094881610efd565b915050610856565b506006805460ff191660011790556040517f52354d5674968ae782fad3ce9f31532fd29e0a2b33dc302f32d9666522e8ea0490610998908890889088908890889088906110f1565b60405180910390a1505050505050565b6109b0610b57565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6109da610b57565b6109e46000610bb1565b565b6109ee610b57565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600560205260009081526040902080548190610a2b90610e69565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5790610e69565b8015610aa45780601f10610a7957610100808354040283529160200191610aa4565b820191906000526020600020905b815481529060010190602001808311610a8757829003601f168201915b5050505050908060010154905082565b610abc610b57565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b610ae6610b57565b6001600160a01b038116610b4b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161022e565b610b5481610bb1565b50565b6000546001600160a01b031633146109e45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161022e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b508054610c0d90610e69565b6000825580601f10610c1d575050565b601f016020900490600052602060002090810190610b5491905b80821115610c4b5760008155600101610c37565b5090565b60008083601f840112610c6157600080fd5b50813567ffffffffffffffff811115610c7957600080fd5b6020830191508360208260051b8501011115610c9457600080fd5b9250929050565b60008060208385031215610cae57600080fd5b823567ffffffffffffffff811115610cc557600080fd5b610cd185828601610c4f565b90969095509350505050565b60008060008060008060608789031215610cf657600080fd5b863567ffffffffffffffff80821115610d0e57600080fd5b610d1a8a838b01610c4f565b90985096506020890135915080821115610d3357600080fd5b610d3f8a838b01610c4f565b90965094506040890135915080821115610d5857600080fd5b50610d6589828a01610c4f565b979a9699509497509295939492505050565b6001600160a01b0381168114610b5457600080fd5b600060208284031215610d9e57600080fd5b8135610da981610d77565b9392505050565b600060208284031215610dc257600080fd5b5035919050565b6000815180845260005b81811015610def57602081850181015186830182015201610dd3565b506000602082860101526020601f19601f83011685010191505092915050565b604081526000610e226040830185610dc9565b90508260208301529392505050565b600060208284031215610e4357600080fd5b81518015158114610da957600080fd5b634e487b7160e01b600052603260045260246000fd5b600181811c90821680610e7d57607f821691505b602082108103610e9d57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215610eb557600080fd5b8151610da981610d77565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610ef390830184610dc9565b9695505050505050565b600060ff821660ff8103610f2157634e487b7160e01b600052601160045260246000fd5b60010192915050565b6000808335601e19843603018112610f4157600080fd5b83018035915067ffffffffffffffff821115610f5c57600080fd5b602001915036819003821315610c9457600080fd5b634e487b7160e01b600052604160045260246000fd5b601f821115610fd157600081815260208120601f850160051c81016020861015610fae5750805b601f850160051c820191505b81811015610fcd57828155600101610fba565b5050505b505050565b815167ffffffffffffffff811115610ff057610ff0610f71565b61100481610ffe8454610e69565b84610f87565b602080601f83116001811461103957600084156110215750858301515b600019600386901b1c1916600185901b178555610fcd565b600085815260208120601f198616915b8281101561106857888601518255948401946001909101908401611049565b50858210156110865787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81835260006001600160fb1b038311156110af57600080fd5b8260051b80836020870137939093016020019392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061110560608301888a611096565b602083820381850152818783528183019050818860051b8401018960005b8a81101561119357858303601f190184528135368d9003601e1901811261114957600080fd5b8c01858101903567ffffffffffffffff81111561116557600080fd5b80360382131561117457600080fd5b61117f8582846110c8565b958701959450505090840190600101611123565b505085810360408701526111a881888a611096565b9c9b50505050505050505050505056fea264697066735822122079fb46aec539682a65180331827f2eb5575afeac2387975b39fb78161a467ff364736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000cc7427393ddb3414a3337aa884e45f3057428935000000000000000000000000c9041f80dce73721a5f6a779672ec57ef255d27c000000000000000000000000da6558fa1c2452938168ef79dfd29c45aba8a32b
-----Decoded View---------------
Arg [0] : _skullHolder (address): 0xcC7427393DDB3414a3337aA884E45F3057428935
Arg [1] : _skullNFTAddress (address): 0xC9041F80DcE73721A5f6a779672Ec57Ef255d27c
Arg [2] : _ticketAddress (address): 0xDa6558fA1c2452938168EF79DfD29c45Aba8a32B
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000cc7427393ddb3414a3337aa884e45f3057428935
Arg [1] : 000000000000000000000000c9041f80dce73721a5f6a779672ec57ef255d27c
Arg [2] : 000000000000000000000000da6558fa1c2452938168ef79dfd29c45aba8a32b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 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.