graphql

package
v1.14.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 19, 2024 License: GPL-3.0 Imports: 27 Imported by: 134

Documentation

Overview

Package graphql provides a GraphQL interface to Ethereum node data.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func New

func New(stack *node.Node, backend ethapi.Backend, filterSystem *filters.FilterSystem, cors, vhosts []string) error

New constructs a new GraphQL service instance.

Types

type AccessTuple added in v1.10.2

type AccessTuple struct {
	// contains filtered or unexported fields
}

AccessTuple represents EIP-2930

func (*AccessTuple) Address added in v1.10.2

func (at *AccessTuple) Address(ctx context.Context) common.Address

func (*AccessTuple) StorageKeys added in v1.10.2

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.

func (*Account) Address

func (a *Account) Address(ctx context.Context) (common.Address, error)

func (*Account) Balance

func (a *Account) Balance(ctx context.Context) (hexutil.Big, error)

func (*Account) Code

func (a *Account) Code(ctx context.Context) (hexutil.Bytes, error)

func (*Account) Storage

func (a *Account) Storage(ctx context.Context, args struct{ Slot common.Hash }) (common.Hash, error)

func (*Account) TransactionCount

func (a *Account) TransactionCount(ctx context.Context) (hexutil.Uint64, error)

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) Account

func (b *Block) Account(ctx context.Context, args struct {
	Address common.Address
}) (*Account, error)

func (*Block) BaseFeePerGas added in v1.10.4

func (b *Block) BaseFeePerGas(ctx context.Context) (*hexutil.Big, error)

func (*Block) BlobGasUsed added in v1.13.1

func (b *Block) BlobGasUsed(ctx context.Context) (*hexutil.Uint64, error)

func (*Block) Call

func (b *Block) Call(ctx context.Context, args struct {
	Data ethapi.TransactionArgs
}) (*CallResult, error)

func (*Block) Difficulty

func (b *Block) Difficulty(ctx context.Context) (hexutil.Big, error)

func (*Block) EstimateGas

func (b *Block) EstimateGas(ctx context.Context, args struct {
	Data ethapi.TransactionArgs
}) (hexutil.Uint64, error)

func (*Block) ExcessBlobGas added in v1.13.1

func (b *Block) ExcessBlobGas(ctx context.Context) (*hexutil.Uint64, error)

func (*Block) ExtraData

func (b *Block) ExtraData(ctx context.Context) (hexutil.Bytes, error)

func (*Block) GasLimit

func (b *Block) GasLimit(ctx context.Context) (hexutil.Uint64, error)

func (*Block) GasUsed

func (b *Block) GasUsed(ctx context.Context) (hexutil.Uint64, error)

func (*Block) Hash

func (b *Block) Hash(ctx context.Context) (common.Hash, error)

func (*Block) Logs

func (b *Block) Logs(ctx context.Context, args struct{ Filter BlockFilterCriteria }) ([]*Log, error)

func (*Block) LogsBloom

func (b *Block) LogsBloom(ctx context.Context) (hexutil.Bytes, error)

func (*Block) Miner

func (b *Block) Miner(ctx context.Context, args BlockNumberArgs) (*Account, error)

func (*Block) MixHash

func (b *Block) MixHash(ctx context.Context) (common.Hash, error)

func (*Block) NextBaseFeePerGas added in v1.10.17

func (b *Block) NextBaseFeePerGas(ctx context.Context) (*hexutil.Big, error)

func (*Block) Nonce

func (b *Block) Nonce(ctx context.Context) (hexutil.Bytes, error)

func (*Block) Number

func (b *Block) Number(ctx context.Context) (hexutil.Uint64, error)

func (*Block) OmmerAt

func (b *Block) OmmerAt(ctx context.Context, args struct{ Index Long }) (*Block, error)

func (*Block) OmmerCount

func (b *Block) OmmerCount(ctx context.Context) (*hexutil.Uint64, error)

func (*Block) OmmerHash

func (b *Block) OmmerHash(ctx context.Context) (common.Hash, error)

func (*Block) Ommers

func (b *Block) Ommers(ctx context.Context) (*[]*Block, error)

func (*Block) Parent

func (b *Block) Parent(ctx context.Context) (*Block, error)

func (*Block) Raw added in v1.10.18

func (b *Block) Raw(ctx context.Context) (hexutil.Bytes, error)

func (*Block) RawHeader added in v1.10.18

func (b *Block) RawHeader(ctx context.Context) (hexutil.Bytes, error)

func (*Block) ReceiptsRoot

func (b *Block) ReceiptsRoot(ctx context.Context) (common.Hash, error)

func (*Block) StateRoot

func (b *Block) StateRoot(ctx context.Context) (common.Hash, error)

func (*Block) Timestamp

func (b *Block) Timestamp(ctx context.Context) (hexutil.Uint64, error)

func (*Block) TransactionAt

func (b *Block) TransactionAt(ctx context.Context, args struct{ Index Long }) (*Transaction, error)

func (*Block) TransactionCount

func (b *Block) TransactionCount(ctx context.Context) (*hexutil.Uint64, error)

func (*Block) Transactions

func (b *Block) Transactions(ctx context.Context) (*[]*Transaction, error)

func (*Block) TransactionsRoot

func (b *Block) TransactionsRoot(ctx context.Context) (common.Hash, error)

func (*Block) Withdrawals added in v1.12.1

func (b *Block) Withdrawals(ctx context.Context) (*[]*Withdrawal, error)

func (*Block) WithdrawalsRoot added in v1.12.1

func (b *Block) WithdrawalsRoot(ctx context.Context) (*common.Hash, 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 added in v1.9.6

NumberOr returns the provided block number argument, or the "current" block number or hash if none was provided.

func (BlockNumberArgs) NumberOrLatest added in v1.9.6

func (a BlockNumberArgs) NumberOrLatest() rpc.BlockNumberOrHash

NumberOrLatest returns the provided block number argument, or the "latest" block number if none was provided.

type BlockType

type BlockType int

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.

func (GraphiQL) ServeHTTP

func (h GraphiQL) ServeHTTP(w http.ResponseWriter, r *http.Request)

type Log

type Log struct {
	// contains filtered or unexported fields
}

Log represents an individual log message. All arguments are mandatory.

func (*Log) Account

func (l *Log) Account(ctx context.Context, args BlockNumberArgs) *Account

func (*Log) Data

func (l *Log) Data(ctx context.Context) hexutil.Bytes

func (*Log) Index

func (l *Log) Index(ctx context.Context) hexutil.Uint64

func (*Log) Topics

func (l *Log) Topics(ctx context.Context) []common.Hash

func (*Log) Transaction

func (l *Log) Transaction(ctx context.Context) *Transaction

type Long added in v1.10.0

type Long int64

func (Long) ImplementsGraphQLType added in v1.10.0

func (b Long) ImplementsGraphQLType(name string) bool

ImplementsGraphQLType returns true if Long implements the provided GraphQL type.

func (*Long) UnmarshalGraphQL added in v1.10.0

func (b *Long) UnmarshalGraphQL(input interface{}) error

UnmarshalGraphQL unmarshals the provided GraphQL query data.

type Pending

type Pending struct {
	// contains filtered or unexported fields
}

func (*Pending) Account

func (p *Pending) Account(ctx context.Context, args struct {
	Address common.Address
}) *Account

func (*Pending) Call

func (p *Pending) Call(ctx context.Context, args struct {
	Data ethapi.TransactionArgs
}) (*CallResult, error)

func (*Pending) EstimateGas

func (p *Pending) EstimateGas(ctx context.Context, args struct {
	Data ethapi.TransactionArgs
}) (hexutil.Uint64, error)

func (*Pending) TransactionCount

func (p *Pending) TransactionCount(ctx context.Context) (hexutil.Uint64, error)

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) Block

func (r *Resolver) Block(ctx context.Context, args struct {
	Number *Long
	Hash   *common.Hash
}) (*Block, error)

func (*Resolver) Blocks

func (r *Resolver) Blocks(ctx context.Context, args struct {
	From *Long
	To   *Long
}) ([]*Block, error)

func (*Resolver) ChainID added in v1.9.20

func (r *Resolver) ChainID(ctx context.Context) (hexutil.Big, error)

func (*Resolver) GasPrice

func (r *Resolver) GasPrice(ctx context.Context) (hexutil.Big, error)

func (*Resolver) Logs

func (r *Resolver) Logs(ctx context.Context, args struct{ Filter FilterCriteria }) ([]*Log, error)

func (*Resolver) MaxPriorityFeePerGas added in v1.10.4

func (r *Resolver) MaxPriorityFeePerGas(ctx context.Context) (hexutil.Big, error)

func (*Resolver) Pending

func (r *Resolver) Pending(ctx context.Context) *Pending

func (*Resolver) SendRawTransaction

func (r *Resolver) SendRawTransaction(ctx context.Context, args struct{ Data hexutil.Bytes }) (common.Hash, error)

func (*Resolver) Syncing

func (r *Resolver) Syncing() (*SyncState, error)

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 peers. 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 - txIndexFinishedBlocks: number of blocks whose transactions are indexed - txIndexRemainingBlocks: number of blocks whose transactions are not indexed yet

func (*Resolver) Transaction

func (r *Resolver) Transaction(ctx context.Context, args struct{ Hash common.Hash }) *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 (s *SyncState) CurrentBlock() hexutil.Uint64

func (*SyncState) HealedBytecodeBytes added in v1.10.14

func (s *SyncState) HealedBytecodeBytes() hexutil.Uint64

func (*SyncState) HealedBytecodes added in v1.10.14

func (s *SyncState) HealedBytecodes() hexutil.Uint64

func (*SyncState) HealedTrienodeBytes added in v1.10.14

func (s *SyncState) HealedTrienodeBytes() hexutil.Uint64

func (*SyncState) HealedTrienodes added in v1.10.14

func (s *SyncState) HealedTrienodes() hexutil.Uint64

func (*SyncState) HealingBytecode added in v1.10.14

func (s *SyncState) HealingBytecode() hexutil.Uint64

func (*SyncState) HealingTrienodes added in v1.10.14

func (s *SyncState) HealingTrienodes() hexutil.Uint64

func (*SyncState) HighestBlock

func (s *SyncState) HighestBlock() hexutil.Uint64

func (*SyncState) StartingBlock

func (s *SyncState) StartingBlock() hexutil.Uint64

func (*SyncState) SyncedAccountBytes added in v1.10.14

func (s *SyncState) SyncedAccountBytes() hexutil.Uint64

func (*SyncState) SyncedAccounts added in v1.10.14

func (s *SyncState) SyncedAccounts() hexutil.Uint64

func (*SyncState) SyncedBytecodeBytes added in v1.10.14

func (s *SyncState) SyncedBytecodeBytes() hexutil.Uint64

func (*SyncState) SyncedBytecodes added in v1.10.14

func (s *SyncState) SyncedBytecodes() hexutil.Uint64

func (*SyncState) SyncedStorage added in v1.10.14

func (s *SyncState) SyncedStorage() hexutil.Uint64

func (*SyncState) SyncedStorageBytes added in v1.10.14

func (s *SyncState) SyncedStorageBytes() hexutil.Uint64

func (*SyncState) TxIndexFinishedBlocks added in v1.13.11

func (s *SyncState) TxIndexFinishedBlocks() hexutil.Uint64

func (*SyncState) TxIndexRemainingBlocks added in v1.13.11

func (s *SyncState) TxIndexRemainingBlocks() hexutil.Uint64

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 added in v1.10.2

func (t *Transaction) AccessList(ctx context.Context) *[]*AccessTuple

func (*Transaction) BlobGasPrice added in v1.13.1

func (t *Transaction) BlobGasPrice(ctx context.Context) (*hexutil.Big, error)

func (*Transaction) BlobGasUsed added in v1.13.1

func (t *Transaction) BlobGasUsed(ctx context.Context) (*hexutil.Uint64, error)

