Skip to content

Commit

Permalink
Check coinbase for from/to inclusion
Browse files Browse the repository at this point in the history
  • Loading branch information
obscuren committed Dec 2, 2014
1 parent cb4d168 commit 0a22dc2
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 8 deletions.
17 changes: 11 additions & 6 deletions chain/block_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -275,16 +275,24 @@ func (sm *BlockManager) ProcessWithParent(block, parent *Block) (td *big.Int, me
}
}

func (sm *BlockManager) ApplyDiff(state *state.State, parent, block *Block) (receipts Receipts, err error) {
coinbase := state.GetOrNewStateObject(block.Coinbase)
func (sm *BlockManager) ApplyDiff(statedb *state.State, parent, block *Block) (receipts Receipts, err error) {
coinbase := statedb.GetOrNewStateObject(block.Coinbase)
coinbase.SetGasPool(block.CalcGasLimit(parent))

// Process the transactions on to current block
receipts, _, _, _, err = sm.ProcessTransactions(coinbase, state, block, parent, block.Transactions())
receipts, _, _, _, err = sm.ProcessTransactions(coinbase, statedb, block, parent, block.Transactions())
if err != nil {
return nil, err
}

statedb.Manifest().AddMessage(&state.Message{
To: block.Coinbase, From: block.Coinbase,
Input: nil,
Origin: nil,
Block: block.Hash(), Timestamp: block.Time, Coinbase: block.Coinbase, Number: block.Number,
Value: new(big.Int),
})

return receipts, nil
}

Expand All @@ -303,9 +311,6 @@ func (sm *BlockManager) CalculateTD(block *Block) (*big.Int, bool) {
// is greater than the previous.
if td.Cmp(sm.bc.TD) > 0 {
return td, true

// Set the new total difficulty back to the block chain
//sm.bc.SetTotalDifficulty(td)
}

return nil, false
Expand Down
4 changes: 2 additions & 2 deletions chain/filter.go
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ func (self *Filter) bloomFilter(block *Block) bool {
var fromIncluded, toIncluded bool
if len(self.from) > 0 {
for _, from := range self.from {
if BloomLookup(block.LogsBloom, from) {
if BloomLookup(block.LogsBloom, from) || bytes.Equal(block.Coinbase, from) {
fromIncluded = true
break
}
Expand All @@ -186,7 +186,7 @@ func (self *Filter) bloomFilter(block *Block) bool {

if len(self.to) > 0 {
for _, to := range self.to {
if BloomLookup(block.LogsBloom, ethutil.U256(new(big.Int).Add(ethutil.Big1, ethutil.BigD(to))).Bytes()) {
if BloomLookup(block.LogsBloom, ethutil.U256(new(big.Int).Add(ethutil.Big1, ethutil.BigD(to))).Bytes()) || bytes.Equal(block.Coinbase, to) {
toIncluded = true
break
}
Expand Down

0 comments on commit 0a22dc2

Please sign in to comment.