Skip to main content

Operator actions

This document summarizes rebalance and accounting flows in Olla.

Note: rebalance(), updateAccounting(), and refreshAttesterState(address[]) are permissionless — anyone can call them. The diagrams below use "Caller" to represent any address. New rebalance cycles are rate-limited by a cooldown (lastRebalanceTimestamp + rebalanceCooldown); continuing in-progress cycles has no cooldown.

Rebalance

Refresh attester state (separate from rebalance)

Purge failed queue entry (permissionless)

If deposit() adds an attester to the rollup's entry queue but flushEntryQueue() later fails (invalid BLS proof, duplicate key), the attester gets stuck as Queued in StakingManager with inflated stakedAmount. This function detects and cleans up that state.

Harvest rewards

Pull unstaked funds

Process user withdrawal requests

Initiate unstake

Stake surplus

Rebalance (full flow)

Rebalance cooldown and state machine

Accounting