Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v0.22.1 #1110

Open
wants to merge 8 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 40 additions & 34 deletions docs/feature-support-matrix.md
Original file line number Diff line number Diff line change
@@ -4,40 +4,46 @@ As described in [GIP-0008](https://snapshot.org/#/council.graphprotocol.eth/prop

The matrix below reflects the canonical Council-ratified version. As outlined in GIP-00008, Council ratification is currently required for each update, which may happen at different stages of feature development and testing lifecycle.

| Subgraph Feature | Aliases | Implemented | Experimental | Query Arbitration | Indexing Arbitration | Indexing Rewards |
| -------------------------- | ------------- | ----------- | ------------ | ----------------- | -------------------- | ---------------- |
| **Core Features** | | | | | | |
| Full-text Search | | Yes | No | No | Yes | Yes |
| Non-Fatal Errors | | Yes | Yes | Yes | Yes | Yes |
| Grafting | | Yes | Yes | Yes | Yes | Yes |
| **Data Source Types** | | | | | | |
| eip155:\* | \* | Yes | No | No | No | No |
| eip155:1 | mainnet | Yes | No | Yes | Yes | Yes |
| eip155:100 | gnosis | Yes | Yes | Yes | Yes | Yes |
| near:\* | \* | Yes | Yes | No | No | No |
| cosmos:\* | \* | Yes | Yes | No | No | No |
| arweave:\* | \* | Yes | Yes | No | No | No |
| eip155:42161 | artbitrum-one | Yes | Yes | Yes | Yes | Yes |
| eip155:42220 | celo | Yes | Yes | Yes | Yes | Yes |
| eip155:43114 | avalanche | Yes | Yes | Yes | Yes | Yes |
| eip155:250 | fantom | Yes | Yes | Yes | Yes | Yes |
| eip155:137 | polygon | Yes | Yes | Yes | Yes | Yes |
| eip155:10 | optimism | Yes | Yes | Yes | Yes | Yes |
| eip155:8453 | base | Yes | Yes | Yes | Yes | Yes |
| eip155:534352 | scroll | Yes | Yes | Yes | Yes | Yes |
| eip155:59144 | linea | Yes | Yes | Yes | Yes | Yes |
| eip155:56 | bsc | Yes | Yes | Yes | Yes | Yes |
| eip155:122 | fuse | Yes | Yes | Yes | Yes | Yes |
| eip155:81457 | blast-mainnet | Yes | Yes | Yes | Yes | Yes |
| eip155:288 | boba | Yes | Yes | Yes | Yes | Yes |
| eip155:56288 | boba-bnb | Yes | Yes | Yes | Yes | Yes |
| **Data Source Features** | | | | | | |
| ipfs.cat in mappings | | Yes | Yes | No | No | No |
| ENS | | Yes | Yes | Yes | Yes | Yes |
| File data sources: Arweave | | Yes | Yes | No | Yes | Yes |
| File data sources: IPFS | | Yes | Yes | No | Yes | Yes |
| Substreams: mainnet | | Yes | Yes | Yes | Yes | Yes |
| Substreams: optimism | | Yes | Yes | Yes | Yes | Yes |
| Subgraph Feature | Aliases | Implemented | Experimental | Query Arbitration | Indexing Arbitration | Indexing Rewards |
| -------------------------- | ---------------- | ----------- | ------------ | ----------------- | -------------------- | ---------------- |
| **Core Features** | | | | | | |
| Full-text Search | | Yes | No | No | Yes | Yes |
| Non-Fatal Errors | | Yes | Yes | Yes | Yes | Yes |
| Grafting | | Yes | Yes | Yes | Yes | Yes |
| **Data Source Types** | | | | | | |
| eip155:\* | \* | Yes | No | No | No | No |
| eip155:1 | mainnet | Yes | No | Yes | Yes | Yes |
| eip155:100 | gnosis | Yes | Yes | Yes | Yes | Yes |
| near:\* | \* | Yes | Yes | No | No | No |
| arweave:\* | \* | Yes | Yes | No | No | No |
| eip155:42161 | artbitrum-one | Yes | Yes | Yes | Yes | Yes |
| eip155:42220 | celo | Yes | Yes | Yes | Yes | Yes |
| eip155:43114 | avalanche | Yes | Yes | Yes | Yes | Yes |
| eip155:250 | fantom | Yes | Yes | Yes | Yes | Yes |
| eip155:137 | polygon | Yes | Yes | Yes | Yes | Yes |
| eip155:10 | optimism | Yes | Yes | Yes | Yes | Yes |
| eip155:8453 | base | Yes | Yes | Yes | Yes | Yes |
| eip155:534352 | scroll | Yes | Yes | Yes | Yes | Yes |
| eip155:59144 | linea | Yes | Yes | Yes | Yes | Yes |
| eip155:56 | bsc | Yes | Yes | Yes | Yes | Yes |
| eip155:122 | fuse | Yes | Yes | Yes | Yes | Yes |
| eip155:81457 | blast-mainnet | Yes | Yes | Yes | Yes | Yes |
| eip155:288 | boba | Yes | Yes | Yes | Yes | Yes |
| eip155:56288 | boba-bnb | Yes | Yes | Yes | Yes | Yes |
| eip155:7777777 | zora | Yes | Yes | Yes | Yes | Yes |
| eip155:34443 | mode | Yes | Yes | Yes | Yes | Yes |
| eip155:1284 | moonbeam | Yes | Yes | Yes | Yes | Yes |
| eip155:30 | rootstock | Yes | Yes | Yes | Yes | Yes |
| eip155:1101 | polygon-zkevm | Yes | Yes | Yes | Yes | Yes |
| eip155:421614 | arbitrum-sepolia | Yes | Yes | Yes | Yes | Yes |
| eip155:324 | zksync-era | Yes | Yes | Yes | Yes | Yes |
| **Data Source Features** | | | | | | |
| ipfs.cat in mappings | | Yes | Yes | No | No | No |
| ENS | | Yes | Yes | Yes | Yes | Yes |
| File data sources: Arweave | | Yes | Yes | No | Yes | Yes |
| File data sources: IPFS | | Yes | Yes | No | Yes | Yes |
| Substreams: mainnet | | Yes | Yes | Yes | Yes | Yes |
| Substreams: optimism | | Yes | Yes | Yes | Yes | Yes |

The accepted `graph-node` version range must always be specified; it always comprises the latest available version and the one immediately preceding it.
The latest for the feature matrix above:
4 changes: 2 additions & 2 deletions docs/networks/arbitrum-sepolia.md
Original file line number Diff line number Diff line change
@@ -7,8 +7,8 @@ The Graph Network's testnet is on Arbitrum Sepolia (eip155:421614). Sepolia netw
| Component | Release |
| ------------------ | ------------------------------------------------------------------------------------ |
| contracts | [5.3.3](https://github.com/graphprotocol/contracts/releases/tag/v5.3.3) |
| indexer-agent | [0.21.11](https://github.com/graphprotocol/indexer/releases/tag/v0.21.11) |
| indexer-cli | [0.21.11](https://github.com/graphprotocol/indexer/releases/tag/v0.21.11) |
| indexer-agent | [0.22.1](https://github.com/graphprotocol/indexer/releases/tag/v0.22.1) |
| indexer-cli | [0.22.1](https://github.com/graphprotocol/indexer/releases/tag/v0.22.1) |
| indexer-service-rs | [1.0.0](https://github.com/graphprotocol/indexer-rs/releases/tag/v1.0.0) |
| tap-agent | [1.0.0](https://github.com/graphprotocol/indexer-rs/releases/tag/v1.0.0) |
| graph-node | [0.35.1](https://github.com/graphprotocol/graph-node/releases/tag/v0.35.1) |
2 changes: 1 addition & 1 deletion lerna.json
Original file line number Diff line number Diff line change
@@ -4,5 +4,5 @@
],
"npmClient": "yarn",
"useWorkspaces": true,
"version": "0.21.11"
"version": "0.22.1"
}
4 changes: 2 additions & 2 deletions packages/indexer-agent/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@graphprotocol/indexer-agent",
"version": "0.21.11",
"version": "0.22.1",
"description": "Indexer agent",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -30,7 +30,7 @@
},
"dependencies": {
"@graphprotocol/common-ts": "2.0.11",
"@graphprotocol/indexer-common": "^0.21.11",
"@graphprotocol/indexer-common": "^0.22.1",
"@thi.ng/heaps": "^1.3.1",
"axios": "0.26.1",
"bs58": "5.0.0",
41 changes: 15 additions & 26 deletions packages/indexer-agent/src/agent.ts
Original file line number Diff line number Diff line change
@@ -329,33 +329,24 @@ export class Agent {
sequentialTimerMap(
{ logger, milliseconds: requestIntervalLarge },
async () => {
const deployments = await this.multiNetworks.map(
async ({ network }) => {
if (
this.deploymentManagement === DeploymentManagementMode.AUTO ||
network.networkMonitor.poiDisputeMonitoringEnabled()
) {
logger.trace('Fetching active deployments')
const assignments =
await this.graphNode.subgraphDeploymentsAssignments(
SubgraphStatus.ACTIVE,
)
return assignments.map(assignment => assignment.id)
} else {
logger.info(
"Skipping fetching active deployments fetch since DeploymentManagementMode = 'manual' and POI tracking is disabled",
)
return []
}
},
)
return deployments.values
if (this.deploymentManagement === DeploymentManagementMode.AUTO) {
logger.debug('Fetching active deployments')
const assignments =
await this.graphNode.subgraphDeploymentsAssignments(
SubgraphStatus.ACTIVE,
)
return assignments.map(assignment => assignment.id)
} else {
logger.info(
"Skipping fetching active deployments fetch since DeploymentManagementMode = 'manual' and POI tracking is disabled",
)
return []
}
},
{
onError: error =>
logger.warn(
`Failed to obtain active deployments, trying again later`,
{ error },
`Failed to obtain active deployments, trying again later ${error}`,
),
},
)
@@ -554,7 +545,6 @@ export class Agent {
networkDeploymentAllocationDecisions,
}).tryMap(
async ({ indexingRules, networkDeploymentAllocationDecisions }) => {
logger.trace('Resolving target deployments')
const targetDeploymentIDs: Set<SubgraphDeploymentID> =
consolidateAllocationDecisions(networkDeploymentAllocationDecisions)

@@ -576,8 +566,7 @@ export class Agent {
{
onError: error =>
logger.warn(
`Failed to obtain target deployments, trying again later`,
{ error },
`Failed to obtain target deployments, trying again later ${error}`,
),
},
)
2 changes: 1 addition & 1 deletion packages/indexer-agent/src/commands/start.ts
Original file line number Diff line number Diff line change
@@ -38,7 +38,7 @@ import { AgentConfigs } from '../types'
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export type AgentOptions = { [key: string]: any } & Argv['argv']

const DEFAULT_SUBGRAPH_MAX_BLOCK_DISTANCE = 0
const DEFAULT_SUBGRAPH_MAX_BLOCK_DISTANCE = 1000
const SUGGESTED_SUBGRAPH_MAX_BLOCK_DISTANCE_ON_L2 =
50 + DEFAULT_SUBGRAPH_MAX_BLOCK_DISTANCE
const DEFAULT_SUBGRAPH_FRESHNESS_SLEEP_MILLISECONDS = 5_000
4 changes: 2 additions & 2 deletions packages/indexer-cli/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@graphprotocol/indexer-cli",
"version": "0.21.11",
"version": "0.22.1",
"description": "Indexer CLI for The Graph Network",
"main": "./dist/cli.js",
"files": [
@@ -27,7 +27,7 @@
},
"dependencies": {
"@graphprotocol/common-ts": "2.0.11",
"@graphprotocol/indexer-common": "^0.21.11",
"@graphprotocol/indexer-common": "^0.22.1",
"@iarna/toml": "2.2.5",
"@thi.ng/iterators": "5.1.74",
"@urql/core": "3.1.0",
2 changes: 1 addition & 1 deletion packages/indexer-cli/src/commands/indexer/actions/queue.ts
Original file line number Diff line number Diff line change
@@ -28,7 +28,7 @@ ${chalk.bold(

${chalk.dim('Options:')}

-h, --help Show usage informatio
-h, --help Show usage information
-n, --network <STRING> [Required] The protocol network for this action (mainnet, arbitrum-one, sepolia, arbitrum-sepolia)
-o, --output table|json|yaml Choose the output format: table (default), JSON, or YAML
-s, --source <STRING> Specify the source of the action decision
2 changes: 1 addition & 1 deletion packages/indexer-common/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@graphprotocol/indexer-common",
"version": "0.21.11",
"version": "0.22.1",
"description": "Common library for Graph Protocol indexer components",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
4 changes: 3 additions & 1 deletion packages/indexer-common/src/indexer-management/actions.ts
Original file line number Diff line number Diff line change
@@ -275,6 +275,8 @@ export class ActionManager {
try {
this.executeBatchActionsPromise = this.executeApprovedActionsInner(network)
updatedActions = await this.executeBatchActionsPromise
} catch (error) {
this.logger.error(`Failed to execute batch of approved actions -> ${error}`)
} finally {
this.executeBatchActionsPromise = undefined
}
@@ -340,7 +342,7 @@ export class ActionManager {
}
// mark all approved actions as PENDING, this serves as a lock on other processing of them
await this.markActions(approvedActions, transaction, ActionStatus.PENDING)
return prioritizedActions
return approvedActions
},
)

10 changes: 10 additions & 0 deletions packages/indexer-common/src/indexer-management/types.ts
Original file line number Diff line number Diff line change
@@ -189,6 +189,11 @@ export const Caip2ByChainAlias: { [key: string]: string } = {
'blast-mainnet': 'eip155:81457',
boba: 'eip155:288',
'boba-bnb': 'eip155:56288',
zora: 'eip155:7777777',
mode: 'eip155:34443',
rootstock: 'eip155:30',
'polygon-zkevm': 'eip155:1101',
'zksync-era': 'eip155:324',
}

export const Caip2ByChainId: { [key: number]: string } = {
@@ -214,6 +219,11 @@ export const Caip2ByChainId: { [key: number]: string } = {
81457: 'eip155:81457',
288: 'eip155:288',
56288: 'eip155:56288',
7777777: 'eip155:7777777',
34443: 'eip155:34443',
30: 'eip155:30',
1101: 'eip155:1101',
324: 'eip155:324',
}

/// Unified entrypoint to resolve CAIP ID based either on chain aliases (strings)
4 changes: 2 additions & 2 deletions packages/indexer-common/src/sequential-timer.ts
Original file line number Diff line number Diff line change
@@ -93,7 +93,7 @@ export function sequentialTimerReduce<T, U>(
}
}
// initial call
setTimeout(work, milliseconds)
work()
return output
}

@@ -152,6 +152,6 @@ export function sequentialTimerMap<U>(
}

// initial call
setTimeout(work, milliseconds)
work()
return output
}
Loading