[
    {
        "inputs": [],
        "stateMutability": "nonpayable",
        "type": "constructor"
    },
    {
        "inputs": [],
        "name": "CallerNotManager",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "CooldownNotComplete",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "DuplicateSubmissionFromNode",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "ERChangeLimitCrossed",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "ERChangeLimitNotCrossed",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "ERPermissibleChangeOutofBounds",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "FrequencyUnchanged",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "InspectionModeActive",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "InsufficientTrustedNodes",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "InvalidERDataSource",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "InvalidMAPDIndex",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "InvalidMerkleRootIndex",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "InvalidPubkeyLength",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "InvalidReportingBlock",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "InvalidUpdate",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "NodeAlreadyTrusted",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "NodeNotTrusted",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "NotATrustedNode",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "PageNumberAlreadyReported",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "ReportingFutureBlockData",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "ReportingPreviousCycleData",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "UpdateFrequencyNotSet",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "ZeroAddress",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "ZeroFrequency",
        "type": "error"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "bool",
                "name": "isPORBasedERData",
                "type": "bool"
            }
        ],
        "name": "ERDataSourceToggled",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "bool",
                "name": "erInspectionMode",
                "type": "bool"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "time",
                "type": "uint256"
            }
        ],
        "name": "ERInspectionModeActivated",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "from",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "block",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "totalEth",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "ethxSupply",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "time",
                "type": "uint256"
            }
        ],
        "name": "ExchangeRateSubmitted",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "block",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "totalEth",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "ethxSupply",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "time",
                "type": "uint256"
            }
        ],
        "name": "ExchangeRateUpdated",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "uint8",
                "name": "version",
                "type": "uint8"
            }
        ],
        "name": "Initialized",
        "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": "block",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "reportingBlockNumber",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "bytes[]",
                "name": "pubkeys",
                "type": "bytes[]"
            }
        ],
        "name": "MissedAttestationPenaltySubmitted",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "index",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "block",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "bytes[]",
                "name": "pubkeys",
                "type": "bytes[]"
            }
        ],
        "name": "MissedAttestationPenaltyUpdated",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "address",
                "name": "account",
                "type": "address"
            }
        ],
        "name": "Paused",
        "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": "address",
                "name": "node",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "sdPriceInETH",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "reportedBlock",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "block",
                "type": "uint256"
            }
        ],
        "name": "SDPriceSubmitted",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "sdPriceInETH",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "reportedBlock",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "block",
                "type": "uint256"
            }
        ],
        "name": "SDPriceUpdated",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [],
        "name": "SafeModeDisabled",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [],
        "name": "SafeModeEnabled",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "node",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "index",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "bytes32",
                "name": "merkleRoot",
                "type": "bytes32"
            },
            {
                "indexed": false,
                "internalType": "uint8",
                "name": "poolId",
                "type": "uint8"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "block",
                "type": "uint256"
            }
        ],
        "name": "SocializingRewardsMerkleRootSubmitted",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "index",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "bytes32",
                "name": "merkleRoot",
                "type": "bytes32"
            },
            {
                "indexed": false,
                "internalType": "uint8",
                "name": "poolId",
                "type": "uint8"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "block",
                "type": "uint256"
            }
        ],
        "name": "SocializingRewardsMerkleRootUpdated",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "node",
                "type": "address"
            }
        ],
        "name": "TrustedNodeAdded",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "trustedNodeChangeCoolingPeriod",
                "type": "uint256"
            }
        ],
        "name": "TrustedNodeChangeCoolingPeriodUpdated",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "node",
                "type": "address"
            }
        ],
        "name": "TrustedNodeRemoved",
        "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": "updateFrequency",
                "type": "uint256"
            }
        ],
        "name": "UpdateFrequencyUpdated",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "erChangeLimit",
                "type": "uint256"
            }
        ],
        "name": "UpdatedERChangeLimit",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "address",
                "name": "staderConfig",
                "type": "address"
            }
        ],
        "name": "UpdatedStaderConfig",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "from",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "block",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "activeValidatorsBalance",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "exitedValidatorsBalance",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "slashedValidatorsBalance",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "activeValidatorsCount",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "exitedValidatorsCount",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "slashedValidatorsCount",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "time",
                "type": "uint256"
            }
        ],
        "name": "ValidatorStatsSubmitted",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "block",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "activeValidatorsBalance",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "exitedValidatorsBalance",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "slashedValidatorsBalance",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "activeValidatorsCount",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "exitedValidatorsCount",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "slashedValidatorsCount",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "time",
                "type": "uint256"
            }
        ],
        "name": "ValidatorStatsUpdated",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "from",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "uint8",
                "name": "poolId",
                "type": "uint8"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "block",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "bytes[]",
                "name": "sortedReadyToDepositPubkeys",
                "type": "bytes[]"
            },
            {
                "indexed": false,
                "internalType": "bytes[]",
                "name": "sortedFrontRunPubkeys",
                "type": "bytes[]"
            },
            {
                "indexed": false,
                "internalType": "bytes[]",
                "name": "sortedInvalidSignaturePubkeys",
                "type": "bytes[]"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "time",
                "type": "uint256"
            }
        ],
        "name": "ValidatorVerificationDetailSubmitted",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "uint8",
                "name": "poolId",
                "type": "uint8"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "block",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "bytes[]",
                "name": "sortedReadyToDepositPubkeys",
                "type": "bytes[]"
            },
            {
                "indexed": false,
                "internalType": "bytes[]",
                "name": "sortedFrontRunPubkeys",
                "type": "bytes[]"
            },
            {
                "indexed": false,
                "internalType": "bytes[]",
                "name": "sortedInvalidSignaturePubkeys",
                "type": "bytes[]"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "time",
                "type": "uint256"
            }
        ],
        "name": "ValidatorVerificationDetailUpdated",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "from",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "uint8",
                "name": "poolId",
                "type": "uint8"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "block",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "bytes[]",
                "name": "pubkeys",
                "type": "bytes[]"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "time",
                "type": "uint256"
            }
        ],
        "name": "WithdrawnValidatorsSubmitted",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "uint8",
                "name": "poolId",
                "type": "uint8"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "block",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "bytes[]",
                "name": "pubkeys",
                "type": "bytes[]"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "time",
                "type": "uint256"
            }
        ],
        "name": "WithdrawnValidatorsUpdated",
        "type": "event"
    },
    {
        "inputs": [],
        "name": "DEFAULT_ADMIN_ROLE",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "ER_CHANGE_MAX_BPS",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "ETHX_ER_UF",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "MAX_ER_UPDATE_FREQUENCY",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "MIN_TRUSTED_NODES",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "MISSED_ATTESTATION_PENALTY_UF",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "SD_PRICE_UF",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "VALIDATOR_STATS_UF",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "VALIDATOR_VERIFICATION_DETAIL_UF",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "WITHDRAWN_VALIDATORS_UF",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_nodeAddress",
                "type": "address"
            }
        ],
        "name": "addTrustedNode",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "closeERInspectionMode",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "disableERInspectionMode",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "disableSafeMode",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "enableSafeMode",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "erChangeLimit",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "erInspectionMode",
        "outputs": [
            {
                "internalType": "bool",
                "name": "",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "erInspectionModeStartBlock",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "exchangeRate",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "reportingBlockNumber",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "totalETHBalance",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "totalETHXSupply",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint8",
                "name": "_poolId",
                "type": "uint8"
            }
        ],
        "name": "getCurrentRewardsIndexByPoolId",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getERReportableBlock",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getExchangeRate",
        "outputs": [
            {
                "components": [
                    {
                        "internalType": "uint256",
                        "name": "reportingBlockNumber",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "totalETHBalance",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "totalETHXSupply",
                        "type": "uint256"
                    }
                ],
                "internalType": "struct ExchangeRate",
                "name": "",
                "type": "tuple"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint8",
                "name": "_poolId",
                "type": "uint8"
            }
        ],
        "name": "getMerkleRootReportableBlockByPoolId",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getMissedAttestationPenaltyReportableBlock",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "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": "getSDPriceInETH",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getSDPriceReportableBlock",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getValidatorStats",
        "outputs": [
            {
                "components": [
                    {
                        "internalType": "uint256",
                        "name": "reportingBlockNumber",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint128",
                        "name": "exitingValidatorsBalance",
                        "type": "uint128"
                    },
                    {
                        "internalType": "uint128",
                        "name": "exitedValidatorsBalance",
                        "type": "uint128"
                    },
                    {
                        "internalType": "uint128",
                        "name": "slashedValidatorsBalance",
                        "type": "uint128"
                    },
                    {
                        "internalType": "uint32",
                        "name": "exitingValidatorsCount",
                        "type": "uint32"
                    },
                    {
                        "internalType": "uint32",
                        "name": "exitedValidatorsCount",
                        "type": "uint32"
                    },
                    {
                        "internalType": "uint32",
                        "name": "slashedValidatorsCount",
                        "type": "uint32"
                    }
                ],
                "internalType": "struct ValidatorStats",
                "name": "",
                "type": "tuple"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getValidatorStatsReportableBlock",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getValidatorVerificationDetailReportableBlock",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getWithdrawnValidatorReportableBlock",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "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": "_admin",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "_staderConfig",
                "type": "address"
            }
        ],
        "name": "initialize",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "inspectionModeExchangeRate",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "reportingBlockNumber",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "totalETHBalance",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "totalETHXSupply",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "isPORFeedBasedERData",
        "outputs": [
            {
                "internalType": "bool",
                "name": "",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            }
        ],
        "name": "isTrustedNode",
        "outputs": [
            {
                "internalType": "bool",
                "name": "",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "lastReportedMAPDIndex",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "lastReportedSDPriceData",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "reportingBlockNumber",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "sdPriceInETH",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint8",
                "name": "",
                "type": "uint8"
            }
        ],
        "name": "lastReportingBlockNumberForValidatorVerificationDetailByPoolId",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint8",
                "name": "",
                "type": "uint8"
            }
        ],
        "name": "lastReportingBlockNumberForWithdrawnValidatorsByPoolId",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "lastTrustedNodeCountChangeBlock",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "name": "missedAttestationPenalty",
        "outputs": [
            {
                "internalType": "uint16",
                "name": "",
                "type": "uint16"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "pause",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "paused",
        "outputs": [
            {
                "internalType": "bool",
                "name": "",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_nodeAddress",
                "type": "address"
            }
        ],
        "name": "removeTrustedNode",
        "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": "bytes32",
                "name": "role",
                "type": "bytes32"
            },
            {
                "internalType": "address",
                "name": "account",
                "type": "address"
            }
        ],
        "name": "revokeRole",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "safeMode",
        "outputs": [
            {
                "internalType": "bool",
                "name": "",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "_updateFrequency",
                "type": "uint256"
            }
        ],
        "name": "setERUpdateFrequency",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "_updateFrequency",
                "type": "uint256"
            }
        ],
        "name": "setMissedAttestationPenaltyUpdateFrequency",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "_updateFrequency",
                "type": "uint256"
            }
        ],
        "name": "setSDPriceUpdateFrequency",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "_updateFrequency",
                "type": "uint256"
            }
        ],
        "name": "setValidatorStatsUpdateFrequency",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "_updateFrequency",
                "type": "uint256"
            }
        ],
        "name": "setValidatorVerificationDetailUpdateFrequency",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "_updateFrequency",
                "type": "uint256"
            }
        ],
        "name": "setWithdrawnValidatorsUpdateFrequency",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "staderConfig",
        "outputs": [
            {
                "internalType": "contract IStaderConfig",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "components": [
                    {
                        "internalType": "uint256",
                        "name": "reportingBlockNumber",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "totalETHBalance",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "totalETHXSupply",
                        "type": "uint256"
                    }
                ],
                "internalType": "struct ExchangeRate",
                "name": "_exchangeRate",
                "type": "tuple"
            }
        ],
        "name": "submitExchangeRateData",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "components": [
                    {
                        "internalType": "uint256",
                        "name": "reportingBlockNumber",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "index",
                        "type": "uint256"
                    },
                    {
                        "internalType": "bytes[]",
                        "name": "sortedPubkeys",
                        "type": "bytes[]"
                    }
                ],
                "internalType": "struct MissedAttestationPenaltyData",
                "name": "_mapd",
                "type": "tuple"
            }
        ],
        "name": "submitMissedAttestationPenalties",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "components": [
                    {
                        "internalType": "uint256",
                        "name": "reportingBlockNumber",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "sdPriceInETH",
                        "type": "uint256"
                    }
                ],
                "internalType": "struct SDPriceData",
                "name": "_sdPriceData",
                "type": "tuple"
            }
        ],
        "name": "submitSDPrice",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "components": [
                    {
                        "internalType": "uint256",
                        "name": "reportingBlockNumber",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "index",
                        "type": "uint256"
                    },
                    {
                        "internalType": "bytes32",
                        "name": "merkleRoot",
                        "type": "bytes32"
                    },
                    {
                        "internalType": "uint8",
                        "name": "poolId",
                        "type": "uint8"
                    },
                    {
                        "internalType": "uint256",
                        "name": "operatorETHRewards",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "userETHRewards",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "protocolETHRewards",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "operatorSDRewards",
                        "type": "uint256"
                    }
                ],
                "internalType": "struct RewardsData",
                "name": "_rewardsData",
                "type": "tuple"
            }
        ],
        "name": "submitSocializingRewardsMerkleRoot",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "components": [
                    {
                        "internalType": "uint256",
                        "name": "reportingBlockNumber",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint128",
                        "name": "exitingValidatorsBalance",
                        "type": "uint128"
                    },
                    {
                        "internalType": "uint128",
                        "name": "exitedValidatorsBalance",
                        "type": "uint128"
                    },
                    {
                        "internalType": "uint128",
                        "name": "slashedValidatorsBalance",
                        "type": "uint128"
                    },
                    {
                        "internalType": "uint32",
                        "name": "exitingValidatorsCount",
                        "type": "uint32"
                    },
                    {
                        "internalType": "uint32",
                        "name": "exitedValidatorsCount",
                        "type": "uint32"
                    },
                    {
                        "internalType": "uint32",
                        "name": "slashedValidatorsCount",
                        "type": "uint32"
                    }
                ],
                "internalType": "struct ValidatorStats",
                "name": "_validatorStats",
                "type": "tuple"
            }
        ],
        "name": "submitValidatorStats",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "components": [
                    {
                        "internalType": "uint8",
                        "name": "poolId",
                        "type": "uint8"
                    },
                    {
                        "internalType": "uint256",
                        "name": "reportingBlockNumber",
                        "type": "uint256"
                    },
                    {
                        "internalType": "bytes[]",
                        "name": "sortedReadyToDepositPubkeys",
                        "type": "bytes[]"
                    },
                    {
                        "internalType": "bytes[]",
                        "name": "sortedFrontRunPubkeys",
                        "type": "bytes[]"
                    },
                    {
                        "internalType": "bytes[]",
                        "name": "sortedInvalidSignaturePubkeys",
                        "type": "bytes[]"
                    }
                ],
                "internalType": "struct ValidatorVerificationDetail",
                "name": "_validatorVerificationDetail",
                "type": "tuple"
            }
        ],
        "name": "submitValidatorVerificationDetail",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "components": [
                    {
                        "internalType": "uint8",
                        "name": "poolId",
                        "type": "uint8"
                    },
                    {
                        "internalType": "uint256",
                        "name": "reportingBlockNumber",
                        "type": "uint256"
                    },
                    {
                        "internalType": "bytes[]",
                        "name": "sortedPubkeys",
                        "type": "bytes[]"
                    }
                ],
                "internalType": "struct WithdrawnValidators",
                "name": "_withdrawnValidators",
                "type": "tuple"
            }
        ],
        "name": "submitWithdrawnValidators",
        "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": "togglePORFeedBasedERData",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "trustedNodeChangeCoolingPeriod",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "trustedNodesCount",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "unpause",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "_erChangeLimit",
                "type": "uint256"
            }
        ],
        "name": "updateERChangeLimit",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "updateERFromPORFeed",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "name": "updateFrequencyMap",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "_staderConfig",
                "type": "address"
            }
        ],
        "name": "updateStaderConfig",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "_trustedNodeChangeCoolingPeriod",
                "type": "uint256"
            }
        ],
        "name": "updateTrustedNodeChangeCoolingPeriod",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "validatorStats",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "reportingBlockNumber",
                "type": "uint256"
            },
            {
                "internalType": "uint128",
                "name": "exitingValidatorsBalance",
                "type": "uint128"
            },
            {
                "internalType": "uint128",
                "name": "exitedValidatorsBalance",
                "type": "uint128"
            },
            {
                "internalType": "uint128",
                "name": "slashedValidatorsBalance",
                "type": "uint128"
            },
            {
                "internalType": "uint32",
                "name": "exitingValidatorsCount",
                "type": "uint32"
            },
            {
                "internalType": "uint32",
                "name": "exitedValidatorsCount",
                "type": "uint32"
            },
            {
                "internalType": "uint32",
                "name": "slashedValidatorsCount",
                "type": "uint32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    }
]
