func (self *XEth) AllLogs(earliest, latest int64, skip, max int, address []string, topics [][]string) state.Logs { filter := core.NewFilter(self.backend) filter.SetEarliestBlock(earliest) filter.SetLatestBlock(latest) filter.SetSkip(skip) filter.SetMax(max) filter.SetAddress(cAddress(address)) filter.SetTopics(cTopics(topics)) return filter.Find() }
func (self *XEth) NewTransactionFilter() int { self.transactionMu.Lock() defer self.transactionMu.Unlock() var id int filter := core.NewFilter(self.backend) filter.TransactionCallback = func(tx *types.Transaction) { self.transactionMu.Lock() defer self.transactionMu.Unlock() self.transactionQueue[id].add(tx.Hash()) } id = self.filterManager.InstallFilter(filter) self.transactionQueue[id] = &hashQueue{timeout: time.Now()} return id }
func (self *XEth) NewBlockFilter() int { self.blockMu.Lock() defer self.blockMu.Unlock() var id int filter := core.NewFilter(self.backend) filter.BlockCallback = func(block *types.Block, logs state.Logs) { self.blockMu.Lock() defer self.blockMu.Unlock() self.blockQueue[id].add(block.Hash()) } id = self.filterManager.InstallFilter(filter) self.blockQueue[id] = &hashQueue{timeout: time.Now()} return id }
func (self *XEth) NewLogFilter(earliest, latest int64, skip, max int, address []string, topics [][]string) int { self.logMu.Lock() defer self.logMu.Unlock() var id int filter := core.NewFilter(self.backend) filter.SetEarliestBlock(earliest) filter.SetLatestBlock(latest) filter.SetSkip(skip) filter.SetMax(max) filter.SetAddress(cAddress(address)) filter.SetTopics(cTopics(topics)) filter.LogsCallback = func(logs state.Logs) { self.logMu.Lock() defer self.logMu.Unlock() self.logQueue[id].add(logs...) } id = self.filterManager.InstallFilter(filter) self.logQueue[id] = &logQueue{timeout: time.Now()} return id }