import { Contract, ContractFactory, Interface } from "ethers";
const _abi = [
    {
        "inputs": [],
        "stateMutability": "nonpayable",
        "type": "constructor"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "pending",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "provided",
                "type": "uint256"
            }
        ],
        "name": "AccusationVoteValidityMismatch",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "readyAt",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "nowAt",
                "type": "uint256"
            }
        ],
        "name": "AccusationVoteValidityTimelockActive",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "AccusationVoteValidityZeroRequiresTimelock",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "AttestationBindingCountMismatch",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "BondingRegistryNotSet",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "node",
                "type": "address"
            }
        ],
        "name": "CiphernodeNotEnabled",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "CiphernodeTreeExhausted",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "CommitteeAlreadyFinalized",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "CommitteeAlreadyPublished",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "CommitteeAlreadyRequested",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "CommitteeDeadlineReached",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "CommitteeNotFinalized",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "CommitteeNotInitializedOrFinalized",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "CommitteeNotPublished",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "CommitteeNotRequested",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "DkgProofRequired",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "FoldAttestationVerifierAlreadySet",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "FoldAttestationVerifierNotSet",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "FoldAttestationsRequired",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "requested",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "available",
                "type": "uint256"
            }
        ],
        "name": "InsufficientCiphernodes",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "InvalidDkgProof",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "InvalidFoldAttestation",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "InvalidInitialization",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "InvalidTicketNumber",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "NoPendingAccusationVoteValidityUpdate",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "NoPendingVerifierUpdate",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "NodeAlreadySubmitted",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "node",
                "type": "address"
            }
        ],
        "name": "NodeNotBonded",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "NodeNotEligible",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "NodeNotSubmitted",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "NotInitializing",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "NotOwnerOrBondingRegistry",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "NotSlashingManager",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "OnlyBondingRegistry",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "OnlyInterfold",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "owner",
                "type": "address"
            }
        ],
        "name": "OwnableInvalidOwner",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "account",
                "type": "address"
            }
        ],
        "name": "OwnableUnauthorizedAccount",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "PartyIdNotInProof",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "partyId",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "committeeSize",
                "type": "uint256"
            }
        ],
        "name": "PartyIdOutOfBounds",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "PkCommitmentRequired",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "RenounceOwnershipDisabled",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "window",
                "type": "uint256"
            }
        ],
        "name": "SortitionSubmissionWindowOutOfBounds",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "SubmissionWindowClosed",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "SubmissionWindowNotClosed",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "ThresholdNotMet",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "Unauthorized",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "pending",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "provided",
                "type": "address"
            }
        ],
        "name": "VerifierMismatch",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "readyAt",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "nowAt",
                "type": "uint256"
            }
        ],
        "name": "VerifierUpdateTimelockActive",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "ZeroAddress",
        "type": "error"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "accusationVoteValidity",
                "type": "uint256"
            }
        ],
        "name": "AccusationVoteValidityProposalCancelled",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "accusationVoteValidity",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "readyAt",
                "type": "uint256"
            }
        ],
        "name": "AccusationVoteValidityProposed",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "accusationVoteValidity",
                "type": "uint256"
            }
        ],
        "name": "AccusationVoteValiditySet",
        "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": "node",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "index",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "numNodes",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "size",
                "type": "uint256"
            }
        ],
        "name": "CiphernodeAdded",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "node",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "index",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "numNodes",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "size",
                "type": "uint256"
            }
        ],
        "name": "CiphernodeRemoved",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "bool",
                "name": "active",
                "type": "bool"
            }
        ],
        "name": "CommitteeActivationChanged",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "nodesSubmitted",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "thresholdRequired",
                "type": "uint256"
            }
        ],
        "name": "CommitteeFormationFailed",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            },
            {
                "indexed": true,
                "internalType": "address",
                "name": "node",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "bytes32",
                "name": "reason",
                "type": "bytes32"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "activeCountAfter",
                "type": "uint256"
            }
        ],
        "name": "CommitteeMemberExpelled",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "address[]",
                "name": "nodes",
                "type": "address[]"
            },
            {
                "indexed": false,
                "internalType": "bytes",
                "name": "publicKey",
                "type": "bytes"
            },
            {
                "indexed": false,
                "internalType": "bytes32",
                "name": "pkCommitment",
                "type": "bytes32"
            },
            {
                "indexed": false,
                "internalType": "bytes",
                "name": "proof",
                "type": "bytes"
            }
        ],
        "name": "CommitteePublished",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "seed",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint32[2]",
                "name": "threshold",
                "type": "uint32[2]"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "requestBlock",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "committeeDeadline",
                "type": "uint256"
            }
        ],
        "name": "CommitteeRequested",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "activeCount",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "thresholdM",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "bool",
                "name": "viable",
                "type": "bool"
            }
        ],
        "name": "CommitteeViabilityUpdated",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "verifier",
                "type": "address"
            }
        ],
        "name": "DkgFoldAttestationVerifierProposalCancelled",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "verifier",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "readyAt",
                "type": "uint256"
            }
        ],
        "name": "DkgFoldAttestationVerifierProposed",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "verifier",
                "type": "address"
            }
        ],
        "name": "DkgFoldAttestationVerifierUpdated",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "uint64",
                "name": "version",
                "type": "uint64"
            }
        ],
        "name": "Initialized",
        "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": "previousOwner",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "address",
                "name": "newOwner",
                "type": "address"
            }
        ],
        "name": "OwnershipTransferStarted",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "previousOwner",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "address",
                "name": "newOwner",
                "type": "address"
            }
        ],
        "name": "OwnershipTransferred",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "slashingManager",
                "type": "address"
            }
        ],
        "name": "RegistrySlashingManagerSet",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "slashingManager",
                "type": "address"
            }
        ],
        "name": "SlashingManagerSet",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "address[]",
                "name": "committee",
                "type": "address[]"
            },
            {
                "indexed": false,
                "internalType": "uint256[]",
                "name": "scores",
                "type": "uint256[]"
            }
        ],
        "name": "SortitionCommitteeFinalized",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "sortitionSubmissionWindow",
                "type": "uint256"
            }
        ],
        "name": "SortitionSubmissionWindowSet",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            },
            {
                "indexed": true,
                "internalType": "address",
                "name": "node",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "ticketId",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "score",
                "type": "uint256"
            }
        ],
        "name": "TicketSubmitted",
        "type": "event"
    },
    {
        "inputs": [],
        "name": "ACCUSATION_VOTE_VALIDITY_TIMELOCK",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "DEFAULT_ACCUSATION_VOTE_VALIDITY",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "DKG_FOLD_VERIFIER_TIMELOCK",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "MAX_CIPHERNODE_LEAVES",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "MAX_SORTITION_SUBMISSION_WINDOW",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "MIN_SORTITION_SUBMISSION_WINDOW",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "TREE_DEPTH",
        "outputs": [
            {
                "internalType": "uint8",
                "name": "",
                "type": "uint8"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "acceptOwnership",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "accusationVoteValidity",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "node",
                "type": "address"
            }
        ],
        "name": "addCiphernode",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "bondingRegistry",
        "outputs": [
            {
                "internalType": "contract IBondingRegistry",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "cancelAccusationVoteValidityProposal",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "cancelDkgFoldAttestationVerifierProposal",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "partyId",
                "type": "uint256"
            }
        ],
        "name": "canonicalCommitteeNodeAt",
        "outputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "node",
                "type": "address"
            }
        ],
        "name": "ciphernodeEnabled",
        "outputs": [
            {
                "internalType": "bool",
                "name": "enabled",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "node",
                "type": "address"
            }
        ],
        "name": "ciphernodeTreeIndex",
        "outputs": [
            {
                "internalType": "uint40",
                "name": "index",
                "type": "uint40"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "ciphernodes",
        "outputs": [
            {
                "internalType": "uint40",
                "name": "maxIndex",
                "type": "uint40"
            },
            {
                "internalType": "uint40",
                "name": "numberOfLeaves",
                "type": "uint40"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "_accusationVoteValidity",
                "type": "uint256"
            }
        ],
        "name": "commitAccusationVoteValidity",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract IDkgFoldAttestationVerifier",
                "name": "verifier",
                "type": "address"
            }
        ],
        "name": "commitDkgFoldAttestationVerifier",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            }
        ],
        "name": "committeePublicKey",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "publicKeyHash",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "dkgFoldAttestationVerifier",
        "outputs": [
            {
                "internalType": "contract IDkgFoldAttestationVerifier",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            },
            {
                "internalType": "address",
                "name": "node",
                "type": "address"
            },
            {
                "internalType": "bytes32",
                "name": "reason",
                "type": "bytes32"
            }
        ],
        "name": "expelCommitteeMember",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "activeCount",
                "type": "uint256"
            },
            {
                "internalType": "uint32",
                "name": "thresholdM",
                "type": "uint32"
            }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            }
        ],
        "name": "finalizeCommittee",
        "outputs": [
            {
                "internalType": "bool",
                "name": "success",
                "type": "bool"
            }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            }
        ],
        "name": "getActiveCommitteeNodes",
        "outputs": [
            {
                "internalType": "address[]",
                "name": "nodes",
                "type": "address[]"
            },
            {
                "internalType": "uint256[]",
                "name": "scores",
                "type": "uint256[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getBondingRegistry",
        "outputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            }
        ],
        "name": "getCommitteeDeadline",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            }
        ],
        "name": "getCommitteeHash",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "committeeHash",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            }
        ],
        "name": "getCommitteeNodes",
        "outputs": [
            {
                "internalType": "address[]",
                "name": "nodes",
                "type": "address[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            }
        ],
        "name": "getCommitteeViability",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "activeCount",
                "type": "uint256"
            },
            {
                "internalType": "uint32",
                "name": "thresholdM",
                "type": "uint32"
            },
            {
                "internalType": "uint32",
                "name": "thresholdN",
                "type": "uint32"
            },
            {
                "internalType": "bool",
                "name": "viable",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            }
        ],
        "name": "getDkgAnchors",
        "outputs": [
            {
                "internalType": "uint256[]",
                "name": "partyIds",
                "type": "uint256[]"
            },
            {
                "internalType": "bytes32[]",
                "name": "skAggCommits",
                "type": "bytes32[]"
            },
            {
                "internalType": "bytes32[]",
                "name": "esmAggCommits",
                "type": "bytes32[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_owner",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "_submissionWindow",
                "type": "uint256"
            }
        ],
        "name": "initialize",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "interfold",
        "outputs": [
            {
                "internalType": "contract IInterfold",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "node",
                "type": "address"
            }
        ],
        "name": "isCiphernodeEligible",
        "outputs": [
            {
                "internalType": "bool",
                "name": "",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            },
            {
                "internalType": "address",
                "name": "node",
                "type": "address"
            }
        ],
        "name": "isCommitteeMember",
        "outputs": [
            {
                "internalType": "bool",
                "name": "",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            },
            {
                "internalType": "address",
                "name": "node",
                "type": "address"
            }
        ],
        "name": "isCommitteeMemberActive",
        "outputs": [
            {
                "internalType": "bool",
                "name": "",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "node",
                "type": "address"
            }
        ],
        "name": "isEnabled",
        "outputs": [
            {
                "internalType": "bool",
                "name": "",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            }
        ],
        "name": "isOpen",
        "outputs": [
            {
                "internalType": "bool",
                "name": "",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "numCiphernodes",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "owner",
        "outputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "pendingAccusationVoteValidity",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "pendingAccusationVoteValidityAt",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "pendingDkgFoldAttestationVerifier",
        "outputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "pendingDkgFoldAttestationVerifierAt",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "pendingOwner",
        "outputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "_accusationVoteValidity",
                "type": "uint256"
            }
        ],
        "name": "proposeAccusationVoteValidity",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract IDkgFoldAttestationVerifier",
                "name": "verifier",
                "type": "address"
            }
        ],
        "name": "proposeDkgFoldAttestationVerifier",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            }
        ],
        "name": "publicKeyHashes",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "publicKeyHash",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            },
            {
                "internalType": "bytes",
                "name": "publicKey",
                "type": "bytes"
            },
            {
                "internalType": "bytes32",
                "name": "pkCommitment",
                "type": "bytes32"
            },
            {
                "internalType": "bytes",
                "name": "proof",
                "type": "bytes"
            },
            {
                "internalType": "bytes",
                "name": "dkgAttestationBundle",
                "type": "bytes"
            }
        ],
        "name": "publishCommittee",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "node",
                "type": "address"
            }
        ],
        "name": "removeCiphernode",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "renounceOwnership",
        "outputs": [],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "seed",
                "type": "uint256"
            },
            {
                "internalType": "uint32[2]",
                "name": "threshold",
                "type": "uint32[2]"
            }
        ],
        "name": "requestCommittee",
        "outputs": [
            {
                "internalType": "bool",
                "name": "success",
                "type": "bool"
            }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "root",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            }
        ],
        "name": "rootAt",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            }
        ],
        "name": "roots",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "root",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "_accusationVoteValidity",
                "type": "uint256"
            }
        ],
        "name": "setAccusationVoteValidity",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract IBondingRegistry",
                "name": "_bondingRegistry",
                "type": "address"
            }
        ],
        "name": "setBondingRegistry",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract IDkgFoldAttestationVerifier",
                "name": "verifier",
                "type": "address"
            }
        ],
        "name": "setInitialDkgFoldAttestationVerifier",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract IInterfold",
                "name": "_interfold",
                "type": "address"
            }
        ],
        "name": "setInterfold",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract ISlashingManager",
                "name": "_slashingManager",
                "type": "address"
            }
        ],
        "name": "setSlashingManager",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "_sortitionSubmissionWindow",
                "type": "uint256"
            }
        ],
        "name": "setSortitionSubmissionWindow",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "slashingManager",
        "outputs": [
            {
                "internalType": "contract ISlashingManager",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "sortitionSubmissionWindow",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "e3Id",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "ticketNumber",
                "type": "uint256"
            }
        ],
        "name": "submitTicket",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "bytes4",
                "name": "interfaceId",
                "type": "bytes4"
            }
        ],
        "name": "supportsInterface",
        "outputs": [
            {
                "internalType": "bool",
                "name": "",
                "type": "bool"
            }
        ],
        "stateMutability": "pure",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "newOwner",
                "type": "address"
            }
        ],
        "name": "transferOwnership",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "treeSize",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    }
];
const _bytecode = " $078c82ddf6c95d34ea184ef1dd6130d136$__9163561558fe9161275f91600401614854565b602060405180830381865af415801561277c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a09190614744565b935050612860565b60006127b9836126f8600189614885565b60408051808201825264ffffffffff8316600090815260018c0160209081529083902054825281018790529051632b0aac7f60e11b815291925073__$078c82ddf6c95d34ea184ef1dd6130d136$__9163561558fe9161281b91600401614854565b602060405180830381865af4158015612838573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061285c9190614744565b9350505b50647fffffffff600194851c16930161266e565b505050505050565b80516000908161288d8260146148a2565b6001600160401b038111156128a4576128a461434e565b6040519080825280601f01601f1916602001820160405280156128ce576020820181803683370190505b50905060005b828110156129255760008582815181106128f0576128f0614715565b602002602001015160601b9050600082601461290c91906148a2565b60609290921b91840160200191909152506001016128d4565b5080516020909101209392505050565b8261295357604051630fb0193f60e41b815260040160405180910390fd5b8861012001516001600160a01b0316630741a9da8b8a8a8a8a8a8a6040518863ffffffff1660e01b815260040161299097969594939291906148b9565b602060405180830381865afa1580156129ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129d191906147f0565b506129df8a858585856131eb565b50505050505050505050565b60006129f5612d5b565b80546001600160a01b03191681559050612a0e8261332c565b5050565b8154600160281b900464ffffffffff16600080516020614cab8339815191528210612a3c57600080fd5b825464ffffffffff90811690821610612a5457600080fd5b612a5f816001614837565b835464ffffffffff91909116600160281b0264ffffffffff60281b199091161783558160005b81856001016000612a9684876131cd565b64ffffffffff1681526020810191909152604001600020556001831615612b86576000612ac8826126f8600187614885565b60408051808201825264ffffffffff8316600090815260018a0160209081529083902054825281018690529051632b0aac7f60e11b815291925073__$078c82ddf6c95d34ea184ef1dd6130d136$ $078c82ddf6c95d34ea184ef1dd6130d136$__63561558fe6040518060400160405280868560ff1681518110613c1057613c10614715565b60200260200101518152602001613c26856134b1565b8152506040518263ffffffff1660e01b8152600401613c459190614854565b602060405180830381865af4158015613c62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c869190614744565b83613c9283600161481e565b60ff1681518110613ca557613ca5614715565b602002602001018181525050613e70565b6000613cc382600161481e565b60ff168664ffffffffff16901c64ffffffffff16905060018364ffffffffff16901c64ffffffffff16811115613d68576000876001016000613d1c856001613d0b919061481e565b60018864ffffffffff16901c6131cd565b64ffffffffff1681526020019081526020016000205490508085846001613d43919061481e565b60ff1681518110613d5657613d56614715565b60200260200101818152505050613e6e565b6000876001016000613d81856001886126f89190614885565b64ffffffffff16815260200190815260200160002054905073__$078c82ddf6c95d34ea184ef1dd6130d136$ ";
const isSuperArgs = (xs) => {
    return typeof xs[0] === 'string'
        || Array.isArray(xs[0])
        || '_isInterface' in xs[0];
};
export class CiphernodeRegistryOwnable__factory extends ContractFactory {
    constructor(...args) {
        if (isSuperArgs(args)) {
            super(...args);
        }
        else {
            const [linkLibraryAddresses, signer] = args;
            super(_abi, CiphernodeRegistryOwnable__factory.linkBytecode(linkLibraryAddresses), signer);
        }
    }
    static linkBytecode(linkLibraryAddresses) {
        let linkedBytecode = _bytecode;
        linkedBytecode = linkedBytecode.replace(new RegExp("__\\$078c82ddf6c95d34ea184ef1dd6130d136\\$__", "g"), linkLibraryAddresses["npm/poseidon-solidity@0.0.5/PoseidonT3.sol:PoseidonT3"].replace(/^0x/, '').toLowerCase());
        return linkedBytecode;
    }
    getDeployTransaction(overrides) {
        return super.getDeployTransaction(overrides || {});
    }
    ;
    deploy(overrides) {
        return super.deploy(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);
    }
}
;
