v0.0.1 Latest Latest

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

Go to latest
Published: Jan 25, 2016 License: GPL-3.0 Imports: 15 Imported by: 6



package filters implements an ethereum filtering system for block, transactions and log events.



This section is empty.


This section is empty.


This section is empty.


type AccountChange

type AccountChange struct {
	Address, StateAddress []byte

type Filter

type Filter struct {
	BlockCallback       func(*types.Block, vm.Logs)
	TransactionCallback func(*types.Transaction)
	LogsCallback        func(vm.Logs)
	// contains filtered or unexported fields

Filtering interface

func New

func New(db ethdb.Database) *Filter

Create a new filter which uses a bloom filter on blocks to figure out whether a particular block is interesting or not.

func (*Filter) FilterLogs

func (self *Filter) FilterLogs(logs vm.Logs) vm.Logs

func (*Filter) Find

func (self *Filter) Find() vm.Logs

Run filters logs with the current parameters set

func (*Filter) SetAddresses

func (self *Filter) SetAddresses(addr []common.Address)

func (*Filter) SetBeginBlock

func (self *Filter) SetBeginBlock(begin int64)

Set the earliest and latest block for filtering. -1 = latest block (i.e., the current block) hash = particular hash from-to

func (*Filter) SetEndBlock

func (self *Filter) SetEndBlock(end int64)

func (*Filter) SetTopics

func (self *Filter) SetTopics(topics [][]common.Hash)

type FilterSystem

type FilterSystem struct {
	// contains filtered or unexported fields

FilterSystem manages filters that filter specific events such as block, transaction and log events. The Filtering system can be used to listen for specific LOG events fired by the EVM (Ethereum Virtual Machine).

func NewFilterSystem

func NewFilterSystem(mux *event.TypeMux) *FilterSystem

NewFilterSystem returns a newly allocated filter manager

func (*FilterSystem) Add

func (fs *FilterSystem) Add(filter *Filter) (id int)

Add adds a filter to the filter manager

func (*FilterSystem) Get

func (fs *FilterSystem) Get(id int) *Filter

Get retrieves a filter installed using Add The filter may not be modified.

func (*FilterSystem) Remove

func (fs *FilterSystem) Remove(id int)

Remove removes a filter by filter id

func (*FilterSystem) Stop

func (fs *FilterSystem) Stop()

Stop quits the filter loop required for polling events

type NewFilterArgs

type NewFilterArgs struct {
	FromBlock rpc.BlockNumber
	ToBlock   rpc.BlockNumber
	Addresses []common.Address
	Topics    [][]common.Hash

NewFilterArgs represents a request to create a new filter.

func (*NewFilterArgs) UnmarshalJSON

func (args *NewFilterArgs) UnmarshalJSON(data []byte) error

type PublicFilterAPI

type PublicFilterAPI struct {
	// contains filtered or unexported fields

PublicFilterAPI offers support to create and manage filters. This will allow externa clients to retrieve various information related to the Ethereum protocol such als blocks, transactions and logs.

func NewPublicFilterAPI

func NewPublicFilterAPI(chainDb ethdb.Database, mux *event.TypeMux) *PublicFilterAPI

NewPublicFilterAPI returns a new PublicFilterAPI instance.

func (*PublicFilterAPI) GetFilterChanges

func (s *PublicFilterAPI) GetFilterChanges(filterId string) interface{}

GetFilterChanges returns the logs for the filter with the given id since last time is was called. This can be used for polling.

func (*PublicFilterAPI) GetFilterLogs

func (s *PublicFilterAPI) GetFilterLogs(filterId string) vm.Logs

GetFilterLogs returns the logs for the filter with the given id.

func (*PublicFilterAPI) GetLogs

func (s *PublicFilterAPI) GetLogs(args NewFilterArgs) vm.Logs

GetLogs returns the logs matching the given argument.

func (*PublicFilterAPI) NewBlockFilter

func (s *PublicFilterAPI) NewBlockFilter() (string, error)

NewBlockFilter create a new filter that returns blocks that are included into the canonical chain.

func (*PublicFilterAPI) NewFilter

func (s *PublicFilterAPI) NewFilter(args NewFilterArgs) (string, error)

NewFilter creates a new filter and returns the filter id. It can be uses to retrieve logs.

func (*PublicFilterAPI) NewPendingTransactionFilter

func (s *PublicFilterAPI) NewPendingTransactionFilter() (string, error)

NewPendingTransactionFilter creates a filter that returns new pending transactions.

func (*PublicFilterAPI) Stop

func (s *PublicFilterAPI) Stop()

Stop quits the work loop.

func (*PublicFilterAPI) UninstallFilter

func (s *PublicFilterAPI) UninstallFilter(filterId string) bool

UninstallFilter removes the filter with the given filter id.

Jump to

Keyboard shortcuts

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