aboutsummaryrefslogtreecommitdiffstats
path: root/ethchain/bloom9.go
diff options
context:
space:
mode:
Diffstat (limited to 'ethchain/bloom9.go')
-rw-r--r--ethchain/bloom9.go13
1 files changed, 12 insertions, 1 deletions
diff --git a/ethchain/bloom9.go b/ethchain/bloom9.go
index 508644b62..e841e7af7 100644
--- a/ethchain/bloom9.go
+++ b/ethchain/bloom9.go
@@ -3,6 +3,7 @@ package ethchain
import (
"math/big"
+ "github.com/ethereum.backup/ethutil-go"
"github.com/ethereum/go-ethereum/vm"
)
@@ -23,7 +24,10 @@ func LogsBloom(logs []vm.Log) *big.Int {
for _, topic := range log.Topics {
data = append(data, topic)
}
- data = append(data, log.Data)
+
+ if log.Data != nil {
+ data = append(data, log.Data)
+ }
for _, b := range data {
bin.Or(bin, bloom9(b))
@@ -42,3 +46,10 @@ func bloom9(b []byte) *big.Int {
return r
}
+
+func BloomLookup(bin, topic []byte) bool {
+ bloom := ethutil.BigD(bin)
+ cmp := bloom9(topic)
+
+ return bloom.And(bloom, cmp).Cmp(cmp) == 0
+}