// NewFilterSystem returns a newly allocated filter manager func NewFilterSystem(mux *event.TypeMux) *FilterSystem { fs := &FilterSystem{ filters: make(map[int]*Filter), created: make(map[int]time.Time), } fs.sub = mux.Subscribe( //core.PendingBlockEvent{}, core.ChainEvent{}, core.TxPreEvent{}, vm.Logs(nil), ) go fs.filterLoop() return fs }
func NewTxPool(eventMux *event.TypeMux, currentStateFn stateFn, gasLimitFn func() *big.Int) *TxPool { pool := &TxPool{ pending: make(map[common.Hash]*types.Transaction), queue: make(map[common.Address]map[common.Hash]*types.Transaction), quit: make(chan bool), eventMux: eventMux, currentState: currentStateFn, gasLimit: gasLimitFn, minGasPrice: new(big.Int), pendingState: nil, events: eventMux.Subscribe(ChainHeadEvent{}, GasPriceChanged{}, RemovedTransactionEvent{}), } go pool.eventLoop() return pool }
// NewFilterSystem returns a newly allocated filter manager func NewFilterSystem(mux *event.TypeMux) *FilterSystem { fs := &FilterSystem{ chainFilters: make(map[int]*Filter), pendingTxFilters: make(map[int]*Filter), logFilters: make(map[int]*Filter), pendingLogFilters: make(map[int]*Filter), generic: make(map[int]*Filter), } fs.sub = mux.Subscribe( core.PendingLogsEvent{}, core.RemovedLogsEvent{}, core.ChainEvent{}, core.TxPreEvent{}, vm.Logs(nil), ) go fs.filterLoop() return fs }