{
  "_format": "hh-sol-artifact-1",
  "contractName": "IX2EarnAppsV1",
  "sourceName": "contracts/deprecated/V1/interfaces/IX2EarnAppsV1.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "timepoint",
          "type": "uint256"
        },
        {
          "internalType": "uint48",
          "name": "clock",
          "type": "uint48"
        }
      ],
      "name": "ERC5805FutureLookup",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC6372InconsistentClock",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        }
      ],
      "name": "X2EarnAppAlreadyExists",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "X2EarnInvalidAddress",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "percentage",
          "type": "uint256"
        }
      ],
      "name": "X2EarnInvalidAllocationPercentage",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "X2EarnInvalidStartIndex",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        }
      ],
      "name": "X2EarnMaxModeratorsReached",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        }
      ],
      "name": "X2EarnMaxRewardDistributorsReached",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        }
      ],
      "name": "X2EarnNonexistentApp",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "moderator",
          "type": "address"
        }
      ],
      "name": "X2EarnNonexistentModerator",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "distributorAddress",
          "type": "address"
        }
      ],
      "name": "X2EarnNonexistentRewardDistributor",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "X2EarnUnauthorizedUser",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "addr",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "name",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "appAvailableForAllocationVoting",
          "type": "bool"
        }
      ],
      "name": "AppAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "oldAdmin",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "newAdmin",
          "type": "address"
        }
      ],
      "name": "AppAdminUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "oldMetadataURI",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "newMetadataURI",
          "type": "string"
        }
      ],
      "name": "AppMetadataURIUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "oldBaseURI",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "newBaseURI",
          "type": "string"
        }
      ],
      "name": "BaseURIUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "moderator",
          "type": "address"
        }
      ],
      "name": "ModeratorAddedToApp",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "moderator",
          "type": "address"
        }
      ],
      "name": "ModeratorRemovedFromApp",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "distributorAddress",
          "type": "address"
        }
      ],
      "name": "RewardDistributorAddedToApp",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "distributorAddress",
          "type": "address"
        }
      ],
      "name": "RewardDistributorRemovedFromApp",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldPercentage",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newPercentage",
          "type": "uint256"
        }
      ],
      "name": "TeamAllocationPercentageUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "oldTeamWalletAddress",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "newTeamWalletAddress",
          "type": "address"
        }
      ],
      "name": "TeamWalletAddressUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "isAvailable",
          "type": "bool"
        }
      ],
      "name": "VotingEligibilityUpdated",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "teamWalletAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "appName",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "metadataURI",
          "type": "string"
        }
      ],
      "name": "addApp",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "moderator",
          "type": "address"
        }
      ],
      "name": "addAppModerator",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "distributorAddress",
          "type": "address"
        }
      ],
      "name": "addRewardDistributor",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "allEligibleApps",
      "outputs": [
        {
          "internalType": "bytes32[]",
          "name": "",
          "type": "bytes32[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        }
      ],
      "name": "app",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "id",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "teamWalletAddress",
              "type": "address"
            },
            {
              "internalType": "string",
              "name": "name",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "metadataURI",
              "type": "string"
            },
            {
              "internalType": "uint256",
              "name": "createdAtTimestamp",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "appAvailableForAllocationVoting",
              "type": "bool"
            }
          ],
          "internalType": "struct X2EarnAppsDataTypes.AppWithDetailsReturnType",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        }
      ],
      "name": "appAdmin",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        }
      ],
      "name": "appExists",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "apps",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "id",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "teamWalletAddress",
              "type": "address"
            },
            {
              "internalType": "string",
              "name": "name",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "metadataURI",
              "type": "string"
            },
            {
              "internalType": "uint256",
              "name": "createdAtTimestamp",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "appAvailableForAllocationVoting",
              "type": "bool"
            }
          ],
          "internalType": "struct X2EarnAppsDataTypes.AppWithDetailsReturnType[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "appsCount",
      "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": "uint256",
          "name": "startIndex",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "count",
          "type": "uint256"
        }
      ],
      "name": "getPaginatedApps",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "id",
              "type": "bytes32"
            },
            {
              "internalType": "string",
              "name": "name",
              "type": "string"
            },
            {
              "internalType": "uint256",
              "name": "createdAtTimestamp",
              "type": "uint256"
            }
          ],
          "internalType": "struct X2EarnAppsDataTypes.App[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "name",
          "type": "string"
        }
      ],
      "name": "hashAppName",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "isAppAdmin",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "timepoint",
          "type": "uint256"
        }
      ],
      "name": "isEligible",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "distributorAddress",
          "type": "address"
        }
      ],
      "name": "isRewardDistributor",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "moderator",
          "type": "address"
        }
      ],
      "name": "removeAppModerator",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "distributorAddress",
          "type": "address"
        }
      ],
      "name": "removeRewardDistributor",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "name": "setAppAdmin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "percentage",
          "type": "uint256"
        }
      ],
      "name": "setTeamAllocationPercentage",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_appId",
          "type": "bytes32"
        },
        {
          "internalType": "bool",
          "name": "_isEligible",
          "type": "bool"
        }
      ],
      "name": "setVotingEligibility",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        }
      ],
      "name": "teamAllocationPercentage",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        }
      ],
      "name": "teamWalletAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "internalType": "string",
          "name": "metadataURI",
          "type": "string"
        }
      ],
      "name": "updateAppMetadata",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "newTeamWalletAddress",
          "type": "address"
        }
      ],
      "name": "updateTeamWalletAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
