[
 {
  "type": "constructor",
  "inputs": [
   {
    "name": "treasury_",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "signer_",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "price_",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "maxPerWallet_",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "maxTotal_",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "allowlistCap_",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "publicCap_",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "delay_",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "MAX_PRICE",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "allowlistCap",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "allowlisted",
  "inputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bool",
    "internalType": "bool"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "autoPaused",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bool",
    "internalType": "bool"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "bindCreature",
  "inputs": [
   {
    "name": "creature_",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "cancelPrice",
  "inputs": [],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "charge",
  "inputs": [
   {
    "name": "payer",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "action",
    "type": "uint8",
    "internalType": "enum IMintPolicy.Action"
   },
   {
    "name": "tokenId",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [],
  "stateMutability": "payable"
 },
 {
  "type": "function",
  "name": "claimAllowlist",
  "inputs": [
   {
    "name": "deadline",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "nonce",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "sig",
    "type": "bytes",
    "internalType": "bytes"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "creature",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "delay",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "domainSeparator",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "executePrice",
  "inputs": [],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "maxPerWallet",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "maxTotal",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "mintedBy",
  "inputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "owner",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "paused",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bool",
    "internalType": "bool"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "pendingEta",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "pendingPrice",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "phase",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint8",
    "internalType": "enum PaidMintPolicy.Phase"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "price",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "proposePrice",
  "inputs": [
   {
    "name": "newPrice",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "publicCap",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "renounceOwnership",
  "inputs": [],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "setPaused",
  "inputs": [
   {
    "name": "p",
    "type": "bool",
    "internalType": "bool"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "setPhase",
  "inputs": [
   {
    "name": "next",
    "type": "uint8",
    "internalType": "enum PaidMintPolicy.Phase"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "signer",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "ticketDigest",
  "inputs": [
   {
    "name": "wallet",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "deadline",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "nonce",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "ticketUsed",
  "inputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "bool",
    "internalType": "bool"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "totalMinted",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "treasury",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "withdraw",
  "inputs": [],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "event",
  "name": "AllowlistClaimed",
  "inputs": [
   {
    "name": "wallet",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "ticket",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "CreatureBound",
  "inputs": [
   {
    "name": "creature",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "OwnershipRenounced",
  "inputs": [
   {
    "name": "previousOwner",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "Paid",
  "inputs": [
   {
    "name": "payer",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "tokenId",
    "type": "uint256",
    "indexed": true,
    "internalType": "uint256"
   },
   {
    "name": "price",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "refunded",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "PausedSet",
  "inputs": [
   {
    "name": "paused",
    "type": "bool",
    "indexed": false,
    "internalType": "bool"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "PhaseSet",
  "inputs": [
   {
    "name": "from",
    "type": "uint8",
    "indexed": false,
    "internalType": "enum PaidMintPolicy.Phase"
   },
   {
    "name": "to",
    "type": "uint8",
    "indexed": false,
    "internalType": "enum PaidMintPolicy.Phase"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "PriceCancelled",
  "inputs": [
   {
    "name": "newPrice",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "PricePending",
  "inputs": [
   {
    "name": "newPrice",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "eta",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "PriceSet",
  "inputs": [
   {
    "name": "oldPrice",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "newPrice",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "Withdrawn",
  "inputs": [
   {
    "name": "treasury",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "amount",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "error",
  "name": "AlreadyAllowlisted",
  "inputs": []
 },
 {
  "type": "error",
  "name": "AlreadyBound",
  "inputs": []
 },
 {
  "type": "error",
  "name": "BadCaps",
  "inputs": []
 },
 {
  "type": "error",
  "name": "BadSignature",
  "inputs": []
 },
 {
  "type": "error",
  "name": "CapReachedCannotRenounce",
  "inputs": []
 },
 {
  "type": "error",
  "name": "DelayZero",
  "inputs": []
 },
 {
  "type": "error",
  "name": "GlobalCapReached",
  "inputs": []
 },
 {
  "type": "error",
  "name": "MintPaused",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NoValueAccepted",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotAllowlistPhase",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotAllowlisted",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotCreature",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotOwner",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotTreasury",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NothingPending",
  "inputs": []
 },
 {
  "type": "error",
  "name": "PausedCannotRenounce",
  "inputs": []
 },
 {
  "type": "error",
  "name": "PhaseCapReached",
  "inputs": []
 },
 {
  "type": "error",
  "name": "PhaseClosed",
  "inputs": []
 },
 {
  "type": "error",
  "name": "PhaseLocked",
  "inputs": []
 },
 {
  "type": "error",
  "name": "PriceTooHigh",
  "inputs": []
 },
 {
  "type": "error",
  "name": "ProposalPending",
  "inputs": []
 },
 {
  "type": "error",
  "name": "Reentrancy",
  "inputs": []
 },
 {
  "type": "error",
  "name": "RefundFailed",
  "inputs": []
 },
 {
  "type": "error",
  "name": "SamePhase",
  "inputs": []
 },
 {
  "type": "error",
  "name": "TicketExpired",
  "inputs": []
 },
 {
  "type": "error",
  "name": "TicketUsed",
  "inputs": []
 },
 {
  "type": "error",
  "name": "TooEarly",
  "inputs": [
   {
    "name": "eta",
    "type": "uint256",
    "internalType": "uint256"
   }
  ]
 },
 {
  "type": "error",
  "name": "Underpaid",
  "inputs": [
   {
    "name": "required",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "sent",
    "type": "uint256",
    "internalType": "uint256"
   }
  ]
 },
 {
  "type": "error",
  "name": "WalletCapReached",
  "inputs": []
 },
 {
  "type": "error",
  "name": "WithdrawFailed",
  "inputs": []
 },
 {
  "type": "error",
  "name": "WrongPhaseToRenounce",
  "inputs": []
 },
 {
  "type": "error",
  "name": "ZeroAddress",
  "inputs": []
 }
]