16 Available Tokens Data From Subgraph
note: here use RPC node to grab block close to chainhead and use it for timetravel query
# wait one minute
#Sys.sleep(60)
# Select columns needed for rewards_per_token calculation and general info
# Remove queries_per_indexer as it no longer exists
synced_subgraphs %>%
rewards_info = select(deployment, signalled_tokens, total_allocated_tokens, rewards_proportion)
# Optional: Add queries_per_indexer_48h here if needed for rewards_info analysis later
# select(deployment, signalled_tokens, total_allocated_tokens, rewards_proportion, queries_per_indexer_48h)
# Now pull total available tokens
'{
query = indexers(where: {id: "0x74dbb201ecc0b16934e68377bc13013883d9417b"}) {
stakedTokens
delegatedTokens
availableStake
}
}'
# Send POST request to the GraphQL API
POST(url, body = list(query = query), encode = "json")
response =# Parse the JSON response
content(response, "text", encoding='UTF-8')
content = fromJSON(content, flatten = TRUE)
json_data =
# get available tokens amounts
as.data.frame(json_data$data$indexers) %>%
available_tokens = mutate(available_stake = as.numeric(availableStake)/10^18,
total_stake = (as.numeric(stakedTokens)/10^18)+(as.numeric(delegatedTokens))/10^18) %>%
select(-availableStake, -delegatedTokens, -stakedTokens)
# Calculate rewards per token
$rewards_per_token = rewards_info$rewards_proportion / rewards_info$total_allocated_tokens
rewards_info
# Sort by rewards per token in descending order
rewards_info[order(-rewards_info$rewards_per_token), ] %>% filter(rewards_per_token > 0, rewards_per_token < 9999999) rewards_info =
available_tokens
## available_stake total_stake
## 1 40.28453 2716940
rewards_info
## # A tibble: 222 × 5
## deployment signalled_tokens total_allocated_tokens rewards_proportion
## <chr> <dbl> <dbl> <dbl>
## 1 Qmb7rYJk1BmDDkfYQ… 109. 1167. 0.0934
## 2 QmRT7M2wHbkFdC9N9… 704. 7023 0.100
## 3 QmVHVUTkiTEdF7Sij… 57.6 8000 0.00719
## 4 QmWaCrvdyepm1Pe6R… 49.9 9426 0.00529
## 5 QmeHZcGmj7wrJMHRr… 24.4 7000 0.00348
## 6 Qmdp89ALKgfGVTjvw… 50.0 11883 0.00421
## 7 QmQTGTovKTt3pni5i… 19.6 8005 0.00245
## 8 QmUZg8JgW7zX87tpw… 99.0 23535 0.00421
## 9 QmRJwFemjzSz1iAve… 99.0 23591 0.00420
## 10 QmTCHDfwDRJspwLKb… 99.0 23594 0.00420
## # ℹ 212 more rows
## # ℹ 1 more variable: rewards_per_token <dbl>
save.image('/root/github/indexer_analytics_tutorial/data/chapters_snapshots/08-available_tokens.RData')