Releases: graphprotocol/graph-network-subgraph
Minor fixes to improve vesting contract support
Fixes some issues with vesting contracts, mainly that the addresses of vesting contracts were missing name and metadata information from the beneficiary account.
v0.11.0
Improved slashing values on Dispute
:
- Added
tokensBurned
which depicts the amount burned from the slashed tokens - Changed
tokensSlashed
so that it depicts the full slashed amount, rather than only the burned part tokensRewarded
stays the same, it still depicts the amount of the slashed tokens that are sent to the fisherman.
Added total curation KPIs (breakdown):
- Amount of GRT in "auto migrate" signalling
- Amount of GRT in direct version signalling
Those values depict the actual GRT amounts that are equivalent to the shares minted, so, shares values, based on the amount of shares each group "owns", and the amount of GRT per subgraph.
It does not reflect the value flows on curation deposits (into and out of the bonding curve), but rather the value within the curve distributed based on the shares minted.
Minor fixes and new features
- Fixed ENS/GNS
displayNames
logic to be able to properly unset the name on the subgraph. - Fixed
SubgraphCategory
entity parsing on the subgraph metadata breaking the subgraph. - Changed the logic for
currentSignalledTokens
on theSubgraph
entity to be updated with the GRT on the underlyingSubgraphDeployment
. - Added
activeSubgraphCount
onGraphNetwork
entity. Tracks the number of non-deprecated subgraphs. - Added
activeCuratorCount
onGraphNetwork
entity. Tracks the number of activeCurator
entities (those that still have at least 1 active signal). - Updated
graph-cli
andgraph-ts
dependencies.
Hotfix
v0.9.1 Hotfix zero division on pricePerShare, curation avoid updating reserv…
Launch Update
Changelog:
- Added package.json scripts to deploy IPFS enabled or disabled versions of the subgraph.
- Changed GitHub action workflows a bit to reflect the IPFS enabled/disabled changes
- Added fulltext search for curator and delegator entities. (
curatorSearch
anddelegatorSearch
). - Entity changes
GraphNetwork
- Added
ownerTaxPercentage
. Percentage of the GNS migration tax payed by the subgraph owner - Added
activeDelegatorCount
. Total amount of activeDelegator
entities. (at least 1DelegatedStake
with signalAmount > 0) - Added
delegationCount
. Total amount ofDelegatedStake
entities (specific delegations). - Added
activeDelegationCount
. Total amount of activeDelegatedStake
entities (specific delegations with signalAmount > 0). - Added
querySlashingPercentage
andindexSlashingPercentage
. - Deprecation notice on
slashingPercentage
.
- Added
GraphAccount
- Added
tokenLockWallets
array. Used to properly recognize ENS names on vesting contract users.
- Added
Subgraph
- Deprecation notice on
pastVersions
- Added
versions
field which should replacepastVersions
. It's more performant for indexing since it doesn't need to manually handle arrays, with the small caveat that unlikepastVersions
it includes thecurrentVersion
in the list. - Added
versionCount
. - Added
active
field. Used to differentiate active and deprecatedSubgraph
entities. - Added
currentSignalledTokens
. Mostly for sorting purposes on the UI, should becurrentSignalledTokens = signalledTokens - unsignalledTokens
. It only tracks tokens signalled towards that specific subgraph name (NameSignal
), so it could potentially be negative in scenarios where theNameSignal
shares lose value on the bonding curve because ofSignal
(version signals) unsignalling on the same bonding curve. - Added
signalAmount
. Represents the amount of version signal that the name pool for that named subgraph has. - Added
nameSignalCount
. Tracks the total amount ofNameSignal
entities for that subgraph. - All IPFS related fields (
description
,image
,codeRepository
,website
anddisplayName
) are now optional. - Added
categories
list. Many-to-many list that represents all the categories that a subgraph belongs to.
- Deprecation notice on
SubgraphVersion
- All IPFS related fields (
description
andlabel
) are now optional.
- All IPFS related fields (
SubgraphDeployment
- Added
ipfsHash
field. Holds theQm...
string (i.e. the IPFS hash) of the manifest file for theSubgraphDeployment
. - Added
pricePerShare
. Price of the current Curation share (i.e. signal) on this deployment. It's the approximation of the current value of said share, given the bonding curve dynamics (selling or buying the share always has price impact, so this is the snapshot of the value at this particular point in the bonding curve, doesn't mean you will be getting exactly this amount per share if you buy or sell any amount of shares). Also worth noting, this is the price per share of the actual version signals, NOT name signals (Automigrate shares). - Added
manifest
. Raw string of the manifest file located atipfsHash
on the IPFS network. - Added
network
. Link to theNetwork
entity that this deployment indexes. (Deployments that index contracts from themainnet
network will have a link to themainnet
Network
entity here, for example). - Added
schemaIpfsHash
.Qm...
string (IPFS hash) of the schema file for this deployment. - Added
schema
. Raw string of the schema file located atschemaIpfsHash
on the IPFS network.
- Added
Allocation
- Added
createdAtBlockNumber
. Block number at which the allocation was created. closedAtEpoch
is now optional. Should be null until theAllocation
is closed.- Added
closedAt
. Timestamp for the closing of theAllocation
- Added fields to differentiate protocol cuts at the start of the
Allocation
and when it's closed.indexingRewardCutAtStart
indexingRewardEffectiveCutAtStart
queryFeeCutAtStart
queryFeeEffectiveCutAtStart
indexingRewardCutAtClose
indexingRewardEffectiveCutAtClose
indexingRewardCutAtStart
queryFeeCutAtClose
queryFeeEffectiveCutAtClose
- Added
Delegator
- Added fields needed to properly track if the
Delegator
entity is active or not for theactiveDelegatorCount
on theGraphNetwork
entity.stakesCount
. Total amount ofDelegatedStake
entities for thisDelegator
.activeStakesCount
. Amount of activeDelegatedStake
entities for thisDelegator
. (signalAmount > 0)
- Added
defaultDisplayName
. Should be the ENS name for this delegator, doesn't matter if it's a direct account or vesting contract.
- Added fields needed to properly track if the
Curator
- Added
totalSignal
. Represents the total amount of version signal across all bonding curves. - Added
totalSignalAverageCostBasis
. - Added
totalSignalAverageCostBasisPerSignal
. - Added new counters to track the amount of signals (both
NameSignal
andSignal
and combined) the curator owns.signalCount
activeSignalCount
nameSignalCount
activeNameSignalCount
combinedSignalCount
activeCombinedSignalCount
- Added
Signal
- Added
averageCostBasis
andaverageCostBasisPerSignal
to be on par with theNameSignal
entity. - Added created at and last updated at fields for both timestamp and block numbers
createdAt
lastUpdatedAt
createdAtBlock
lastUpdatedAtBlock
- Added
NameSignal
- Added
signal
field to represent the underlying version signal minted for that specificNameSignal
. (remember thatNameSignal.nameSignal
represents the shares of the name pool owned for thatNameSignal
, while the new field represents the amount of version signal minted for theNameSignal
, which is what is the actual shares of the bonding curve) - Deprecation notice on
averageCostBasis
andaverageCostBasisPerSignal
, since we know have new fields to differentiate the values for thenameSignal
andsignal
amounts. - Added separate fields to track average cost basis for
nameSignal
andsignal
fields.nameSignalAverageCostBasis
nameSignalAverageCostBasisPerSignal
signalAverageCostBasis
signalAverageCostBasisPerSignal
- Added
Epoch
- Added
queryFeesCollected
field to track the collected query fees during the epoch. - Added
curatorQueryFees
field to track the amount of query fees going to curators during the epoch.
- Added
- Added new entities
- Added
Network
entity. Represents the different networks that subgraphs are indexing, and has adeployments
list with all the currentSubgraphDeployment
entities that have data sources that index that specificNetwork
. - Added
SubgraphCategory
andSubgraphCategoryRelation
entities.SubgraphCategory
represents the different existing categories that aSubgraph
can belong to.SubgraphCategoryRelation
is an auxiliary entity to represent the many-to-many nature of the relationship without recurring to manual arrays. - Added
NameSignalSubgraphRelation
entity. Auxiliary entity for batch updates for curatorNameSignal
entities. - Added entities from the
token-distribution
subgraph to enable ENS names on vesting contract wallets. (TokenManager
,AuthorizedFunction
,TokenLockWallet
andRevocability
enum). They should be replaced with a cleaner solution in a future refactor, since it's not ideal to keep them here.
- Added
Many minor updates
We have updated new small features, as well as bug fixes over the last months.
The following bugs were fixed:
- Fix an epoch calculation error on
handleEpochLengthUpdate
- Added the
handleRewardsDenyListUpdated
to the manifest. It was not there, and thus, not triggering when we were testing it.
The following was changed:
- Swapped stakedIndexersCount subtraction from withdraw to locked
- Refactored the
updateDelegationExchangeRate()
code to be cleaner, and truncate all delegation exchange ratios to 18 decimals. This makes it much easier to handle in the front end, and anything past 18 decimals was useless information since we have no precision beyond the smallest unit of GRT.
The following was added to the subgraph:
- Query fee effective cut. This is very similar to indexer reward effective cut, which is explained well in 0.7.0's tag. This is the same, but for query fees
- Added
lastDelegatedAt
andlastUndelegatedAt
for theDelegatedStake
entity - Added github actions for deploying the subgraph when specific branches (testnet, mainnet, mainnet-staging) are updated
Advanced indexer metrics and cleanup
This release adds in the following fields on the Indexer
entity:
indexerRewardsOwnGenerationRatio
ownStakeRatio
delegatedStakeRatio
indexingRewardEffectiveCut
indexingRewardOverdelegationDilution
Which are explained in more detail in this PR:
#84
It does some cleaning up of the subgraph too, from this PR : #80
Main things to highlight from the cleanup PR:
Schema fields removed:
- Removed
graphNetwork.indexingRewardsPerEpoch
- This field was old and should have not been in the schema - Removed
subgraph.totalIndexingRewards
andsubgraph.totalQueryFeesCollected
- Both are a bit too complex to implement at the moment and are misleading to consumers of the subgraph, so we removed for now - Removed
allocation.price
- was not in use
Schema comments updated:
- Fields not in use have had their comments updated to
NOT IMPLEMENTED
- Some fields were a bit confusing, in that people could not tell if it was a cumulative value (always adding, like a counter), or a current value that is in line with what is stored on the blockchain. The comments for these fields now have either
CURRENT
orCUMULATIVE
on them.
Mainnet initial release
This is the release of the subgraph that went with mainnet launch on December 17th. There were minor updates between December 17th and the date of this release, January 14th. They should be considered the same.
The subgraph can still have breaking changes without warning, hence why we have not released v1.0.0. When we are comfortable with the schema, we will release v1.0.0, and then any schema changes will be deprecated, and maintained through the public process that we create.
Staging testnet subgraph phase 1
This release just updates the subgraph deployment ID, as it had the incorrect one published
This subgraph is used by the team for testing purposes. Find the npm package here:
https://www.npmjs.com/package/@graphprotocol/staging-testnet-subgraph
This package has it's own set of contracts, separate from the testnet subgraph we use for the indexers.
Testnet phase 1 subgraph
This subgraph is used by the indexers. For team testing, use the staging package. Find the npm package here:
https://www.npmjs.com/package/@graphprotocol/testnet-subgraph
This package has it's own set of contracts, separate from the staging subgraph and contracts we use for testing