mirror of
https://github.com/cerc-io/watcher-ts
synced 2024-11-20 04:46:20 +00:00
332 lines
6.0 KiB
GraphQL
332 lines
6.0 KiB
GraphQL
type Producer @entity {
|
|
# Address
|
|
id: ID!
|
|
|
|
# Currently added (true) or removed (false)
|
|
active: Boolean!
|
|
|
|
# Address of collector
|
|
rewardCollector: Bytes
|
|
|
|
# Total rewards, does not include pending rewards
|
|
rewards: BigInt!
|
|
|
|
# Total number of blocks produced by this producer, not including in the pending epoch
|
|
confirmedBlocks: BigInt!
|
|
|
|
# Blocks produced in pending epoch
|
|
pendingEpochBlocks: BigInt!
|
|
}
|
|
|
|
type ProducerSet @entity {
|
|
# Governance address
|
|
id: ID!
|
|
|
|
# All registered (active and inactive) producers
|
|
producers: [Producer!]!
|
|
}
|
|
|
|
enum ProducerSetChangeType {
|
|
Added
|
|
Removed
|
|
}
|
|
|
|
type ProducerSetChange @entity {
|
|
# Transaction
|
|
id: ID!
|
|
|
|
# Block change occured in (effective next block)
|
|
blockNumber: BigInt!
|
|
|
|
# Producer address
|
|
producer: Bytes!
|
|
|
|
# Set change type
|
|
changeType: ProducerSetChangeType!
|
|
}
|
|
|
|
type ProducerRewardCollectorChange @entity {
|
|
# Transaction
|
|
id: ID!
|
|
|
|
# Block change occured in (effective next block)
|
|
blockNumber: BigInt!
|
|
|
|
# Producer address
|
|
producer: Bytes!
|
|
|
|
# Address of collector
|
|
rewardCollector: Bytes!
|
|
}
|
|
|
|
type RewardScheduleEntry @entity {
|
|
# ID of transaction applying schedule plus index (e.g. 0xfoo+index1)
|
|
id: ID!
|
|
|
|
# Timestamp of reward start
|
|
startTime: BigInt!
|
|
|
|
# Duration of epochs
|
|
epochDuration: BigInt!
|
|
|
|
# Rewards per epoch
|
|
rewardsPerEpoch: BigInt!
|
|
}
|
|
|
|
type RewardSchedule @entity {
|
|
# Governance address
|
|
id: ID!
|
|
|
|
# Current block reward schedule
|
|
rewardScheduleEntries: [RewardScheduleEntry!]!
|
|
|
|
# Last finished epoch
|
|
lastEpoch: Epoch
|
|
|
|
# Current pending epoch
|
|
pendingEpoch: Epoch
|
|
|
|
# Active reward schedule entry
|
|
activeRewardScheduleEntry: RewardScheduleEntry
|
|
}
|
|
|
|
type ProducerEpoch @entity {
|
|
# Producer address + epoch, e.g. 0xf00+epochX
|
|
id: ID!
|
|
|
|
# Producer address
|
|
address: Bytes!
|
|
|
|
# Epoch
|
|
epoch: Epoch!
|
|
|
|
# Total cumulative rewards for producer (replicated to merkle tree)
|
|
totalRewards: BigInt!
|
|
|
|
# Blocks produced by this producer during this epoch
|
|
blocksProduced: BigInt!
|
|
|
|
# Ratio of blocks produced compared to those by all registered producers [0.0, 1.0]
|
|
blocksProducedRatio: BigDecimal!
|
|
}
|
|
|
|
type Block @entity {
|
|
# Block hash
|
|
id: ID!
|
|
|
|
# If produced by an active producer
|
|
fromActiveProducer: Boolean!
|
|
|
|
# Block properties
|
|
hash: Bytes!
|
|
parentHash: Bytes!
|
|
unclesHash: Bytes!
|
|
author: Bytes!
|
|
stateRoot: Bytes!
|
|
transactionsRoot: Bytes!
|
|
receiptsRoot: Bytes!
|
|
number: BigInt!
|
|
gasUsed: BigInt!
|
|
gasLimit: BigInt!
|
|
timestamp: BigInt!
|
|
difficulty: BigInt!
|
|
totalDifficulty: BigInt!
|
|
size: BigInt
|
|
}
|
|
|
|
type Epoch @entity {
|
|
# Governance address + epoch e.g. 0xf00+epochX
|
|
id: ID!
|
|
|
|
# If epoch has been finished
|
|
finalized: Boolean!
|
|
|
|
# Epoch number
|
|
epochNumber: BigInt!
|
|
|
|
# Start block
|
|
startBlock: Block
|
|
|
|
# End block
|
|
endBlock: Block
|
|
|
|
# Producer blocks
|
|
producerBlocks: BigInt!
|
|
|
|
# All blocks
|
|
allBlocks: BigInt!
|
|
|
|
# Ratio of producer blocks to all blocks [0.0, 1.0]
|
|
producerBlocksRatio: BigDecimal!
|
|
|
|
# Snapshot of rewards
|
|
producerRewards: [ProducerEpoch!]! @derivedFrom(field: "epoch")
|
|
}
|
|
|
|
type SlotClaim @entity {
|
|
# Transaction
|
|
id: ID!
|
|
|
|
# Slot
|
|
slot: Slot!
|
|
|
|
# Owner address
|
|
owner: Bytes!
|
|
|
|
# Winning bid
|
|
winningBid: BigInt!
|
|
|
|
# Old bid
|
|
oldBid: BigInt!
|
|
|
|
# Timestamp of when slot ownership started
|
|
startTime: BigInt!
|
|
|
|
# Timestamp of when slot ownership expires
|
|
expirationTime: BigInt!
|
|
|
|
# Tax rate per day
|
|
taxRatePerDay: BigDecimal!
|
|
}
|
|
|
|
type Slot @entity {
|
|
# Address of network contract + slot index, e.g. "0xF00-0"
|
|
id: ID!
|
|
|
|
# Owner address
|
|
owner: Bytes!
|
|
|
|
# Delegate address
|
|
delegate: Bytes!
|
|
|
|
# Winning bid
|
|
winningBid: BigInt!
|
|
|
|
# Old bid
|
|
oldBid: BigInt!
|
|
|
|
# Timestamp of when slot ownership started
|
|
startTime: BigInt!
|
|
|
|
# Timestamp of when slot ownership expires
|
|
expirationTime: BigInt!
|
|
|
|
# Tax rate per day
|
|
taxRatePerDay: BigDecimal!
|
|
|
|
# Slot claims
|
|
# https://thegraph.com/docs/developer/assemblyscript-migration-guide#graphql-schema
|
|
claims: [SlotClaim!]! @derivedFrom(field: "slot")
|
|
}
|
|
|
|
type Staker @entity {
|
|
# Address of staker
|
|
id: ID!
|
|
|
|
# Amount staked
|
|
staked: BigInt!
|
|
|
|
# Zero-based (zero being highest) rank of non-zero stakers, or null for a zero stake
|
|
rank: BigInt
|
|
}
|
|
|
|
type Network @entity {
|
|
# Address of contract
|
|
id: ID!
|
|
|
|
slot0: Slot
|
|
slot1: Slot
|
|
slot2: Slot
|
|
|
|
stakers: [Staker!]!
|
|
|
|
# Number of non-zero stakers
|
|
numStakers: BigInt
|
|
|
|
# Total amount staked
|
|
totalStaked: BigInt!
|
|
|
|
# Percentiles (0-99) of staker amounts
|
|
stakedPercentiles: [BigInt!]!
|
|
}
|
|
|
|
type Distributor @entity {
|
|
# Address of distributor contract
|
|
id: ID!
|
|
|
|
# The current distribution
|
|
currentDistribution: Distribution
|
|
}
|
|
|
|
type Distribution @entity {
|
|
# Transaction
|
|
id: ID!
|
|
|
|
# Distributor
|
|
distributor: Distributor!
|
|
|
|
# Timestamp distribution was applied
|
|
timestamp: BigInt!
|
|
|
|
# Distribution number
|
|
distributionNumber: BigInt!
|
|
|
|
# Root of the merkle tree containing total earned rewards
|
|
merkleRoot: Bytes!
|
|
|
|
# Metadata URI
|
|
metadataURI: String!
|
|
}
|
|
|
|
type Claim @entity {
|
|
# Transaction
|
|
id: ID!
|
|
|
|
# Timestamp claim was made
|
|
timestamp: BigInt!
|
|
|
|
# Index in the merkle tree
|
|
index: BigInt!
|
|
|
|
# Account
|
|
account: Account!
|
|
|
|
# Total amount earned
|
|
totalEarned: BigInt!
|
|
|
|
# Claimed amount by this claim
|
|
claimed: BigInt!
|
|
}
|
|
|
|
type Slash @entity {
|
|
# Transaction
|
|
id: ID!
|
|
|
|
# Timestamp slash was made
|
|
timestamp: BigInt!
|
|
|
|
# Account
|
|
account: Account!
|
|
|
|
# Slashed amount by this slash
|
|
slashed: BigInt!
|
|
}
|
|
|
|
type Account @entity {
|
|
# Account address
|
|
id: ID!
|
|
|
|
# Total amount claimed
|
|
totalClaimed: BigInt!
|
|
|
|
# Total amount slashed
|
|
totalSlashed: BigInt!
|
|
|
|
# All claims
|
|
claims: [Claim!]! @derivedFrom(field: "account")
|
|
|
|
# All slashes
|
|
slashes: [Slash!]! @derivedFrom(field: "account")
|
|
}
|
|
|