{
  "_format": "hh-sol-artifact-1",
  "contractName": "IHorizonStakingExtension",
  "sourceName": "contracts/horizon/internal/IHorizonStakingExtension.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "indexer",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "subgraphDeploymentID",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "epoch",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "tokens",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "allocationID",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "poi",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "isPublic",
          "type": "bool"
        }
      ],
      "name": "AllocationClosed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "assetHolder",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "indexer",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "subgraphDeploymentID",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "allocationID",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "epoch",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "tokens",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "protocolTax",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "curationFees",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "queryFees",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "queryRebates",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "delegationRewards",
          "type": "uint256"
        }
      ],
      "name": "RebateCollected",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "indexer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "tokens",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "reward",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "beneficiary",
          "type": "address"
        }
      ],
      "name": "StakeSlashed",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "__DEPRECATED_getThawingPeriod",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "allocationID",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "poi",
          "type": "bytes32"
        }
      ],
      "name": "closeAllocation",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokens",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "allocationID",
          "type": "address"
        }
      ],
      "name": "collect",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "allocationID",
          "type": "address"
        }
      ],
      "name": "getAllocation",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "indexer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "subgraphDeploymentID",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "tokens",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "createdAtEpoch",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "closedAtEpoch",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "collectedFees",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "__DEPRECATED_effectiveAllocation",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "accRewardsPerAllocatedToken",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "distributedRebates",
              "type": "uint256"
            }
          ],
          "internalType": "struct IHorizonStakingExtension.Allocation",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "allocationId",
          "type": "address"
        }
      ],
      "name": "getAllocationData",
      "outputs": [
        {
          "internalType": "bool",
          "name": "isActive",
          "type": "bool"
        },
        {
          "internalType": "address",
          "name": "indexer",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "subgraphDeploymentId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "tokens",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "accRewardsPerAllocatedToken",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "accRewardsPending",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "allocationID",
          "type": "address"
        }
      ],
      "name": "getAllocationState",
      "outputs": [
        {
          "internalType": "enum IHorizonStakingExtension.AllocationState",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "indexer",
          "type": "address"
        }
      ],
      "name": "getIndexerStakedTokens",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "subgraphDeploymentId",
          "type": "bytes32"
        }
      ],
      "name": "getSubgraphAllocatedTokens",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getSubgraphService",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "indexer",
          "type": "address"
        }
      ],
      "name": "hasStake",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "allocationID",
          "type": "address"
        }
      ],
      "name": "isAllocation",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "indexer",
          "type": "address"
        }
      ],
      "name": "isOperator",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "indexer",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokens",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "reward",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "beneficiary",
          "type": "address"
        }
      ],
      "name": "legacySlash",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
