|
|
@@ -43,22 +43,19 @@ type TxPool struct {
|
|
|
|
|
|
subscribers []chan TxMsg
|
|
|
|
|
|
- stateQuery StateQuery
|
|
|
- eventMux *event.TypeMux
|
|
|
+ eventMux *event.TypeMux
|
|
|
}
|
|
|
|
|
|
-func NewTxPool(stateQuery StateQuery, eventMux *event.TypeMux) *TxPool {
|
|
|
+func NewTxPool(eventMux *event.TypeMux) *TxPool {
|
|
|
return &TxPool{
|
|
|
- pool: set.New(),
|
|
|
- queueChan: make(chan *types.Transaction, txPoolQueueSize),
|
|
|
- quit: make(chan bool),
|
|
|
- stateQuery: stateQuery,
|
|
|
- eventMux: eventMux,
|
|
|
+ pool: set.New(),
|
|
|
+ queueChan: make(chan *types.Transaction, txPoolQueueSize),
|
|
|
+ quit: make(chan bool),
|
|
|
+ eventMux: eventMux,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
func (pool *TxPool) addTransaction(tx *types.Transaction) {
|
|
|
-
|
|
|
pool.pool.Add(tx)
|
|
|
|
|
|
// Broadcast the transaction to the rest of the peers
|
|
|
@@ -75,6 +72,10 @@ func (pool *TxPool) ValidateTransaction(tx *types.Transaction) error {
|
|
|
return fmt.Errorf("tx.v != (28 || 27) => %v", v)
|
|
|
}
|
|
|
|
|
|
+ /* XXX this kind of validation needs to happen elsewhere in the gui when sending txs.
|
|
|
+ Other clients should do their own validation. Value transfer could throw error
|
|
|
+ but doesn't necessarily invalidate the tx. Gas can still be payed for and miner
|
|
|
+ can still be rewarded for their inclusion and processing.
|
|
|
// Get the sender
|
|
|
senderAddr := tx.From()
|
|
|
if senderAddr == nil {
|
|
|
@@ -82,10 +83,6 @@ func (pool *TxPool) ValidateTransaction(tx *types.Transaction) error {
|
|
|
}
|
|
|
sender := pool.stateQuery.GetAccount(senderAddr)
|
|
|
|
|
|
- /* XXX this kind of validation needs to happen elsewhere in the gui when sending txs.
|
|
|
- Other clients should do their own validation. Value transfer could be throw error
|
|
|
- but doesn't necessarily invalidate the tx. Gas can still be payed for and miner
|
|
|
- can still be rewarded for their inclusion and processing.
|
|
|
totAmount := new(big.Int).Set(tx.Value())
|
|
|
// Make sure there's enough in the sender's account. Having insufficient
|
|
|
// funds won't invalidate this transaction but simple ignores it.
|