// Start the miner with the given number of threads func (s *PrivateMinerAPI) Start(threads rpc.HexNumber) (bool, error) { s.e.StartAutoDAG() err := s.e.StartMining(threads.Int(), "") if err == nil { return true, nil } return false, err }
// UninstallFilter disables and removes an existing filter. func (s *PublicWhisperAPI) UninstallFilter(filterId rpc.HexNumber) bool { s.messagesMu.Lock() defer s.messagesMu.Unlock() if _, ok := s.messages[filterId.Int()]; ok { delete(s.messages, filterId.Int()) return true } return false }
// GetFilterChanges retrieves all the new messages matched by a filter since the last retrieval. func (s *PublicWhisperAPI) GetFilterChanges(filterId rpc.HexNumber) []WhisperMessage { s.messagesMu.RLock() defer s.messagesMu.RUnlock() if s.messages[filterId.Int()] != nil { if changes := s.messages[filterId.Int()].retrieve(); changes != nil { return changes } } return returnWhisperMessages(nil) }
// GetMessages retrieves all the known messages that match a specific filter. func (s *PublicWhisperAPI) GetMessages(filterId rpc.HexNumber) []WhisperMessage { // Retrieve all the cached messages matching a specific, existing filter s.messagesMu.RLock() defer s.messagesMu.RUnlock() var messages []*Message if s.messages[filterId.Int()] != nil { messages = s.messages[filterId.Int()].messages() } return returnWhisperMessages(messages) }
// GetUncleByBlockHashAndIndex returns the uncle block for the given block hash and index. When fullTx is true // all transactions in the block are returned in full detail, otherwise only the transaction hash is returned. func (s *PublicBlockChainAPI) GetUncleByBlockHashAndIndex(blockHash common.Hash, index rpc.HexNumber) (map[string]interface{}, error) { if block := s.bc.GetBlock(blockHash); block != nil { uncles := block.Uncles() if index.Int() < 0 || index.Int() >= len(uncles) { glog.V(logger.Debug).Infof("uncle block on index %d not found for block %s", index.Int(), blockHash.Hex()) return nil, nil } block = types.NewBlockWithHeader(uncles[index.Int()]) return s.rpcOutputBlock(block, false, false) } return nil, nil }
// GetUncleByBlockNumberAndIndex returns the uncle block for the given block hash and index. When fullTx is true // all transactions in the block are returned in full detail, otherwise only the transaction hash is returned. func (s *PublicBlockChainAPI) GetUncleByBlockNumberAndIndex(blockNr rpc.BlockNumber, index rpc.HexNumber) (map[string]interface{}, error) { if blockNr == rpc.PendingBlockNumber { return nil, nil } if block := blockByNumber(s.miner, s.bc, blockNr); block != nil { uncles := block.Uncles() if index.Int() < 0 || index.Int() >= len(uncles) { glog.V(logger.Debug).Infof("uncle block on index %d not found for block #%d", index.Int(), blockNr) return nil, nil } block = types.NewBlockWithHeader(uncles[index.Int()]) return s.rpcOutputBlock(block, false, false) } return nil, nil }
// GetTransactionByBlockHashAndIndex returns the transaction for the given block hash and index. func (s *PublicTransactionPoolAPI) GetTransactionByBlockHashAndIndex(blockHash common.Hash, index rpc.HexNumber) (*RPCTransaction, error) { if block := s.bc.GetBlock(blockHash); block != nil { return newRPCTransactionFromBlockIndex(block, index.Int()) } return nil, nil }
// GetTransactionByBlockNumberAndIndex returns the transaction for the given block number and index. func (s *PublicTransactionPoolAPI) GetTransactionByBlockNumberAndIndex(blockNr rpc.BlockNumber, index rpc.HexNumber) (*RPCTransaction, error) { if block := blockByNumber(s.miner, s.bc, blockNr); block != nil { return newRPCTransactionFromBlockIndex(block, index.Int()) } return nil, nil }