-
Notifications
You must be signed in to change notification settings - Fork 5
/
eth_client.go
27 lines (24 loc) · 1.18 KB
/
eth_client.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package listener
import (
"context"
ethereum "github.com/ethereum/go-ethereum"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
)
type EthClient interface {
// SubscribeNewHead subscribes to notifications about the current blockchain head
// on the given channel.
SubscribeNewHead(ctx context.Context, ch chan<- *types.Header) (ethereum.Subscription, error)
// FilterLogs executes a filter query.
FilterLogs(ctx context.Context, q ethereum.FilterQuery) ([]types.Log, error)
// SubscribeFilterLogs subscribes to the results of a streaming filter query.
SubscribeFilterLogs(ctx context.Context, q ethereum.FilterQuery, ch chan<- types.Log) (ethereum.Subscription, error)
// TransactionReceipt returns the receipt of a transaction by transaction hash.
// Note that the receipt is not available for pending transactions.
TransactionReceipt(ctx context.Context, txHash common.Hash) (*types.Receipt, error)
// BlockByHash returns the given full block.
//
// Note that loading full blocks requires two requests. Use HeaderByHash
// if you don't need all transactions or uncle headers.
BlockByHash(ctx context.Context, hash common.Hash) (*types.Block, error)
}