Documentation ¶
Overview ¶
Package graphql provides a GraphQL interface to Ethereum node data.
Index ¶
- func New(stack *node.Node, backend ethapi.Backend, filterSystem *filters.FilterSystem, ...) error
- type AccessTuple
- type Account
- func (a *Account) Address(ctx context.Context) (common.Address, error)
- func (a *Account) Balance(ctx context.Context) (hexutil.Big, error)
- func (a *Account) Code(ctx context.Context) (hexutil.Bytes, error)
- func (a *Account) Storage(ctx context.Context, args struct{ ... }) (common.Hash, error)
- func (a *Account) TransactionCount(ctx context.Context) (hexutil.Uint64, error)
- type Block
- func (b *Block) Account(ctx context.Context, args struct{ ... }) (*Account, error)
- func (b *Block) BaseFeePerGas(ctx context.Context) (*hexutil.Big, error)
- func (b *Block) Call(ctx context.Context, args struct{ ... }) (*CallResult, error)
- func (b *Block) Difficulty(ctx context.Context) (hexutil.Big, error)
- func (b *Block) EstimateGas(ctx context.Context, args struct{ ... }) (hexutil.Uint64, error)
- func (b *Block) ExtraData(ctx context.Context) (hexutil.Bytes, error)
- func (b *Block) GasLimit(ctx context.Context) (hexutil.Uint64, error)
- func (b *Block) GasUsed(ctx context.Context) (hexutil.Uint64, error)
- func (b *Block) Hash(ctx context.Context) (common.Hash, error)
- func (b *Block) Logs(ctx context.Context, args struct{ ... }) ([]*Log, error)
- func (b *Block) LogsBloom(ctx context.Context) (hexutil.Bytes, error)
- func (b *Block) Miner(ctx context.Context, args BlockNumberArgs) (*Account, error)
- func (b *Block) MixHash(ctx context.Context) (common.Hash, error)
- func (b *Block) NextBaseFeePerGas(ctx context.Context) (*hexutil.Big, error)
- func (b *Block) Nonce(ctx context.Context) (hexutil.Bytes, error)
- func (b *Block) Number(ctx context.Context) (hexutil.Uint64, error)
- func (b *Block) OmmerAt(ctx context.Context, args struct{ ... }) (*Block, error)
- func (b *Block) OmmerCount(ctx context.Context) (*hexutil.Uint64, error)
- func (b *Block) OmmerHash(ctx context.Context) (common.Hash, error)
- func (b *Block) Ommers(ctx context.Context) (*[]*Block, error)
- func (b *Block) Parent(ctx context.Context) (*Block, error)
- func (b *Block) Raw(ctx context.Context) (hexutil.Bytes, error)
- func (b *Block) RawHeader(ctx context.Context) (hexutil.Bytes, error)
- func (b *Block) ReceiptsRoot(ctx context.Context) (common.Hash, error)
- func (b *Block) StateRoot(ctx context.Context) (common.Hash, error)
- func (b *Block) Timestamp(ctx context.Context) (hexutil.Uint64, error)
- func (b *Block) TotalDifficulty(ctx context.Context) (hexutil.Big, error)
- func (b *Block) TransactionAt(ctx context.Context, args struct{ ... }) (*Transaction, error)
- func (b *Block) TransactionCount(ctx context.Context) (*hexutil.Uint64, error)
- func (b *Block) Transactions(ctx context.Context) (*[]*Transaction, error)
- func (b *Block) TransactionsRoot(ctx context.Context) (common.Hash, error)
- type BlockFilterCriteria
- type BlockNumberArgs
- type BlockType
- type CallData
- type CallResult
- type FilterCriteria
- type GraphiQL
- type Log
- type Long
- type Pending
- func (p *Pending) Account(ctx context.Context, args struct{ ... }) *Account
- func (p *Pending) Call(ctx context.Context, args struct{ ... }) (*CallResult, error)
- func (p *Pending) EstimateGas(ctx context.Context, args struct{ ... }) (hexutil.Uint64, error)
- func (p *Pending) TransactionCount(ctx context.Context) (hexutil.Uint64, error)
- func (p *Pending) Transactions(ctx context.Context) (*[]*Transaction, error)
- type Resolver
- func (r *Resolver) Block(ctx context.Context, args struct{ ... }) (*Block, error)
- func (r *Resolver) Blocks(ctx context.Context, args struct{ ... }) ([]*Block, error)
- func (r *Resolver) ChainID(ctx context.Context) (hexutil.Big, error)
- func (r *Resolver) GasPrice(ctx context.Context) (hexutil.Big, error)
- func (r *Resolver) Logs(ctx context.Context, args struct{ ... }) ([]*Log, error)
- func (r *Resolver) MaxPriorityFeePerGas(ctx context.Context) (hexutil.Big, error)
- func (r *Resolver) Pending(ctx context.Context) *Pending
- func (r *Resolver) SendRawTransaction(ctx context.Context, args struct{ ... }) (common.Hash, error)
- func (r *Resolver) Syncing() (*SyncState, error)
- func (r *Resolver) Transaction(ctx context.Context, args struct{ ... }) (*Transaction, error)
- type SyncState
- func (s *SyncState) CurrentBlock() hexutil.Uint64
- func (s *SyncState) HealedBytecodeBytes() hexutil.Uint64
- func (s *SyncState) HealedBytecodes() hexutil.Uint64
- func (s *SyncState) HealedTrienodeBytes() hexutil.Uint64
- func (s *SyncState) HealedTrienodes() hexutil.Uint64
- func (s *SyncState) HealingBytecode() hexutil.Uint64
- func (s *SyncState) HealingTrienodes() hexutil.Uint64
- func (s *SyncState) HighestBlock() hexutil.Uint64
- func (s *SyncState) StartingBlock() hexutil.Uint64
- func (s *SyncState) SyncedAccountBytes() hexutil.Uint64
- func (s *SyncState) SyncedAccounts() hexutil.Uint64
- func (s *SyncState) SyncedBytecodeBytes() hexutil.Uint64
- func (s *SyncState) SyncedBytecodes() hexutil.Uint64
- func (s *SyncState) SyncedStorage() hexutil.Uint64
- func (s *SyncState) SyncedStorageBytes() hexutil.Uint64
- type Transaction
- func (t *Transaction) AccessList(ctx context.Context) (*[]*AccessTuple, error)
- func (t *Transaction) Block(ctx context.Context) (*Block, error)
- func (t *Transaction) CreatedContract(ctx context.Context, args BlockNumberArgs) (*Account, error)
- func (t *Transaction) CumulativeGasUsed(ctx context.Context) (*hexutil.Uint64, error)
- func (t *Transaction) EffectiveGasPrice(ctx context.Context) (*hexutil.Big, error)
- func (t *Transaction) EffectiveTip(ctx context.Context) (*hexutil.Big, error)
- func (t *Transaction) From(ctx context.Context, args BlockNumberArgs) (*Account, error)
- func (t *Transaction) Gas(ctx context.Context) (hexutil.Uint64, error)
- func (t *Transaction) GasPrice(ctx context.Context) (hexutil.Big, error)
- func (t *Transaction) GasUsed(ctx context.Context) (*hexutil.Uint64, error)
- func (t *Transaction) Hash(ctx context.Context) common.Hash
- func (t *Transaction) Index(ctx context.Context) (*hexutil.Uint64, error)
- func (t *Transaction) InputData(ctx context.Context) (hexutil.Bytes, error)
- func (t *Transaction) Logs(ctx context.Context) (*[]*Log, error)
- func (t *Transaction) MaxFeePerGas(ctx context.Context) (*hexutil.Big, error)
- func (t *Transaction) MaxPriorityFeePerGas(ctx context.Context) (*hexutil.Big, error)
- func (t *Transaction) Nonce(ctx context.Context) (hexutil.Uint64, error)
- func (t *Transaction) R(ctx context.Context) (hexutil.Big, error)
- func (t *Transaction) Raw(ctx context.Context) (hexutil.Bytes, error)
- func (t *Transaction) RawReceipt(ctx context.Context) (hexutil.Bytes, error)
- func (t *Transaction) S(ctx context.Context) (hexutil.Big, error)
- func (t *Transaction) Status(ctx context.Context) (*hexutil.Uint64, error)
- func (t *Transaction) To(ctx context.Context, args BlockNumberArgs) (*Account, error)
- func (t *Transaction) Type(ctx context.Context) (*hexutil.Uint64, error)
- func (t *Transaction) V(ctx context.Context) (hexutil.Big, error)
- func (t *Transaction) Value(ctx context.Context) (hexutil.Big, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AccessTuple ¶
type AccessTuple struct {
// contains filtered or unexported fields
}
AccessTuple represents EIP-2930
func (*AccessTuple) StorageKeys ¶
func (at *AccessTuple) StorageKeys(ctx context.Context) []common.Hash
type Account ¶
type Account struct {
// contains filtered or unexported fields
}
Account represents an Ethereum account at a particular block.
type Block ¶
type Block struct {
// contains filtered or unexported fields
}
Block represents an Ethereum block. backend, and numberOrHash are mandatory. All other fields are lazily fetched when required.
func (*Block) BaseFeePerGas ¶
func (*Block) Call ¶
func (b *Block) Call(ctx context.Context, args struct { Data ethapi.TransactionArgs }) (*CallResult, error)
func (*Block) EstimateGas ¶
func (*Block) NextBaseFeePerGas ¶
func (*Block) TotalDifficulty ¶
func (*Block) TransactionAt ¶
func (*Block) TransactionCount ¶
func (*Block) Transactions ¶
func (b *Block) Transactions(ctx context.Context) (*[]*Transaction, error)
type BlockFilterCriteria ¶
type BlockFilterCriteria struct { Addresses *[]common.Address // restricts matches to events created by specific contracts // The Topic list restricts matches to particular event topics. Each event has a list // of topics. Topics matches a prefix of that list. An empty element slice matches any // topic. Non-empty elements represent an alternative that matches any of the // contained topics. // // Examples: // {} or nil matches any topic list // {{A}} matches topic A in first position // {{}, {B}} matches any topic in first position, B in second position // {{A}, {B}} matches topic A in first position, B in second position // {{A, B}}, {C, D}} matches topic (A OR B) in first position, (C OR D) in second position Topics *[][]common.Hash }
BlockFilterCriteria encapsulates criteria passed to a `logs` accessor inside a block.
type BlockNumberArgs ¶
type BlockNumberArgs struct { // TODO: Ideally we could use input unions to allow the query to specify the // block parameter by hash, block number, or tag but input unions aren't part of the // standard GraphQL schema SDL yet, see: https://github.com/graphql/graphql-spec/issues/488 Block *Long }
BlockNumberArgs encapsulates arguments to accessors that specify a block number.
func (BlockNumberArgs) NumberOr ¶
func (a BlockNumberArgs) NumberOr(current rpc.BlockNumberOrHash) rpc.BlockNumberOrHash
NumberOr returns the provided block number argument, or the "current" block number or hash if none was provided.
func (BlockNumberArgs) NumberOrLatest ¶
func (a BlockNumberArgs) NumberOrLatest() rpc.BlockNumberOrHash
NumberOrLatest returns the provided block number argument, or the "latest" block number if none was provided.
type CallData ¶
type CallData struct { From *common.Address // The Ethereum address the call is from. To *common.Address // The Ethereum address the call is to. Gas *Long // The amount of gas provided for the call. GasPrice *hexutil.Big // The price of each unit of gas, in wei. MaxFeePerGas *hexutil.Big // The max price of each unit of gas, in wei (1559). MaxPriorityFeePerGas *hexutil.Big // The max tip of each unit of gas, in wei (1559). Value *hexutil.Big // The value sent along with the call. Data *hexutil.Bytes // Any data sent with the call. }
CallData encapsulates arguments to `call` or `estimateGas`. All arguments are optional.
type CallResult ¶
type CallResult struct {
// contains filtered or unexported fields
}
CallResult encapsulates the result of an invocation of the `call` accessor.
func (*CallResult) Data ¶
func (c *CallResult) Data() hexutil.Bytes
func (*CallResult) GasUsed ¶
func (c *CallResult) GasUsed() hexutil.Uint64
func (*CallResult) Status ¶
func (c *CallResult) Status() hexutil.Uint64
type FilterCriteria ¶
type FilterCriteria struct { FromBlock *Long // beginning of the queried range, nil means genesis block ToBlock *Long // end of the range, nil means latest block Addresses *[]common.Address // restricts matches to events created by specific contracts // The Topic list restricts matches to particular event topics. Each event has a list // of topics. Topics matches a prefix of that list. An empty element slice matches any // topic. Non-empty elements represent an alternative that matches any of the // contained topics. // // Examples: // {} or nil matches any topic list // {{A}} matches topic A in first position // {{}, {B}} matches any topic in first position, B in second position // {{A}, {B}} matches topic A in first position, B in second position // {{A, B}}, {C, D}} matches topic (A OR B) in first position, (C OR D) in second position Topics *[][]common.Hash }
FilterCriteria encapsulates the arguments to `logs` on the root resolver object.
type GraphiQL ¶
type GraphiQL struct{}
GraphiQL is an in-browser IDE for exploring GraphiQL APIs. This handler returns GraphiQL when requested.
For more information, see https://github.com/graphql/graphiql.
type Log ¶
type Log struct {
// contains filtered or unexported fields
}
Log represents an individual log message. All arguments are mandatory.
func (*Log) Transaction ¶
func (l *Log) Transaction(ctx context.Context) *Transaction
type Long ¶
type Long int64
func (Long) ImplementsGraphQLType ¶
ImplementsGraphQLType returns true if Long implements the provided GraphQL type.
func (*Long) UnmarshalGraphQL ¶
UnmarshalGraphQL unmarshals the provided GraphQL query data.
type Pending ¶
type Pending struct {
// contains filtered or unexported fields
}
func (*Pending) Call ¶
func (p *Pending) Call(ctx context.Context, args struct { Data ethapi.TransactionArgs }) (*CallResult, error)
func (*Pending) EstimateGas ¶
func (*Pending) TransactionCount ¶
func (*Pending) Transactions ¶
func (p *Pending) Transactions(ctx context.Context) (*[]*Transaction, error)
type Resolver ¶
type Resolver struct {
// contains filtered or unexported fields
}
Resolver is the top-level object in the GraphQL hierarchy.
func (*Resolver) MaxPriorityFeePerGas ¶
func (*Resolver) SendRawTransaction ¶
func (*Resolver) Syncing ¶
Syncing returns false in case the node is currently not syncing with the network. It can be up-to-date or has not yet received the latest block headers from its pears. In case it is synchronizing: - startingBlock: block number this node started to synchronize from - currentBlock: block number this node is currently importing - highestBlock: block number of the highest block header this node has received from peers - syncedAccounts: number of accounts downloaded - syncedAccountBytes: number of account trie bytes persisted to disk - syncedBytecodes: number of bytecodes downloaded - syncedBytecodeBytes: number of bytecode bytes downloaded - syncedStorage: number of storage slots downloaded - syncedStorageBytes: number of storage trie bytes persisted to disk - healedTrienodes: number of state trie nodes downloaded - healedTrienodeBytes: number of state trie bytes persisted to disk - healedBytecodes: number of bytecodes downloaded - healedBytecodeBytes: number of bytecodes persisted to disk - healingTrienodes: number of state trie nodes pending - healingBytecode: number of bytecodes pending
func (*Resolver) Transaction ¶
type SyncState ¶
type SyncState struct {
// contains filtered or unexported fields
}
SyncState represents the synchronisation status returned from the `syncing` accessor.
func (*SyncState) CurrentBlock ¶
func (*SyncState) HealedBytecodeBytes ¶
func (*SyncState) HealedBytecodes ¶
func (*SyncState) HealedTrienodeBytes ¶
func (*SyncState) HealedTrienodes ¶
func (*SyncState) HealingBytecode ¶
func (*SyncState) HealingTrienodes ¶
func (*SyncState) HighestBlock ¶
func (*SyncState) StartingBlock ¶
func (*SyncState) SyncedAccountBytes ¶
func (*SyncState) SyncedAccounts ¶
func (*SyncState) SyncedBytecodeBytes ¶
func (*SyncState) SyncedBytecodes ¶
func (*SyncState) SyncedStorage ¶
func (*SyncState) SyncedStorageBytes ¶
type Transaction ¶
type Transaction struct {
// contains filtered or unexported fields
}
Transaction represents an Ethereum transaction. backend and hash are mandatory; all others will be fetched when required.
func (*Transaction) AccessList ¶
func (t *Transaction) AccessList(ctx context.Context) (*[]*AccessTuple, error)
func (*Transaction) CreatedContract ¶
func (t *Transaction) CreatedContract(ctx context.Context, args BlockNumberArgs) (*Account, error)
func (*Transaction) CumulativeGasUsed ¶
func (*Transaction) EffectiveGasPrice ¶
func (*Transaction) EffectiveTip ¶
func (*Transaction) From ¶
func (t *Transaction) From(ctx context.Context, args BlockNumberArgs) (*Account, error)
func (*Transaction) MaxFeePerGas ¶
func (*Transaction) MaxPriorityFeePerGas ¶
func (*Transaction) RawReceipt ¶
func (*Transaction) To ¶
func (t *Transaction) To(ctx context.Context, args BlockNumberArgs) (*Account, error)