<aside> 💡
This document outlines the changes introduced by Graph Horizon in how various participants interact with the protocol. It is intended for maintainers of off-chain components to help them understand the breaking changes and identify the necessary updates for each component.
</aside>
Graph Horizon is an upgrade to the existing protocol that:
<aside> 🚨
Function calls in this document where contract name is not specified are assumed to be made on the Staking contract. Worth clarifying as well that Staking = HorizonStaking, for more clarity we use HorizonStaking to refer to the staking contract after the upgrade
</aside>
| Mechanism | Stage 0: current protocol | Stage 1: transition period | Stage 2: Graph Horizon | |
|---|---|---|---|---|
| Service provider | Stake management | stake() |
||
stakeTo() |
||||
unstake() / withdraw() |
stake() |
|||
stakeTo() |
||||
unstake() / withdraw() |
stake() |
|||
stakeTo() |
||||
unstake() |
||||
| Provision management | - |
provision()
addToProvision()
stakeToProvision()
thaw() / deprovision()
thaw() / reprovision() | provision()
addToProvision()
stakeToProvision()
thaw() / deprovision()
thaw() / reprovision() |
| | Provision configuration | setOperator()
setDelegationParameters()setOperator()
setDelegationFeeCut()
setProvisionParameters() / acceptProvisionParameters() | setOperator()
setDelegationFeeCut()
setProvisionParameters() / acceptProvisionParameters() |
| | Subgraph indexing registration and configuration | ServiceRegistry.register()
setRewardsDestination() | SubgraphService.register()
SubgraphService.setPaymentsDestination() | SubgraphService.register()
SubgraphService.setPaymentsDestination() |
| | Allocation management | allocate()
closeAllocation() | - SubgraphService.startService()closeAllocation() or SubgraphService.stopService()SubgraphService.closeStaleAllocation()SubgraphService.resizeAllocation() | - SubgraphService.startService()SubgraphService.stopService()SubgraphService.closeStaleAllocation()SubgraphService.resizeAllocation() |
| | Payment collection | closeAllocation()
collect() | - SubgraphService.collect()SubgraphService.collect() | - SubgraphService.collect()SubgraphService.collect() |
| | Delegation pool management | - | addToDelegationPool() | addToDelegationPool() |
| Delegators | Delegation management | delegate()
undelegate() / withdrawDelegated() | - delegate()undelegate() / withdrawDelegated()or redelegate() | - delegate()undelegate() / withdrawDelegated() or - redelegate() |