Contract 0x3b2912228b75697d987c0c790bf19de35be943c4 3

 

Contract Overview

Balance:
0 MATIC

MATIC Value:
$0.00

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x6635a8a1496bb6ccf7ebd8e98d8b80b49f8126b77ffbb7b122847cfea540b35bSafe Transfer Fr...248266902022-02-11 20:50:4498 days 1 hr ago0xdbb9d557191501fd2cadf5a9fd80845f162d20dd IN  0x3b2912228b75697d987c0c790bf19de35be943c40 MATIC0.002512710248 28.919288831
0xdedb552905fcfaeb7490b203390dbbfe97240f3afaefadd7c1f00eff4d075d60Mint237639622022-01-15 22:48:44124 days 23 hrs ago0x3784480ee0a06ef824f73fe9929b77db4facc73d IN  0x3b2912228b75697d987c0c790bf19de35be943c450 MATIC0.00537580331
0x74579c3a437436f872c20344cfe1fdaf961175e91eada871c1d93a4dca4c1a90Safe Transfer Fr...224299962021-12-12 8:53:02159 days 13 hrs ago0xa0aa6e3fa533acc4639c66682305de78c8e45a31 IN  0x3b2912228b75697d987c0c790bf19de35be943c40 MATIC0.0019106130
0x833363aa743c1c812b2d1f30a7e21149c63d60cdadfd53b71e96d15a001384b3Give Away219422212021-11-29 16:24:41172 days 6 hrs ago0x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd28 IN  0x3b2912228b75697d987c0c790bf19de35be943c40 MATIC0.0042002730
0x39cfd9ca02950f6690ad6ad1aef6f8db797b88766f005250072cd7ff2b3a7a79Give Away219422212021-11-29 16:24:41172 days 6 hrs ago0x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd28 IN  0x3b2912228b75697d987c0c790bf19de35be943c40 MATIC0.0042002730
0x1707875219f0ec92bb865a29ebef4ca76bd6ce54ce3262f00a85c8b882000b41Give Away219422212021-11-29 16:24:41172 days 6 hrs ago0x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd28 IN  0x3b2912228b75697d987c0c790bf19de35be943c40 MATIC0.0042002730
0xd8dc30d150140f1b003c0e95ce2037eb330163cedd5b736cdd4ec07b007010d7Give Away219420912021-11-29 16:13:59172 days 6 hrs ago0x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd28 IN  0x3b2912228b75697d987c0c790bf19de35be943c40 MATIC0.0042002730
0x4727da9e98d65a439629e3bfa1b5d58d49c05446d9e38b2deb9601c2d1815ddbSet Approval For...216748522021-11-22 15:03:53179 days 7 hrs ago0xdbb9d557191501fd2cadf5a9fd80845f162d20dd IN  0x3b2912228b75697d987c0c790bf19de35be943c40 MATIC0.001538926233.3
0xbd41699997f2fd7225eecc5502285366ef4669a830d7d1d280789c710045d0a9Safe Transfer Fr...208910742021-11-02 9:19:55199 days 13 hrs ago0x7eb1fab57d9acef77403184d81c30a5592b72438 IN  0x3b2912228b75697d987c0c790bf19de35be943c40 MATIC0.0019106130
0x98fde9f91555163fd1c75e4538e1679dcb6ba170247fa5455ddbdc4fbc341c59Safe Transfer Fr...200778112021-10-10 22:51:03221 days 23 hrs ago0xc9c4b79bee62649d91e70f7082ff07e7dd4ac0c9 IN  0x3b2912228b75697d987c0c790bf19de35be943c40 MATIC0.0023147430
0xd4c7bb34583f8b8e31c1cab29455845dba69fab29f395ccd0ae0dda1b7b24b46Mint199969592021-10-08 20:41:50224 days 1 hr ago0x921394c76042f7e8f8867fa364c06cf1536efbdf IN  0x3b2912228b75697d987c0c790bf19de35be943c450 MATIC0.00537580331
0x9e22712ec1408ca68344b59083d0fe7be8f189b8dc800f4a209e29be9a71ac87Set Approval For...199554532021-10-07 19:13:24225 days 3 hrs ago0xa50566bd782cb3e3f211c7a2bf36732d241e92cd IN  0x3b2912228b75697d987c0c790bf19de35be943c40 MATIC0.0004002442188.660670318
0x571fc10dc846829d08273b28cae9c41c0830f4e417cfd3dc312851921eb65a6fGive Away198850562021-10-05 21:07:20227 days 1 hr ago0x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd28 IN  0x3b2912228b75697d987c0c790bf19de35be943c40 MATIC0.0042002730
0xceb80d03754eca83ed6b30cfb1fe46e14700225f5bf470b56303ecd390ec1456Give Away198441082021-10-04 20:04:43228 days 2 hrs ago0x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd28 IN  0x3b2912228b75697d987c0c790bf19de35be943c40 MATIC0.00218293418815.285690595
0x4e2af6ed650438b0e85163e697adb4c296019eb4ba42f0edef455eba46fa8c70Give Away198440882021-10-04 20:03:59228 days 2 hrs ago0x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd28 IN  0x3b2912228b75697d987c0c790bf19de35be943c40 MATIC0.0014000910
0x4a7ff64f33f31a88fcf03d8b6ca9a2d25586abdd7587a2029c887e7b778fd214Give Away198440792021-10-04 20:03:41228 days 2 hrs ago0x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd28 IN  0x3b2912228b75697d987c0c790bf19de35be943c40 MATIC0.00168010812
0x23c29dc31734ad24832f26902ff2aa8b04662ed67ca32e3c9d8bf4f36a603425Give Away198440612021-10-04 20:03:05228 days 2 hrs ago0x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd28 IN  0x3b2912228b75697d987c0c790bf19de35be943c40 MATIC0.00252016218
0x7fcfff57cf2aed96ec52d9efd1c4cc35bcf92e5b8e4178145d54ecdd2c3fd166Give Away198440322021-10-04 20:02:03228 days 2 hrs ago0x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd28 IN  0x3b2912228b75697d987c0c790bf19de35be943c40 MATIC0.008232529258.8
0x35a55019d8b27ecf5d941b01548e45b79723070243989c0cc6a574245129c2b5Give Away198440292021-10-04 20:01:45228 days 2 hrs ago0x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd28 IN  0x3b2912228b75697d987c0c790bf19de35be943c40 MATIC0.00835462026959.672023007
0x3413b132b31095c0414654de751a8f41852c6702a538e69fad67803755558dd9Give Away198440192021-10-04 20:00:45228 days 2 hrs ago0x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd28 IN  0x3b2912228b75697d987c0c790bf19de35be943c40 MATIC0.0083263352359.47
0x27e10fd734b3aa69d60d4e6f51b9bcd0fc8b23d71197ab6771898d8ac8b9fc4bGive Away198439772021-10-04 19:56:33228 days 2 hrs ago0x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd28 IN  0x3b2912228b75697d987c0c790bf19de35be943c40 MATIC0.001862119713.3
0x12fa22f44b1a27ca1da89ed98ce3e264cda4f9fbd50b9fd6f9ab4ce656d1e6dbMint198428732021-10-04 19:14:56228 days 3 hrs ago0x26c5d282563d1e3b6b19682f8c7936f968c9cf59 IN  0x3b2912228b75697d987c0c790bf19de35be943c450 MATIC0.0007620924
0x6aa1904465ab236eab5d92c97bf7e8942220adac1604613b8ad9720d67b59384Mint197146422021-10-01 10:25:03231 days 12 hrs ago0x2a2081c0b5a31897e0b8c40edbc763c34345a38a IN  0x3b2912228b75697d987c0c790bf19de35be943c450 MATIC0.0017264697539.797629877
0xcdf7fb5d17c76b2310482a669424ec73e513d451d0948437552be35b971b8398Mint197146182021-10-01 10:24:11231 days 12 hrs ago0x2a2081c0b5a31897e0b8c40edbc763c34345a38a IN  0x3b2912228b75697d987c0c790bf19de35be943c450 MATIC0.0017621310
0xbb4501075c2aafdaa6d62c06e548830a76857215592e15bc794e354cde8ecbb5Remove From Refe...196990302021-10-01 0:31:47231 days 22 hrs ago0x0e0a63dce1256033008dfda79424cdb1d1db67d6 IN  0x3b2912228b75697d987c0c790bf19de35be943c40 MATIC0.000070125
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xdedb552905fcfaeb7490b203390dbbfe97240f3afaefadd7c1f00eff4d075d60237639622022-01-15 22:48:44124 days 23 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd2825 MATIC
0xdedb552905fcfaeb7490b203390dbbfe97240f3afaefadd7c1f00eff4d075d60237639622022-01-15 22:48:44124 days 23 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x7e1e6a2c1d95db6ea14483c84c6243e09175a4c125 MATIC
0xd4c7bb34583f8b8e31c1cab29455845dba69fab29f395ccd0ae0dda1b7b24b46199969592021-10-08 20:41:50224 days 1 hr ago 0x3b2912228b75697d987c0c790bf19de35be943c40x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd2825 MATIC
0xd4c7bb34583f8b8e31c1cab29455845dba69fab29f395ccd0ae0dda1b7b24b46199969592021-10-08 20:41:50224 days 1 hr ago 0x3b2912228b75697d987c0c790bf19de35be943c40x7e1e6a2c1d95db6ea14483c84c6243e09175a4c125 MATIC
0x12fa22f44b1a27ca1da89ed98ce3e264cda4f9fbd50b9fd6f9ab4ce656d1e6db198428732021-10-04 19:14:56228 days 3 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd2815 MATIC
0x12fa22f44b1a27ca1da89ed98ce3e264cda4f9fbd50b9fd6f9ab4ce656d1e6db198428732021-10-04 19:14:56228 days 3 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x7e1e6a2c1d95db6ea14483c84c6243e09175a4c125 MATIC
0x12fa22f44b1a27ca1da89ed98ce3e264cda4f9fbd50b9fd6f9ab4ce656d1e6db198428732021-10-04 19:14:56228 days 3 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x9b5f3268de34ff7882b1920a5ac7dfd9ad59efb410 MATIC
0x6aa1904465ab236eab5d92c97bf7e8942220adac1604613b8ad9720d67b59384197146422021-10-01 10:25:03231 days 12 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd2825 MATIC
0x6aa1904465ab236eab5d92c97bf7e8942220adac1604613b8ad9720d67b59384197146422021-10-01 10:25:03231 days 12 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x7e1e6a2c1d95db6ea14483c84c6243e09175a4c125 MATIC
0xcdf7fb5d17c76b2310482a669424ec73e513d451d0948437552be35b971b8398197146182021-10-01 10:24:11231 days 12 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd2825 MATIC
0xcdf7fb5d17c76b2310482a669424ec73e513d451d0948437552be35b971b8398197146182021-10-01 10:24:11231 days 12 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x7e1e6a2c1d95db6ea14483c84c6243e09175a4c125 MATIC
0xcd42e31275e7f0a268447cbcd8a73401aa0342a61fccf02d0f996321dd4e80d8196733312021-09-30 8:26:13232 days 14 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd2825 MATIC
0xcd42e31275e7f0a268447cbcd8a73401aa0342a61fccf02d0f996321dd4e80d8196733312021-09-30 8:26:13232 days 14 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x7e1e6a2c1d95db6ea14483c84c6243e09175a4c125 MATIC
0x817aa18d0e911f5c5d4ec86371bed4ad0e1777d529e6a7caa78079f05649ef04196698022021-09-30 6:08:35232 days 16 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd2825 MATIC
0x817aa18d0e911f5c5d4ec86371bed4ad0e1777d529e6a7caa78079f05649ef04196698022021-09-30 6:08:35232 days 16 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x7e1e6a2c1d95db6ea14483c84c6243e09175a4c125 MATIC
0xa76caffb1626382294733e6e7f4591df98f10a88d69c67ce65b50381fbe33e4a196693502021-09-30 5:50:45232 days 16 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd2825 MATIC
0xa76caffb1626382294733e6e7f4591df98f10a88d69c67ce65b50381fbe33e4a196693502021-09-30 5:50:45232 days 16 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x7e1e6a2c1d95db6ea14483c84c6243e09175a4c125 MATIC
0xb9367a62ee64588e9f98acaef899a901df69af41e217580d7d165f1cc36636e8196675492021-09-30 4:42:17232 days 17 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd2825 MATIC
0xb9367a62ee64588e9f98acaef899a901df69af41e217580d7d165f1cc36636e8196675492021-09-30 4:42:17232 days 17 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x7e1e6a2c1d95db6ea14483c84c6243e09175a4c125 MATIC
0xb8d684eebbcc502a5e2b38a9e185e47fd69e5eb3899e738fa82113d0a665ad8b196670662021-09-30 4:21:23232 days 18 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd2825 MATIC
0xb8d684eebbcc502a5e2b38a9e185e47fd69e5eb3899e738fa82113d0a665ad8b196670662021-09-30 4:21:23232 days 18 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x7e1e6a2c1d95db6ea14483c84c6243e09175a4c125 MATIC
0xfa1921bb9ba7cbeaf54907291bc4ffaca0b43a106dd91ec4ac97910edd799f0f196670532021-09-30 4:20:57232 days 18 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd2825 MATIC
0xfa1921bb9ba7cbeaf54907291bc4ffaca0b43a106dd91ec4ac97910edd799f0f196670532021-09-30 4:20:57232 days 18 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x7e1e6a2c1d95db6ea14483c84c6243e09175a4c125 MATIC
0x488541660d278a73c7676ed37550961ae1be3716e4b2ce8ef1c4aa2f2140da71196667532021-09-30 4:10:41232 days 18 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x3c6d2ff7d1ba3c6f6323e786287ed336fb4acd2825 MATIC
0x488541660d278a73c7676ed37550961ae1be3716e4b2ce8ef1c4aa2f2140da71196667532021-09-30 4:10:41232 days 18 hrs ago 0x3b2912228b75697d987c0c790bf19de35be943c40x7e1e6a2c1d95db6ea14483c84c6243e09175a4c125 MATIC
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

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)

File 1 of 6 : Context.sol
// 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;
    }
}

File 2 of 6 : IERC165.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;


interface IERC165 {
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

File 3 of 6 : IERC721.sol
// 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);
}

File 4 of 6 : Ownable.sol
// 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;
    }
}

File 5 of 6 : SafeMath.sol
// 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;
    }
}

File 6 of 6 : nNFT.sol
// 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];
    }
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "istanbul",
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"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"}]

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


Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.