Module Staking

Source
Expand description

Generated by the following Solidity interface…

library IDiamond {
    type FacetCutAction is uint8;
    struct FacetCut {
        address facetAddress;
        FacetCutAction action;
        bytes4[] functionSelectors;
    }
}

library IDiamondLoupe {
    struct Facet {
        address facetAddress;
        bytes4[] functionSelectors;
    }
}

library LibStakingStorage {
    type States is uint8;
    struct AddressMapping {
        address nodeAddress;
        address stakerAddress;
    }
    struct ComplaintConfig {
        uint256 tolerance;
        uint256 intervalSecs;
        uint256 kickPenaltyPercent;
    }
    struct Config {
        uint256 tokenRewardPerTokenPerEpoch;
        uint256 DEPRECATED_complaintTolerance;
        uint256 DEPRECATED_complaintIntervalSecs;
        uint256[] keyTypes;
        uint256 minimumValidatorCount;
        uint256 maxConcurrentRequests;
        uint256 maxTripleCount;
        uint256 minTripleCount;
        uint256 peerCheckingIntervalSecs;
        uint256 maxTripleConcurrency;
        bool rpcHealthcheckEnabled;
        LitActionConfig litActionConfig;
        bool heliosEnabled;
    }
    struct Epoch {
        uint256 epochLength;
        uint256 number;
        uint256 endTime;
        uint256 retries;
        uint256 timeout;
    }
    struct LitActionConfig {
        uint256 timeoutMs;
        uint256 memoryLimitMb;
        uint256 maxCodeLength;
        uint256 maxResponseLength;
        uint256 maxFetchCount;
        uint256 maxSignCount;
        uint256 maxContractCallCount;
        uint256 maxBroadcastAndCollectCount;
        uint256 maxCallDepth;
        uint256 maxRetries;
    }
    struct Validator {
        uint32 ip;
        uint128 ipv6;
        uint32 port;
        address nodeAddress;
        uint256 reward;
        uint256 senderPubKey;
        uint256 receiverPubKey;
    }
    struct Version {
        uint256 major;
        uint256 minor;
        uint256 patch;
    }
}

interface Staking {
    error ActiveValidatorsCannotLeave();
    error CallerNotOwner();
    error CallerNotOwnerOrDevopsAdmin();
    error CannotAddFunctionToDiamondThatAlreadyExists(bytes4 _selector);
    error CannotAddSelectorsToZeroAddress(bytes4[] _selectors);
    error CannotKickBelowCurrentValidatorThreshold();
    error CannotRejoinUntilNextEpochBecauseKicked(address stakingAddress);
    error CannotRemoveFunctionThatDoesNotExist(bytes4 _selector);
    error CannotRemoveImmutableFunction(bytes4 _selector);
    error CannotReplaceFunctionThatDoesNotExists(bytes4 _selector);
    error CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet(bytes4 _selector);
    error CannotReplaceFunctionsFromFacetWithZeroAddress(bytes4[] _selectors);
    error CannotReplaceImmutableFunction(bytes4 _selector);
    error CannotReuseCommsKeys(uint256 senderPubKey, uint256 receiverPubKey);
    error CannotStakeZero();
    error CannotVoteTwice(address stakerAddress);
    error CannotWithdrawZero();
    error CouldNotMapNodeAddressToStakerAddress(address nodeAddress);
    error IncorrectFacetCutAction(uint8 _action);
    error InitializationFunctionReverted(address _initializationContractAddress, bytes _calldata);
    error MustBeInActiveOrUnlockedOrPausedState(LibStakingStorage.States state);
    error MustBeInActiveOrUnlockedState(LibStakingStorage.States state);
    error MustBeInNextValidatorSetLockedOrReadyForNextEpochOrRestoreState(LibStakingStorage.States state);
    error MustBeInNextValidatorSetLockedOrReadyForNextEpochState(LibStakingStorage.States state);
    error MustBeInNextValidatorSetLockedState(LibStakingStorage.States state);
    error MustBeInReadyForNextEpochState(LibStakingStorage.States state);
    error MustBeValidatorInNextEpochToKick(address stakerAddress);
    error NoBytecodeAtAddress(address _contractAddress, string _message);
    error NoSelectorsProvidedForFacetForCut(address _facetAddress);
    error NotContractOwner(address _user, address _contractOwner);
    error NotEnoughTimeElapsedForTimeoutSinceLastEpoch(uint256 currentTimestamp, uint256 epochEndTime, uint256 timeout);
    error NotEnoughTimeElapsedSinceLastEpoch(uint256 currentTimestamp, uint256 epochEndTime);
    error NotEnoughValidatorsInNextEpoch(uint256 validatorCount, uint256 minimumValidatorCount);
    error NotEnoughValidatorsReadyForNextEpoch(uint256 currentReadyValidatorCount, uint256 nextReadyValidatorCount, uint256 minimumValidatorCountToBeReady);
    error RemoveFacetAddressMustBeZeroAddress(address _facetAddress);
    error SignaledReadyForWrongEpochNumber(uint256 currentEpochNumber, uint256 receivedEpochNumber);
    error StakerNotPermitted(address stakerAddress);
    error TryingToWithdrawMoreThanStaked(uint256 yourBalance, uint256 requestedWithdrawlAmount);
    error ValidatorIsNotInNextEpoch(address validator, address[] validatorsInNextEpoch);

    event ClearOfflinePhaseData(uint256 dataType);
    event ComplaintConfigSet(uint256 reason, LibStakingStorage.ComplaintConfig config);
    event ConfigSet(uint256 newTokenRewardPerTokenPerEpoch, uint256[] newKeyTypes, uint256 newMinimumValidatorCount, uint256 newMaxConcurrentRequests, uint256 newMaxTripleCount, uint256 newMinTripleCount, uint256 newPeerCheckingIntervalSecs, uint256 newMaxTripleConcurrency, bool newRpcHealthcheckEnabled, LibStakingStorage.LitActionConfig newLitActionConfig, bool newHeliosEnabled);
    event CountOfflinePhaseData(uint256 dataType);
    event DevopsAdminSet(address newDevopsAdmin);
    event DiamondCut(IDiamond.FacetCut[] _diamondCut, address _init, bytes _calldata);
    event EpochEndTimeSet(uint256 newEpochEndTime);
    event EpochLengthSet(uint256 newEpochLength);
    event EpochTimeoutSet(uint256 newEpochTimeout);
    event KickPenaltyPercentSet(uint256 reason, uint256 newKickPenaltyPercent);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event ReadyForNextEpoch(address indexed staker, uint256 epochNumber);
    event Recovered(address token, uint256 amount);
    event RequestToJoin(address indexed staker);
    event RequestToLeave(address indexed staker);
    event ResolverContractAddressSet(address newResolverContractAddress);
    event RewardsDurationUpdated(uint256 newDuration);
    event StakingTokenSet(address newStakingTokenAddress);
    event StateChanged(LibStakingStorage.States newState);
    event ValidatorKickedFromNextEpoch(address indexed staker, uint256 amountBurned);
    event ValidatorRejoinedNextEpoch(address staker);
    event VersionRequirementsUpdated(uint256 index, LibStakingStorage.Version version);
    event VotedToKickValidatorInNextEpoch(address indexed reporter, address indexed validatorStakerAddress, uint256 indexed reason, bytes data);

