diff options
Diffstat (limited to 'eth')
-rw-r--r-- | eth/api_backend.go | 7 | ||||
-rw-r--r-- | eth/backend.go | 7 |
2 files changed, 13 insertions, 1 deletions
diff --git a/eth/api_backend.go b/eth/api_backend.go index 7befd96..f4c0101 100644 --- a/eth/api_backend.go +++ b/eth/api_backend.go @@ -160,7 +160,12 @@ func (b *EthAPIBackend) SubscribeLogsEvent(ch chan<- []*types.Log) event.Subscri } func (b *EthAPIBackend) SendTx(ctx context.Context, signedTx *types.Transaction) error { - return b.eth.txPool.AddLocal(signedTx) + err := b.eth.txPool.AddLocal(signedTx) + select { + case b.eth.txSubmitChan <- struct{}{}: + default: + } + return err } func (b *EthAPIBackend) GetPoolTransactions() (types.Transactions, error) { diff --git a/eth/backend.go b/eth/backend.go index 666f0fb..b297b9b 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -99,6 +99,8 @@ type Ethereum struct { netRPCService *ethapi.PublicNetAPI lock sync.RWMutex // Protects the variadic fields (e.g. gas price and etherbase) + + txSubmitChan chan struct{} } func (s *Ethereum) AddLesServer(ls LesServer) { @@ -157,6 +159,7 @@ func New(ctx *node.ServiceContext, config *Config, cb *dummy.ConsensusCallbacks, etherbase: config.Miner.Etherbase, bloomRequests: make(chan chan *bloombits.Retrieval), bloomIndexer: NewBloomIndexer(chainDb, params.BloomBitsBlocks, params.BloomConfirms), + txSubmitChan: make(chan struct{}, 1), } bcVersion := rawdb.ReadDatabaseVersion(chainDb) @@ -545,3 +548,7 @@ func (s *Ethereum) StopPart() error { close(s.shutdownChan) return nil } + +func (s *Ethereum) GetTxSubmitCh() <-chan struct{} { + return s.txSubmitChan +} |