Commit a953f3ec authored by obscuren's avatar obscuren

Sync managed accounts to the network

parent 31b086f5
...@@ -90,6 +90,7 @@ func (pool *TxPool) ValidateTransaction(tx *types.Transaction) error { ...@@ -90,6 +90,7 @@ func (pool *TxPool) ValidateTransaction(tx *types.Transaction) error {
} }
func (self *TxPool) addTx(tx *types.Transaction) { func (self *TxPool) addTx(tx *types.Transaction) {
self.txs[tx.Hash()] = tx
} }
func (self *TxPool) add(tx *types.Transaction) error { func (self *TxPool) add(tx *types.Transaction) error {
...@@ -107,7 +108,7 @@ func (self *TxPool) add(tx *types.Transaction) error { ...@@ -107,7 +108,7 @@ func (self *TxPool) add(tx *types.Transaction) error {
return err return err
} }
self.txs[hash] = tx self.addTx(tx)
var toname string var toname string
if to := tx.To(); to != nil { if to := tx.To(); to != nil {
...@@ -122,9 +123,7 @@ func (self *TxPool) add(tx *types.Transaction) error { ...@@ -122,9 +123,7 @@ func (self *TxPool) add(tx *types.Transaction) error {
txplogger.Debugf("(t) %x => %s (%v) %x\n", from, toname, tx.Value, tx.Hash()) txplogger.Debugf("(t) %x => %s (%v) %x\n", from, toname, tx.Value, tx.Hash())
// Notify the subscribers // Notify the subscribers
//println("post")
go self.eventMux.Post(TxPreEvent{tx}) go self.eventMux.Post(TxPreEvent{tx})
//println("done post")
return nil return nil
} }
......
...@@ -436,6 +436,21 @@ func (self *Ethereum) txBroadcastLoop() { ...@@ -436,6 +436,21 @@ func (self *Ethereum) txBroadcastLoop() {
for obj := range self.txSub.Chan() { for obj := range self.txSub.Chan() {
event := obj.(core.TxPreEvent) event := obj.(core.TxPreEvent)
self.net.Broadcast("eth", TxMsg, []*types.Transaction{event.Tx}) self.net.Broadcast("eth", TxMsg, []*types.Transaction{event.Tx})
self.syncAccounts(event.Tx)
}
}
// keep accounts synced up
func (self *Ethereum) syncAccounts(tx *types.Transaction) {
from, err := tx.From()
if err != nil {
return
}
if self.accountManager.HasAccount(from.Bytes()) {
if self.chainManager.TxState().GetNonce(from) < tx.Nonce() {
self.chainManager.TxState().SetNonce(from, tx.Nonce()+1)
}
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment