graphql

package
v1.12.2 Latest Latest
Warning

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

Go to latest
Published: Aug 12, 2023 License: GPL-3.0 Imports: 28 Imported by: 126

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) 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) 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) TotalDifficulty ¶

func (b *Block) TotalDifficulty(ctx context.Context) (hexutil.Big, 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 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 ¶

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

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) 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) 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.Uint64, 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