aboutsummaryrefslogtreecommitdiff
path: root/eth
diff options
context:
space:
mode:
Diffstat (limited to 'eth')
-rw-r--r--eth/api_backend.go7
-rw-r--r--eth/backend.go7
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
+}