Documentation ¶
Overview ¶
Package graphql provides a GraphQL interface to Ethereum node data.
Index ¶
- Variables
- func NewHandler(be *eth.EthAPIBackend) (http.Handler, error)
- func RegisterGraphQLService(stack *node.Node, endpoint string, cors, vhosts []string, ...) error
- 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) 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) 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) (*int32, 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) 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) (*int32, 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 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) (int32, 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) GasPrice(ctx context.Context) (hexutil.Big, error)
- func (r *Resolver) Logs(ctx context.Context, args struct{ ... }) ([]*Log, error)
- func (r *Resolver) Pending(ctx context.Context) *Pending
- func (r *Resolver) ProtocolVersion(ctx context.Context) (int32, error)
- 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 Service
- type SyncState
- type Transaction
- 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) 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 (tx *Transaction) Hash(ctx context.Context) common.Hash
- func (t *Transaction) Index(ctx context.Context) (*int32, error)
- func (t *Transaction) InputData(ctx context.Context) (hexutil.Bytes, error)
- func (t *Transaction) Logs(ctx context.Context) (*[]*Log, error)
- func (t *Transaction) Nonce(ctx context.Context) (hexutil.Uint64, 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) Value(ctx context.Context) (hexutil.Big, error)
Constants ¶
This section is empty.
Variables ¶
var BlockInvariantError = errors.New("Block objects must be instantiated with at least one of num or hash.")
var OnlyOnMainChainError = errors.New("This operation is only available for blocks on the canonical chain.")
Functions ¶
func NewHandler ¶
func NewHandler(be *eth.EthAPIBackend) (http.Handler, error)
NewHandler returns a new `http.Handler` that will answer GraphQL queries. It additionally exports an interactive query browser on the / endpoint.
func RegisterGraphQLService ¶
func RegisterGraphQLService(stack *node.Node, endpoint string, cors, vhosts []string, timeouts rpc.HTTPTimeouts) error
RegisterGraphQLService is a utility function to construct a new service and register it against a node.
Types ¶
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 either num or hash are mandatory. All other fields are lazily fetched when required.
func (*Block) EstimateGas ¶
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 ¶
BlockNumberArgs encapsulates arguments to accessors that specify a block number.
func (BlockNumberArgs) Number ¶
func (a BlockNumberArgs) Number() rpc.BlockNumber
Number returns the provided block number, or rpc.LatestBlockNumber 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 *hexutil.Uint64 // The amount of gas provided for the call. GasPrice *hexutil.Big // The price of each unit of gas, in wei. 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 *hexutil.Uint64 // beginning of the queried range, nil means genesis block ToBlock *hexutil.Uint64 // 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 Pending ¶
type Pending struct {
// contains filtered or unexported fields
}
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) ProtocolVersion ¶
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 synchronise from - currentBlock: block number this node is currently importing - highestBlock: block number of the highest block header this node has received from peers - pulledStates: number of state entries processed until now - knownStates: number of known state entries that still need to be pulled
func (*Resolver) Transaction ¶
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service encapsulates a GraphQL service.
func NewService ¶
func NewService(backend *eth.EthAPIBackend, endpoint string, cors, vhosts []string, timeouts rpc.HTTPTimeouts) (*Service, error)
NewService constructs a new service instance.
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) HighestBlock ¶
func (*SyncState) KnownStates ¶
func (*SyncState) PulledStates ¶
func (*SyncState) StartingBlock ¶
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) CreatedContract ¶
func (t *Transaction) CreatedContract(ctx context.Context, args BlockNumberArgs) (*Account, error)
func (*Transaction) CumulativeGasUsed ¶
func (*Transaction) From ¶
func (t *Transaction) From(ctx context.Context, args BlockNumberArgs) (*Account, error)
func (*Transaction) To ¶
func (t *Transaction) To(ctx context.Context, args BlockNumberArgs) (*Account, error)