[
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "operatorId",
        "type": "uint256"
      }
    ],
    "name": "AddOperator",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "operatorId",
        "type": "uint256"
      }
    ],
    "name": "ClaimFee",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "operatorId",
        "type": "uint256"
      }
    ],
    "name": "JoinOperator",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "operatorId",
        "type": "uint256"
      }
    ],
    "name": "MigrateOperator",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "operatorId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "string",
        "name": "name",
        "type": "string"
      }
    ],
    "name": "NewName",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "operatorId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "rewardAddress",
        "type": "address"
      }
    ],
    "name": "NewRewardAddress",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "Paused",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "operatorId",
        "type": "uint256"
      }
    ],
    "name": "RemoveOperator",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "operatorId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "restakeRewards",
        "type": "bool"
      }
    ],
    "name": "RestakeOperator",
    "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": false,
        "internalType": "uint256",
        "name": "operatorId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "heimdallFees",
        "type": "uint256"
      }
    ],
    "name": "StakeOperator",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "operatorId",
        "type": "uint256"
      }
    ],
    "name": "StopOperator",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "operatorId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "TopUpHeimdallFees",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "operatorId",
        "type": "uint256"
      }
    ],
    "name": "Unjail",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "Unpaused",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "operatorId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "UnstakeClaim",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "operatorId",
        "type": "uint256"
      }
    ],
    "name": "UnstakeOperator",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "operatorId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "newCommissionRate",
        "type": "uint256"
      }
    ],
    "name": "UpdateCommissionRate",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "operatorId",
        "type": "uint256"
      }
    ],
    "name": "UpdateSignerPubkey",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "operatorId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "rewardAddress",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "WithdrawRewards",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "DAO_ROLE",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "DEFAULT_ADMIN_ROLE",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "PAUSE_OPERATOR_ROLE",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "REMOVE_OPERATOR_ROLE",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_name",
        "type": "string"
      },
      {
        "internalType": "address",
        "name": "_rewardAddress",
        "type": "address"
      },
      {
        "internalType": "bytes",
        "name": "_signerPubkey",
        "type": "bytes"
      }
    ],
    "name": "addOperator",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "allowsRestake",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_accumFeeAmount",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_index",
        "type": "uint256"
      },
      {
        "internalType": "bytes",
        "name": "_proof",
        "type": "bytes"
      }
    ],
    "name": "claimFee",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "commissionRate",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "defaultMaxDelegateLimit",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getContracts",
    "outputs": [
      {
        "internalType": "address",
        "name": "_validatorFactory",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_stakeManager",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_highburyERC20",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_stFURY",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_owner",
        "type": "address"
      }
    ],
    "name": "getNodeOperator",
    "outputs": [
      {
        "components": [
          {
            "internalType": "enum NodeOperatorRegistry.NodeOperatorStatus",
            "name": "status",
            "type": "uint8"
          },
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "address",
            "name": "rewardAddress",
            "type": "address"
          },
          {
            "internalType": "bytes",
            "name": "signerPubkey",
            "type": "bytes"
          },
          {
            "internalType": "address",
            "name": "validatorShare",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "validatorProxy",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "validatorId",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "commissionRate",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "maxDelegateLimit",
            "type": "uint256"
          }
        ],
        "internalType": "struct NodeOperatorRegistry.NodeOperator",
        "name": "",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_operatorId",
        "type": "uint256"
      }
    ],
    "name": "getNodeOperator",
    "outputs": [
      {
        "components": [
          {
            "internalType": "enum NodeOperatorRegistry.NodeOperatorStatus",
            "name": "status",
            "type": "uint8"
          },
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "address",
            "name": "rewardAddress",
            "type": "address"
          },
          {
            "internalType": "bytes",
            "name": "signerPubkey",
            "type": "bytes"
          },
          {
            "internalType": "address",
            "name": "validatorShare",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "validatorProxy",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "validatorId",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "commissionRate",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "maxDelegateLimit",
            "type": "uint256"
          }
        ],
        "internalType": "struct NodeOperatorRegistry.NodeOperator",
        "name": "",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getOperatorIds",
    "outputs": [
      {
        "internalType": "uint256[]",
        "name": "",
        "type": "uint256[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "_delegation",
        "type": "bool"
      },
      {
        "internalType": "bool",
        "name": "_allWithStake",
        "type": "bool"
      }
    ],
    "name": "getOperatorInfos",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "operatorId",
            "type": "uint256"
          },
          {
            "internalType": "address",
            "name": "validatorShare",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "maxDelegateLimit",
            "type": "uint256"
          },
          {
            "internalType": "address",
            "name": "rewardAddress",
            "type": "address"
          }
        ],
        "internalType": "struct Operator.OperatorInfo[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      }
    ],
    "name": "getRoleAdmin",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getState",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "_totalNodeOperator",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_totalInactiveNodeOperator",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_totalActiveNodeOperator",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_totalStoppedNodeOperator",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_totalUnstakedNodeOperator",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_totalClaimedNodeOperator",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_totalExitNodeOperator",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_totalJailedNodeOperator",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_totalEjectedNodeOperator",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_owner",
        "type": "address"
      }
    ],
    "name": "getValidator",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "amount",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "reward",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "activationEpoch",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "deactivationEpoch",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "jailTime",
            "type": "uint256"
          },
          {
            "internalType": "address",
            "name": "signer",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "contractAddress",
            "type": "address"
          },
          {
            "internalType": "enum IStakeManager.Status",
            "name": "status",
            "type": "uint8"
          },
          {
            "internalType": "uint256",
            "name": "commissionRate",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "lastCommissionUpdate",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "delegatorsReward",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "delegatedAmount",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "initialRewardPerStake",
            "type": "uint256"
          }
        ],
        "internalType": "struct IStakeManager.Validator",
        "name": "va",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_operatorId",
        "type": "uint256"
      }
    ],
    "name": "getValidator",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "amount",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "reward",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "activationEpoch",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "deactivationEpoch",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "jailTime",
            "type": "uint256"
          },
          {
            "internalType": "address",
            "name": "signer",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "contractAddress",
            "type": "address"
          },
          {
            "internalType": "enum IStakeManager.Status",
            "name": "status",
            "type": "uint8"
          },
          {
            "internalType": "uint256",
            "name": "commissionRate",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "lastCommissionUpdate",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "delegatorsReward",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "delegatedAmount",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "initialRewardPerStake",
            "type": "uint256"
          }
        ],
        "internalType": "struct IStakeManager.Validator",
        "name": "va",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_operatorId",
        "type": "uint256"
      }
    ],
    "name": "getValidatorShare",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "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": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "hasRole",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_validatorFactory",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_stakeManager",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_highburyERC20",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_stFURY",
        "type": "address"
      }
    ],
    "name": "initialize",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "joinOperator",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "migrate",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "minAmountStake",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "minHeimdallFees",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "paused",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_operatorId",
        "type": "uint256"
      }
    ],
    "name": "removeOperator",
    "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": "_amount",
        "type": "uint256"
      },
      {
        "internalType": "bool",
        "name": "_restakeRewards",
        "type": "bool"
      }
    ],
    "name": "restake",
    "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": [
      {
        "internalType": "uint256",
        "name": "_commissionRate",
        "type": "uint256"
      }
    ],
    "name": "setCommissionRate",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_defaultMaxDelegateLimit",
        "type": "uint256"
      }
    ],
    "name": "setDefaultMaxDelegateLimit",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_operatorId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_maxDelegateLimit",
        "type": "uint256"
      }
    ],
    "name": "setMaxDelegateLimit",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_name",
        "type": "string"
      }
    ],
    "name": "setOperatorName",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_rewardAddress",
        "type": "address"
      }
    ],
    "name": "setOperatorRewardAddress",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "_restake",
        "type": "bool"
      }
    ],
    "name": "setRestake",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_stFURY",
        "type": "address"
      }
    ],
    "name": "setStFURY",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_minAmountStake",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_minHeimdallFees",
        "type": "uint256"
      }
    ],
    "name": "setStakeAmountAndFees",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_stakeManager",
        "type": "address"
      }
    ],
    "name": "setStakeManager",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_validatorFactory",
        "type": "address"
      }
    ],
    "name": "setValidatorFactory",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_version",
        "type": "string"
      }
    ],
    "name": "setVersion",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_amount",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_heimdallFee",
        "type": "uint256"
      }
    ],
    "name": "stake",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_operatorId",
        "type": "uint256"
      }
    ],
    "name": "stopOperator",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes4",
        "name": "interfaceId",
        "type": "bytes4"
      }
    ],
    "name": "supportsInterface",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "togglePause",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_heimdallFee",
        "type": "uint256"
      }
    ],
    "name": "topUpForFee",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "unjail",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "unstake",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_operatorId",
        "type": "uint256"
      }
    ],
    "name": "unstake",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "unstakeClaim",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_operatorId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_newCommissionRate",
        "type": "uint256"
      }
    ],
    "name": "updateOperatorCommissionRate",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes",
        "name": "_signerPubkey",
        "type": "bytes"
      }
    ],
    "name": "updateSigner",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "version",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "withdrawRewards",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]