whisper: fix unit tests

This commit is contained in:
Guillaume Ballet 2019-03-25 19:06:06 +01:00
parent 21a105a38a
commit 08fc722619

View file

@ -27,7 +27,6 @@ import (
"time" "time"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common/math"
"github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/crypto/ecies" "github.com/ethereum/go-ethereum/crypto/ecies"
"github.com/ethereum/go-ethereum/rlp" "github.com/ethereum/go-ethereum/rlp"
@ -82,7 +81,7 @@ func (e *Envelope) Seal(options *MessageParams) error {
return nil return nil
} }
var target, bestBit int var target, bestLeadingZeros int
if options.PoW < 0 { if options.PoW < 0 {
// target is not set - the function should run for a period // target is not set - the function should run for a period
// of time specified in WorkTime param. Since we can predict // of time specified in WorkTime param. Since we can predict
@ -101,10 +100,10 @@ func (e *Envelope) Seal(options *MessageParams) error {
for i := 0; i < 1024; i++ { for i := 0; i < 1024; i++ {
binary.BigEndian.PutUint64(buf[56:], nonce) binary.BigEndian.PutUint64(buf[56:], nonce)
d := new(big.Int).SetBytes(crypto.Keccak256(buf)) d := new(big.Int).SetBytes(crypto.Keccak256(buf))
firstBit := math.FirstBitSet(d) leadingZeros := 256 - d.BitLen()
if firstBit > bestBit { if leadingZeros > bestLeadingZeros {
e.Nonce, bestBit = nonce, firstBit e.Nonce, bestLeadingZeros = nonce, leadingZeros
if target > 0 && bestBit >= target { if target > 0 && bestLeadingZeros >= target {
return nil return nil
} }
} }
@ -112,7 +111,7 @@ func (e *Envelope) Seal(options *MessageParams) error {
} }
} }
if target > 0 && bestBit < target { if target > 0 && bestLeadingZeros < target {
return fmt.Errorf("failed to reach the PoW target, specified pow time (%d seconds) was insufficient", options.WorkTime) return fmt.Errorf("failed to reach the PoW target, specified pow time (%d seconds) was insufficient", options.WorkTime)
} }