[
  {
    "anonymous": false,
    "inputs": [
      {
        "components": [
          {
            "internalType": "address",
            "name": "facetAddress",
            "type": "address"
          },
          {
            "internalType": "enum IDiamondCut.FacetCutAction",
            "name": "action",
            "type": "uint8"
          },
          {
            "internalType": "bytes4[]",
            "name": "functionSelectors",
            "type": "bytes4[]"
          }
        ],
        "indexed": false,
        "internalType": "struct IDiamondCut.FacetCut[]",
        "name": "_diamondCut",
        "type": "tuple[]"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "_init",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bytes",
        "name": "_calldata",
        "type": "bytes"
      }
    ],
    "name": "DiamondCut",
    "type": "event"
  },
  {
    "inputs": [
      {
        "components": [
          {
            "internalType": "address",
            "name": "facetAddress",
            "type": "address"
          },
          {
            "internalType": "enum IDiamondCut.FacetCutAction",
            "name": "action",
            "type": "uint8"
          },
          {
            "internalType": "bytes4[]",
            "name": "functionSelectors",
            "type": "bytes4[]"
          }
        ],
        "internalType": "struct IDiamondCut.FacetCut[]",
        "name": "_diamondCut",
        "type": "tuple[]"
      },
      {
        "internalType": "address",
        "name": "_init",
        "type": "address"
      },
      {
        "internalType": "bytes",
        "name": "_calldata",
        "type": "bytes"
      }
    ],
    "name": "diamondCut",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes4",
        "name": "_functionSelector",
        "type": "bytes4"
      }
    ],
    "name": "facetAddress",
    "outputs": [
      {
        "internalType": "address",
        "name": "facetAddress_",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "facetAddresses",
    "outputs": [
      {
        "internalType": "address[]",
        "name": "facetAddresses_",
        "type": "address[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_facet",
        "type": "address"
      }
    ],
    "name": "facetFunctionSelectors",
    "outputs": [
      {
        "internalType": "bytes4[]",
        "name": "facetFunctionSelectors_",
        "type": "bytes4[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "facets",
    "outputs": [
      {
        "components": [
          {
            "internalType": "address",
            "name": "facetAddress",
            "type": "address"
          },
          {
            "internalType": "bytes4[]",
            "name": "functionSelectors",
            "type": "bytes4[]"
          }
        ],
        "internalType": "struct IDiamondLoupe.Facet[]",
        "name": "facets_",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes4",
        "name": "_interfaceId",
        "type": "bytes4"
      }
    ],
    "name": "supportsInterface",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "previousOwner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipTransferred",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "owner_",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_newOwner",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "UintUtils__InsufficientHexLength",
    "type": "error"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "feeAddress",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "feePercent",
        "type": "uint256"
      }
    ],
    "name": "FeeAddressAdded",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "source",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "token",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint64",
        "name": "timestamp",
        "type": "uint64"
      }
    ],
    "name": "FeeDeferred",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "source",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "token",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint64",
        "name": "timestamp",
        "type": "uint64"
      }
    ],
    "name": "FeeDisbursed",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "source",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "token",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint64",
        "name": "timestamp",
        "type": "uint64"
      }
    ],
    "name": "FeeLockedBurned",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "huntId",
        "type": "uint256"
      }
    ],
    "name": "HuntCanceled",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "huntId",
        "type": "uint256"
      },
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "id",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "huntDataId",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "startBlock",
            "type": "uint256"
          },
          {
            "internalType": "uint256[]",
            "name": "heroIds",
            "type": "uint256[]"
          },
          {
            "internalType": "address",
            "name": "player",
            "type": "address"
          },
          {
            "internalType": "enum HuntStatus",
            "name": "status",
            "type": "uint8"
          },
          {
            "internalType": "uint256",
            "name": "resultSubmittedTimestamp",
            "type": "uint256"
          },
          {
            "internalType": "uint256[]",
            "name": "petXpBonuses",
            "type": "uint256[]"
          },
          {
            "internalType": "uint256",
            "name": "startAtTime",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "retries",
            "type": "uint256"
          },
          {
            "components": [
              {
                "internalType": "address",
                "name": "item",
                "type": "address"
              },
              {
                "internalType": "uint16",
                "name": "submittedAmount",
                "type": "uint16"
              },
              {
                "internalType": "uint16",
                "name": "usedAmount",
                "type": "uint16"
              }
            ],
            "internalType": "struct ConsumableItem[]",
            "name": "consumableItems",
            "type": "tuple[]"
          }
        ],
        "indexed": false,
        "internalType": "struct HuntEvent",
        "name": "hunt",
        "type": "tuple"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "huntWon",
        "type": "bool"
      },
      {
        "indexed": false,
        "internalType": "uint256[]",
        "name": "heroIds",
        "type": "uint256[]"
      }
    ],
    "name": "HuntCompleted",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "huntId",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "item",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "player",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint8",
        "name": "equipmentType",
        "type": "uint8"
      },
      {
        "indexed": false,
        "internalType": "uint16",
        "name": "displayId",
        "type": "uint16"
      },
      {
        "indexed": false,
        "internalType": "uint8",
        "name": "rarity",
        "type": "uint8"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "nftId",
        "type": "uint256"
      }
    ],
    "name": "HuntEquipmentMinted",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "questId",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "player",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "heroId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "petId",
        "type": "uint256"
      }
    ],
    "name": "HuntPetBonusReceived",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "huntId",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "item",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "player",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint8",
        "name": "amount",
        "type": "uint8"
      }
    ],
    "name": "HuntPotionBurned",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "huntId",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "item",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "player",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint8",
        "name": "tier",
        "type": "uint8"
      },
      {
        "indexed": false,
        "internalType": "uint8",
        "name": "amount",
        "type": "uint8"
      }
    ],
    "name": "HuntPotionRefunded",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "huntId",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "item",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "player",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint8",
        "name": "amount",
        "type": "uint8"
      }
    ],
    "name": "HuntPotionReturned",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "winner",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint128",
        "name": "amount",
        "type": "uint128"
      },
      {
        "indexed": false,
        "internalType": "uint64",
        "name": "raffleDay",
        "type": "uint64"
      },
      {
        "indexed": false,
        "internalType": "uint64",
        "name": "totalEntries",
        "type": "uint64"
      }
    ],
    "name": "HuntRaffleAwarded",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "huntId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "result",
        "type": "bool"
      }
    ],
    "name": "HuntResultSubmitted",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "huntId",
        "type": "uint256"
      }
    ],
    "name": "HuntRetried",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "huntId",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "player",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "item",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "data",
        "type": "uint256"
      }
    ],
    "name": "HuntRewardMinted",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "components": [
          {
            "internalType": "uint256[]",
            "name": "rewardAmounts",
            "type": "uint256[]"
          },
          {
            "internalType": "address",
            "name": "rewardToken",
            "type": "address"
          },
          {
            "internalType": "uint16",
            "name": "sponsorId",
            "type": "uint16"
          },
          {
            "internalType": "uint16",
            "name": "startDay",
            "type": "uint16"
          },
          {
            "internalType": "uint16",
            "name": "remainingDays",
            "type": "uint16"
          },
          {
            "internalType": "uint32",
            "name": "raffleId",
            "type": "uint32"
          }
        ],
        "indexed": false,
        "internalType": "struct PromoRaffleData",
        "name": "raffleData",
        "type": "tuple"
      }
    ],
    "name": "HuntSponsoredRaffleAdded",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address[]",
        "name": "winners",
        "type": "address[]"
      },
      {
        "indexed": false,
        "internalType": "uint256[]",
        "name": "amounts",
        "type": "uint256[]"
      },
      {
        "indexed": false,
        "internalType": "uint64",
        "name": "raffleDay",
        "type": "uint64"
      },
      {
        "indexed": false,
        "internalType": "uint64",
        "name": "totalEntries",
        "type": "uint64"
      },
      {
        "indexed": false,
        "internalType": "uint16",
        "name": "sponsorId",
        "type": "uint16"
      },
      {
        "indexed": false,
        "internalType": "uint32",
        "name": "raffleId",
        "type": "uint32"
      }
    ],
    "name": "HuntSponsoredRaffleAwarded",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "components": [
          {
            "internalType": "uint256[]",
            "name": "rewardAmounts",
            "type": "uint256[]"
          },
          {
            "internalType": "address",
            "name": "rewardToken",
            "type": "address"
          },
          {
            "internalType": "uint16",
            "name": "sponsorId",
            "type": "uint16"
          },
          {
            "internalType": "uint16",
            "name": "startDay",
            "type": "uint16"
          },
          {
            "internalType": "uint16",
            "name": "remainingDays",
            "type": "uint16"
          },
          {
            "internalType": "uint32",
            "name": "raffleId",
            "type": "uint32"
          }
        ],
        "indexed": false,
        "internalType": "struct PromoRaffleData",
        "name": "raffleData",
        "type": "tuple"
      }
    ],
    "name": "HuntSponsoredRaffleExpired",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "id",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "huntDataId",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "startBlock",
            "type": "uint256"
          },
          {
            "internalType": "uint256[]",
            "name": "heroIds",
            "type": "uint256[]"
          },
          {
            "internalType": "address",
            "name": "player",
            "type": "address"
          },
          {
            "internalType": "enum HuntStatus",
            "name": "status",
            "type": "uint8"
          },
          {
            "internalType": "uint256",
            "name": "resultSubmittedTimestamp",
            "type": "uint256"
          },
          {
            "internalType": "uint256[]",
            "name": "petXpBonuses",
            "type": "uint256[]"
          },
          {
            "internalType": "uint256",
            "name": "startAtTime",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "retries",
            "type": "uint256"
          },
          {
            "components": [
              {
                "internalType": "address",
                "name": "item",
                "type": "address"
              },
              {
                "internalType": "uint16",
                "name": "submittedAmount",
                "type": "uint16"
              },
              {
                "internalType": "uint16",
                "name": "usedAmount",
                "type": "uint16"
              }
            ],
            "internalType": "struct ConsumableItem[]",
            "name": "consumableItems",
            "type": "tuple[]"
          }
        ],
        "indexed": false,
        "internalType": "struct HuntEvent",
        "name": "hunt",
        "type": "tuple"
      }
    ],
    "name": "HuntStarted",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "huntId",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "player",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "heroId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint64",
        "name": "xpEarned",
        "type": "uint64"
      }
    ],
    "name": "HuntXP",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "previousAdminRole",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "newAdminRole",
        "type": "bytes32"
      }
    ],
    "name": "RoleAdminChanged",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "sender",
        "type": "address"
      }
    ],
    "name": "RoleGranted",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "sender",
        "type": "address"
      }
    ],
    "name": "RoleRevoked",
    "type": "event"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_huntId",
        "type": "uint256"
      }
    ],
    "name": "completeHunt",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      }
    ],
    "name": "getRoleAdmin",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "grantRole",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "hasRole",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      }
    ],
    "name": "renounceRole",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "revokeRole",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getActiveHunts",
    "outputs": [
      {
        "internalType": "uint256[]",
        "name": "",
        "type": "uint256[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getCurrentRaffleDay",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getHeroCore",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_heroId",
        "type": "uint256"
      }
    ],
    "name": "getHeroHunt",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "id",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "huntDataId",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "startBlock",
            "type": "uint256"
          },
          {
            "internalType": "uint256[]",
            "name": "heroIds",
            "type": "uint256[]"
          },
          {
            "internalType": "address",
            "name": "player",
            "type": "address"
          },
          {
            "internalType": "enum HuntStatus",
            "name": "status",
            "type": "uint8"
          },
          {
            "internalType": "uint256",
            "name": "resultSubmittedTimestamp",
            "type": "uint256"
          },
          {
            "internalType": "uint256[]",
            "name": "petXpBonuses",
            "type": "uint256[]"
          },
          {
            "internalType": "uint256",
            "name": "startAtTime",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "retries",
            "type": "uint256"
          },
          {
            "components": [
              {
                "internalType": "address",
                "name": "item",
                "type": "address"
              },
              {
                "internalType": "uint16",
                "name": "submittedAmount",
                "type": "uint16"
              },
              {
                "internalType": "uint16",
                "name": "usedAmount",
                "type": "uint16"
              }
            ],
            "internalType": "struct ConsumableItem[]",
            "name": "consumableItems",
            "type": "tuple[]"
          },
          {
            "internalType": "uint16[]",
            "name": "itemWeights",
            "type": "uint16[]"
          }
        ],
        "internalType": "struct Hunt",
        "name": "",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_huntDataId",
        "type": "uint256"
      },
      {
        "internalType": "uint256[]",
        "name": "_heroIds",
        "type": "uint256[]"
      }
    ],
    "name": "getHeroHuntAvailableAtTimestamps",
    "outputs": [
      {
        "internalType": "uint256[]",
        "name": "",
        "type": "uint256[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_huntId",
        "type": "uint256"
      }
    ],
    "name": "getHunt",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "id",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "huntDataId",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "startBlock",
            "type": "uint256"
          },
          {
            "internalType": "uint256[]",
            "name": "heroIds",
            "type": "uint256[]"
          },
          {
            "internalType": "address",
            "name": "player",
            "type": "address"
          },
          {
            "internalType": "enum HuntStatus",
            "name": "status",
            "type": "uint8"
          },
          {
            "internalType": "uint256",
            "name": "resultSubmittedTimestamp",
            "type": "uint256"
          },
          {
            "internalType": "uint256[]",
            "name": "petXpBonuses",
            "type": "uint256[]"
          },
          {
            "internalType": "uint256",
            "name": "startAtTime",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "retries",
            "type": "uint256"
          },
          {
            "components": [
              {
                "internalType": "address",
                "name": "item",
                "type": "address"
              },
              {
                "internalType": "uint16",
                "name": "submittedAmount",
                "type": "uint16"
              },
              {
                "internalType": "uint16",
                "name": "usedAmount",
                "type": "uint16"
              }
            ],
            "internalType": "struct ConsumableItem[]",
            "name": "consumableItems",
            "type": "tuple[]"
          },
          {
            "internalType": "uint16[]",
            "name": "itemWeights",
            "type": "uint16[]"
          }
        ],
        "internalType": "struct Hunt",
        "name": "",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getHuntCooldown",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getHuntCounter",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getItemMinter",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getLastPromoRaffleWinners",
    "outputs": [
      {
        "components": [
          {
            "internalType": "address",
            "name": "winner",
            "type": "address"
          },
          {
            "internalType": "uint16",
            "name": "sponsorId",
            "type": "uint16"
          },
          {
            "internalType": "uint32",
            "name": "raffleId",
            "type": "uint32"
          },
          {
            "internalType": "uint256",
            "name": "rewardQuantity",
            "type": "uint256"
          },
          {
            "internalType": "address",
            "name": "rewardToken",
            "type": "address"
          }
        ],
        "internalType": "struct PromoRaffleWinner[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getLastRaffleWinner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getPetCore",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getPowerUpManager",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getPromoRaffleData",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint256[]",
            "name": "rewardAmounts",
            "type": "uint256[]"
          },
          {
            "internalType": "address",
            "name": "rewardToken",
            "type": "address"
          },
          {
            "internalType": "uint16",
            "name": "sponsorId",
            "type": "uint16"
          },
          {
            "internalType": "uint16",
            "name": "startDay",
            "type": "uint16"
          },
          {
            "internalType": "uint16",
            "name": "remainingDays",
            "type": "uint16"
          },
          {
            "internalType": "uint32",
            "name": "raffleId",
            "type": "uint32"
          }
        ],
        "internalType": "struct PromoRaffleData[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getQuests",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getRaffleEntryCount",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getRandomGenerator",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_address",
        "type": "address"
      }
    ],
    "name": "getUserHuntIds",
    "outputs": [
      {
        "internalType": "uint256[]",
        "name": "",
        "type": "uint256[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_address",
        "type": "address"
      }
    ],
    "name": "getUserHunts",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "id",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "huntDataId",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "startBlock",
            "type": "uint256"
          },
          {
            "internalType": "uint256[]",
            "name": "heroIds",
            "type": "uint256[]"
          },
          {
            "internalType": "address",
            "name": "player",
            "type": "address"
          },
          {
            "internalType": "enum HuntStatus",
            "name": "status",
            "type": "uint8"
          },
          {
            "internalType": "uint256",
            "name": "resultSubmittedTimestamp",
            "type": "uint256"
          },
          {
            "internalType": "uint256[]",
            "name": "petXpBonuses",
            "type": "uint256[]"
          },
          {
            "internalType": "uint256",
            "name": "startAtTime",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "retries",
            "type": "uint256"
          },
          {
            "components": [
              {
                "internalType": "address",
                "name": "item",
                "type": "address"
              },
              {
                "internalType": "uint16",
                "name": "submittedAmount",
                "type": "uint16"
              },
              {
                "internalType": "uint16",
                "name": "usedAmount",
                "type": "uint16"
              }
            ],
            "internalType": "struct ConsumableItem[]",
            "name": "consumableItems",
            "type": "tuple[]"
          },
          {
            "internalType": "uint16[]",
            "name": "itemWeights",
            "type": "uint16[]"
          }
        ],
        "internalType": "struct Hunt[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_id",
        "type": "uint256"
      }
    ],
    "name": "huntAtIndex",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MODERATOR_ROLE",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_huntDataId",
        "type": "uint256"
      }
    ],
    "name": "addActiveHuntDataId",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_account",
        "type": "address"
      }
    ],
    "name": "clearUserHunts",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_huntDataId",
        "type": "uint256"
      }
    ],
    "name": "removeActiveHuntDataId",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_address",
        "type": "address"
      }
    ],
    "name": "setAirdropClaim",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_dayNumber",
        "type": "uint256"
      }
    ],
    "name": "setCurrentRaffleDay",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address[]",
        "name": "_feeAddresses",
        "type": "address[]"
      },
      {
        "internalType": "uint256[]",
        "name": "_feePercents",
        "type": "uint256[]"
      }
    ],
    "name": "setFees",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_flagStorage",
        "type": "address"
      }
    ],
    "name": "setFlagStorage",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_heroCore",
        "type": "address"
      }
    ],
    "name": "setHeroCore",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_huntId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_heroId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_value",
        "type": "uint256"
      }
    ],
    "name": "setHeroHuntAvailableAt",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_huntCooldown",
        "type": "uint256"
      }
    ],
    "name": "setHuntCooldown",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_itemMinter",
        "type": "address"
      }
    ],
    "name": "setItemMinter",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_petCore",
        "type": "address"
      }
    ],
    "name": "setPetCore",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_token",
        "type": "address"
      }
    ],
    "name": "setPowerToken",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_address",
        "type": "address"
      }
    ],
    "name": "setPowerTokenAddress",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_powerUpManager",
        "type": "address"
      }
    ],
    "name": "setPowerUpManager",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "components": [
          {
            "internalType": "uint256[]",
            "name": "rewardAmounts",
            "type": "uint256[]"
          },
          {
            "internalType": "address",
            "name": "rewardToken",
            "type": "address"
          },
          {
            "internalType": "uint16",
            "name": "sponsorId",
            "type": "uint16"
          },
          {
            "internalType": "uint16",
            "name": "startDay",
            "type": "uint16"
          },
          {
            "internalType": "uint16",
            "name": "remainingDays",
            "type": "uint16"
          },
          {
            "internalType": "uint32",
            "name": "raffleId",
            "type": "uint32"
          }
        ],
        "internalType": "struct PromoRaffleData",
        "name": "_raffleData",
        "type": "tuple"
      }
    ],
    "name": "setPromoRaffle",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_address",
        "type": "address"
      }
    ],
    "name": "setQuestFund",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_quests",
        "type": "address"
      }
    ],
    "name": "setQuests",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_randomGenerator",
        "type": "address"
      }
    ],
    "name": "setRandomGenerator",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_huntId",
        "type": "uint256"
      }
    ],
    "name": "cancelHunt",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_huntId",
        "type": "uint256"
      }
    ],
    "name": "retryHunt",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_huntDataId",
        "type": "uint256"
      },
      {
        "internalType": "uint256[]",
        "name": "_heroIds",
        "type": "uint256[]"
      }
    ],
    "name": "startHunt",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_huntDataId",
        "type": "uint256"
      },
      {
        "internalType": "uint256[]",
        "name": "_heroIds",
        "type": "uint256[]"
      },
      {
        "internalType": "uint16[]",
        "name": "_amounts",
        "type": "uint16[]"
      }
    ],
    "name": "startHuntWithItems",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_huntId",
        "type": "uint256"
      },
      {
        "internalType": "bool",
        "name": "_huntWon",
        "type": "bool"
      }
    ],
    "name": "submitHuntResult",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_huntId",
        "type": "uint256"
      },
      {
        "internalType": "bool",
        "name": "_huntWon",
        "type": "bool"
      },
      {
        "internalType": "uint256",
        "name": "_retryCount",
        "type": "uint256"
      }
    ],
    "name": "submitHuntResultWithRetryCount",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_huntId",
        "type": "uint256"
      },
      {
        "internalType": "bool",
        "name": "_huntWon",
        "type": "bool"
      },
      {
        "internalType": "uint256",
        "name": "_retryCount",
        "type": "uint256"
      },
      {
        "internalType": "uint16[]",
        "name": "_usedAmounts",
        "type": "uint16[]"
      }
    ],
    "name": "submitHuntResultWithRetryCountAndItems",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]
