Skip to content

Releases: graphprotocol/graph-network-subgraph

Minor fixes to improve vesting contract support

22 Oct 16:52
Compare
Choose a tag to compare

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

09 Sep 19:35
Compare
Choose a tag to compare

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

15 Aug 22:02
Compare
Choose a tag to compare
  • 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 the Subgraph entity to be updated with the GRT on the underlying SubgraphDeployment.
  • Added activeSubgraphCount on GraphNetwork entity. Tracks the number of non-deprecated subgraphs.
  • Added activeCuratorCount on GraphNetwork entity. Tracks the number of active Curator entities (those that still have at least 1 active signal).
  • Updated graph-cli and graph-ts dependencies.

Hotfix

13 Jul 02:44
Compare
Choose a tag to compare
v0.9.1

Hotfix zero division on pricePerShare, curation avoid updating reserv…

Launch Update

06 Jul 21:47
Compare
Choose a tag to compare

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 and delegatorSearch).
  • Entity changes
    • GraphNetwork
      • Added ownerTaxPercentage. Percentage of the GNS migration tax payed by the subgraph owner
      • Added activeDelegatorCount. Total amount of active Delegator entities. (at least 1 DelegatedStake with signalAmount > 0)
      • Added delegationCount. Total amount of DelegatedStake entities (specific delegations).
      • Added activeDelegationCount. Total amount of active DelegatedStake entities (specific delegations with signalAmount > 0).
      • Added querySlashingPercentage and indexSlashingPercentage.
      • Deprecation notice on slashingPercentage.
    • GraphAccount
      • Added tokenLockWallets array. Used to properly recognize ENS names on vesting contract users.
    • Subgraph
      • Deprecation notice on pastVersions
      • Added versions field which should replace pastVersions. It's more performant for indexing since it doesn't need to manually handle arrays, with the small caveat that unlike pastVersions it includes the currentVersion in the list.
      • Added versionCount.
      • Added active field. Used to differentiate active and deprecated Subgraph entities.
      • Added currentSignalledTokens. Mostly for sorting purposes on the UI, should be currentSignalledTokens = signalledTokens - unsignalledTokens. It only tracks tokens signalled towards that specific subgraph name (NameSignal), so it could potentially be negative in scenarios where the NameSignal shares lose value on the bonding curve because of Signal (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 of NameSignal entities for that subgraph.
      • All IPFS related fields (description, image, codeRepository, website and displayName) are now optional.
      • Added categories list. Many-to-many list that represents all the categories that a subgraph belongs to.
    • SubgraphVersion
      • All IPFS related fields (description and label) are now optional.
    • SubgraphDeployment
      • Added ipfsHash field. Holds the Qm... string (i.e. the IPFS hash) of the manifest file for the SubgraphDeployment.
      • 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 at ipfsHash on the IPFS network.
      • Added network. Link to the Network entity that this deployment indexes. (Deployments that index contracts from the mainnet network will have a link to the mainnet 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 at schemaIpfsHash on the IPFS network.
    • Allocation
      • Added createdAtBlockNumber. Block number at which the allocation was created.
      • closedAtEpoch is now optional. Should be null until the Allocation is closed.
      • Added closedAt. Timestamp for the closing of the Allocation
      • 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
    • Delegator
      • Added fields needed to properly track if the Delegator entity is active or not for the activeDelegatorCount on the GraphNetwork entity.
        • stakesCount. Total amount of DelegatedStake entities for this Delegator.
        • activeStakesCount. Amount of active DelegatedStake entities for this Delegator. (signalAmount > 0)
      • Added defaultDisplayName. Should be the ENS name for this delegator, doesn't matter if it's a direct account or vesting contract.
    • 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 and Signal and combined) the curator owns.
        • signalCount
        • activeSignalCount
        • nameSignalCount
        • activeNameSignalCount
        • combinedSignalCount
        • activeCombinedSignalCount
    • Signal
      • Added averageCostBasis and averageCostBasisPerSignal to be on par with the NameSignal entity.
      • Added created at and last updated at fields for both timestamp and block numbers
        • createdAt
        • lastUpdatedAt
        • createdAtBlock
        • lastUpdatedAtBlock
    • NameSignal
      • Added signal field to represent the underlying version signal minted for that specific NameSignal. (remember that NameSignal.nameSignal represents the shares of the name pool owned for that NameSignal, while the new field represents the amount of version signal minted for the NameSignal, which is what is the actual shares of the bonding curve)
      • Deprecation notice on averageCostBasis and averageCostBasisPerSignal, since we know have new fields to differentiate the values for the nameSignal and signal amounts.
      • Added separate fields to track average cost basis for nameSignal and signal fields.
        • nameSignalAverageCostBasis
        • nameSignalAverageCostBasisPerSignal
        • signalAverageCostBasis
        • signalAverageCostBasisPerSignal
    • 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 new entities
      • Added Network entity. Represents the different networks that subgraphs are indexing, and has a deployments list with all the current SubgraphDeployment entities that have data sources that index that specific Network.
      • Added SubgraphCategory and SubgraphCategoryRelation entities. SubgraphCategory represents the different existing categories that a Subgraph 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 curator NameSignal entities.
      • Added entities from the token-distribution subgraph to enable ENS names on vesting contract wallets. (TokenManager, AuthorizedFunction, TokenLockWallet and Revocability enum). They should be replaced with a cleaner solution in a future refactor, since it's not ideal to keep them here.

Many minor updates

12 Apr 20:31
Compare
Choose a tag to compare

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 and lastUndelegatedAt for the DelegatedStake entity
  • Added github actions for deploying the subgraph when specific branches (testnet, mainnet, mainnet-staging) are updated

Advanced indexer metrics and cleanup

27 Jan 23:22
Compare
Choose a tag to compare

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 and subgraph.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 or CUMULATIVE on them.

Mainnet initial release

14 Jan 16:33
Compare
Choose a tag to compare

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

22 Aug 20:51
Compare
Choose a tag to compare

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

22 Aug 20:30
Compare
Choose a tag to compare

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