Indexers get rewards for indexing subgraphs. These rewards are minted whenever an indexer close an allocation with a non-zero POI. A function called distributeRewards() within the Staking contract is used for that purpose. This function calls RewardsManager.takeRewards()
that updates the snapshots used for rewards calculations and then mint the tokens. In some cases the snapshot calculation is not called.
When an indexer calls closeAllocation()
with a POI=0x0 the function distributeRewards()
is not called, as a consequence, takeRewards()
is not called and in turn the snapshots are not updated before unallocating tokens. This creates a situation where the rewards manager considers there are a different amount of allocated tokens and distort calculations until it is called next time. Hopefully the distortion self corrects when another action is performed that updates the snapshot.
Update the Staking contract closeAllocation()
function to call _updateRewards()
when the POI presented is 0x0 before unallocating the tokens.
See @graphprotocol/contracts#459
The proposal is fully backwards compatible.
The implementation was audited by OpenZeppelin. Full public report: https://blog.openzeppelin.com/thegraph-staking-bugfix-audit-2/
The implementation has not yet been deployed to Testnet.
Copyright and related rights waived via CC0.
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Syncing