{
  "_format": "hh-sol-artifact-1",
  "contractName": "IERC721EW",
  "sourceName": "contracts/interfaces/IERC721EW.sol",
  "abi": [
    {
      "inputs": [],
      "name": "ERC721EWUnableToVerifyMerkleProof",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC721EWWrongMerkleProof",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC721NonExistentToken",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC721ReachedMaxSupply",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC721SaleEnded",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC721TooManyTickets",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC721WrongBatchLengths",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC721WrongEntryPos",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC721WrongEventDate",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC721WrongMaxSupply",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC721WrongPrice",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC721WrongSaleEnd",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "buyer",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "userId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "entryType",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "MintTickets",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "pos",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "name",
          "type": "string"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "price",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "maxSupply",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "saleEnd",
          "type": "uint256"
        }
      ],
      "name": "NewEntry",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "receiver",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "userId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "entryPos",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "uint256[]",
          "name": "sellingPrices",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes32[]",
          "name": "merkleProof",
          "type": "bytes32[]"
        }
      ],
      "name": "buyTickets",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "name",
          "type": "string"
        },
        {
          "internalType": "uint256",
          "name": "price",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "maxSupply",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "maxBuy",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "saleEnd",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "merkleRoot",
          "type": "bytes32"
        }
      ],
      "name": "createEntry",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "entryPos",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "maxSupply",
          "type": "uint256"
        }
      ],
      "name": "editEntryMaxBuy",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "entryPos",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "maxSupply",
          "type": "uint256"
        }
      ],
      "name": "editEntryMaxSupply",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "entryPos",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "name",
          "type": "string"
        }
      ],
      "name": "editEntryName",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "entryPos",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "price",
          "type": "uint256"
        }
      ],
      "name": "editEntryPrice",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "entryPos",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "saleEnd",
          "type": "uint256"
        }
      ],
      "name": "editEntrySaleEnd",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "entryPos",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "newMerkleRoot",
          "type": "bytes32"
        }
      ],
      "name": "editMerkleRoot",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "pos",
          "type": "uint256"
        }
      ],
      "name": "getEntry",
      "outputs": [
        {
          "components": [
            {
              "internalType": "string",
              "name": "name",
              "type": "string"
            },
            {
              "internalType": "uint256",
              "name": "price",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "maxSupply",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "maxBuy",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "sold",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "saleEnd",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "merkleRoot",
              "type": "bytes32"
            }
          ],
          "internalType": "struct IERC721EW.EntryType",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getTicketInfo",
      "outputs": [
        {
          "components": [
            {
              "internalType": "string",
              "name": "name",
              "type": "string"
            },
            {
              "internalType": "uint256",
              "name": "price",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "maxSupply",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "maxBuy",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "sold",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "saleEnd",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "merkleRoot",
              "type": "bytes32"
            }
          ],
          "internalType": "struct IERC721EW.EntryType",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "baseUri",
          "type": "string"
        }
      ],
      "name": "setBaseURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_eventDate",
          "type": "uint256"
        }
      ],
      "name": "setEventDate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
