good morning!!!!

Skip to content
Snippets Groups Projects
Commit 9c2b8786 authored by Jeffrey Wilcke's avatar Jeffrey Wilcke
Browse files

Sha addresses

parent a82b89e2
Branches
Tags
No related merge requests found
......@@ -3,24 +3,25 @@ package chain
import (
"math/big"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/state"
)
func CreateBloom(block *Block) []byte {
bin := new(big.Int)
bin.Or(bin, bloom9(block.Coinbase))
bin.Or(bin, bloom9(crypto.Sha3(block.Coinbase)))
for _, receipt := range block.Receipts() {
bin.Or(bin, LogsBloom(receipt.logs))
}
return bin.Bytes()
return ethutil.LeftPadBytes(bin.Bytes(), 64)
}
func LogsBloom(logs state.Logs) *big.Int {
bin := new(big.Int)
for _, log := range logs {
data := [][]byte{log.Address}
data := [][]byte{crypto.Sha3(log.Address)}
for _, topic := range log.Topics {
data = append(data, topic)
}
......@@ -41,7 +42,8 @@ func bloom9(b []byte) *big.Int {
r := new(big.Int)
for _, i := range []int{0, 2, 4} {
t := big.NewInt(1)
r.Or(r, t.Lsh(t, uint(b[i+1])+256*(uint(b[i])&1)))
b := uint(b[i+1]) + 256*(uint(b[i])&1)
r.Or(r, t.Lsh(t, b))
}
return r
......
package chain
import (
"fmt"
"testing"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/state"
"github.com/ethgo.old/ethutil"
)
func TestBloom9(t *testing.T) {
......@@ -17,3 +20,12 @@ func TestBloom9(t *testing.T) {
t.Errorf("Bloom lookup failed")
}
}
func TestAddress(t *testing.T) {
block := &Block{}
block.Coinbase = ethutil.Hex2Bytes("22341ae42d6dd7384bc8584e50419ea3ac75b83f")
fmt.Printf("%x\n", crypto.Sha3(block.Coinbase))
bin := CreateBloom(block)
fmt.Printf("bin = %x\n", ethutil.LeftPadBytes(bin, 64))
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment