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 AllEthHeaderCIDs
- type AllEthHeaderCIDsResponse
- type BigInt
- func (b BigInt) ImplementsGraphQLType(name string) bool
- func (b BigInt) MarshalText() ([]byte, error)
- func (b *BigInt) SetUint64(x uint64) *BigInt
- func (b *BigInt) String() string
- func (b *BigInt) ToInt() *big.Int
- func (b *BigInt) UnmarshalGraphQL(input interface{}) error
- func (b *BigInt) UnmarshalText(input []byte) 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 Bytes
- type CallData
- type CallResult
- type Client
- func (c *Client) AllEthHeaderCIDs(ctx context.Context, condition EthHeaderCIDCondition) (*AllEthHeaderCIDsResponse, error)
- func (c *Client) EthTransactionCIDByTxHash(ctx context.Context, txHash string) (*EthTransactionCIDResponse, error)
- func (c *Client) GetLogs(ctx context.Context, hash common.Hash, address *common.Address) ([]LogResponse, error)
- func (c *Client) GetStorageAt(ctx context.Context, hash common.Hash, address common.Address, slot string) (*StorageResponse, error)
- type EthHeaderCID
- func (h EthHeaderCID) BlockByMhKey(ctx context.Context) IPFSBlock
- func (h EthHeaderCID) BlockHash(ctx context.Context) string
- func (h EthHeaderCID) BlockNumber(ctx context.Context) BigInt
- func (h EthHeaderCID) Bloom(ctx context.Context) string
- func (h EthHeaderCID) Cid(ctx context.Context) string
- func (h EthHeaderCID) EthTransactionCidsByHeaderId(ctx context.Context) EthTransactionCIDsConnection
- func (h EthHeaderCID) ParentHash(ctx context.Context) string
- func (h EthHeaderCID) ReceiptRoot(ctx context.Context) string
- func (h EthHeaderCID) StateRoot(ctx context.Context) string
- func (h EthHeaderCID) Td(ctx context.Context) BigInt
- func (h EthHeaderCID) Timestamp(ctx context.Context) BigInt
- func (h EthHeaderCID) TxRoot(ctx context.Context) string
- func (h EthHeaderCID) UncleRoot(ctx context.Context) string
- type EthHeaderCIDCondition
- type EthHeaderCIDResponse
- type EthHeaderCIDsConnection
- type EthTransactionCID
- func (t EthTransactionCID) BlockByMhKey(ctx context.Context) IPFSBlock
- func (t EthTransactionCID) Cid(ctx context.Context) string
- func (t EthTransactionCID) Dst(ctx context.Context) string
- func (t EthTransactionCID) Index(ctx context.Context) int32
- func (t EthTransactionCID) Src(ctx context.Context) string
- func (t EthTransactionCID) TxHash(ctx context.Context) string
- type EthTransactionCIDByTxHash
- type EthTransactionCIDResponse
- type EthTransactionCIDsByHeaderIdResponse
- type EthTransactionCIDsConnection
- type FilterCriteria
- type GetLogs
- type GetStorageAt
- type GraphiQL
- type IPFSBlock
- type IPFSBlockResponse
- 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) AllEthHeaderCids(ctx context.Context, args struct{ ... }) (*EthHeaderCIDsConnection, error)
- 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) EthTransactionCidByTxHash(ctx context.Context, args struct{ ... }) (*EthTransactionCID, 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 TransactionResponse
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 AllEthHeaderCIDs ¶ added in v3.2.2
type AllEthHeaderCIDs struct {
Response AllEthHeaderCIDsResponse `json:"allEthHeaderCids"`
}
type AllEthHeaderCIDsResponse ¶ added in v3.2.2
type AllEthHeaderCIDsResponse struct {
Nodes []EthHeaderCIDResponse `json:"nodes"`
}
type BigInt ¶ added in v3.2.2
func (BigInt) ImplementsGraphQLType ¶ added in v3.2.2
ImplementsGraphQLType returns true if BigInt implements the provided GraphQL type.
func (BigInt) MarshalText ¶ added in v3.2.2
MarshalText implements encoding.TextMarshaler
func (*BigInt) UnmarshalGraphQL ¶ added in v3.2.2
UnmarshalGraphQL unmarshals the provided GraphQL query data.
func (*BigInt) UnmarshalText ¶ added in v3.2.2
UnmarshalText implements encoding.TextUnmarshaler
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 Bytes ¶ added in v3.2.2
type Bytes []byte
Bytes marshals as a JSON string with \x prefix. The empty slice marshals as "\x".
func (Bytes) MarshalText ¶ added in v3.2.2
MarshalText implements encoding.TextMarshaler
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
}
func (*Client) AllEthHeaderCIDs ¶ added in v3.2.2
func (c *Client) AllEthHeaderCIDs(ctx context.Context, condition EthHeaderCIDCondition) (*AllEthHeaderCIDsResponse, error)
func (*Client) EthTransactionCIDByTxHash ¶ added in v3.2.2
type EthHeaderCID ¶ added in v3.2.2
type EthHeaderCID struct {
// contains filtered or unexported fields
}
func (EthHeaderCID) BlockByMhKey ¶ added in v3.2.2
func (h EthHeaderCID) BlockByMhKey(ctx context.Context) IPFSBlock
func (EthHeaderCID) BlockHash ¶ added in v3.2.2
func (h EthHeaderCID) BlockHash(ctx context.Context) string
func (EthHeaderCID) BlockNumber ¶ added in v3.2.2
func (h EthHeaderCID) BlockNumber(ctx context.Context) BigInt
func (EthHeaderCID) EthTransactionCidsByHeaderId ¶ added in v3.2.2
func (h EthHeaderCID) EthTransactionCidsByHeaderId(ctx context.Context) EthTransactionCIDsConnection
func (EthHeaderCID) ParentHash ¶ added in v3.2.2
func (h EthHeaderCID) ParentHash(ctx context.Context) string
func (EthHeaderCID) ReceiptRoot ¶ added in v3.2.2
func (h EthHeaderCID) ReceiptRoot(ctx context.Context) string
func (EthHeaderCID) StateRoot ¶ added in v3.2.2
func (h EthHeaderCID) StateRoot(ctx context.Context) string
func (EthHeaderCID) Timestamp ¶ added in v3.2.2
func (h EthHeaderCID) Timestamp(ctx context.Context) BigInt
type EthHeaderCIDCondition ¶ added in v3.2.2
type EthHeaderCIDResponse ¶ added in v3.2.2
type EthHeaderCIDResponse struct { CID string `json:"cid"` BlockNumber BigInt `json:"blockNumber"` BlockHash string `json:"blockHash"` ParentHash string `json:"parentHash"` Timestamp BigInt `json:"timestamp"` StateRoot string `json:"stateRoot"` Td BigInt `json:"td"` TxRoot string `json:"txRoot"` ReceiptRoot string `json:"receiptRoot"` UncleRoot string `json:"uncleRoot"` Bloom string `json:"bloom"` EthTransactionCIDsByHeaderId EthTransactionCIDsByHeaderIdResponse `json:"ethTransactionCidsByHeaderId"` BlockByMhKey IPFSBlockResponse `json:"blockByMhKey"` }
type EthHeaderCIDsConnection ¶ added in v3.2.2
type EthHeaderCIDsConnection struct {
// contains filtered or unexported fields
}
func (EthHeaderCIDsConnection) Nodes ¶ added in v3.2.2
func (headerCIDResult EthHeaderCIDsConnection) Nodes(ctx context.Context) []*EthHeaderCID
type EthTransactionCID ¶ added in v3.2.2
type EthTransactionCID struct {
// contains filtered or unexported fields
}
func (EthTransactionCID) BlockByMhKey ¶ added in v3.2.2
func (t EthTransactionCID) BlockByMhKey(ctx context.Context) IPFSBlock
func (EthTransactionCID) Cid ¶ added in v3.2.2
func (t EthTransactionCID) Cid(ctx context.Context) string
func (EthTransactionCID) Dst ¶ added in v3.2.2
func (t EthTransactionCID) Dst(ctx context.Context) string
func (EthTransactionCID) Index ¶ added in v3.2.2
func (t EthTransactionCID) Index(ctx context.Context) int32
type EthTransactionCIDByTxHash ¶ added in v3.2.2
type EthTransactionCIDByTxHash struct {
Response EthTransactionCIDResponse `json:"ethTransactionCidByTxHash"`
}
type EthTransactionCIDResponse ¶ added in v3.2.2
type EthTransactionCIDsByHeaderIdResponse ¶ added in v3.2.2
type EthTransactionCIDsByHeaderIdResponse struct {
Nodes []EthTransactionCIDResponse `json:"nodes"`
}
type EthTransactionCIDsConnection ¶ added in v3.2.2
type EthTransactionCIDsConnection struct {
// contains filtered or unexported fields
}
func (EthTransactionCIDsConnection) Nodes ¶ added in v3.2.2
func (transactionCIDResult EthTransactionCIDsConnection) Nodes(ctx context.Context) []*EthTransactionCID
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 IPFSBlock ¶ added in v3.2.2
type IPFSBlock struct {
// contains filtered or unexported fields
}
type IPFSBlockResponse ¶ added in v3.2.2
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) AllEthHeaderCids ¶ added in v3.2.2
func (r *Resolver) AllEthHeaderCids(ctx context.Context, args struct { Condition *EthHeaderCIDCondition }) (*EthHeaderCIDsConnection, error)
func (*Resolver) EthTransactionCidByTxHash ¶ added in v3.2.2
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)