Skip to content
Merged
Show file tree
Hide file tree
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
62 changes: 60 additions & 2 deletions packages/subgraph/schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ type ServiceProvider @entity(immutable: false) {
delegationPools: [DelegationPool!]! @derivedFrom(field: "serviceProvider")
"Provision thaw requests for this service provider"
provisionThawRequests: [ProvisionThawRequest!]! @derivedFrom(field: "serviceProvider")
"Operator authorizations for this service provider"
operatorAuthorizations: [OperatorAuthorization!]! @derivedFrom(field: "serviceProvider")

# Counts
"Number of active provisions"
Expand Down Expand Up @@ -103,6 +105,8 @@ type DataService @entity(immutable: false) {
delegationPools: [DelegationPool!]! @derivedFrom(field: "dataService")
"Provision thaw requests for this data service"
provisionThawRequests: [ProvisionThawRequest!]! @derivedFrom(field: "dataService")
"Operator authorizations for this data service"
operatorAuthorizations: [OperatorAuthorization!]! @derivedFrom(field: "dataService")

# Counts
"Active service providers with provisions to this data service"
Expand Down Expand Up @@ -224,12 +228,16 @@ type Provision @entity(immutable: false) {
}

type ProvisionFeeCut @entity(immutable: false) {
"Composite ID: provision-paymentType"
"Composite ID: serviceProvider-dataService-paymentType"
id: Bytes!

# Relationships
"Provision this fee cut belongs to"
provision: Provision!
provision: Provision
"Service provider"
serviceProvider: ServiceProvider
"Data service"
dataService: DataService

# State
"Payment type (maps to PaymentTypes enum: 0 = QueryFee, 1 = IndexingFee, 2 = IndexingReward, ...)"
Expand Down Expand Up @@ -282,3 +290,53 @@ type ProvisionThawRequest @entity(immutable: false) {
"Timestamp when entity was last updated"
updatedAt: BigInt!
}

type Operator @entity(immutable: false) {
"Operator address"
id: Bytes!

# Relationships
"Authorizations granted to this operator"
authorizations: [OperatorAuthorization!]! @derivedFrom(field: "operator")

# Counts
"Active authorizations (allowed=true)"
countAuthorizations: Int!

# Metadata
"Block number when entity was created"
createdAtBlock: BigInt!
"Timestamp when entity was created"
createdAt: BigInt!
"Block number when entity was last updated"
updatedAtBlock: BigInt!
"Timestamp when entity was last updated"
updatedAt: BigInt!
}

type OperatorAuthorization @entity(immutable: false) {
"Composite ID: operator-serviceProvider-dataService"
id: Bytes!

# Relationships
"Operator that is authorized"
operator: Operator!
"Service provider that granted the authorization"
serviceProvider: ServiceProvider
"Data service this authorization applies to"
dataService: DataService

# State
"Whether the operator is currently authorized"
allowed: Boolean!

# Metadata
"Block number when entity was created"
createdAtBlock: BigInt!
"Timestamp when entity was created"
createdAt: BigInt!
"Block number when entity was last updated"
updatedAtBlock: BigInt!
"Timestamp when entity was last updated"
updatedAt: BigInt!
}
5 changes: 4 additions & 1 deletion packages/subgraph/src/config/arbitrum-one/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { Address } from "@graphprotocol/graph-ts"
import { NetworkConfig } from "../types"
import { SERVICE_PROVIDER_ADDRESSES } from "./indexer-seed"
import { DELEGATED_INDEXER_ADDRESSES, LEGACY_INDEXER_REWARD_CUTS } from "./delegation-seed"
import { OPERATOR_SERVICE_PROVIDERS, OPERATORS } from "./operator-seed"

export const config = new NetworkConfig(
"arbitrum-one",
Expand All @@ -10,5 +11,7 @@ export const config = new NetworkConfig(
408_825_706,
SERVICE_PROVIDER_ADDRESSES,
DELEGATED_INDEXER_ADDRESSES,
LEGACY_INDEXER_REWARD_CUTS
LEGACY_INDEXER_REWARD_CUTS,
OPERATOR_SERVICE_PROVIDERS,
OPERATORS
)
227 changes: 227 additions & 0 deletions packages/subgraph/src/config/arbitrum-one/operator-seed.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,227 @@
// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY
// Regenerate with: cd packages/tools && NETWORK=arbitrum-one pnpm seed:operators
// Generated: 2026-05-18T20:24:20.323Z
// Network: arbitrum-one
// Block: 408825706
// Count: 107

// Parallel arrays: OPERATOR_SERVICE_PROVIDERS[i] authorized OPERATORS[i]
export const OPERATOR_SERVICE_PROVIDERS: string[] = [
"0x0058223c6617cca7ce76fc929ec9724cd43d4542",
"0x0058223c6617cca7ce76fc929ec9724cd43d4542",
"0x01f17c392614c7ea586e7272ed348efee21b90a3",
"0x0874e792462406dc12ee96b75e52a3bdbba3a123",
"0x089f78d8cf0a5ae1b7a581b1910a73f8cb3e4774",
"0x090f7382f9ea85c733cd501f4d87f16cb5b83ed3",
"0x0b9d582b7fdd387ba13ad7f453d49af255a8ed5e",
"0x0ee85c30ff1797d9f041261b88c4a58d6d68fbbf",
"0x0fd8fd1dc8162148cb9413062fe6c6b144335dbf",
"0x17def1a43a323c711c7a32101ecf41e58eff54a2",
"0x19a4fe7d0c76490cca77b45580846cdb38b9a406",
"0x1b7e0068ca1d7929c8c56408d766e1510e54d98d",
"0x1b92e4cba0f82c85c1298af861247849988c788c",
"0x2121bc6437100fc21d19a9eea30898419e020afa",
"0x269ebeee083ce6f70486a67dc8036a889bf322a9",
"0x2b3c7d1ef5fdfc0557934019c531d3e70d6200ae",
"0x2e15f3f0d37b191c33ee06e953c8cce4c493b47a",
"0x2e8d26e9b0d280738728e71c37bf05e70a636238",
"0x2e8d26e9b0d280738728e71c37bf05e70a636238",
"0x2f09092aacd80196fc984908c5a9a7ab3ee4f1ce",
"0x326c584e0f0eab1f1f83c93cc6ae1acc0feba0bc",
"0x32bbd16a94ebb289edceebe77f35acc82664157b",
"0x35917c0eb91d2e21bef40940d028940484230c06",
"0x35917c0eb91d2e21bef40940d028940484230c06",
"0x3717cef8020bddee7a18f4efb2bfa88fefdcb1bc",
"0x3717cef8020bddee7a18f4efb2bfa88fefdcb1bc",
"0x3717cef8020bddee7a18f4efb2bfa88fefdcb1bc",
"0x3717cef8020bddee7a18f4efb2bfa88fefdcb1bc",
"0x3863a65ce278a240f9aa2a4b4a48493be59e6139",
"0x38f412c8d6346a17a53ff9ceecd2e01acecd27c0",
"0x3b9ba748691f135b71582dc3292e5e3ed7e13341",
"0x3e1536fc83cd5bed83a521a26034ff3e59c6a7c4",
"0x3f74870f80ff7449fe4c6ff257da5fa72734c970",
"0x474e571ab6dd77489ec3c7ddf9cbc893fcba684c",
"0x4d67938e9b07681526fe0345a45b770bba88c659",
"0x4e5c87772c29381bcabc58c3f182b6633b5a274a",
"0x51637a35f7f054c98ed51904de939b9561d37885",
"0x53dbbc9d916b1840a2c4c26b150ba2e13f36e10f",
"0x550c1f4814a85aa10f5f061ca8c45e2ee9620226",
"0x59749d1fa9635cd0413aeff5ee295490a7e87f54",
"0x5af569b692b0598721461027dbbecde74d465d99",
"0x5b3c8f7245dfbd9bea22d9c4b975df60a638e5a3",
"0x5ddee9720e17aad28febb55643cd8ab50c51c60b",
"0x600f2b53719e1dbacf340572b31a9df9921b82fa",
"0x60df13b7a598772e992f9365fba5ed6e1529e79a",
"0x63c9dc729ba7a22bb8605216b24a34b902e5fe94",
"0x6f3ce93a09f30f18d728d2364268b5fe9444b89e",
"0x6f8a032b4b1ee622ef2f0fc091bdbb98cfae81a3",
"0x6f9bb7e454f5b3eb2310343f0e99269dc2bb8a1d",
"0x735f422922bd4d459ea491f46e1bb9295b89f961",
"0x74dbb201ecc0b16934e68377bc13013883d9417b",
"0x74dbb201ecc0b16934e68377bc13013883d9417b",
"0x7bb834017672b1135466661d8dd69c5dd0b3bf51",
"0x8bbe94c2894f76406568dfb44e905dac4b7df699",
"0x8cc22436ba6f07a4d5dd2043e3109267eee5aab8",
"0x8d632dfc2454d624910fe982e85a5b15d2ae93c5",
"0x8f689a83dd52eaa1d5ad6a40c46189b4a0d70b06",
"0x9082f497bdc512d08ffde50d6fce28e72c2addcf",
"0x918fcc24e6b7f5ec73b4cf766e2393d8fe707541",
"0x920fdeb00ee04dd72f62d8a8f80f13c82ef76c1e",
"0x9611663c4057cbfc9d2589a04fcac24dbd38612d",
"0x9af3fc811a66dbbca44acce94906d8743f9cf0d0",
"0x9da1017766bfeb2835db4f811516eea68996538b",
"0xa01b06b0e9feb016d5ab669ce89d059bc666e569",
"0xa181d0f242b3730f8a244cc94eda05faf17a43e8",
"0xa28a99b0219a34142a9398a19460fcd69250a2b2",
"0xa28a99b0219a34142a9398a19460fcd69250a2b2",
"0xa4d629ba2ffb3321008d8cec37cca077696bf24d",
"0xa6ff993e0f6253f1b7f55c873577a2f0f0ceb325",
"0xaa988dcb035518bc0e20082a3148a5d3dfd1776d",
"0xaddd3e23599d2b7267067afbcd18830aefca640a",
"0xae9bfdf9eeec808f4f3f6f455cb1968445cc6f2f",
"0xb4b4570df6f7fe320f10fdfb702dba7e35244550",
"0xb54c7c9fa1a51300e6054b70ae9952c1fb2800b4",
"0xb8ca929e2bd96548cabcabc56cfc9a5147cef0ff",
"0xbdfb5ee5a2abf4fc7bb1bd1221067aef7f9de491",
"0xc55c63563efb36f7cc65ac3060c52987c6694b37",
"0xc9014686f6336ad558b539565d5dff840b339082",
"0xd9819426c82e2b8fc58b9b62a78efe93f78077c6",
"0xda20dde459c8d918f81566995d899a046d4d8503",
"0xda20dde459c8d918f81566995d899a046d4d8503",
"0xdc53e62df89fd07b31ed4ff886397b9e7ae4625e",
"0xdc7daef4d0751a9f6ec28b06d6d9475b13eb0918",
"0xdeb712db301285ed483ef9e02dd08a1980f273f1",
"0xdec965f0604125be05cd8a136c85d02ef344d61a",
"0xdecba5154aab37ae5e381a19f804f3af4d1bcbb5",
"0xe0ceec6daa59cc951f3f71d6fc4221e55ef6c386",
"0xe13840a2e92e0cb17a246609b432d0fa2e418774",
"0xe48b586eeb81bde60f14b0b8d80ddd06c7a24720",
"0xe63e935fba572784d5aa40715e372e7948bbdb12",
"0xe6de2325ef1aac1f058fae59d3c38a472f569846",
"0xe91273727203bcc827521fc8b0c762d435c3c5d0",
"0xe9e284277648fcdb09b8efc1832c73c09b5ecf59",
"0xeccdf8231326a9c5aad32df76a633aaa4c49b104",
"0xedca8740873152ff30a2696add66d1ab41882beb",
"0xedca8740873152ff30a2696add66d1ab41882beb",
"0xeeeee689aa442c607105f29f06d00d2f748776b2",
"0xf00f7157fa8fd0420b87956d46058a16b2f23adc",
"0xf03e9a7e40f09772c3c368b9de14c6d7370717b9",
"0xf435dee64819590c1a3f5913822e1c04afebe695",
"0xf7793bf9561c32ffbac603ce572fa55643f9cf72",
"0xf9123292b4d958c53aaad8c5df0138ee0e62944b",
"0xf92f430dd8567b0d466358c79594ab58d919a6d4",
"0xfb168335f5a3868a03696904ed38fa95fd167c0e",
"0xfc842f81490dcb37e82d416b2d28327dfb24ba9a",
"0xfc842f81490dcb37e82d416b2d28327dfb24ba9a",
"0xfeff9093f6b32d0e5cddba743b06a1fedb87c004",
]

export const OPERATORS: string[] = [
"0xcb587db2cdce8d70fbd57bb3a0a23cbd51cadc23",
"0xf1f36b1aab2f68c44e211ea655ee3a6576ee1cf4",
"0x21cad52a1e4d16376bc56c37e2a4f53c30c34790",
"0x81dfde2e53f282f7bd774d469e682abf1a33c32c",
"0x1328d449ec11a3ee466016b642ea8ff85870ebb9",
"0x008847c358253ac18ae6bf787954d9fc57e87e1f",
"0x9aec09debdac0dd52a5d7b15b4ae90fb20d2b6a2",
"0xd0d121095d212d0d2bb7867313a762ce8e89ed8a",
"0x7a361db89c9419699def3349b5f6f1cba294267d",
"0xb31afa14502b13287c1c0bdb955b34bb1189573a",
"0xe4b3fb76309adcd591f68213617fa225a18ecbab",
"0xd96d4b52cab35cf3df1d58765bd2ea7cb1fb6016",
"0xa4a5b542d7d0a820f5f90834ca65e0bb343d44ea",
"0xbe5f65208a0a01e79fdb6582d02cade4984fd9bf",
"0xe4401820cb60376ece83070d4bf133f12a1043bb",
"0xaa586c2ac571c3ca8cebd8520008ccdfab91af29",
"0x81c02eb4adc18686e8c1f4cd18bd6a3c3cc27bd5",
"0x31c1439b961645a3b2e04b987f275b8cc16e8bb6",
"0xd343449961f5a4f0b2b7fbcc4e8cfff86f57bfb1",
"0xf100e16d856bedee8ae0e0eb4f568f7aab21b5b7",
"0xd084de43362e1d67460864d1ed3ac2f435d93e26",
"0x2a3be7ac64e532e9a840c728a4750c5b8fea618e",
"0x898b80b6c99f8099f7244053cc604ccdff55212e",
"0xd4b1775640d9c4ba2ce5bf2b3201b35c4031aa47",
"0x1e1f84c07e0471fc979f6f08228b0bd34cda9e54",
"0x471c477a7624d456e6a93924385235c353d537bf",
"0x488d2b84c9edc11f4caa47ba6795cf3353f2aea1",
"0xa3c29d40eda9ab40afd6b9cfa55090602fa2bbc6",
"0x7db53586e8facac79ca934494bb2230171162c9e",
"0x7fbdfa921f014f00761d60fbc26e288fd0d3a053",
"0x9ca90235aa00c825785ec87dbdcc7921c03c3eed",
"0xa38bd08c240815230fea21f81d67f443f9651192",
"0x721bc8d6f143744c6febfc496cb6a8d66ce078a8",
"0x99161027ef082a5649ad244ddc4d52f264f89348",
"0x04a969d08da88024997127dd0748ad3b51955839",
"0xc56961836857210e256d71c91a62e90865075380",
"0x147d9046efc8184247dfb2e048feac7a4f3aa1e2",
"0xc326fffb2afece3510ebe11c540549a6f6b302d1",
"0xccb880d9e1034508a834ac5b9bc3aaa218f8f4e6",
"0xe462ddeac1af0e7521acc0c29964d2db627a59c2",
"0x63f59ef3211ba89626e9efdf91457cf1513a0af5",
"0x0c154108df7020f281be6ff2742525d0abce6036",
"0x1282e5da81954cd69d69e265c9ea9255fe504ed4",
"0x02b6e83e39357582df034e85fae232df327b2a89",
"0x0262a6546eeadc954567b4ba97bbf387ebe040b9",
"0xd6c6329d76be22ed86292ed26fd462b001b83a9f",
"0x89c8179a69344ad27cb35cda25e6d619a311afb1",
"0x2963e4767f5fa21f637bb11fafa619fead21f4d1",
"0x6309487599498698b459c34c466aeb29f25435c1",
"0x9294e7e1639e267165ed03b08e904184f8ac457f",
"0x64e4e9e67faef83532f5756ea691c0f5188011d4",
"0xd48aa9ec9f9ca173191102f255022ce7f811b77b",
"0x8a6573089682b8d224af27f83a375ef6048d317d",
"0x85e02223c30250c66aef6413f6e04087a988c325",
"0x5bcbb94c65cbbd952463a63890c236294c897d3e",
"0x703d5b484dfed095eade0fc6456eebef9d87c71a",
"0x2e6d49c98ceee380548a67c14897576bc132dcd8",
"0x44329367298f28cd32e26b73ff64bdd172379a94",
"0xe151a98ca6788b7103008c2e4061f23fda6d2042",
"0x7eb26055fd210b1a80cb5e6c0caac1d6399f90ed",
"0xe426e658bedc8d0afe9d0a57ff705dd42a50c6fa",
"0x8221f968c7bf43938f262bb2ecb70f8e0dbf06d2",
"0xda8e435d1659558a8813eadf36945be8041d7374",
"0x545f313f5cdf901cfda0c1319a43604dcfc71f39",
"0xf613218a0b702e983fbbfadd3c7105e7dcdf0589",
"0x0d3de01db98be8b9c7ce5745ae5699380947165f",
"0xe647ef7fbbdf2c49cf71f656e56f6a82b5600466",
"0xdd0caf9acb11e753f8d86b2fc7f537463135d678",
"0x80a8733485048ff51e2481016734a49358db5f1f",
"0x16a327ada54f947c1ae6ca75ab23065a8bd3dd5d",
"0x3f1ba83607efc8ef9c4fb95e55c6aaa2cc2b2b88",
"0x6374212f939d626b72a50d961c82b23e769c7ad5",
"0xc3874c96bd6f1577df94a56e3462afb414de7d55",
"0xa3d7ea74d91dde6438551446594fa2675a275f5a",
"0x8a1a6137047218f5a38f33580f73f4be10f79f6c",
"0x8b34351ad4e6fb049c14adfc90ac5ac8923ba900",
"0xfc34b8b6ae8fc85a11fcac84fe0713407e23ac0d",
"0xf1d87a5da43676393ca4c621435f612a874f6257",
"0x4f0107cb03b15a4eebd803f8c4ef53a5c2b65cfe",
"0x48032c6a1e521fbae6412f499126257999fe46f8",
"0xe104763679499bcd9c788eef027315a2f1bd085a",
"0xb3a0ddf05b7b89af588173a92f8c0089aa5a72fd",
"0xcbb88411bdef7b877c16e68ea2b548d32e200266",
"0xaa1bea18d2dd7f5e73a29bc9ed7dfe7eb58c8321",
"0x9c8e14065758e52402b79520f838d70aaaaa62a8",
"0xc4e706f488751cecc0a184e5a7acff5f35b0d5bb",
"0xecede8fe27400f2ae144d6e1e30a7f387f8fa1ea",
"0xf6bad1dca165c492006317b4f6e03a1ef5414e23",
"0x532cb76a4002e9553b1b7e307a609cf0ea19578a",
"0x5d8006da36be0fe9ef389400b804ce6e52a3940e",
"0x21628b7c040d8380dfac7e91ea1b827c51b048a1",
"0x0a00b06b5bac696e9321ba1e29f05408e7c32f8c",
"0xa404aa997f72de2a2df3adc34ae33c898c1193c4",
"0x2cbfd91c6d7a04064d1930815c6a0f0c4f3de119",
"0x1e1f84c07e0471fc979f6f08228b0bd34cda9e54",
"0x49d581486438aad93f4114084ac5b09a8b7c9685",
"0xcd09fc5fc328dfeb2792248b03fee9a0c0b216aa",
"0xb0cccab26193c6df7d9997a88e146b0f0a7d3e36",
"0xfcd4b1b00d1fd1fc8035a196c7fdb28715c393cd",
"0xdab89eb9985e1dffdb1a7e3385f91be9fe70a7e3",
"0xdb9ae7fe5daf3db0edc5bca2bf712fee60e4b515",
"0xd1e69306435ecb5ccde99d58d8c80fa76beadcf6",
"0x4ecb19a2ac49c5decfa5e65b6669c7e7fab5da9d",
"0xd48c6bdfc69fac9352e4bee7adf13b38c6da1033",
"0x0c08b61c622b9097e3e06963371c1b8dd3e5ab9c",
"0x7af775d066afe4453c10ad438ff44c9a960847b1",
"0x2e916eb44545fd90a9f9cc540d741c4d2f34551a",
]
5 changes: 4 additions & 1 deletion packages/subgraph/src/config/test/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { Address } from "@graphprotocol/graph-ts"
import { NetworkConfig } from "../types"
import { SERVICE_PROVIDER_ADDRESSES } from "./indexer-seed"
import { DELEGATED_INDEXER_ADDRESSES, LEGACY_INDEXER_REWARD_CUTS } from "./delegation-seed"
import { OPERATOR_SERVICE_PROVIDERS, OPERATORS } from "./operator-seed"

export const config = new NetworkConfig(
"test",
Expand All @@ -10,5 +11,7 @@ export const config = new NetworkConfig(
1,
SERVICE_PROVIDER_ADDRESSES,
DELEGATED_INDEXER_ADDRESSES,
LEGACY_INDEXER_REWARD_CUTS
LEGACY_INDEXER_REWARD_CUTS,
OPERATOR_SERVICE_PROVIDERS,
OPERATORS
)
3 changes: 3 additions & 0 deletions packages/subgraph/src/config/test/operator-seed.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// Test operator seed - empty for unit tests
export const OPERATOR_SERVICE_PROVIDERS: string[] = []
export const OPERATORS: string[] = []
10 changes: 9 additions & 1 deletion packages/subgraph/src/config/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ export class NetworkConfig {
// Parallel array with delegatedIndexerAddresses - same index = same indexer
// Used to calculate delegation rewards from legacy indexing rewards
legacyIndexerRewardCuts: i32[]
// Legacy operator authorizations at Horizon genesis
// Parallel arrays: operatorServiceProviders[i] authorized operators[i]
operatorServiceProviders: string[]
operators: string[]

constructor(
network: string,
Expand All @@ -23,7 +27,9 @@ export class NetworkConfig {
startBlock: i32,
serviceProviderAddresses: string[],
delegatedIndexerAddresses: string[],
legacyIndexerRewardCuts: i32[]
legacyIndexerRewardCuts: i32[],
operatorServiceProviders: string[],
operators: string[]
) {
this.network = network
this.horizonStakingAddress = horizonStakingAddress
Expand All @@ -32,5 +38,7 @@ export class NetworkConfig {
this.serviceProviderAddresses = serviceProviderAddresses
this.delegatedIndexerAddresses = delegatedIndexerAddresses
this.legacyIndexerRewardCuts = legacyIndexerRewardCuts
this.operatorServiceProviders = operatorServiceProviders
this.operators = operators
}
}
Loading
Loading