Protocol interactions diagram

Actions

Trigger Condition Calls
STAKE provision exists HorizonStaking.stakeToProvision()
STAKE provision does not exist HorizonStaking.stake()
HorizonStaking.provision() / HorizonStaking.provisionLocked()
UNSTAKE during transition period and amount < idle stake HorizonStaking.unstake()
UNSTAKE during transition period and amount > idle stake Do not allow.
UNSTAKE after transition period and amount < idle stake HorizonStaking.unstake()
UNSTAKE after transition period and amount > idle stake HorizonStaking.thaw()
WITHDRAW funds fully thawed from a legacy unstake HorizonStaking.withdraw()
WITHDRAW after transition period and funds fully thawed from provision HorizonStaking.deprovision()
HorizonStaking.unstake()

When an indexer stakes in the explorer:

When an indexer unstakes in the explorer:

When an indexer withdraws in the explorer:

Ideas to simplify explorer