NodeRotation

onlyDebugger onlyDebugger() modifier

exitFromSchain exitFromSchain(uint256 nodeIndex) → bool, bool external

Allows SkaleManager to remove, find new node, and rotate node from schain.

Requirements:

  • A free node must exist.

freezeSchains freezeSchains(uint256 nodeIndex) external

Allows SkaleManager contract to freeze all schains on a given node.

removeRotation removeRotation(bytes32 schainIndex) external

Allows Schains contract to remove a rotation from an schain.

skipRotationDelay skipRotationDelay(bytes32 schainIndex) external

Allows Owner to immediately rotate an schain.

getRotation getRotation(bytes32 schainIndex) → struct NodeRotation.Rotation external

Returns rotation details for a given schain.

getLeavingHistory getLeavingHistory(uint256 nodeIndex) → struct NodeRotation.LeavingHistory[] external

Returns leaving history for a given node.

isRotationInProgress isRotationInProgress(bytes32 schainIndex) → bool external

initialize initialize(address newContractsAddress) public

rotateNode rotateNode(uint256 nodeIndex, bytes32 schainHash, bool shouldDelay, bool isBadNode) → uint256 newNode public

Allows SkaleDKG and SkaleManager contracts to rotate a node from an schain.

selectNodeToGroup selectNodeToGroup(bytes32 schainHash) → uint256 nodeIndex public

Allows SkaleManager, Schains, and SkaleDKG contracts to pseudo-randomly select a new Node for an Schain.

Requirements:

  • Schain is active.

  • A free node already exists.

  • Free space can be allocated from the node.