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​