Documentation ¶
Overview ¶
Package graphql provides a GraphQL interface to Ethereum node data.
Index ¶
- func NewHandler(backend *eth.Backend) (http.Handler, 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) 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 Client
- type FilterCriteria
- type GetLogs
- type GetStorageAt
- type GraphiQL
- type Log
- func (l *Log) Account(_ context.Context, args BlockNumberArgs) *Account
- func (l *Log) Cid(_ context.Context) string
- func (l *Log) Data(_ context.Context) hexutil.Bytes
- func (l *Log) Index(_ context.Context) int32
- func (l *Log) IpldBlock(_ context.Context) hexutil.Bytes
- func (l *Log) ReceiptCID(_ context.Context) string
- func (l *Log) Status(_ context.Context) int32
- func (l *Log) Topics(_ context.Context) []common.Hash
- func (l *Log) Transaction(_ context.Context) *Transaction
- type LogResponse
- 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) GetLogs(ctx context.Context, args struct{ ... }) (*[]*Log, error)
- func (r *Resolver) GetStorageAt(ctx context.Context, args struct{ ... }) (*StorageResult, error)
- func (r *Resolver) Logs(ctx context.Context, args struct{ ... }) ([]*Log, error)
- func (r *Resolver) Transaction(ctx context.Context, args struct{ ... }) (*Transaction, error)
- type Service
- type StorageResponse
- type StorageResult
- 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 (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) 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) (*hexutil.Uint64, error)
- func (t *Transaction) To(ctx context.Context, args BlockNumberArgs) (*Account, error)
- func (t *Transaction) V(ctx context.Context) (hexutil.Big, error)
- func (t *Transaction) Value(ctx context.Context) (hexutil.Big, error)
- type TransactionResp
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
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 numberOrHash are mandatory. All other fields are lazily fetched when required.
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. 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 Client ¶
type Client struct {
// contains filtered or unexported fields
}
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 GetLogs ¶
type GetLogs struct {
Responses []LogResponse `json:"getLogs"`
}
type GetStorageAt ¶
type GetStorageAt struct {
Response StorageResponse `json:"getStorageAt"`
}
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) Account ¶
func (l *Log) Account(_ context.Context, args BlockNumberArgs) *Account
Account returns the contract account which generated this log.
func (*Log) ReceiptCID ¶
ReceiptCID returns the receipt CID of the receipt IPLD block this Log exists in.
func (*Log) Transaction ¶
func (l *Log) Transaction(_ context.Context) *Transaction
Transaction returns transaction that generated this log entry.
type LogResponse ¶
type Resolver ¶
type Resolver struct {
// contains filtered or unexported fields
}
Resolver is the top-level object in the GraphQL hierarchy.
func (*Resolver) GetStorageAt ¶
func (*Resolver) Transaction ¶
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service encapsulates a GraphQL service.
func New ¶
func New(backend *eth.Backend, endpoint string, cors, vhosts []string, timeouts rpc.HTTPTimeouts) (*Service, error)
New constructs a new GraphQL service instance.
type StorageResponse ¶
type StorageResult ¶
type StorageResult struct {
// contains filtered or unexported fields
}
StorageResult represents a storage slot value. All arguments are mandatory.
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)