    function adminKickValidatorInNextEpoch(address validatorStakerAddress) external;
    function adminRejoinValidator(address staker) external;
    function adminResetEpoch() external;
    function adminSlashValidator(address validatorStakerAddress, uint256 amountToPenalize) external;
    function adminStakeForValidator(address staker, uint256 amount) external;
    function advanceEpoch() external;
    function checkVersion(LibStakingStorage.Version memory version) external view returns (bool);
    function complaintConfig(uint256 reason) external view returns (LibStakingStorage.ComplaintConfig memory);
    function config() external view returns (LibStakingStorage.Config memory);
    function contractResolver() external view returns (address);
    function countOfCurrentValidatorsReadyForNextEpoch() external view returns (uint256);
    function countOfNextValidatorsReadyForNextEpoch() external view returns (uint256);
    function currentValidatorCountForConsensus() external view returns (uint256);
    function diamondCut(IDiamond.FacetCut[] memory _diamondCut, address _init, bytes memory _calldata) external;
    function emitClearOfflinePhaseData(uint256 dataType) external;
    function emitCountOfflinePhaseData(uint256 dataType) external;
    function epoch() external view returns (LibStakingStorage.Epoch memory);
    function exit() external;
    function facetAddress(bytes4 _functionSelector) external view returns (address facetAddress_);
    function facetAddresses() external view returns (address[] memory facetAddresses_);
    function facetFunctionSelectors(address _facet) external view returns (bytes4[] memory _facetFunctionSelectors);
    function facets() external view returns (IDiamondLoupe.Facet[] memory facets_);
    function getActiveUnkickedValidatorStructs() external view returns (LibStakingStorage.Validator[] memory);
    function getActiveUnkickedValidatorStructsAndCounts() external view returns (LibStakingStorage.Epoch memory, uint256, LibStakingStorage.Validator[] memory);
    function getActiveUnkickedValidators() external view returns (address[] memory);
    function getKeyTypes() external view returns (uint256[] memory);
    function getKickedValidators() external view returns (address[] memory);
    function getMaxVersion() external view returns (LibStakingStorage.Version memory);
    function getMaxVersionString() external view returns (string memory);
    function getMinVersion() external view returns (LibStakingStorage.Version memory);
    function getMinVersionString() external view returns (string memory);
    function getNodeStakerAddressMappings(address[] memory addresses) external view returns (LibStakingStorage.AddressMapping[] memory);
    function getReward() external;
    function getStakingBalancesAddress() external view returns (address);
    function getTokenAddress() external view returns (address);
    function getValidatorsInCurrentEpoch() external view returns (address[] memory);
    function getValidatorsInCurrentEpochLength() external view returns (uint256);
    function getValidatorsInNextEpoch() external view returns (address[] memory);
    function getValidatorsStructs(address[] memory addresses) external view returns (LibStakingStorage.Validator[] memory);
    function getValidatorsStructsInCurrentEpoch() external view returns (LibStakingStorage.Validator[] memory);
    function getValidatorsStructsInNextEpoch() external view returns (LibStakingStorage.Validator[] memory);
    function getVotingStatusToKickValidator(uint256 epochNumber, address validatorStakerAddress, address voterStakerAddress) external view returns (uint256, bool);
    function isActiveValidator(address account) external view returns (bool);
    function isActiveValidatorByNodeAddress(address account) external view returns (bool);
    function isReadyForNextEpoch() external view returns (bool);
    function kickPenaltyPercentByReason(uint256 reason) external view returns (uint256);
    function kickValidatorInNextEpoch(address validatorStakerAddress, uint256 reason, bytes memory data) external;
    function lockValidatorsForNextEpoch() external;
    function nextValidatorCountForConsensus() external view returns (uint256);
    function nodeAddressToStakerAddress(address nodeAddress) external view returns (address);
    function owner() external view returns (address owner_);
    function readyForNextEpoch(address stakerAddress) external view returns (bool);
    function requestToJoin(uint32 ip, uint128 ipv6, uint32 port, address nodeAddress, uint256 senderPubKey, uint256 receiverPubKey) external;
    function requestToLeave() external;
    function requestToLeaveAsNode() external;
    function setComplaintConfig(uint256 reason, LibStakingStorage.ComplaintConfig memory config) external;
    function setConfig(LibStakingStorage.Config memory newConfig) external;
    function setContractResolver(address newResolverAddress) external;
    function setDevopsAdmin(address newDevopsAdmin) external;
    function setEpochEndTime(uint256 newEpochEndTime) external;
    function setEpochLength(uint256 newEpochLength) external;
    function setEpochState(LibStakingStorage.States newState) external;
    function setEpochTimeout(uint256 newEpochTimeout) external;
    function setIpPortNodeAddressAndCommunicationPubKeys(uint32 ip, uint128 ipv6, uint32 port, address nodeAddress, uint256 senderPubKey, uint256 receiverPubKey) external;
    function setKickPenaltyPercent(uint256 reason, uint256 newKickPenaltyPercent) external;
    function setMaxVersion(LibStakingStorage.Version memory version) external;
    function setMinVersion(LibStakingStorage.Version memory version) external;
    function shouldKickValidator(address stakerAddress) external view returns (bool);
    function signalReadyForNextEpoch(uint256 epochNumber) external;
    function stake(uint256 amount) external;
    function stakeAndJoin(uint256 amount, uint32 ip, uint128 ipv6, uint32 port, address nodeAddress, uint256 senderPubKey, uint256 receiverPubKey) external;
    function state() external view returns (LibStakingStorage.States);
    function supportsInterface(bytes4 _interfaceId) external view returns (bool);
    function transferOwnership(address _newOwner) external;
    function validators(address stakerAddress) external view returns (LibStakingStorage.Validator memory);
    function withdraw(uint256 amount) external;
}

…which was generated by the following JSON ABI:

[
  {
    "type": "function",
    "name": "adminKickValidatorInNextEpoch",
    "inputs": [
      {
        "name": "validatorStakerAddress",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "adminRejoinValidator",
    "inputs": [
      {
        "name": "staker",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "adminResetEpoch",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "adminSlashValidator",
    "inputs": [
      {
        "name": "validatorStakerAddress",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "amountToPenalize",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "adminStakeForValidator",
    "inputs": [
      {
        "name": "staker",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "amount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "advanceEpoch",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "checkVersion",
    "inputs": [
      {
        "name": "version",
        "type": "tuple",
        "internalType": "struct LibStakingStorage.Version",
        "components": [
          {
            "name": "major",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "minor",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "patch",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "complaintConfig",
    "inputs": [
      {
        "name": "reason",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "tuple",
        "internalType": "struct LibStakingStorage.ComplaintConfig",
        "components": [
          {
            "name": "tolerance",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "intervalSecs",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "kickPenaltyPercent",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "config",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "tuple",
        "internalType": "struct LibStakingStorage.Config",
        "components": [
          {
            "name": "tokenRewardPerTokenPerEpoch",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "DEPRECATED_complaintTolerance",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "DEPRECATED_complaintIntervalSecs",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "keyTypes",
            "type": "uint256[]",
            "internalType": "uint256[]"
          },
          {
            "name": "minimumValidatorCount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "maxConcurrentRequests",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "maxTripleCount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "minTripleCount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "peerCheckingIntervalSecs",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "maxTripleConcurrency",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "rpcHealthcheckEnabled",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "litActionConfig",
            "type": "tuple",
            "internalType": "struct LibStakingStorage.LitActionConfig",
            "components": [
              {
                "name": "timeoutMs",
                "type": "uint256",
                "internalType": "uint256"
              },
              {
                "name": "memoryLimitMb",
                "type": "uint256",
                "internalType": "uint256"
              },
              {
                "name": "maxCodeLength",
                "type": "uint256",
                "internalType": "uint256"
              },
              {
                "name": "maxResponseLength",
                "type": "uint256",
                "internalType": "uint256"
              },
              {
                "name": "maxFetchCount",
                "type": "uint256",
                "internalType": "uint256"
              },
              {
                "name": "maxSignCount",
                "type": "uint256",
                "internalType": "uint256"
              },
              {
                "name": "maxContractCallCount",
                "type": "uint256",
                "internalType": "uint256"
              },
              {
                "name": "maxBroadcastAndCollectCount",
                "type": "uint256",
                "internalType": "uint256"
              },
              {
                "name": "maxCallDepth",
                "type": "uint256",
                "internalType": "uint256"
              },
              {
                "name": "maxRetries",
                "type": "uint256",
                "internalType": "uint256"
              }
            ]
          },
          {
            "name": "heliosEnabled",
            "type": "bool",
            "internalType": "bool"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "contractResolver",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "countOfCurrentValidatorsReadyForNextEpoch",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "countOfNextValidatorsReadyForNextEpoch",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "currentValidatorCountForConsensus",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "diamondCut",
    "inputs": [
      {
        "name": "_diamondCut",
        "type": "tuple[]",
        "internalType": "struct IDiamond.FacetCut[]",
        "components": [
          {
            "name": "facetAddress",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "action",
            "type": "uint8",
            "internalType": "enum IDiamond.FacetCutAction"
          },
          {
            "name": "functionSelectors",
            "type": "bytes4[]",
            "internalType": "bytes4[]"
          }
        ]
      },
      {
        "name": "_init",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "_calldata",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "emitClearOfflinePhaseData",
    "inputs": [
      {
        "name": "dataType",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "emitCountOfflinePhaseData",
    "inputs": [
      {
        "name": "dataType",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "epoch",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "tuple",
        "internalType": "struct LibStakingStorage.Epoch",
        "components": [
          {
            "name": "epochLength",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "number",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "endTime",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "retries",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "timeout",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "exit",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "facetAddress",
    "inputs": [
      {
        "name": "_functionSelector",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ],
    "outputs": [
      {
        "name": "facetAddress_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "facetAddresses",
    "inputs": [],
    "outputs": [
      {
        "name": "facetAddresses_",
        "type": "address[]",
        "internalType": "address[]"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "facetFunctionSelectors",
    "inputs": [
      {
        "name": "_facet",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "_facetFunctionSelectors",
        "type": "bytes4[]",
        "internalType": "bytes4[]"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "facets",
    "inputs": [],
    "outputs": [
      {
        "name": "facets_",
        "type": "tuple[]",
        "internalType": "struct IDiamondLoupe.Facet[]",
        "components": [
          {
            "name": "facetAddress",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "functionSelectors",
            "type": "bytes4[]",
            "internalType": "bytes4[]"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getActiveUnkickedValidatorStructs",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "tuple[]",
        "internalType": "struct LibStakingStorage.Validator[]",
        "components": [
          {
            "name": "ip",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "ipv6",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "port",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "nodeAddress",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "reward",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "senderPubKey",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiverPubKey",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getActiveUnkickedValidatorStructsAndCounts",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "tuple",
        "internalType": "struct LibStakingStorage.Epoch",
        "components": [
          {
            "name": "epochLength",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "number",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "endTime",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "retries",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "timeout",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      },
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "",
        "type": "tuple[]",
        "internalType": "struct LibStakingStorage.Validator[]",
        "components": [
          {
            "name": "ip",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "ipv6",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "port",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "nodeAddress",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "reward",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "senderPubKey",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiverPubKey",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getActiveUnkickedValidators",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address[]",
        "internalType": "address[]"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getKeyTypes",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256[]",
        "internalType": "uint256[]"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getKickedValidators",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address[]",
        "internalType": "address[]"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getMaxVersion",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "tuple",
        "internalType": "struct LibStakingStorage.Version",
        "components": [
          {
            "name": "major",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "minor",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "patch",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getMaxVersionString",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "string",
        "internalType": "string"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getMinVersion",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "tuple",
        "internalType": "struct LibStakingStorage.Version",
        "components": [
          {
            "name": "major",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "minor",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "patch",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getMinVersionString",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "string",
        "internalType": "string"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getNodeStakerAddressMappings",
    "inputs": [
      {
        "name": "addresses",
        "type": "address[]",
        "internalType": "address[]"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "tuple[]",
        "internalType": "struct LibStakingStorage.AddressMapping[]",
        "components": [
          {
            "name": "nodeAddress",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "stakerAddress",
            "type": "address",
            "internalType": "address"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getReward",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "getStakingBalancesAddress",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getTokenAddress",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getValidatorsInCurrentEpoch",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address[]",
        "internalType": "address[]"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getValidatorsInCurrentEpochLength",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getValidatorsInNextEpoch",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address[]",
        "internalType": "address[]"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getValidatorsStructs",
    "inputs": [
      {
        "name": "addresses",
        "type": "address[]",
        "internalType": "address[]"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "tuple[]",
        "internalType": "struct LibStakingStorage.Validator[]",
        "components": [
          {
            "name": "ip",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "ipv6",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "port",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "nodeAddress",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "reward",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "senderPubKey",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiverPubKey",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getValidatorsStructsInCurrentEpoch",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "tuple[]",
        "internalType": "struct LibStakingStorage.Validator[]",
        "components": [
          {
            "name": "ip",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "ipv6",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "port",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "nodeAddress",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "reward",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "senderPubKey",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiverPubKey",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getValidatorsStructsInNextEpoch",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "tuple[]",
        "internalType": "struct LibStakingStorage.Validator[]",
        "components": [
          {
            "name": "ip",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "ipv6",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "port",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "nodeAddress",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "reward",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "senderPubKey",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiverPubKey",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getVotingStatusToKickValidator",
    "inputs": [
      {
        "name": "epochNumber",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "validatorStakerAddress",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "voterStakerAddress",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "isActiveValidator",
    "inputs": [
      {
        "name": "account",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "isActiveValidatorByNodeAddress",
    "inputs": [
      {
        "name": "account",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "isReadyForNextEpoch",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "kickPenaltyPercentByReason",
    "inputs": [
      {
        "name": "reason",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "kickValidatorInNextEpoch",
    "inputs": [
      {
        "name": "validatorStakerAddress",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "reason",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "data",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "lockValidatorsForNextEpoch",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "nextValidatorCountForConsensus",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "nodeAddressToStakerAddress",
    "inputs": [
      {
        "name": "nodeAddress",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "owner",
    "inputs": [],
    "outputs": [
      {
        "name": "owner_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "readyForNextEpoch",
    "inputs": [
      {
        "name": "stakerAddress",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "requestToJoin",
    "inputs": [
      {
        "name": "ip",
        "type": "uint32",
        "internalType": "uint32"
      },
      {
        "name": "ipv6",
        "type": "uint128",
        "internalType": "uint128"
      },
      {
        "name": "port",
        "type": "uint32",
        "internalType": "uint32"
      },
      {
        "name": "nodeAddress",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "senderPubKey",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "receiverPubKey",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "requestToLeave",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "requestToLeaveAsNode",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setComplaintConfig",
    "inputs": [
      {
        "name": "reason",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "config",
        "type": "tuple",
        "internalType": "struct LibStakingStorage.ComplaintConfig",
        "components": [
          {
            "name": "tolerance",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "intervalSecs",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "kickPenaltyPercent",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setConfig",
    "inputs": [
      {
        "name": "newConfig",
        "type": "tuple",
        "internalType": "struct LibStakingStorage.Config",
        "components": [
          {
            "name": "tokenRewardPerTokenPerEpoch",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "DEPRECATED_complaintTolerance",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "DEPRECATED_complaintIntervalSecs",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "keyTypes",
            "type": "uint256[]",
            "internalType": "uint256[]"
          },
          {
            "name": "minimumValidatorCount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "maxConcurrentRequests",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "maxTripleCount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "minTripleCount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "peerCheckingIntervalSecs",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "maxTripleConcurrency",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "rpcHealthcheckEnabled",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "litActionConfig",
            "type": "tuple",
            "internalType": "struct LibStakingStorage.LitActionConfig",
            "components": [
              {
                "name": "timeoutMs",
                "type": "uint256",
                "internalType": "uint256"
              },
              {
                "name": "memoryLimitMb",
                "type": "uint256",
                "internalType": "uint256"
              },
              {
                "name": "maxCodeLength",
                "type": "uint256",
                "internalType": "uint256"
              },
              {
                "name": "maxResponseLength",
                "type": "uint256",
                "internalType": "uint256"
              },
              {
                "name": "maxFetchCount",
                "type": "uint256",
                "internalType": "uint256"
              },
              {
                "name": "maxSignCount",
                "type": "uint256",
                "internalType": "uint256"
              },
              {
                "name": "maxContractCallCount",
                "type": "uint256",
                "internalType": "uint256"
              },
              {
                "name": "maxBroadcastAndCollectCount",
                "type": "uint256",
                "internalType": "uint256"
              },
              {
                "name": "maxCallDepth",
                "type": "uint256",
                "internalType": "uint256"
              },
              {
                "name": "maxRetries",
                "type": "uint256",
                "internalType": "uint256"
              }
            ]
          },
          {
            "name": "heliosEnabled",
            "type": "bool",
            "internalType": "bool"
          }
        ]
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setContractResolver",
    "inputs": [
      {
        "name": "newResolverAddress",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setDevopsAdmin",
    "inputs": [
      {
        "name": "newDevopsAdmin",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setEpochEndTime",
    "inputs": [
      {
        "name": "newEpochEndTime",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setEpochLength",
    "inputs": [
      {
        "name": "newEpochLength",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setEpochState",
    "inputs": [
      {
        "name": "newState",
        "type": "uint8",
        "internalType": "enum LibStakingStorage.States"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setEpochTimeout",
    "inputs": [
      {
        "name": "newEpochTimeout",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setIpPortNodeAddressAndCommunicationPubKeys",
    "inputs": [
      {
        "name": "ip",
        "type": "uint32",
        "internalType": "uint32"
      },
      {
        "name": "ipv6",
        "type": "uint128",
        "internalType": "uint128"
      },
      {
        "name": "port",
        "type": "uint32",
        "internalType": "uint32"
      },
      {
        "name": "nodeAddress",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "senderPubKey",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "receiverPubKey",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setKickPenaltyPercent",
    "inputs": [
      {
        "name": "reason",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "newKickPenaltyPercent",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setMaxVersion",
    "inputs": [
      {
        "name": "version",
        "type": "tuple",
        "internalType": "struct LibStakingStorage.Version",
        "components": [
          {
            "name": "major",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "minor",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "patch",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setMinVersion",
    "inputs": [
      {
        "name": "version",
        "type": "tuple",
        "internalType": "struct LibStakingStorage.Version",
        "components": [
          {
            "name": "major",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "minor",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "patch",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "shouldKickValidator",
    "inputs": [
      {
        "name": "stakerAddress",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "signalReadyForNextEpoch",
    "inputs": [
      {
        "name": "epochNumber",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "stake",
    "inputs": [
      {
        "name": "amount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "stakeAndJoin",
    "inputs": [
      {
        "name": "amount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "ip",
        "type": "uint32",
        "internalType": "uint32"
      },
      {
        "name": "ipv6",
        "type": "uint128",
        "internalType": "uint128"
      },
      {
        "name": "port",
        "type": "uint32",
        "internalType": "uint32"
      },
      {
        "name": "nodeAddress",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "senderPubKey",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "receiverPubKey",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "state",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint8",
        "internalType": "enum LibStakingStorage.States"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "supportsInterface",
    "inputs": [
      {
        "name": "_interfaceId",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "transferOwnership",
    "inputs": [
      {
        "name": "_newOwner",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "validators",
    "inputs": [
      {
        "name": "stakerAddress",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "tuple",
        "internalType": "struct LibStakingStorage.Validator",
        "components": [
          {
            "name": "ip",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "ipv6",
            "type": "uint128",
            "internalType": "uint128"
          },
          {
            "name": "port",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "nodeAddress",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "reward",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "senderPubKey",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "receiverPubKey",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "withdraw",
    "inputs": [
      {
        "name": "amount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "event",
    "name": "ClearOfflinePhaseData",
    "inputs": [
      {
        "name": "dataType",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "ComplaintConfigSet",
    "inputs": [
      {
        "name": "reason",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "config",
        "type": "tuple",
        "indexed": false,
        "internalType": "struct LibStakingStorage.ComplaintConfig",
        "components": [
          {
            "name": "tolerance",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "intervalSecs",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "kickPenaltyPercent",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "ConfigSet",
    "inputs": [
      {
        "name": "newTokenRewardPerTokenPerEpoch",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "newKeyTypes",
        "type": "uint256[]",
        "indexed": false,
        "internalType": "uint256[]"
      },
      {
        "name": "newMinimumValidatorCount",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "newMaxConcurrentRequests",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "newMaxTripleCount",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "newMinTripleCount",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "newPeerCheckingIntervalSecs",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "newMaxTripleConcurrency",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "newRpcHealthcheckEnabled",
        "type": "bool",
        "indexed": false,
        "internalType": "bool"
      },
      {
        "name": "newLitActionConfig",
        "type": "tuple",
        "indexed": false,
        "internalType": "struct LibStakingStorage.LitActionConfig",
        "components": [
          {
            "name": "timeoutMs",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "memoryLimitMb",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "maxCodeLength",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "maxResponseLength",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "maxFetchCount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "maxSignCount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "maxContractCallCount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "maxBroadcastAndCollectCount",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "maxCallDepth",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "maxRetries",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      },
      {
        "name": "newHeliosEnabled",
        "type": "bool",
        "indexed": false,
        "internalType": "bool"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "CountOfflinePhaseData",
    "inputs": [
      {
        "name": "dataType",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "DevopsAdminSet",
    "inputs": [
      {
        "name": "newDevopsAdmin",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "DiamondCut",
    "inputs": [
      {
        "name": "_diamondCut",
        "type": "tuple[]",
        "indexed": false,
        "internalType": "struct IDiamond.FacetCut[]",
        "components": [
          {
            "name": "facetAddress",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "action",
            "type": "uint8",
            "internalType": "enum IDiamond.FacetCutAction"
          },
          {
            "name": "functionSelectors",
            "type": "bytes4[]",
            "internalType": "bytes4[]"
          }
        ]
      },
      {
        "name": "_init",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      },
      {
        "name": "_calldata",
        "type": "bytes",
        "indexed": false,
        "internalType": "bytes"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "EpochEndTimeSet",
    "inputs": [
      {
        "name": "newEpochEndTime",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "EpochLengthSet",
    "inputs": [
      {
        "name": "newEpochLength",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "EpochTimeoutSet",
    "inputs": [
      {
        "name": "newEpochTimeout",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "KickPenaltyPercentSet",
    "inputs": [
      {
        "name": "reason",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "newKickPenaltyPercent",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "OwnershipTransferred",
    "inputs": [
      {
        "name": "previousOwner",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "newOwner",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "ReadyForNextEpoch",
    "inputs": [
      {
        "name": "staker",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "epochNumber",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "Recovered",
    "inputs": [
      {
        "name": "token",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      },
      {
        "name": "amount",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "RequestToJoin",
    "inputs": [
      {
        "name": "staker",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "RequestToLeave",
    "inputs": [
      {
        "name": "staker",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "ResolverContractAddressSet",
    "inputs": [
      {
        "name": "newResolverContractAddress",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "RewardsDurationUpdated",
    "inputs": [
      {
        "name": "newDuration",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "StakingTokenSet",
    "inputs": [
      {
        "name": "newStakingTokenAddress",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "StateChanged",
    "inputs": [
      {
        "name": "newState",
        "type": "uint8",
        "indexed": false,
        "internalType": "enum LibStakingStorage.States"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "ValidatorKickedFromNextEpoch",
    "inputs": [
      {
        "name": "staker",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "amountBurned",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "ValidatorRejoinedNextEpoch",
    "inputs": [
      {
        "name": "staker",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "VersionRequirementsUpdated",
    "inputs": [
      {
        "name": "index",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "version",
        "type": "tuple",
        "indexed": false,
        "internalType": "struct LibStakingStorage.Version",
        "components": [
          {
            "name": "major",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "minor",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "patch",
            "type": "uint256",
            "internalType": "uint256"
          }
        ]
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "VotedToKickValidatorInNextEpoch",
    "inputs": [
      {
        "name": "reporter",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "validatorStakerAddress",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "reason",
        "type": "uint256",
        "indexed": true,
        "internalType": "uint256"
      },
      {
        "name": "data",
        "type": "bytes",
        "indexed": false,
        "internalType": "bytes"
      }
    ],
    "anonymous": false
  },
  {
    "type": "error",
    "name": "ActiveValidatorsCannotLeave",
    "inputs": []
  },
  {
    "type": "error",
    "name": "CallerNotOwner",
    "inputs": []
  },
  {
    "type": "error",
    "name": "CallerNotOwnerOrDevopsAdmin",
    "inputs": []
  },
  {
    "type": "error",
    "name": "CannotAddFunctionToDiamondThatAlreadyExists",
    "inputs": [
      {
        "name": "_selector",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ]
  },
  {
    "type": "error",
    "name": "CannotAddSelectorsToZeroAddress",
    "inputs": [
      {
        "name": "_selectors",
        "type": "bytes4[]",
        "internalType": "bytes4[]"
      }
    ]
  },
  {
    "type": "error",
    "name": "CannotKickBelowCurrentValidatorThreshold",
    "inputs": []
  },
  {
    "type": "error",
    "name": "CannotRejoinUntilNextEpochBecauseKicked",
    "inputs": [
      {
        "name": "stakingAddress",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "CannotRemoveFunctionThatDoesNotExist",
    "inputs": [
      {
        "name": "_selector",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ]
  },
  {
    "type": "error",
    "name": "CannotRemoveImmutableFunction",
    "inputs": [
      {
        "name": "_selector",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ]
  },
  {
    "type": "error",
    "name": "CannotReplaceFunctionThatDoesNotExists",
    "inputs": [
      {
        "name": "_selector",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ]
  },
  {
    "type": "error",
    "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
    "inputs": [
      {
        "name": "_selector",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ]
  },
  {
    "type": "error",
    "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
    "inputs": [
      {
        "name": "_selectors",
        "type": "bytes4[]",
        "internalType": "bytes4[]"
      }
    ]
  },
  {
    "type": "error",
    "name": "CannotReplaceImmutableFunction",
    "inputs": [
      {
        "name": "_selector",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ]
  },
  {
    "type": "error",
    "name": "CannotReuseCommsKeys",
    "inputs": [
      {
        "name": "senderPubKey",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "receiverPubKey",
        "type": "uint256",
        "internalType": "uint256"
      }
    ]
  },
  {
    "type": "error",
    "name": "CannotStakeZero",
    "inputs": []
  },
  {
    "type": "error",
    "name": "CannotVoteTwice",
    "inputs": [
      {
        "name": "stakerAddress",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "CannotWithdrawZero",
    "inputs": []
  },
  {
    "type": "error",
    "name": "CouldNotMapNodeAddressToStakerAddress",
    "inputs": [
      {
        "name": "nodeAddress",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "IncorrectFacetCutAction",
    "inputs": [
      {
        "name": "_action",
        "type": "uint8",
        "internalType": "uint8"
      }
    ]
  },
  {
    "type": "error",
    "name": "InitializationFunctionReverted",
    "inputs": [
      {
        "name": "_initializationContractAddress",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "_calldata",
        "type": "bytes",
        "internalType": "bytes"
      }
    ]
  },
  {
    "type": "error",
    "name": "MustBeInActiveOrUnlockedOrPausedState",
    "inputs": [
      {
        "name": "state",
        "type": "uint8",
        "internalType": "enum LibStakingStorage.States"
      }
    ]
  },
  {
    "type": "error",
    "name": "MustBeInActiveOrUnlockedState",
    "inputs": [
      {
        "name": "state",
        "type": "uint8",
        "internalType": "enum LibStakingStorage.States"
      }
    ]
  },
  {
    "type": "error",
    "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochOrRestoreState",
    "inputs": [
      {
        "name": "state",
        "type": "uint8",
        "internalType": "enum LibStakingStorage.States"
      }
    ]
  },
  {
    "type": "error",
    "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochState",
    "inputs": [
      {
        "name": "state",
        "type": "uint8",
        "internalType": "enum LibStakingStorage.States"
      }
    ]
  },
  {
    "type": "error",
    "name": "MustBeInNextValidatorSetLockedState",
    "inputs": [
      {
        "name": "state",
        "type": "uint8",
        "internalType": "enum LibStakingStorage.States"
      }
    ]
  },
  {
    "type": "error",
    "name": "MustBeInReadyForNextEpochState",
    "inputs": [
      {
        "name": "state",
        "type": "uint8",
        "internalType": "enum LibStakingStorage.States"
      }
    ]
  },
  {
    "type": "error",
    "name": "MustBeValidatorInNextEpochToKick",
    "inputs": [
      {
        "name": "stakerAddress",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "NoBytecodeAtAddress",
    "inputs": [
      {
        "name": "_contractAddress",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "_message",
        "type": "string",
        "internalType": "string"
      }
    ]
  },
  {
    "type": "error",
    "name": "NoSelectorsProvidedForFacetForCut",
    "inputs": [
      {
        "name": "_facetAddress",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "NotContractOwner",
    "inputs": [
      {
        "name": "_user",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "_contractOwner",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "NotEnoughTimeElapsedForTimeoutSinceLastEpoch",
    "inputs": [
      {
        "name": "currentTimestamp",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "epochEndTime",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "timeout",
        "type": "uint256",
        "internalType": "uint256"
      }
    ]
  },
  {
    "type": "error",
    "name": "NotEnoughTimeElapsedSinceLastEpoch",
    "inputs": [
      {
        "name": "currentTimestamp",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "epochEndTime",
        "type": "uint256",
        "internalType": "uint256"
      }
    ]
  },
  {
    "type": "error",
    "name": "NotEnoughValidatorsInNextEpoch",
    "inputs": [
      {
        "name": "validatorCount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "minimumValidatorCount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ]
  },
  {
    "type": "error",
    "name": "NotEnoughValidatorsReadyForNextEpoch",
    "inputs": [
      {
        "name": "currentReadyValidatorCount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "nextReadyValidatorCount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "minimumValidatorCountToBeReady",
        "type": "uint256",
        "internalType": "uint256"
      }
    ]
  },
  {
    "type": "error",
    "name": "RemoveFacetAddressMustBeZeroAddress",
    "inputs": [
      {
        "name": "_facetAddress",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "SignaledReadyForWrongEpochNumber",
    "inputs": [
      {
        "name": "currentEpochNumber",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "receivedEpochNumber",
        "type": "uint256",
        "internalType": "uint256"
      }
    ]
  },
  {
    "type": "error",
    "name": "StakerNotPermitted",
    "inputs": [
      {
        "name": "stakerAddress",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "TryingToWithdrawMoreThanStaked",
    "inputs": [
      {
        "name": "yourBalance",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "requestedWithdrawlAmount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ]
  },
  {
    "type": "error",
    "name": "ValidatorIsNotInNextEpoch",
    "inputs": [
      {
        "name": "validator",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "validatorsInNextEpoch",
        "type": "address[]",
        "internalType": "address[]"
      }
    ]
  }
]

Structs§

ActiveValidatorsCannotLeave
Custom error with signature ActiveValidatorsCannotLeave() and selector 0x74fc692a.
CallerNotOwner
Custom error with signature CallerNotOwner() and selector 0x5cd83192.
CallerNotOwnerOrDevopsAdmin
Custom error with signature CallerNotOwnerOrDevopsAdmin() and selector 0xedbb9143.
CannotAddFunctionToDiamondThatAlreadyExists
Custom error with signature CannotAddFunctionToDiamondThatAlreadyExists(bytes4) and selector 0xebbf5d07.
CannotAddSelectorsToZeroAddress
Custom error with signature CannotAddSelectorsToZeroAddress(bytes4[]) and selector 0x0ae3681c.
CannotKickBelowCurrentValidatorThreshold
Custom error with signature CannotKickBelowCurrentValidatorThreshold() and selector 0xe81f2804.
CannotRejoinUntilNextEpochBecauseKicked
Custom error with signature CannotRejoinUntilNextEpochBecauseKicked(address) and selector 0x7c6d6c6b.
CannotRemoveFunctionThatDoesNotExist
Custom error with signature CannotRemoveFunctionThatDoesNotExist(bytes4) and selector 0x7a08a22d.
CannotRemoveImmutableFunction
Custom error with signature CannotRemoveImmutableFunction(bytes4) and selector 0x6fafeb08.
CannotReplaceFunctionThatDoesNotExists
Custom error with signature CannotReplaceFunctionThatDoesNotExists(bytes4) and selector 0x7479f939.
CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet
Custom error with signature CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet(bytes4) and selector 0x358d9d1a.
CannotReplaceFunctionsFromFacetWithZeroAddress
Custom error with signature CannotReplaceFunctionsFromFacetWithZeroAddress(bytes4[]) and selector 0xcd98a96f.
CannotReplaceImmutableFunction
Custom error with signature CannotReplaceImmutableFunction(bytes4) and selector 0x520300da.
CannotReuseCommsKeys
Custom error with signature CannotReuseCommsKeys(uint256,uint256) and selector 0x1179010e.
CannotStakeZero
Custom error with signature CannotStakeZero() and selector 0x6a76ff9f.
CannotVoteTwice
Custom error with signature CannotVoteTwice(address) and selector 0x384ce38a.
CannotWithdrawZero
Custom error with signature CannotWithdrawZero() and selector 0xc3771360.
ClearOfflinePhaseData
Event with signature ClearOfflinePhaseData(uint256) and selector 0xbc0baa4635959d24b27522c372a6e0a9d17803399bd5d9046f275a2fa18d223a.
ComplaintConfigSet
Event with signature ComplaintConfigSet(uint256,(uint256,uint256,uint256)) and selector 0x2df206553722a6982fad43c07f1f84227b71fb1ae607d97c4431c6a84b7bb296.
ConfigSet
Event with signature ConfigSet(uint256,uint256[],uint256,uint256,uint256,uint256,uint256,uint256,bool,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),bool) and selector 0xb8b767acd7ce1a357e7cf816d480a3cb5194fbd8543e98ba903d3fc209aefc34.
CouldNotMapNodeAddressToStakerAddress
Custom error with signature CouldNotMapNodeAddressToStakerAddress(address) and selector 0x64ffeb3d.
CountOfflinePhaseData
Event with signature CountOfflinePhaseData(uint256) and selector 0x15ea8b5240aa05460f3652416b461bfc5a313f1c21be55bf76856b9731862817.
DevopsAdminSet
Event with signature DevopsAdminSet(address) and selector 0x965e86ab293c5a56470264992100787ec5b198cee28c11e26510a383071af24c.
DiamondCut
Event with signature DiamondCut((address,uint8,bytes4[])[],address,bytes) and selector 0x8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673.
EpochEndTimeSet
Event with signature EpochEndTimeSet(uint256) and selector 0xeb49fe6118b628c010445c30724ceaf4efd8d87f330911c36493b401b5c296d0.
EpochLengthSet
Event with signature EpochLengthSet(uint256) and selector 0x5f15d41eab42cb3f8a5c9e8cd44043648cb85a815522c5f4ae5a32597a8447a0.
EpochTimeoutSet
Event with signature EpochTimeoutSet(uint256) and selector 0x887fed3a9270ffbbf863d640a07413b6f58cf97afaa9d7267693e962a76bd810.
IncorrectFacetCutAction
Custom error with signature IncorrectFacetCutAction(uint8) and selector 0x7fe9a41e.
InitializationFunctionReverted
Custom error with signature InitializationFunctionReverted(address,bytes) and selector 0x192105d7.
KickPenaltyPercentSet
Event with signature KickPenaltyPercentSet(uint256,uint256) and selector 0xd96aa9b717408dfdef39925f998646946efba8139acb451b120585a33de7f1e6.
MustBeInActiveOrUnlockedOrPausedState
Custom error with signature MustBeInActiveOrUnlockedOrPausedState(uint8) and selector 0xc1f8741d.
MustBeInActiveOrUnlockedState
Custom error with signature MustBeInActiveOrUnlockedState(uint8) and selector 0x9ef5b6f5.
MustBeInNextValidatorSetLockedOrReadyForNextEpochOrRestoreState
Custom error with signature MustBeInNextValidatorSetLockedOrReadyForNextEpochOrRestoreState(uint8) and selector 0xf928cb7b.
MustBeInNextValidatorSetLockedOrReadyForNextEpochState
Custom error with signature MustBeInNextValidatorSetLockedOrReadyForNextEpochState(uint8) and selector 0xe1b4c12e.
MustBeInNextValidatorSetLockedState
Custom error with signature MustBeInNextValidatorSetLockedState(uint8) and selector 0x7203d9de.
MustBeInReadyForNextEpochState
Custom error with signature MustBeInReadyForNextEpochState(uint8) and selector 0x17ce3ae1.
MustBeValidatorInNextEpochToKick
Custom error with signature MustBeValidatorInNextEpochToKick(address) and selector 0x5f543082.
NoBytecodeAtAddress
Custom error with signature NoBytecodeAtAddress(address,string) and selector 0x919834b9.
NoSelectorsProvidedForFacetForCut
Custom error with signature NoSelectorsProvidedForFacetForCut(address) and selector 0xe767f91f.
NotContractOwner
Custom error with signature NotContractOwner(address,address) and selector 0xff4127cb.
NotEnoughTimeElapsedForTimeoutSinceLastEpoch
Custom error with signature NotEnoughTimeElapsedForTimeoutSinceLastEpoch(uint256,uint256,uint256) and selector 0x9312e856.
NotEnoughTimeElapsedSinceLastEpoch
Custom error with signature NotEnoughTimeElapsedSinceLastEpoch(uint256,uint256) and selector 0xf44bc0a7.
NotEnoughValidatorsInNextEpoch
Custom error with signature NotEnoughValidatorsInNextEpoch(uint256,uint256) and selector 0x8a0defa4.
NotEnoughValidatorsReadyForNextEpoch
Custom error with signature NotEnoughValidatorsReadyForNextEpoch(uint256,uint256,uint256) and selector 0x26d6b3de.
OwnershipTransferred
Event with signature OwnershipTransferred(address,address) and selector 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
ReadyForNextEpoch
Event with signature ReadyForNextEpoch(address,uint256) and selector 0x0c101bf9bc977a511cf4ef91f5b9cbac30a0a3af0768cfd5c9634e73120d7c8b.
Recovered
Event with signature Recovered(address,uint256) and selector 0x8c1256b8896378cd5044f80c202f9772b9d77dc85c8a6eb51967210b09bfaa28.
RemoveFacetAddressMustBeZeroAddress
Custom error with signature RemoveFacetAddressMustBeZeroAddress(address) and selector 0xd091bc81.
RequestToJoin
Event with signature RequestToJoin(address) and selector 0x1dc186bd4daaf3fc4b9f8c689228a0be60dd2952dc502829514ae0d6955c0f51.
RequestToLeave
Event with signature RequestToLeave(address) and selector 0xff61c8020d05b8c2e31cdbb3d3f8cbcbdc57fcafa00229d9858b7cfd3b039c8a.
ResolverContractAddressSet
Event with signature ResolverContractAddressSet(address) and selector 0x2b5fe80d5061b20e017f0cde52b331309601bfcab0cb14cfcf6a4096410a6075.
RewardsDurationUpdated
Event with signature RewardsDurationUpdated(uint256) and selector 0xfb46ca5a5e06d4540d6387b930a7c978bce0db5f449ec6b3f5d07c6e1d44f2d3.
SignaledReadyForWrongEpochNumber
Custom error with signature SignaledReadyForWrongEpochNumber(uint256,uint256) and selector 0x068cde2a.
StakerNotPermitted
Custom error with signature StakerNotPermitted(address) and selector 0x924a5910.
StakingInstance
A Staking instance.
StakingTokenSet
Event with signature StakingTokenSet(address) and selector 0x9904a32444ae0eb0bae2045baf588aa248f03f4fef600c18afd1d7e751614af8.
StateChanged
Event with signature StateChanged(uint8) and selector 0x551dc40198cc79684bb69e4931dba4ac16e4598792ee1c0a5000aeea366d7bb6.
TryingToWithdrawMoreThanStaked
Custom error with signature TryingToWithdrawMoreThanStaked(uint256,uint256) and selector 0xfdf3c18d.
ValidatorIsNotInNextEpoch
Custom error with signature ValidatorIsNotInNextEpoch(address,address[]) and selector 0xa3113c0e.
ValidatorKickedFromNextEpoch
Event with signature ValidatorKickedFromNextEpoch(address,uint256) and selector 0xf020e162c28460a603e71f641a2e83634580ace02b9e28b844b2257949860e97.
ValidatorRejoinedNextEpoch
Event with signature ValidatorRejoinedNextEpoch(address) and selector 0xa5b14a5b2a3bffe27eff4f0dd1c65b1c966d2ec463c04f29a82c3e228ba7a071.
VersionRequirementsUpdated
Event with signature VersionRequirementsUpdated(uint256,(uint256,uint256,uint256)) and selector 0x5706c9dcc1ce81c35447121f3cbb607d1345b9064474e4f27e1f657273f58f37.
VotedToKickValidatorInNextEpoch
Event with signature VotedToKickValidatorInNextEpoch(address,address,uint256,bytes) and selector 0xebdee48ed32f3feff81eed274b9e084b367ac42fe1cb710dcbd43f1d537d99fa.
adminKickValidatorInNextEpochCall
Function with signature adminKickValidatorInNextEpoch(address) and selector 0x7aa086e7.
adminKickValidatorInNextEpochReturn
Container type for the return parameters of the adminKickValidatorInNextEpoch(address) function.
adminRejoinValidatorCall
Function with signature adminRejoinValidator(address) and selector 0x7392c76b.
adminRejoinValidatorReturn
Container type for the return parameters of the adminRejoinValidator(address) function.
adminResetEpochCall
Function with signature adminResetEpoch() and selector 0x3c88123d.
adminResetEpochReturn
Container type for the return parameters of the adminResetEpoch() function.
adminSlashValidatorCall
Function with signature adminSlashValidator(address,uint256) and selector 0x8b80d833.
adminSlashValidatorReturn
Container type for the return parameters of the adminSlashValidator(address,uint256) function.
adminStakeForValidatorCall
Function with signature adminStakeForValidator(address,uint256) and selector 0x2f9f2964.
adminStakeForValidatorReturn
Container type for the return parameters of the adminStakeForValidator(address,uint256) function.
advanceEpochCall
Function with signature advanceEpoch() and selector 0x3cf80e6c.
advanceEpochReturn
Container type for the return parameters of the advanceEpoch() function.
checkVersionCall
Function with signature checkVersion((uint256,uint256,uint256)) and selector 0x7720ff0f.
checkVersionReturn
Container type for the return parameters of the checkVersion((uint256,uint256,uint256)) function.
complaintConfigCall
Function with signature complaintConfig(uint256) and selector 0x02f6da56.
complaintConfigReturn
Container type for the return parameters of the complaintConfig(uint256) function.
configCall
Function with signature config() and selector 0x79502c55.
configReturn
Container type for the return parameters of the config() function.
contractResolverCall
Function with signature contractResolver() and selector 0x50d17b5e.
contractResolverReturn
Container type for the return parameters of the contractResolver() function.
countOfCurrentValidatorsReadyForNextEpochCall
Function with signature countOfCurrentValidatorsReadyForNextEpoch() and selector 0xe8684ed1.
countOfCurrentValidatorsReadyForNextEpochReturn
Container type for the return parameters of the countOfCurrentValidatorsReadyForNextEpoch() function.
countOfNextValidatorsReadyForNextEpochCall
Function with signature countOfNextValidatorsReadyForNextEpoch() and selector 0x89965883.
countOfNextValidatorsReadyForNextEpochReturn
Container type for the return parameters of the countOfNextValidatorsReadyForNextEpoch() function.
currentValidatorCountForConsensusCall
Function with signature currentValidatorCountForConsensus() and selector 0x43cb0a0e.
currentValidatorCountForConsensusReturn
Container type for the return parameters of the currentValidatorCountForConsensus() function.
diamondCutCall
Function with signature diamondCut((address,uint8,bytes4[])[],address,bytes) and selector 0x1f931c1c.
diamondCutReturn
Container type for the return parameters of the diamondCut((address,uint8,bytes4[])[],address,bytes) function.
emitClearOfflinePhaseDataCall
Function with signature emitClearOfflinePhaseData(uint256) and selector 0x00a52713.
emitClearOfflinePhaseDataReturn
Container type for the return parameters of the emitClearOfflinePhaseData(uint256) function.
emitCountOfflinePhaseDataCall
Function with signature emitCountOfflinePhaseData(uint256) and selector 0x9a74745d.
emitCountOfflinePhaseDataReturn
Container type for the return parameters of the emitCountOfflinePhaseData(uint256) function.
epochCall
Function with signature epoch() and selector 0x900cf0cf.
epochReturn
Container type for the return parameters of the epoch() function.
exitCall
Function with signature exit() and selector 0xe9fad8ee.
exitReturn
Container type for the return parameters of the exit() function.
facetAddressCall
Function with signature facetAddress(bytes4) and selector 0xcdffacc6.
facetAddressReturn
Container type for the return parameters of the facetAddress(bytes4) function.
facetAddressesCall
Function with signature facetAddresses() and selector 0x52ef6b2c.
facetAddressesReturn
Container type for the return parameters of the facetAddresses() function.
facetFunctionSelectorsCall
Function with signature facetFunctionSelectors(address) and selector 0xadfca15e.
facetFunctionSelectorsReturn
Container type for the return parameters of the facetFunctionSelectors(address) function.
facetsCall
Function with signature facets() and selector 0x7a0ed627.
facetsReturn
Container type for the return parameters of the facets() function.
getActiveUnkickedValidatorStructsAndCountsCall
Function with signature getActiveUnkickedValidatorStructsAndCounts() and selector 0xc51d020e.
getActiveUnkickedValidatorStructsAndCountsReturn
Container type for the return parameters of the getActiveUnkickedValidatorStructsAndCounts() function.
getActiveUnkickedValidatorStructsCall
Function with signature getActiveUnkickedValidatorStructs() and selector 0x069596ea.
getActiveUnkickedValidatorStructsReturn
Container type for the return parameters of the getActiveUnkickedValidatorStructs() function.
getActiveUnkickedValidatorsCall
Function with signature getActiveUnkickedValidators() and selector 0x9d8b588a.
getActiveUnkickedValidatorsReturn
Container type for the return parameters of the getActiveUnkickedValidators() function.
getKeyTypesCall
Function with signature getKeyTypes() and selector 0xf1b877a8.
getKeyTypesReturn
Container type for the return parameters of the getKeyTypes() function.
getKickedValidatorsCall
Function with signature getKickedValidators() and selector 0x5995a4c4.
getKickedValidatorsReturn
Container type for the return parameters of the getKickedValidators() function.
getMaxVersionCall
Function with signature getMaxVersion() and selector 0x2c20d23a.
getMaxVersionReturn
Container type for the return parameters of the getMaxVersion() function.
getMaxVersionStringCall
Function with signature getMaxVersionString() and selector 0xdbd68aa7.
getMaxVersionStringReturn
Container type for the return parameters of the getMaxVersionString() function.
getMinVersionCall
Function with signature getMinVersion() and selector 0xd1e3f3d7.
getMinVersionReturn
Container type for the return parameters of the getMinVersion() function.
getMinVersionStringCall
Function with signature getMinVersionString() and selector 0x517d2324.
getMinVersionStringReturn
Container type for the return parameters of the getMinVersionString() function.
getNodeStakerAddressMappingsCall
Function with signature getNodeStakerAddressMappings(address[]) and selector 0x90fba112.
getNodeStakerAddressMappingsReturn
Container type for the return parameters of the getNodeStakerAddressMappings(address[]) function.
getRewardCall
Function with signature getReward() and selector 0x3d18b912.
getRewardReturn
Container type for the return parameters of the getReward() function.
getStakingBalancesAddressCall
Function with signature getStakingBalancesAddress() and selector 0x5b677eac.
getStakingBalancesAddressReturn
Container type for the return parameters of the getStakingBalancesAddress() function.
getTokenAddressCall
Function with signature getTokenAddress() and selector 0x10fe9ae8.
getTokenAddressReturn
Container type for the return parameters of the getTokenAddress() function.
getValidatorsInCurrentEpochCall
Function with signature getValidatorsInCurrentEpoch() and selector 0x857b7663.
getValidatorsInCurrentEpochLengthCall
Function with signature getValidatorsInCurrentEpochLength() and selector 0xd4818fca.
getValidatorsInCurrentEpochLengthReturn
Container type for the return parameters of the getValidatorsInCurrentEpochLength() function.
getValidatorsInCurrentEpochReturn
Container type for the return parameters of the getValidatorsInCurrentEpoch() function.
getValidatorsInNextEpochCall
Function with signature getValidatorsInNextEpoch() and selector 0xc35d4d09.
getValidatorsInNextEpochReturn
Container type for the return parameters of the getValidatorsInNextEpoch() function.
getValidatorsStructsCall
Function with signature getValidatorsStructs(address[]) and selector 0x533d463e.
getValidatorsStructsInCurrentEpochCall
Function with signature getValidatorsStructsInCurrentEpoch() and selector 0xe7c08720.
getValidatorsStructsInCurrentEpochReturn
Container type for the return parameters of the getValidatorsStructsInCurrentEpoch() function.
getValidatorsStructsInNextEpochCall
Function with signature getValidatorsStructsInNextEpoch() and selector 0x61dee8a3.
getValidatorsStructsInNextEpochReturn
Container type for the return parameters of the getValidatorsStructsInNextEpoch() function.
getValidatorsStructsReturn
Container type for the return parameters of the getValidatorsStructs(address[]) function.
getVotingStatusToKickValidatorCall
Function with signature getVotingStatusToKickValidator(uint256,address,address) and selector 0x70fe276a.
getVotingStatusToKickValidatorReturn
Container type for the return parameters of the getVotingStatusToKickValidator(uint256,address,address) function.
isActiveValidatorByNodeAddressCall
Function with signature isActiveValidatorByNodeAddress(address) and selector 0xa25e49a4.
isActiveValidatorByNodeAddressReturn
Container type for the return parameters of the isActiveValidatorByNodeAddress(address) function.
isActiveValidatorCall
Function with signature isActiveValidator(address) and selector 0x40550a1c.
isActiveValidatorReturn
Container type for the return parameters of the isActiveValidator(address) function.
isReadyForNextEpochCall
Function with signature isReadyForNextEpoch() and selector 0xf1887fec.
isReadyForNextEpochReturn
Container type for the return parameters of the isReadyForNextEpoch() function.
kickPenaltyPercentByReasonCall
Function with signature kickPenaltyPercentByReason(uint256) and selector 0x3e685266.
kickPenaltyPercentByReasonReturn
Container type for the return parameters of the kickPenaltyPercentByReason(uint256) function.
kickValidatorInNextEpochCall
Function with signature kickValidatorInNextEpoch(address,uint256,bytes) and selector 0x865419e9.
kickValidatorInNextEpochReturn
Container type for the return parameters of the kickValidatorInNextEpoch(address,uint256,bytes) function.
lockValidatorsForNextEpochCall
Function with signature lockValidatorsForNextEpoch() and selector 0x16930f4d.
lockValidatorsForNextEpochReturn
Container type for the return parameters of the lockValidatorsForNextEpoch() function.
nextValidatorCountForConsensusCall
Function with signature nextValidatorCountForConsensus() and selector 0x0297d4db.
nextValidatorCountForConsensusReturn
Container type for the return parameters of the nextValidatorCountForConsensus() function.
nodeAddressToStakerAddressCall
Function with signature nodeAddressToStakerAddress(address) and selector 0x5081f66f.
nodeAddressToStakerAddressReturn
Container type for the return parameters of the nodeAddressToStakerAddress(address) function.
ownerCall
Function with signature owner() and selector 0x8da5cb5b.
ownerReturn
Container type for the return parameters of the owner() function.
readyForNextEpochCall
Function with signature readyForNextEpoch(address) and selector 0x519877eb.
readyForNextEpochReturn
Container type for the return parameters of the readyForNextEpoch(address) function.
requestToJoinCall
Function with signature requestToJoin(uint32,uint128,uint32,address,uint256,uint256) and selector 0x3528db88.
requestToJoinReturn
Container type for the return parameters of the requestToJoin(uint32,uint128,uint32,address,uint256,uint256) function.
requestToLeaveAsNodeCall
Function with signature requestToLeaveAsNode() and selector 0x8a3d070e.
requestToLeaveAsNodeReturn
Container type for the return parameters of the requestToLeaveAsNode() function.
requestToLeaveCall
Function with signature requestToLeave() and selector 0xac2f8afe.
requestToLeaveReturn
Container type for the return parameters of the requestToLeave() function.
setComplaintConfigCall
Function with signature setComplaintConfig(uint256,(uint256,uint256,uint256)) and selector 0xdc509d50.
setComplaintConfigReturn
Container type for the return parameters of the setComplaintConfig(uint256,(uint256,uint256,uint256)) function.
setConfigCall
Function with signature setConfig((uint256,uint256,uint256,uint256[],uint256,uint256,uint256,uint256,uint256,uint256,bool,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),bool)) and selector 0x584ce5f5.
setConfigReturn
Container type for the return parameters of the setConfig((uint256,uint256,uint256,uint256[],uint256,uint256,uint256,uint256,uint256,uint256,bool,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),bool)) function.
setContractResolverCall
Function with signature setContractResolver(address) and selector 0xf95d71b1.
setContractResolverReturn
Container type for the return parameters of the setContractResolver(address) function.
setDevopsAdminCall
Function with signature setDevopsAdmin(address) and selector 0xcf7d1e87.
setDevopsAdminReturn
Container type for the return parameters of the setDevopsAdmin(address) function.
setEpochEndTimeCall
Function with signature setEpochEndTime(uint256) and selector 0x4a6e51f5.
setEpochEndTimeReturn
Container type for the return parameters of the setEpochEndTime(uint256) function.
setEpochLengthCall
Function with signature setEpochLength(uint256) and selector 0x54eea796.
setEpochLengthReturn
Container type for the return parameters of the setEpochLength(uint256) function.
setEpochStateCall
Function with signature setEpochState(uint8) and selector 0x3f819713.
setEpochStateReturn
Container type for the return parameters of the setEpochState(uint8) function.
setEpochTimeoutCall
Function with signature setEpochTimeout(uint256) and selector 0x1fab87c4.
setEpochTimeoutReturn
Container type for the return parameters of the setEpochTimeout(uint256) function.
setIpPortNodeAddressAndCommunicationPubKeysCall
Function with signature setIpPortNodeAddressAndCommunicationPubKeys(uint32,uint128,uint32,address,uint256,uint256) and selector 0x4f8f0102.
setIpPortNodeAddressAndCommunicationPubKeysReturn
Container type for the return parameters of the setIpPortNodeAddressAndCommunicationPubKeys(uint32,uint128,uint32,address,uint256,uint256) function.
setKickPenaltyPercentCall
Function with signature setKickPenaltyPercent(uint256,uint256) and selector 0x09c7c7d0.
setKickPenaltyPercentReturn
Container type for the return parameters of the setKickPenaltyPercent(uint256,uint256) function.
setMaxVersionCall
Function with signature setMaxVersion((uint256,uint256,uint256)) and selector 0xec159d7a.
setMaxVersionReturn
Container type for the return parameters of the setMaxVersion((uint256,uint256,uint256)) function.
setMinVersionCall
Function with signature setMinVersion((uint256,uint256,uint256)) and selector 0xd900fcbb.
setMinVersionReturn
Container type for the return parameters of the setMinVersion((uint256,uint256,uint256)) function.
shouldKickValidatorCall
Function with signature shouldKickValidator(address) and selector 0x847e0625.
shouldKickValidatorReturn
Container type for the return parameters of the shouldKickValidator(address) function.
signalReadyForNextEpochCall
Function with signature signalReadyForNextEpoch(uint256) and selector 0xf99b5623.
signalReadyForNextEpochReturn
Container type for the return parameters of the signalReadyForNextEpoch(uint256) function.
stakeAndJoinCall
Function with signature stakeAndJoin(uint256,uint32,uint128,uint32,address,uint256,uint256) and selector 0xba3bd22e.
stakeAndJoinReturn
Container type for the return parameters of the stakeAndJoin(uint256,uint32,uint128,uint32,address,uint256,uint256) function.
stakeCall
Function with signature stake(uint256) and selector 0xa694fc3a.
stakeReturn
Container type for the return parameters of the stake(uint256) function.
stateCall
Function with signature state() and selector 0xc19d93fb.
stateReturn
Container type for the return parameters of the state() function.
supportsInterfaceCall
Function with signature supportsInterface(bytes4) and selector 0x01ffc9a7.
supportsInterfaceReturn
Container type for the return parameters of the supportsInterface(bytes4) function.
transferOwnershipCall
Function with signature transferOwnership(address) and selector 0xf2fde38b.
transferOwnershipReturn
Container type for the return parameters of the transferOwnership(address) function.
validatorsCall
Function with signature validators(address) and selector 0xfa52c7d8.
validatorsReturn
Container type for the return parameters of the validators(address) function.
withdrawCall
Function with signature withdraw(uint256) and selector 0x2e1a7d4d.
withdrawReturn
Container type for the return parameters of the withdraw(uint256) function.

Enums§

StakingCalls
Container for all the Staking function calls.
StakingErrors
Container for all the Staking custom errors.
StakingEvents
Container for all the Staking events.

Statics§

BYTECODE
The creation / init bytecode of the contract.
DEPLOYED_BYTECODE
The runtime bytecode of the contract, as deployed on the network.

Functions§

deploy
Deploys this contract using the given provider and constructor arguments, if any.
deploy_builder
Creates a RawCallBuilder for deploying this contract using the given provider and constructor arguments, if any.
new
Creates a new wrapper around an on-chain Staking contract instance.