Contract Overview
[ Download CSV Export ]
Latest 25 internal transaction
[ Download CSV Export ]
Contract Name:
nNFT
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)
// SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.4; interface IERC165 { function supportsInterface(bytes4 interfaceId) external view returns (bool); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.4; import "./IERC165.sol"; interface IERC721 is IERC165 { event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); event ApprovalForAll(address indexed owner, address indexed operator, bool approved); function balanceOf(address owner) external view returns (uint256 balance); function ownerOf(uint256 tokenId) external view returns (address owner); function safeTransferFrom(address from, address to, uint256 tokenId) external; function transferFrom(address from, address to, uint256 tokenId) external; function approve(address to, uint256 tokenId) external; function getApproved(uint256 tokenId) external view returns (address operator); function setApprovalForAll(address operator, bool _approved) external; function isApprovedForAll(address owner, address operator) external view returns (bool); function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external; } interface ERC721TokenReceiver { function onERC721Received(address _operator, address _from, uint256 _tokenId, bytes calldata _data) external returns(bytes4); }
// SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.4; import "./Context.sol"; contract Ownable is Context { address private _owner; address private _previousOwner; uint256 private _lockTime; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); _previousOwner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function getUnlockTime() public view returns (uint256) { return _lockTime; } function getTime() public view returns (uint256) { return block.timestamp; } function lock(uint256 time) public virtual onlyOwner { _previousOwner = _owner; _owner = address(0); _lockTime = block.timestamp + time; emit OwnershipTransferred(_owner, address(0)); } function unlock() public virtual { require( _previousOwner == msg.sender, "You don't have permission to unlock" ); require(block.timestamp > _lockTime, "Contract not unlocked"); emit OwnershipTransferred(_owner, _previousOwner); _owner = _previousOwner; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.4; library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { if (a == 0) { return 0; } c = a * b; require(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 // uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return a / b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; require(c >= a); return c; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.4; import './SafeMath.sol'; import './IERC721.sol'; import './Ownable.sol'; contract nNFT is IERC721, Ownable { using SafeMath for uint256; event Mint(uint256 indexed index, address indexed minter); event PeckerOffered(uint256 indexed peckerIndex, uint256 minValue, address indexed toAddress); event PeckerBidEntered(uint256 indexed peckerIndex, uint256 value, address indexed fromAddress); event PeckerBidWithdrawn(uint256 indexed peckerIndex, uint256 value, address indexed fromAddress); event PeckerBought( uint256 indexed peckerIndex, uint256 value, address indexed fromAddress, address indexed toAddress ); event PeckerNoLongerForSale(uint256 indexed peckerIndex); /** * Event emitted when the public sale begins. */ event SaleBegins(); event updateCharityAddress(address newCharity); event updateReferralFee(uint256 newFee); event updateCharityFee(uint256 newFee); event updateMintPrice(uint256 mintPrice); event updateTokenURI(string newURI); event addReferral(address referralAddress); event removeReferral(address referralAddress); event addPremium(address referralAddress); event removePremium(address referralAddress); event updatePremiumFee(uint256 premiumFee); bytes4 internal constant MAGIC_ON_ERC721_RECEIVED = 0x150b7a02; uint256 public constant TOKEN_LIMIT = 10000; mapping(bytes4 => bool) internal supportedInterfaces; mapping(uint256 => address) internal idToOwner; mapping(uint256 => address) internal idToApproval; mapping(address => mapping(address => bool)) internal ownerToOperators; mapping(address => uint256[]) internal ownerToIds; mapping(uint256 => uint256) internal idToOwnerIndex; mapping(address => bool) internal referralWhiteList; mapping(address => bool) internal premiumList; string internal nftName; string internal nftSymbol; string public baseURI; // You can use this hash to verify the image file containing all the NFTS string public imageHash; uint256 internal numTokens = 0; address payable public charity; uint256 internal generatedGiveAway = 0; uint256 internal maxGiveAway = 100; bool public publicSale = false; // uint256 private mintPrice = 50000000000 gwei; uint256 private mintPrice = 50000000000 gwei; uint256 private maxDonations; uint256 private totalDonations = 0; uint256 public saleStartTime; uint256 private charityFee; uint256 private referralFee; uint256 private premiumFee; //// Random index assignment uint256 internal nonce = 0; uint256[TOKEN_LIMIT] internal indices; //// Market bool public marketPaused; bool public contractSealed; mapping(address => uint256) public ethBalance; mapping(bytes32 => bool) public cancelledOffers; bool private reentrancyLock = false; /* Prevent a contract function from being reentrant-called. */ modifier reentrancyGuard() { if (reentrancyLock) { revert(); } reentrancyLock = true; _; reentrancyLock = false; } modifier canOperate(uint256 _tokenId) { address tokenOwner = idToOwner[_tokenId]; require(tokenOwner == msg.sender || ownerToOperators[tokenOwner][msg.sender], 'Cannot operate.'); _; } modifier canTransfer(uint256 _tokenId) { address tokenOwner = idToOwner[_tokenId]; require( tokenOwner == msg.sender || idToApproval[_tokenId] == msg.sender || ownerToOperators[tokenOwner][msg.sender], 'Cannot transfer.' ); _; } modifier validNFToken(uint256 _tokenId) { require(idToOwner[_tokenId] != address(0), 'Invalid token.'); _; } constructor( string memory _nftName, string memory _nftSymbol, string memory _baseURI, address payable _charity, string memory _imageHash ) { supportedInterfaces[0x01ffc9a7] = true; // ERC165 supportedInterfaces[0x80ac58cd] = true; // ERC721 supportedInterfaces[0x780e9d63] = true; // ERC721 Enumerable supportedInterfaces[0x5b5e139f] = true; // ERC721 Metadata require(owner() != address(0), 'Owner must be set'); nftName = _nftName; nftSymbol = _nftSymbol; charity = _charity; imageHash = _imageHash; baseURI = _baseURI; charityFee = 50; referralFee = 10; premiumFee = 20; // maxDonations = 77884000000 gwei; maxDonations = 77884000000000 gwei; } function startSale() external onlyOwner { require(!publicSale); saleStartTime = block.timestamp; publicSale = true; emit SaleBegins(); } function pauseMarket(bool _paused) external onlyOwner { require(!contractSealed, 'Contract sealed.'); marketPaused = _paused; } function setCharityAddress(address payable newCharity) external onlyOwner { require(newCharity != address(0), 'Cannot be 0x0'); charity = newCharity; emit updateCharityAddress(charity); } function setReferralFee(uint256 newFee) external onlyOwner { require(newFee < 25, 'Fee too high'); referralFee = newFee; emit updateReferralFee(referralFee); } function setPremiumFee(uint256 newFee) external onlyOwner { require(newFee < 25, 'Fee too high'); premiumFee = newFee; emit updatePremiumFee(premiumFee); } function setCharityFee(uint256 newFee) external onlyOwner { require(newFee < 50, 'Fee too high'); referralFee = newFee; emit updateCharityFee(referralFee); } function setMintPrice(uint256 newPrice) external onlyOwner { mintPrice = newPrice; emit updateMintPrice(mintPrice); } function sealContract() external onlyOwner { contractSealed = true; } function setTokenURI(string memory newURI) external onlyOwner { baseURI = newURI; emit updateTokenURI(baseURI); } ////////////////////////// //// ERC 721 and 165 //// ////////////////////////// function isContract(address _addr) internal view returns (bool addressCheck) { uint256 size; assembly { size := extcodesize(_addr) } // solhint-disable-line addressCheck = size > 0; } function supportsInterface(bytes4 _interfaceID) external view override returns (bool) { return supportedInterfaces[_interfaceID]; } function safeTransferFrom( address _from, address _to, uint256 _tokenId, bytes calldata _data ) external override { _safeTransferFrom(_from, _to, _tokenId, _data); } function safeTransferFrom( address _from, address _to, uint256 _tokenId ) external override { _safeTransferFrom(_from, _to, _tokenId, ''); } function transferFrom( address _from, address _to, uint256 _tokenId ) external override canTransfer(_tokenId) validNFToken(_tokenId) { address tokenOwner = idToOwner[_tokenId]; require(tokenOwner == _from, 'Wrong from address.'); require(_to != address(0), 'Cannot send to 0x0.'); _transfer(_to, _tokenId); } function approve(address _approved, uint256 _tokenId) external override canOperate(_tokenId) validNFToken(_tokenId) { address tokenOwner = idToOwner[_tokenId]; require(_approved != tokenOwner); idToApproval[_tokenId] = _approved; emit Approval(tokenOwner, _approved, _tokenId); } function setApprovalForAll(address _operator, bool _approved) external override { ownerToOperators[msg.sender][_operator] = _approved; emit ApprovalForAll(msg.sender, _operator, _approved); } function balanceOf(address _owner) external view override returns (uint256) { require(_owner != address(0)); return _getOwnerNFTCount(_owner); } function ownerOf(uint256 _tokenId) public view override returns (address _owner) { require(idToOwner[_tokenId] != address(0)); _owner = idToOwner[_tokenId]; } function getApproved(uint256 _tokenId) external view override validNFToken(_tokenId) returns (address) { return idToApproval[_tokenId]; } function isApprovedForAll(address _owner, address _operator) external view override returns (bool) { if (_operator == address(0x58807baD0B376efc12F5AD86aAc70E78ed67deaE)) { // opensea proxy address return true; } // add other makerts into the approval return ownerToOperators[_owner][_operator]; } function _transfer(address _to, uint256 _tokenId) internal { address from = idToOwner[_tokenId]; _clearApproval(_tokenId); _removeNFToken(from, _tokenId); _addNFToken(_to, _tokenId); emit Transfer(from, _to, _tokenId); } function randomIndex() internal returns (uint256) { uint256 totalSize = TOKEN_LIMIT.sub(numTokens); uint256 index = uint256(keccak256(abi.encodePacked(nonce, msg.sender, block.difficulty, block.timestamp))) % totalSize; uint256 value = 0; if (indices[index] != 0) { value = indices[index]; } else { value = index; } // Move last value to selected position if (indices[totalSize.sub(1)] == 0) { // Array position not initialized, so use position indices[index] = totalSize.sub(1); } else { // Array position holds a value so use that indices[index] = indices[totalSize.sub(1)]; } nonce++; // Don't allow a zero index, start counting at 1 return value.add(1); } function mintsRemaining() external view returns (uint256) { return TOKEN_LIMIT.sub(numTokens); } /** * Public sale minting. */ function mint(uint256 numberOfNfts, address payable referralAddress) external payable reentrancyGuard { require(publicSale, 'Sale not started.'); require(!marketPaused); require(numberOfNfts == 1, 'You can only buy 1 NFT at the time'); require(totalSupply().add(numberOfNfts) <= TOKEN_LIMIT, 'Exceeds TOKEN_LIMIT'); require(mintPrice.mul(numberOfNfts) == msg.value, 'eth value sent is not correct'); uint256 premiumAmount = 0; uint256 referralAmount = 0; if (referralAddress != address(0) && referralAddress != msg.sender && premiumList[referralAddress]) { premiumAmount = _calculatePremiumFee(msg.value); referralAddress.transfer(premiumAmount); } else if ( referralAddress != address(0) && referralAddress != msg.sender && referralWhiteList[referralAddress] ) { referralAmount = _calculateReferralFee(msg.value); referralAddress.transfer(referralAmount); } uint256 charityAmount = 0; if (totalDonations < maxDonations) { charityAmount = _calculateCharityFee(msg.value); totalDonations = totalDonations.add(charityAmount); charity.transfer(charityAmount); } payable(owner()).transfer(msg.value.sub(charityAmount).sub(referralAmount).sub(premiumAmount)); _mint(msg.sender); } function giveAway(address luckyWinner) public onlyOwner { require(generatedGiveAway < maxGiveAway, 'giveaway ended'); _mint(luckyWinner); generatedGiveAway = generatedGiveAway.add(1); } function addToReferral(address referralAddress) public { referralWhiteList[referralAddress] = true; emit addReferral(referralAddress); } function removeFromReferral(address referralAddress) public { referralWhiteList[referralAddress] = false; emit removeReferral(referralAddress); } function addToPremium(address premiumAddress) public onlyOwner { premiumList[premiumAddress] = true; emit addPremium(premiumAddress); } function removeFromPremium(address premiumAddress) public onlyOwner { premiumList[premiumAddress] = false; emit removePremium(premiumAddress); } function _calculateCharityFee(uint256 _amount) private view returns (uint256) { return _amount.mul(charityFee).div(10**2); } function _calculateReferralFee(uint256 _amount) private view returns (uint256) { return _amount.mul(referralFee).div(10**2); } function _calculatePremiumFee(uint256 _amount) private view returns (uint256) { return _amount.mul(premiumFee).div(10**2); } function _mint(address _to) internal returns (uint256) { require(_to != address(0), 'Cannot mint to 0x0.'); require(numTokens < TOKEN_LIMIT, 'Token limit reached.'); uint256 id = randomIndex(); numTokens++; _addNFToken(_to, id); emit Mint(id, _to); emit Transfer(address(0), _to, id); return id; } function _addNFToken(address _to, uint256 _tokenId) internal { require(idToOwner[_tokenId] == address(0), 'Cannot add, already owned.'); idToOwner[_tokenId] = _to; ownerToIds[_to].push(_tokenId); idToOwnerIndex[_tokenId] = ownerToIds[_to].length.sub(1); } function _removeNFToken(address _from, uint256 _tokenId) internal { require(idToOwner[_tokenId] == _from, 'Incorrect owner.'); delete idToOwner[_tokenId]; uint256 tokenToRemoveIndex = idToOwnerIndex[_tokenId]; uint256 lastTokenIndex = ownerToIds[_from].length.sub(1); if (lastTokenIndex != tokenToRemoveIndex) { uint256 lastToken = ownerToIds[_from][lastTokenIndex]; ownerToIds[_from][tokenToRemoveIndex] = lastToken; idToOwnerIndex[lastToken] = tokenToRemoveIndex; } ownerToIds[_from].pop(); } function _getOwnerNFTCount(address _owner) internal view returns (uint256) { return ownerToIds[_owner].length; } function _safeTransferFrom( address _from, address _to, uint256 _tokenId, bytes memory _data ) private canTransfer(_tokenId) validNFToken(_tokenId) { address tokenOwner = idToOwner[_tokenId]; require(tokenOwner == _from, 'Incorrect owner.'); require(_to != address(0)); _transfer(_to, _tokenId); if (isContract(_to)) { bytes4 retval = ERC721TokenReceiver(_to).onERC721Received(msg.sender, _from, _tokenId, _data); require(retval == MAGIC_ON_ERC721_RECEIVED); } } function _safeTransfer( address _from, address _to, uint256 _tokenId, bytes memory _data ) private validNFToken(_tokenId) { address tokenOwner = idToOwner[_tokenId]; require(tokenOwner == _from, 'Incorrect owner.'); require(_to != address(0)); _transfer(_to, _tokenId); if (isContract(_to)) { bytes4 retval = ERC721TokenReceiver(_to).onERC721Received(msg.sender, _from, _tokenId, _data); require(retval == MAGIC_ON_ERC721_RECEIVED); } } function _clearApproval(uint256 _tokenId) private { if (idToApproval[_tokenId] != address(0)) { delete idToApproval[_tokenId]; } } //// Enumerable function totalSupply() public view returns (uint256) { return numTokens; } function tokenByIndex(uint256 index) public pure returns (uint256) { require(index >= 0 && index < TOKEN_LIMIT); return index + 1; } function tokenOfOwnerByIndex(address _owner, uint256 _index) external view returns (uint256) { require(_index < ownerToIds[_owner].length); return ownerToIds[_owner][_index]; } //// Metadata /** * @dev Converts a `uint256` to its ASCII `string` representation. */ function toString(uint256 _i) internal pure returns (string memory _uintAsString) { if (_i == 0) { return '0'; } uint256 j = _i; uint256 len; while (j != 0) { len++; j /= 10; } bytes memory bstr = new bytes(len); uint256 k = len; while (_i != 0) { k = k - 1; uint8 temp = (48 + uint8(_i - (_i / 10) * 10)); bytes1 b1 = bytes1(temp); bstr[k] = b1; _i /= 10; } return string(bstr); } /** * @dev Returns a descriptive name for a collection of NFTokens. * @return _name Representing name. */ function name() external view returns (string memory _name) { _name = nftName; } /** * @dev Returns an abbreviated name for NFTokens. * @return _symbol Representing symbol. */ function symbol() external view returns (string memory _symbol) { _symbol = nftSymbol; } /** * @dev A distinct URI (RFC 3986) for a given NFT. * @param _tokenId Id for which we want uri. * @return _tokenId URI of _tokenId. */ function tokenURI(uint256 _tokenId) external view validNFToken(_tokenId) returns (string memory) { return string(abi.encodePacked(baseURI, toString(_tokenId))); } /** * @dev A distinct URI (RFC 3986) for the collection https://docs.opensea.io/docs/contract-level-metadata. * @return collection json url */ function contractURI() external view returns (string memory) { return string(abi.encodePacked(baseURI, 'collection')); } /** * @param _address address to check * @return bool */ function isInReferralWhitelist(address _address) external view returns (bool) { return referralWhiteList[_address]; } function isInPremium(address _address) external view returns (bool) { return premiumList[_address]; } }
{ "remappings": [], "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "istanbul", "libraries": {}, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"_nftName","type":"string"},{"internalType":"string","name":"_nftSymbol","type":"string"},{"internalType":"string","name":"_baseURI","type":"string"},{"internalType":"address payable","name":"_charity","type":"address"},{"internalType":"string","name":"_imageHash","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":true,"internalType":"address","name":"minter","type":"address"}],"name":"Mint","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":"uint256","name":"peckerIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":true,"internalType":"address","name":"fromAddress","type":"address"}],"name":"PeckerBidEntered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"peckerIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":true,"internalType":"address","name":"fromAddress","type":"address"}],"name":"PeckerBidWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"peckerIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":true,"internalType":"address","name":"fromAddress","type":"address"},{"indexed":true,"internalType":"address","name":"toAddress","type":"address"}],"name":"PeckerBought","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"peckerIndex","type":"uint256"}],"name":"PeckerNoLongerForSale","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"peckerIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"minValue","type":"uint256"},{"indexed":true,"internalType":"address","name":"toAddress","type":"address"}],"name":"PeckerOffered","type":"event"},{"anonymous":false,"inputs":[],"name":"SaleBegins","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"referralAddress","type":"address"}],"name":"addPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"referralAddress","type":"address"}],"name":"addReferral","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"referralAddress","type":"address"}],"name":"removePremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"referralAddress","type":"address"}],"name":"removeReferral","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newCharity","type":"address"}],"name":"updateCharityAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"updateCharityFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"mintPrice","type":"uint256"}],"name":"updateMintPrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"premiumFee","type":"uint256"}],"name":"updatePremiumFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"updateReferralFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"newURI","type":"string"}],"name":"updateTokenURI","type":"event"},{"inputs":[],"name":"TOKEN_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"premiumAddress","type":"address"}],"name":"addToPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"referralAddress","type":"address"}],"name":"addToReferral","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_approved","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"cancelledOffers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"charity","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractSealed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ethBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"luckyWinner","type":"address"}],"name":"giveAway","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"imageHash","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isInPremium","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isInReferralWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numberOfNfts","type":"uint256"},{"internalType":"address payable","name":"referralAddress","type":"address"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mintsRemaining","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"name":"pauseMarket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"publicSale","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"premiumAddress","type":"address"}],"name":"removeFromPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"referralAddress","type":"address"}],"name":"removeFromReferral","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"saleStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sealContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newCharity","type":"address"}],"name":"setCharityAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"setCharityFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPrice","type":"uint256"}],"name":"setMintPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"setPremiumFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"setReferralFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newURI","type":"string"}],"name":"setTokenURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"_symbol","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526000600f819055601181905560646012556013805460ff199081169091556802b5e3af16b18800006014556016829055601b9190915561272f805490911690553480156200005157600080fd5b506040516200346c3803806200346c8339810160408190526200007491620003cb565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060036020527f28b0ef64f7e82d3b26f3fd404bd0151552f792965f39c29ae82c0a78df67af9c8054600160ff1991821681179092557f41a75b24256f422320613da5706c374a0a7eea8e8d418281bda8820c6b34435680548216831790557f785e4d925c4778965a1107f0c202069d496d641ab5dd08a13bd2b783950e105f8054821683179055635b5e139f60e01b60009081527fcca39824a677cee72cd3539fc56c0e5a676a28b60617ea00a9d38305722c8b6480549092169092179055620001876000546001600160a01b031690565b6001600160a01b03161415620001d75760405162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015260640160405180910390fd5b8451620001ec90600b90602088019062000272565b5083516200020290600c90602087019062000272565b50601080546001600160a01b0319166001600160a01b03841617905580516200023390600e90602084019062000272565b5082516200024990600d90602086019062000272565b505060326018555050600a60195550506014601a5569107e19a028e1fb700000601555620004f3565b8280546200028090620004a0565b90600052602060002090601f016020900481019282620002a45760008555620002ef565b82601f10620002bf57805160ff1916838001178555620002ef565b82800160010185558215620002ef579182015b82811115620002ef578251825591602001919060010190620002d2565b50620002fd92915062000301565b5090565b5b80821115620002fd576000815560010162000302565b600082601f83011262000329578081fd5b81516001600160401b0380821115620003465762000346620004dd565b604051601f8301601f19908116603f01168101908282118183101715620003715762000371620004dd565b816040528381526020925086838588010111156200038d578485fd5b8491505b83821015620003b0578582018301518183018401529082019062000391565b83821115620003c157848385830101525b9695505050505050565b600080600080600060a08688031215620003e3578081fd5b85516001600160401b0380821115620003fa578283fd5b6200040889838a0162000318565b965060208801519150808211156200041e578283fd5b6200042c89838a0162000318565b9550604088015191508082111562000442578283fd5b6200045089838a0162000318565b606089015190955091506001600160a01b03821682146200046f578283fd5b60808801519193508082111562000484578283fd5b50620004938882890162000318565b9150509295509295909350565b600181811c90821680620004b557607f821691505b60208210811415620004d757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b612f6980620005036000396000f3fe6080604052600436106102ff5760003560e01c806368bd580e11610190578063a69df4b5116100dc578063dd46706411610095578063e8a3d4851161006f578063e8a3d48514610905578063e985e9c51461091a578063f2fde38b1461093a578063f4a0a5281461095a57600080fd5b8063dd467064146108a5578063e045ae32146108c5578063e0df5b6f146108e557600080fd5b8063a69df4b5146107ed578063b650163714610802578063b66a0e5d14610822578063b88d4fde14610837578063c87b56dd14610857578063d8f3790f1461087757600080fd5b80638da5cb5b1161014957806395d89b411161012357806395d89b41146107675780639e2407851461077c5780639f7bf7621461079c578063a22cb465146107cd57600080fd5b80638da5cb5b14610716578063934aa0231461073457806394bf804d1461075457600080fd5b806368bd580e146106775780636b8891241461068c5780636c0360eb146106ac57806370a08231146106c1578063713494d7146106e1578063715018a61461070157600080fd5b806333bc1c5c1161024f57806351605d80116102085780635ec390d8116101e25780635ec390d8146105e9578063602bc62b146106095780636352211e1461061e57806365ab0dcb1461063e57600080fd5b806351605d80146105a1578063557ed1ba146105b65780635ddf93cd146105c957600080fd5b806333bc1c5c146104de5780633a283bd2146104f857806342842e0e1461051357806344c66be7146105335780634d6d00ba146105485780634f6ccce71461058157600080fd5b80630c9be46d116102bc5780631cbaee2d116102965780631cbaee2d1461046857806320c7c5961461047e57806323b872dd1461049e5780632f745c59146104be57600080fd5b80630c9be46d146104135780630ec7f8c61461043357806318160ddd1461045357600080fd5b806301ffc9a714610304578063031bd4c41461035357806306fdde0314610377578063081812fc14610399578063095ea7b3146103d157806309aaedb2146103f3575b600080fd5b34801561031057600080fd5b5061033e61031f366004612a4b565b6001600160e01b03191660009081526003602052604090205460ff1690565b60405190151581526020015b60405180910390f35b34801561035f57600080fd5b5061036961271081565b60405190815260200161034a565b34801561038357600080fd5b5061038c61097a565b60405161034a9190612c74565b3480156103a557600080fd5b506103b96103b4366004612a33565b610a0c565b6040516001600160a01b03909116815260200161034a565b3480156103dd57600080fd5b506103f16103ec3660046129ee565b610a6c565b005b3480156103ff57600080fd5b506103f161040e36600461288c565b610bb3565b34801561041f57600080fd5b506103f161042e36600461288c565b610c0b565b34801561043f57600080fd5b506103f161044e36600461288c565b610cc9565b34801561045f57600080fd5b50600f54610369565b34801561047457600080fd5b5061036960175481565b34801561048a57600080fd5b506103f1610499366004612a33565b610d47565b3480156104aa57600080fd5b506103f16104b93660046128e0565b610dc6565b3480156104ca57600080fd5b506103696104d93660046129ee565b610f67565b3480156104ea57600080fd5b5060135461033e9060ff1681565b34801561050457600080fd5b5061272c5461033e9060ff1681565b34801561051f57600080fd5b506103f161052e3660046128e0565b610fd7565b34801561053f57600080fd5b50610369610ff7565b34801561055457600080fd5b5061033e61056336600461288c565b6001600160a01b03166000908152600a602052604090205460ff1690565b34801561058d57600080fd5b5061036961059c366004612a33565b611015565b3480156105ad57600080fd5b5061038c611030565b3480156105c257600080fd5b5042610369565b3480156105d557600080fd5b506103f16105e436600461288c565b6110be565b3480156105f557600080fd5b506103f1610604366004612a19565b611139565b34801561061557600080fd5b50600254610369565b34801561062a57600080fd5b506103b9610639366004612a33565b6111c3565b34801561064a57600080fd5b5061033e61065936600461288c565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561068357600080fd5b506103f1611200565b34801561069857600080fd5b506103f16106a736600461288c565b61123c565b3480156106b857600080fd5b5061038c611290565b3480156106cd57600080fd5b506103696106dc36600461288c565b61129d565b3480156106ed57600080fd5b506103f16106fc366004612a33565b6112d0565b34801561070d57600080fd5b506103f161134f565b34801561072257600080fd5b506000546001600160a01b03166103b9565b34801561074057600080fd5b506010546103b9906001600160a01b031681565b6103f1610762366004612b2d565b6113bd565b34801561077357600080fd5b5061038c611737565b34801561078857600080fd5b506103f161079736600461288c565b611746565b3480156107a857600080fd5b5061033e6107b7366004612a33565b61272e6020526000908152604090205460ff1681565b3480156107d957600080fd5b506103f16107e83660046129ba565b6117d2565b3480156107f957600080fd5b506103f161183e565b34801561080e57600080fd5b5061272c5461033e90610100900460ff1681565b34801561082e57600080fd5b506103f161193c565b34801561084357600080fd5b506103f1610852366004612920565b6119b2565b34801561086357600080fd5b5061038c610872366004612a33565b6119fb565b34801561088357600080fd5b5061036961089236600461288c565b61272d6020526000908152604090205481565b3480156108b157600080fd5b506103f16108c0366004612a33565b611a67565b3480156108d157600080fd5b506103f16108e0366004612a33565b611aec565b3480156108f157600080fd5b506103f1610900366004612a83565b611b6b565b34801561091157600080fd5b5061038c611bd9565b34801561092657600080fd5b5061033e6109353660046128a8565b611c01565b34801561094657600080fd5b506103f161095536600461288c565b611c5f565b34801561096657600080fd5b506103f1610975366004612a33565b611d37565b6060600b805461098990612e42565b80601f01602080910402602001604051908101604052809291908181526020018280546109b590612e42565b8015610a025780601f106109d757610100808354040283529160200191610a02565b820191906000526020600020905b8154815290600101906020018083116109e557829003601f168201915b5050505050905090565b60008181526004602052604081205482906001600160a01b0316610a4b5760405162461bcd60e51b8152600401610a4290612d08565b60405180910390fd5b6000838152600560205260409020546001600160a01b031691505b50919050565b60008181526004602052604090205481906001600160a01b031633811480610ab757506001600160a01b038116600090815260066020908152604080832033845290915290205460ff165b610af55760405162461bcd60e51b815260206004820152600f60248201526e21b0b73737ba1037b832b930ba329760891b6044820152606401610a42565b60008381526004602052604090205483906001600160a01b0316610b2b5760405162461bcd60e51b8152600401610a4290612d08565b6000848152600460205260409020546001600160a01b03908116908616811415610b5457600080fd5b60008581526005602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050505050565b6001600160a01b038116600081815260096020908152604091829020805460ff1916905590519182527f4f4fa5a659253b9308d9a7d156c111daacd24765d1d20f8e065d7919196495f791015b60405180910390a150565b6000546001600160a01b03163314610c355760405162461bcd60e51b8152600401610a4290612d56565b6001600160a01b038116610c7b5760405162461bcd60e51b815260206004820152600d60248201526c043616e6e6f742062652030783609c1b6044820152606401610a42565b601080546001600160a01b0319166001600160a01b0383169081179091556040519081527fae5a17a7a5680afc1787f74b5d6d44208fc4f8d73a198f6e2e10720f3ef3588290602001610c00565b6000546001600160a01b03163314610cf35760405162461bcd60e51b8152600401610a4290612d56565b6001600160a01b0381166000818152600a6020908152604091829020805460ff1916600117905590519182527f7f87b1a8ec6b65bebe0567409a251acdb8a887bc0c24720fbc050ddeab9997839101610c00565b6000546001600160a01b03163314610d715760405162461bcd60e51b8152600401610a4290612d56565b60328110610d915760405162461bcd60e51b8152600401610a4290612d30565b60198190556040518181527fbee38dbe57e2b7a19fdc8739bd33606200e5ec956fb09750da4dd1377533c09090602001610c00565b60008181526004602052604090205481906001600160a01b031633811480610e0457506000828152600560205260409020546001600160a01b031633145b80610e3257506001600160a01b038116600090815260066020908152604080832033845290915290205460ff165b610e715760405162461bcd60e51b815260206004820152601060248201526f21b0b73737ba103a3930b739b332b91760811b6044820152606401610a42565b60008381526004602052604090205483906001600160a01b0316610ea75760405162461bcd60e51b8152600401610a4290612d08565b6000848152600460205260409020546001600160a01b039081169087168114610f085760405162461bcd60e51b81526020600482015260136024820152722bb937b73390333937b69030b2323932b9b99760691b6044820152606401610a42565b6001600160a01b038616610f545760405162461bcd60e51b815260206004820152601360248201527221b0b73737ba1039b2b732103a3790183c181760691b6044820152606401610a42565b610f5e8686611d95565b50505050505050565b6001600160a01b0382166000908152600760205260408120548210610f8b57600080fd5b6001600160a01b0383166000908152600760205260409020805483908110610fc357634e487b7160e01b600052603260045260246000fd5b906000526020600020015490505b92915050565b610ff283838360405180602001604052806000815250611e10565b505050565b6000611010600f5461271061202590919063ffffffff16565b905090565b6000612710821061102557600080fd5b610fd1826001612d8b565b600e805461103d90612e42565b80601f016020809104026020016040519081016040528092919081815260200182805461106990612e42565b80156110b65780601f1061108b576101008083540402835291602001916110b6565b820191906000526020600020905b81548152906001019060200180831161109957829003601f168201915b505050505081565b6000546001600160a01b031633146110e85760405162461bcd60e51b8152600401610a4290612d56565b6001600160a01b0381166000818152600a6020908152604091829020805460ff1916905590519182527f10e5824b369d76ff9aa2f1c811d5e3415681cfa1c52378176b3d9a4934e8a3ff9101610c00565b6000546001600160a01b031633146111635760405162461bcd60e51b8152600401610a4290612d56565b61272c54610100900460ff16156111af5760405162461bcd60e51b815260206004820152601060248201526f21b7b73a3930b1ba1039b2b0b632b21760811b6044820152606401610a42565b61272c805460ff1916911515919091179055565b6000818152600460205260408120546001600160a01b03166111e457600080fd5b506000908152600460205260409020546001600160a01b031690565b6000546001600160a01b0316331461122a5760405162461bcd60e51b8152600401610a4290612d56565b61272c805461ff001916610100179055565b6001600160a01b038116600081815260096020908152604091829020805460ff1916600117905590519182527fe8aca46aacf5ab581608f3342374cf7f21f8b3f8910d738b30d0cc81446eb5719101610c00565b600d805461103d90612e42565b60006001600160a01b0382166112b257600080fd5b6001600160a01b038216600090815260076020526040902054610fd1565b6000546001600160a01b031633146112fa5760405162461bcd60e51b8152600401610a4290612d56565b6019811061131a5760405162461bcd60e51b8152600401610a4290612d30565b60198190556040518181527ff3f524b8fdc93c6a901088cfc4e058cf7235cfa90762307774f52f2a59421e3890602001610c00565b6000546001600160a01b031633146113795760405162461bcd60e51b8152600401610a4290612d56565b600080546040516001600160a01b0390911690600080516020612f14833981519152908390a3600080546001600160a01b0319908116909155600180549091169055565b61272f5460ff16156113ce57600080fd5b61272f805460ff1916600117905560135460ff166114225760405162461bcd60e51b815260206004820152601160248201527029b0b632903737ba1039ba30b93a32b21760791b6044820152606401610a42565b61272c5460ff161561143357600080fd5b8160011461148e5760405162461bcd60e51b815260206004820152602260248201527f596f752063616e206f6e6c79206275792031204e4654206174207468652074696044820152616d6560f01b6064820152608401610a42565b6127106114a48361149e600f5490565b90612045565b11156114e85760405162461bcd60e51b8152602060048201526013602482015272115e18d959591cc81513d2d15397d312535255606a1b6044820152606401610a42565b60145434906114f79084612060565b146115445760405162461bcd60e51b815260206004820152601d60248201527f6574682076616c75652073656e74206973206e6f7420636f72726563740000006044820152606401610a42565b6000806001600160a01b0383161580159061156857506001600160a01b0383163314155b801561158c57506001600160a01b0383166000908152600a602052604090205460ff165b156115d95761159a34612090565b6040519092506001600160a01b0384169083156108fc029084906000818181858888f193505050501580156115d3573d6000803e3d6000fd5b50611667565b6001600160a01b038316158015906115fa57506001600160a01b0383163314155b801561161e57506001600160a01b03831660009081526009602052604090205460ff165b156116675761162c346120b2565b6040519091506001600160a01b0384169082156108fc029083906000818181858888f19350505050158015611665573d6000803e3d6000fd5b505b600060155460165410156116cd5761167e346120ce565b60165490915061168e9082612045565b6016556010546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156116cb573d6000803e3d6000fd5b505b6000546001600160a01b03166108fc6116f2856116ec86813488612025565b90612025565b6040518115909202916000818181858888f1935050505015801561171a573d6000803e3d6000fd5b50611724336120ea565b505061272f805460ff1916905550505050565b6060600c805461098990612e42565b6000546001600160a01b031633146117705760405162461bcd60e51b8152600401610a4290612d56565b601254601154106117b45760405162461bcd60e51b815260206004820152600e60248201526d19da5d99585dd85e48195b99195960921b6044820152606401610a42565b6117bd816120ea565b506011546117cc906001612045565b60115550565b3360008181526006602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6001546001600160a01b031633146118a45760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b6064820152608401610a42565b60025442116118ed5760405162461bcd60e51b815260206004820152601560248201527410dbdb9d1c9858dd081b9bdd081d5b9b1bd8dad959605a1b6044820152606401610a42565b600154600080546040516001600160a01b039384169390911691600080516020612f1483398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000546001600160a01b031633146119665760405162461bcd60e51b8152600401610a4290612d56565b60135460ff161561197657600080fd5b426017556013805460ff191660011790556040517f771cfe172460b7d64cc46cca57a1e1f40f52b47cf1d16fe30c78a2935b3dd58090600090a1565b6119f485858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e1092505050565b5050505050565b60008181526004602052604090205460609082906001600160a01b0316611a345760405162461bcd60e51b8152600401610a4290612d08565b600d611a3f84612221565b604051602001611a50929190612bec565b604051602081830303815290604052915050919050565b6000546001600160a01b03163314611a915760405162461bcd60e51b8152600401610a4290612d56565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055611ac08142612d8b565b600255600080546040516001600160a01b0390911690600080516020612f14833981519152908390a350565b6000546001600160a01b03163314611b165760405162461bcd60e51b8152600401610a4290612d56565b60198110611b365760405162461bcd60e51b8152600401610a4290612d30565b601a8190556040518181527f94205c2ffcc5a6b462c73e71219db1ed27a51e2d66cc82b8711363adbac92ff190602001610c00565b6000546001600160a01b03163314611b955760405162461bcd60e51b8152600401610a4290612d56565b8051611ba890600d9060208401906127de565b507f98cd61538a481ea637e43ec2085986faccb1ae2b7bfea66cae7f06485442e002600d604051610c009190612c87565b6060600d604051602001611bed9190612c11565b604051602081830303815290604052905090565b60006001600160a01b0382167358807bad0b376efc12f5ad86aac70e78ed67deae1415611c3057506001610fd1565b506001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b6000546001600160a01b03163314611c895760405162461bcd60e51b8152600401610a4290612d56565b6001600160a01b038116611cee5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a42565b600080546040516001600160a01b0380851693921691600080516020612f1483398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611d615760405162461bcd60e51b8152600401610a4290612d56565b60148190556040518181527e728e46d37878f8be7ece5057e431700e8dd15755d19ea8757022db0b00cd0490602001610c00565b6000818152600460205260409020546001600160a01b0316611db682612366565b611dc081836123a3565b611dca838361254c565b81836001600160a01b0316826001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60008281526004602052604090205482906001600160a01b031633811480611e4e57506000828152600560205260409020546001600160a01b031633145b80611e7c57506001600160a01b038116600090815260066020908152604080832033845290915290205460ff165b611ebb5760405162461bcd60e51b815260206004820152601060248201526f21b0b73737ba103a3930b739b332b91760811b6044820152606401610a42565b60008481526004602052604090205484906001600160a01b0316611ef15760405162461bcd60e51b8152600401610a4290612d08565b6000858152600460205260409020546001600160a01b039081169088168114611f4f5760405162461bcd60e51b815260206004820152601060248201526f24b731b7b93932b1ba1037bbb732b91760811b6044820152606401610a42565b6001600160a01b038716611f6257600080fd5b611f6c8787611d95565b863b1561201b57604051630a85bd0160e11b81526000906001600160a01b0389169063150b7a0290611fa89033908d908c908c90600401612c37565b602060405180830381600087803b158015611fc257600080fd5b505af1158015611fd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ffa9190612a67565b90506001600160e01b03198116630a85bd0160e11b1461201957600080fd5b505b5050505050505050565b60008282111561203457600080fd5b61203e8284612dfb565b9392505050565b60006120518284612d8b565b905082811015610fd157600080fd5b60008261206f57506000610fd1565b6120798284612ddc565b9050816120868483612dc8565b14610fd157600080fd5b6000610fd160646120ac601a548561206090919063ffffffff16565b9061261b565b6000610fd160646120ac6019548561206090919063ffffffff16565b6000610fd160646120ac6018548561206090919063ffffffff16565b60006001600160a01b0382166121385760405162461bcd60e51b815260206004820152601360248201527221b0b73737ba1036b4b73a103a3790183c181760691b6044820152606401610a42565b612710600f54106121825760405162461bcd60e51b81526020600482015260146024820152732a37b5b2b7103634b6b4ba103932b0b1b432b21760611b6044820152606401610a42565b600061218c612627565b600f8054919250600061219e83612e77565b91905055506121ad838261254c565b6040516001600160a01b0384169082907ff3cea5493d790af0133817606f7350a91d7f154ea52eaa79d179d4d231e5010290600090a360405181906001600160a01b038516906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a492915050565b6060816122455750506040805180820190915260018152600360fc1b602082015290565b8160005b811561226f578061225981612e77565b91506122689050600a83612dc8565b9150612249565b60008167ffffffffffffffff81111561229857634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156122c2576020820181803683370190505b509050815b851561235d576122d8600182612dfb565b905060006122e7600a88612dc8565b6122f290600a612ddc565b6122fc9088612dfb565b612307906030612da3565b905060008160f81b90508084848151811061233257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350612354600a89612dc8565b975050506122c7565b50949350505050565b6000818152600560205260409020546001600160a01b0316156123a057600081815260056020526040902080546001600160a01b03191690555b50565b6000818152600460205260409020546001600160a01b038381169116146123ff5760405162461bcd60e51b815260206004820152601060248201526f24b731b7b93932b1ba1037bbb732b91760811b6044820152606401610a42565b600081815260046020908152604080832080546001600160a01b031916905560088252808320546001600160a01b03861684526007909252822054909190612448906001612025565b90508181146124fb576001600160a01b038416600090815260076020526040812080548390811061248957634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508060076000876001600160a01b03166001600160a01b0316815260200190815260200160002084815481106124db57634e487b7160e01b600052603260045260246000fd5b600091825260208083209091019290925591825260089052604090208290555b6001600160a01b038416600090815260076020526040902080548061253057634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b6000818152600460205260409020546001600160a01b0316156125b15760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f74206164642c20616c7265616479206f776e65642e0000000000006044820152606401610a42565b600081815260046020908152604080832080546001600160a01b0319166001600160a01b03871690811790915580845260078352908320805460018181018355828652938520018590559252905461260891612025565b6000918252600860205260409091205550565b600061203e8284612dc8565b600080612641600f5461271061202590919063ffffffff16565b601b546040805160208101929092526bffffffffffffffffffffffff193360601b169082015244605482015242607482015290915060009082906094016040516020818303038152906040528051906020012060001c6126a19190612e92565b90506000601c8261271081106126c757634e487b7160e01b600052603260045260246000fd5b0154156126f957601c8261271081106126f057634e487b7160e01b600052603260045260246000fd5b015490506126fc565b50805b601c612709846001612025565b612710811061272857634e487b7160e01b600052603260045260246000fd5b015461276257612739836001612025565b601c83612710811061275b57634e487b7160e01b600052603260045260246000fd5b01556127b5565b601c61276f846001612025565b612710811061278e57634e487b7160e01b600052603260045260246000fd5b0154601c8361271081106127b257634e487b7160e01b600052603260045260246000fd5b01555b601b80549060006127c583612e77565b909155506127d69050816001612045565b935050505090565b8280546127ea90612e42565b90600052602060002090601f01602090048101928261280c5760008555612852565b82601f1061282557805160ff1916838001178555612852565b82800160010185558215612852579182015b82811115612852578251825591602001919060010190612837565b5061285e929150612862565b5090565b5b8082111561285e5760008155600101612863565b8035801515811461288757600080fd5b919050565b60006020828403121561289d578081fd5b813561203e81612ee8565b600080604083850312156128ba578081fd5b82356128c581612ee8565b915060208301356128d581612ee8565b809150509250929050565b6000806000606084860312156128f4578081fd5b83356128ff81612ee8565b9250602084013561290f81612ee8565b929592945050506040919091013590565b600080600080600060808688031215612937578081fd5b853561294281612ee8565b9450602086013561295281612ee8565b935060408601359250606086013567ffffffffffffffff80821115612975578283fd5b818801915088601f830112612988578283fd5b813581811115612996578384fd5b8960208285010111156129a7578384fd5b9699959850939650602001949392505050565b600080604083850312156129cc578182fd5b82356129d781612ee8565b91506129e560208401612877565b90509250929050565b60008060408385031215612a00578182fd5b8235612a0b81612ee8565b946020939093013593505050565b600060208284031215612a2a578081fd5b61203e82612877565b600060208284031215612a44578081fd5b5035919050565b600060208284031215612a5c578081fd5b813561203e81612efd565b600060208284031215612a78578081fd5b815161203e81612efd565b600060208284031215612a94578081fd5b813567ffffffffffffffff80821115612aab578283fd5b818401915084601f830112612abe578283fd5b813581811115612ad057612ad0612ed2565b604051601f8201601f19908116603f01168101908382118183101715612af857612af8612ed2565b81604052828152876020848701011115612b10578586fd5b826020860160208301379182016020019490945295945050505050565b60008060408385031215612b3f578182fd5b8235915060208301356128d581612ee8565b60008151808452612b69816020860160208601612e12565b601f01601f19169290920160200192915050565b60008154612b8a81612e42565b60018281168015612ba25760018114612bb357612be2565b60ff19841687528287019450612be2565b8560005260208060002060005b85811015612bd95781548a820152908401908201612bc0565b50505082870194505b5050505092915050565b6000612bf88285612b7d565b8351612c08818360208801612e12565b01949350505050565b6000612c1d8284612b7d565b6931b7b63632b1ba34b7b760b11b8152600a019392505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612c6a90830184612b51565b9695505050505050565b60208152600061203e6020830184612b51565b60006020808352818454612c9a81612e42565b80848701526040600180841660008114612cbb5760018114612ccf57612cfa565b60ff19851689840152606089019550612cfa565b898852868820885b85811015612cf25781548b8201860152908301908801612cd7565b8a0184019650505b509398975050505050505050565b6020808252600e908201526d24b73b30b634b2103a37b5b2b71760911b604082015260600190565b6020808252600c908201526b08ccaca40e8dede40d0d2ced60a31b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115612d9e57612d9e612ea6565b500190565b600060ff821660ff84168060ff03821115612dc057612dc0612ea6565b019392505050565b600082612dd757612dd7612ebc565b500490565b6000816000190483118215151615612df657612df6612ea6565b500290565b600082821015612e0d57612e0d612ea6565b500390565b60005b83811015612e2d578181015183820152602001612e15565b83811115612e3c576000848401525b50505050565b600181811c90821680612e5657607f821691505b60208210811415610a6657634e487b7160e01b600052602260045260246000fd5b6000600019821415612e8b57612e8b612ea6565b5060010190565b600082612ea157612ea1612ebc565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146123a057600080fd5b6001600160e01b0319811681146123a057600080fdfe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220a52032e4051aad898232d02514023c652bdbe18b5d26e04163e5fbafa3e7d21c64736f6c6343000804003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000007e1e6a2c1d95db6ea14483c84c6243e09175a4c10000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000b5065636b657250756e6b73000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b5065636b657250756e6b73000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003068747470733a2f2f73746f726167652e676f6f676c65617069732e636f6d2f7065636b657270756e6b732f646174612f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000007e1e6a2c1d95db6ea14483c84c6243e09175a4c10000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000b5065636b657250756e6b73000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b5065636b657250756e6b73000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003068747470733a2f2f73746f726167652e676f6f676c65617069732e636f6d2f7065636b657270756e6b732f646174612f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _nftName (string): PeckerPunks
Arg [1] : _nftSymbol (string): PeckerPunks
Arg [2] : _baseURI (string): https://storage.googleapis.com/peckerpunks/data/
Arg [3] : _charity (address): 0x7e1e6a2c1d95db6ea14483c84c6243e09175a4c1
Arg [4] : _imageHash (string):
-----Encoded View---------------
13 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [3] : 0000000000000000000000007e1e6a2c1d95db6ea14483c84c6243e09175a4c1
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000180
Arg [5] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [6] : 5065636b657250756e6b73000000000000000000000000000000000000000000
Arg [7] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [8] : 5065636b657250756e6b73000000000000000000000000000000000000000000
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000030
Arg [10] : 68747470733a2f2f73746f726167652e676f6f676c65617069732e636f6d2f70
Arg [11] : 65636b657270756e6b732f646174612f00000000000000000000000000000000
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000000
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.