func (*Transaction) BlobVersionedHashes added in v1.13.1

func (t *Transaction) BlobVersionedHashes(ctx context.Context) *[]common.Hash

func (*Transaction) Block

func (t *Transaction) Block(ctx context.Context) *Block

func (*Transaction) CreatedContract

func (t *Transaction) CreatedContract(ctx context.Context, args BlockNumberArgs) (*Account, error)

func (*Transaction) CumulativeGasUsed

func (t *Transaction) CumulativeGasUsed(ctx context.Context) (*hexutil.Uint64, error)

func (*Transaction) EffectiveGasPrice added in v1.10.4

func (t *Transaction) EffectiveGasPrice(ctx context.Context) (*hexutil.Big, error)

func (*Transaction) EffectiveTip added in v1.10.17

func (t *Transaction) EffectiveTip(ctx context.Context) (*hexutil.Big, error)

func (*Transaction) From

func (t *Transaction) From(ctx context.Context, args BlockNumberArgs) *Account

func (*Transaction) Gas

func (*Transaction) GasPrice

func (t *Transaction) GasPrice(ctx context.Context) hexutil.Big

func (*Transaction) GasUsed

func (t *Transaction) GasUsed(ctx context.Context) (*hexutil.Uint64, error)

func (*Transaction) Hash

func (t *Transaction) Hash(ctx context.Context) common.Hash

func (*Transaction) Index

func (t *Transaction) Index(ctx context.Context) *hexutil.Uint64

func (*Transaction) InputData

func (t *Transaction) InputData(ctx context.Context) hexutil.Bytes

func (*Transaction) Logs

func (t *Transaction) Logs(ctx context.Context) (*[]*Log, error)

func (*Transaction) MaxFeePerBlobGas added in v1.13.1

func (t *Transaction) MaxFeePerBlobGas(ctx context.Context) *hexutil.Big

func (*Transaction) MaxFeePerGas added in v1.10.4

func (t *Transaction) MaxFeePerGas(ctx context.Context) *hexutil.Big

func (*Transaction) MaxPriorityFeePerGas added in v1.10.4

func (t *Transaction) MaxPriorityFeePerGas(ctx context.Context) *hexutil.Big

func (*Transaction) Nonce

func (t *Transaction) Nonce(ctx context.Context) hexutil.Uint64

func (*Transaction) R added in v1.9.11

func (*Transaction) Raw added in v1.10.18

func (t *Transaction) Raw(ctx context.Context) (hexutil.Bytes, error)

func (*Transaction) RawReceipt added in v1.10.18

func (t *Transaction) RawReceipt(ctx context.Context) (hexutil.Bytes, error)

func (*Transaction) S added in v1.9.11

func (*Transaction) Status

func (t *Transaction) Status(ctx context.Context) (*hexutil.Uint64, error)

func (*Transaction) To

func (*Transaction) Type added in v1.10.2

func (t *Transaction) Type(ctx context.Context) *hexutil.Uint64

func (*Transaction) V added in v1.9.11

func (*Transaction) Value

func (t *Transaction) Value(ctx context.Context) (hexutil.Big, error)

func (*Transaction) YParity added in v1.12.1

func (t *Transaction) YParity(ctx context.Context) (*hexutil.Big, error)

type Withdrawal added in v1.12.1

type Withdrawal struct {
	// contains filtered or unexported fields
}

Withdrawal represents a withdrawal of value from the beacon chain by a validator. For details see EIP-4895.

func (*Withdrawal) Address added in v1.12.1

func (w *Withdrawal) Address(ctx context.Context) common.Address

func (*Withdrawal) Amount added in v1.12.1

func (w *Withdrawal) Amount(ctx context.Context) hexutil.Uint64

func (*Withdrawal) Index added in v1.12.1

func (w *Withdrawal) Index(ctx context.Context) hexutil.Uint64

func (*Withdrawal) Validator added in v1.12.1

func (w *Withdrawal) Validator(ctx context.Context) hexutil.Uint64

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL