{
  "_format": "hh3-artifact-1",
  "contractName": "ISlashingManager",
  "sourceName": "contracts/interfaces/ISlashingManager.sol",
  "abi": [
    {
      "inputs": [],
      "name": "AlreadyAppealed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AlreadyExecuted",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AlreadyResolved",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AppealPending",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AppealUpheld",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AppealWindowActive",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AppealWindowExpired",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BanRequiresConfirmation",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ChainIdMismatch",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "CiphernodeBanned",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "DuplicateEvidence",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "DuplicateVoter",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "EquivocationDetected",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InsufficientAttestations",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidPolicy",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidProof",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidProposal",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidVoteSignature",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NoPendingBan",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "OperatorNotInCommittee",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "OperatorUnderSlash",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "PartyIdNotInDkgAnchors",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ProofIsValid",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ProofRequired",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "SignatureExpired",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "SignerIsNotOperator",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "SlashReasonDisabled",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "SlashReasonNotFound",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "Unauthorized",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "VerifierCallFailed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "VerifierMismatch",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "VerifierNotSet",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "VoterIsAccused",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "VoterNotInCommittee",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ZeroAddress",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "evidence",
          "type": "string"
        }
      ],
      "name": "AppealFiled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "appealUpheld",
          "type": "bool"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "resolver",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "resolution",
          "type": "string"
        }
      ],
      "name": "AppealResolved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "node",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "canceller",
          "type": "address"
        }
      ],
      "name": "BanCancelled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "node",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "proposer",
          "type": "address"
        }
      ],
      "name": "BanProposed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "bondingRegistry",
          "type": "address"
        }
      ],
      "name": "BondingRegistrySet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "ciphernodeRegistry",
          "type": "address"
        }
      ],
      "name": "CiphernodeRegistrySet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "e3RefundManager",
          "type": "address"
        }
      ],
      "name": "E3RefundManagerSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "enclave",
          "type": "address"
        }
      ],
      "name": "EnclaveSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "node",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "status",
          "type": "bool"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "updater",
          "type": "address"
        }
      ],
      "name": "NodeBanUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "e3Id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "RoutingFailed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "e3Id",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "ticketAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "licenseAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "executed",
          "type": "bool"
        },
        {
          "indexed": false,
          "internalType": "enum ISlashingManager.Lane",
          "name": "lane",
          "type": "uint8"
        }
      ],
      "name": "SlashExecuted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "ticketPenalty",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "licensePenalty",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "requiresProof",
              "type": "bool"
            },
            {
              "internalType": "address",
              "name": "proofVerifier",
              "type": "address"
            },
            {
              "internalType": "bool",
              "name": "banNode",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "appealWindow",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "enabled",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "affectsCommittee",
              "type": "bool"
            },
            {
              "internalType": "uint8",
              "name": "failureReason",
              "type": "uint8"
            }
          ],
          "indexed": false,
          "internalType": "struct ISlashingManager.SlashPolicy",
          "name": "policy",
          "type": "tuple"
        }
      ],
      "name": "SlashPolicyUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "e3Id",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "ticketAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "licenseAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "executableAt",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "proposer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "enum ISlashingManager.Lane",
          "name": "lane",
          "type": "uint8"
        }
      ],
      "name": "SlashProposed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "e3Id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "SlashedFundsEscrowedToRefund",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "slasher",
          "type": "address"
        }
      ],
      "name": "addSlasher",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "attestationDomainSeparator",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "bondingRegistry",
      "outputs": [
        {
          "internalType": "contract IBondingRegistry",
          "name": "registry",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "node",
          "type": "address"
        }
      ],
      "name": "cancelBan",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "ciphernodeRegistry",
      "outputs": [
        {
          "internalType": "contract ICiphernodeRegistry",
          "name": "registry",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "node",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        }
      ],
      "name": "confirmBan",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "e3Id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "escrowSlashedFundsToRefund",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "executeSlash",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "evidence",
          "type": "string"
        }
      ],
      "name": "fileAppeal",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        }
      ],
      "name": "getSlashPolicy",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "ticketPenalty",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "licensePenalty",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "requiresProof",
              "type": "bool"
            },
            {
              "internalType": "address",
              "name": "proofVerifier",
              "type": "address"
            },
            {
              "internalType": "bool",
              "name": "banNode",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "appealWindow",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "enabled",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "affectsCommittee",
              "type": "bool"
            },
            {
              "internalType": "uint8",
              "name": "failureReason",
              "type": "uint8"
            }
          ],
          "internalType": "struct ISlashingManager.SlashPolicy",
          "name": "policy",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "getSlashProposal",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "e3Id",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "operator",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "reason",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "ticketAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "licenseAmount",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "executed",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "appealed",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "resolved",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "appealUpheld",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "proposedAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "executableAt",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "proofHash",
              "type": "bytes32"
            },
            {
              "internalType": "bool",
              "name": "proofVerified",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "banNode",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "affectsCommittee",
              "type": "bool"
            },
            {
              "internalType": "uint8",
              "name": "failureReason",
              "type": "uint8"
            }
          ],
          "internalType": "struct ISlashingManager.SlashProposal",
          "name": "proposal",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "hasOpenLaneBProposal",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "node",
          "type": "address"
        }
      ],
      "name": "isBanned",
      "outputs": [
        {
          "internalType": "bool",
          "name": "isBanned",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "node",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        }
      ],
      "name": "proposeBan",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "e3Id",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "proof",
          "type": "bytes"
        }
      ],
      "name": "proposeSlash",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "e3Id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "partyId",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "proof",
          "type": "bytes"
        }
      ],
      "name": "proposeSlashByDkgParty",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "e3Id",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "evidence",
          "type": "bytes"
        }
      ],
      "name": "proposeSlashEvidence",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "slasher",
          "type": "address"
        }
      ],
      "name": "removeSlasher",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "appealUpheld",
          "type": "bool"
        },
        {
          "internalType": "string",
          "name": "resolution",
          "type": "string"
        }
      ],
      "name": "resolveAppeal",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IBondingRegistry",
          "name": "newBondingRegistry",
          "type": "address"
        }
      ],
      "name": "setBondingRegistry",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IE3RefundManager",
          "name": "newRefundManager",
          "type": "address"
        }
      ],
      "name": "setE3RefundManager",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "ticketPenalty",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "licensePenalty",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "requiresProof",
              "type": "bool"
            },
            {
              "internalType": "address",
              "name": "proofVerifier",
              "type": "address"
            },
            {
              "internalType": "bool",
              "name": "banNode",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "appealWindow",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "enabled",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "affectsCommittee",
              "type": "bool"
            },
            {
              "internalType": "uint8",
              "name": "failureReason",
              "type": "uint8"
            }
          ],
          "internalType": "struct ISlashingManager.SlashPolicy",
          "name": "policy",
          "type": "tuple"
        }
      ],
      "name": "setSlashPolicy",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalProposals",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "count",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "node",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        }
      ],
      "name": "unbanNode",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "node",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "status",
          "type": "bool"
        },
        {
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        }
      ],
      "name": "updateBanStatus",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "linkReferences": {},
  "deployedLinkReferences": {},
  "immutableReferences": {},
  "inputSourceName": "project/contracts/interfaces/ISlashingManager.sol",
  "buildInfoId": "solc-0_8_28-58b894a0ac77a2d784be77b69288a062b8f6f518"
}