import { Contract, ContractFactory, Interface } from "ethers";
const _abi = [
    {
        "inputs": [
            {
                "internalType": "uint48",
                "name": "initialDelay",
                "type": "uint48"
            },
            {
                "internalType": "address",
                "name": "admin",
                "type": "address"
            }
        ],
        "stateMutability": "nonpayable",
        "type": "constructor"
    },
    {
        "inputs": [],
        "name": "AccessControlBadConfirmation",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "uint48",
                "name": "schedule",
                "type": "uint48"
            }
        ],
        "name": "AccessControlEnforcedDefaultAdminDelay",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "AccessControlEnforcedDefaultAdminRules",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "defaultAdmin",
                "type": "address"
            }
        ],
        "name": "AccessControlInvalidDefaultAdmin",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "account",
                "type": "address"
            },
            {
                "internalType": "bytes32",
                "name": "neededRole",
                "type": "bytes32"
            }
        ],
        "name": "AccessControlUnauthorizedAccount",
        "type": "error"
    },
    {
        "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": "ECDSAInvalidSignature",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "length",
                "type": "uint256"
            }
        ],
        "name": "ECDSAInvalidSignatureLength",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "bytes32",
                "name": "s",
                "type": "bytes32"
            }
        ],
        "name": "ECDSAInvalidSignatureS",
        "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": "InvalidShortString",
        "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": [
            {
                "internalType": "uint8",
                "name": "bits",
                "type": "uint8"
            },
            {
                "internalType": "uint256",
                "name": "value",
                "type": "uint256"
            }
        ],
        "name": "SafeCastOverflowedUintDowncast",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "SignatureExpired",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "SignerIsNotOperator",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "SlashReasonDisabled",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "SlashReasonNotFound",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "string",
                "name": "str",
                "type": "string"
            }
        ],
        "name": "StringTooLong",
        "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": "previous",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "address",
                "name": "next",
                "type": "address"
            }
        ],
        "name": "BondingRegistryUpdated",
        "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": "previous",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "address",
                "name": "next",
                "type": "address"
            }
        ],
        "name": "CiphernodeRegistryUpdated",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [],
        "name": "DefaultAdminDelayChangeCanceled",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "uint48",
                "name": "newDelay",
                "type": "uint48"
            },
            {
                "indexed": false,
                "internalType": "uint48",
                "name": "effectSchedule",
                "type": "uint48"
            }
        ],
        "name": "DefaultAdminDelayChangeScheduled",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [],
        "name": "DefaultAdminTransferCanceled",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "newAdmin",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "uint48",
                "name": "acceptSchedule",
                "type": "uint48"
            }
        ],
        "name": "DefaultAdminTransferScheduled",
        "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": "previous",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "address",
                "name": "next",
                "type": "address"
            }
        ],
        "name": "E3RefundManagerUpdated",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [],
        "name": "EIP712DomainChanged",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "interfold",
                "type": "address"
            }
        ],
        "name": "InterfoldSet",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "previous",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "address",
                "name": "next",
                "type": "address"
            }
        ],
        "name": "InterfoldUpdated",
        "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": "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"
    },
    {
        "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": [],
        "name": "DEFAULT_ADMIN_ROLE",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "DOMAIN_NAME_HASH",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "DOMAIN_VERSION_HASH",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "EIP712_DOMAIN_NAME",
        "outputs": [
            {
                "internalType": "string",
                "name": "",
                "type": "string"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "EIP712_DOMAIN_TYPEHASH",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "EIP712_DOMAIN_VERSION",
        "outputs": [
            {
                "internalType": "string",
                "name": "",
                "type": "string"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "GOVERNANCE_ROLE",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "MAX_APPEAL_WINDOW",
        "outputs": [
            {
                "internalType": "uint64",
                "name": "",
                "type": "uint64"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "PROOF_PAYLOAD_TYPEHASH",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "SLASHER_ROLE",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "VOTE_TYPEHASH",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "acceptDefaultAdminTransfer",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "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": [
            {
                "internalType": "address",
                "name": "node",
                "type": "address"
            }
        ],
        "name": "banned",
        "outputs": [
            {
                "internalType": "bool",
                "name": "banned",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "newAdmin",
                "type": "address"
            }
        ],
        "name": "beginDefaultAdminTransfer",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "bondingRegistry",
        "outputs": [
            {
                "internalType": "contract IBondingRegistry",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "node",
                "type": "address"
            }
        ],
        "name": "cancelBan",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "cancelDefaultAdminTransfer",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint48",
                "name": "newDelay",
                "type": "uint48"
            }
        ],
        "name": "changeDefaultAdminDelay",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "ciphernodeRegistry",
        "outputs": [
            {
                "internalType": "contract ICiphernodeRegistry",
                "name": "",
                "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": [],
        "name": "defaultAdmin",
        "outputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "defaultAdminDelay",
        "outputs": [
            {
                "internalType": "uint48",
                "name": "",
                "type": "uint48"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "defaultAdminDelayIncreaseWait",
        "outputs": [
            {
                "internalType": "uint48",
                "name": "",
                "type": "uint48"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "e3RefundManager",
        "outputs": [
            {
                "internalType": "contract IE3RefundManager",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "eip712Domain",
        "outputs": [
            {
                "internalType": "bytes1",
                "name": "fields",
                "type": "bytes1"
            },
            {
                "internalType": "string",
                "name": "name",
                "type": "string"
            },
            {
                "internalType": "string",
                "name": "version",
                "type": "string"
            },
            {
                "internalType": "uint256",
                "name": "chainId",
                "type": "uint256"
            },
            {
                "internalType": "address",
                "name": "verifyingContract",
                "type": "address"
            },
            {
                "internalType": "bytes32",
                "name": "salt",
                "type": "bytes32"
            },
            {
                "internalType": "uint256[]",
                "name": "extensions",
                "type": "uint256[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "amount",
                "type": "uint256"
            }
        ],
        "name": "escrowSlashedFundsToRefund",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "bytes32",
                "name": "evidenceKey",
                "type": "bytes32"
            }
        ],
        "name": "evidenceConsumed",
        "outputs": [
            {
                "internalType": "bool",
                "name": "consumed",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "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": "role",
                "type": "bytes32"
            }
        ],
        "name": "getRoleAdmin",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "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": "",
                "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": "",
                "type": "tuple"
            }
        ],
        "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": "address",
                "name": "operator",
                "type": "address"
            }
        ],
        "name": "hasOpenLaneBProposal",
        "outputs": [
            {
                "internalType": "bool",
                "name": "",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "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": [],
        "name": "interfold",
        "outputs": [
            {
                "internalType": "contract IInterfold",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "node",
                "type": "address"
            }
        ],
        "name": "isBanned",
        "outputs": [
            {
                "internalType": "bool",
                "name": "",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "owner",
        "outputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "pendingDefaultAdmin",
        "outputs": [
            {
                "internalType": "address",
                "name": "newAdmin",
                "type": "address"
            },
            {
                "internalType": "uint48",
                "name": "schedule",
                "type": "uint48"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "pendingDefaultAdminDelay",
        "outputs": [
            {
                "internalType": "uint48",
                "name": "newDelay",
                "type": "uint48"
            },
            {
                "internalType": "uint48",
                "name": "schedule",
                "type": "uint48"
            }
        ],
        "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": "bytes32",
                "name": "role",
                "type": "bytes32"
            },
            {
                "internalType": "address",
                "name": "account",
                "type": "address"
            }
        ],
        "name": "renounceRole",
        "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": "bytes32",
                "name": "role",
                "type": "bytes32"
            },
            {
                "internalType": "address",
                "name": "account",
                "type": "address"
            }
        ],
        "name": "revokeRole",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "rollbackDefaultAdminDelay",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract IBondingRegistry",
                "name": "newBondingRegistry",
                "type": "address"
            }
        ],
        "name": "setBondingRegistry",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract ICiphernodeRegistry",
                "name": "newCiphernodeRegistry",
                "type": "address"
            }
        ],
        "name": "setCiphernodeRegistry",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract IE3RefundManager",
                "name": "newRefundManager",
                "type": "address"
            }
        ],
        "name": "setE3RefundManager",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract IInterfold",
                "name": "newInterfold",
                "type": "address"
            }
        ],
        "name": "setInterfold",
        "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": [
            {
                "internalType": "bytes32",
                "name": "reason",
                "type": "bytes32"
            }
        ],
        "name": "slashPolicies",
        "outputs": [
            {
                "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"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "bytes4",
                "name": "interfaceId",
                "type": "bytes4"
            }
        ],
        "name": "supportsInterface",
        "outputs": [
            {
                "internalType": "bool",
                "name": "",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "totalProposals",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "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"
    }
];
const _bytecode = " ";
const isSuperArgs = (xs) => xs.length > 1;
export class SlashingManager__factory extends ContractFactory {
    constructor(...args) {
        if (isSuperArgs(args)) {
            super(...args);
        }
        else {
            super(_abi, _bytecode, args[0]);
        }
    }
    getDeployTransaction(initialDelay, admin, overrides) {
        return super.getDeployTransaction(initialDelay, admin, overrides || {});
    }
    ;
    deploy(initialDelay, admin, overrides) {
        return super.deploy(initialDelay, admin, overrides || {});
    }
    connect(runner) {
        return super.connect(runner);
    }
    static bytecode = _bytecode;
    static abi = _abi;
    static createInterface() {
        return new Interface(_abi);
    }
    attach(address) {
        return super.attach(address);
    }
    static connect(address, runner) {
        return new Contract(address, _abi, runner);
    }
}
