Documentation ¶
Overview ¶
Package graphql provides a GraphQL interface to Ethereum node data.
Index ¶
- func New(stack *node.Node, backend ethapi.Backend, cors, vhosts []string) 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{ ... }) (Long, error)
- func (b *Block) ExtraData(ctx context.Context) (hexutil.Bytes, error)
- func (b *Block) GasLimit(ctx context.Context) (Long, error)
- func (b *Block) GasUsed(ctx context.Context) (Long, 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) (Long, 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 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{ ... }) (Long, 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) 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) (*Long, 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) (*Long, error)
- func (t *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) 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) S(ctx context.Context) (hexutil.Big, error)
- func (t *Transaction) Status(ctx context.Context) (*Long, error)
- func (t *Transaction) To(ctx context.Context, args BlockNumberArgs) (*Account, error)
- func (t *Transaction) Type(ctx context.Context) (*int32, 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 *hexutil.Uint64 }
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 *hexutil.Uint64 // 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() Long
func (*CallResult) Status ¶
func (c *CallResult) Status() Long
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 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 synchronise 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 (t *Transaction) CumulativeGasUsed(ctx context.Context) (*Long, error)
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) To ¶
func (t *Transaction) To(ctx context.Context, args BlockNumberArgs) (*Account, error)