If a user tries to stake and there are no spots remaining, then the contract will check for a user who is late. If there is a late user occupying a slot that the staking user would be eligible to take were it open, then the late user will lose their slot and the user trying to stake will take it. Tiers are searched from the highest tier to the lowest tier the staking user is eligible to fill.

The search order stated above applies to any time a user is staking, not just bumping another user. The reason the available slots are searched from highest to lowest is to optimize for speed. For example, if there is only a MiddleTier slot and a LowerTier slot available and there is a MiddleTier user and a LowerTier user, then if the MiddleTier user takes the LowerTier slot, the LowerTier user cannot participate and we have to wait for another user to come along. It is better to give the MiddleTier slot to the MiddleTier user and the LowerTier slot to the LowerTier user, regardless of the order they stake. Searching from highest to lowest achieves this goal.

Last updated