forked from cerc-io/plugeth
whisper: fixed broken partial topic filtering
Changes in #15811 broke partial topic filtering. Re-enable it.
This commit is contained in:
parent
d8328a96b4
commit
e07e507d1a
@ -220,7 +220,7 @@ func matchSingleTopic(topic TopicType, bt []byte) bool {
|
||||
bt = bt[:TopicLength]
|
||||
}
|
||||
|
||||
if len(bt) < TopicLength {
|
||||
if len(bt) == 0 {
|
||||
return false
|
||||
}
|
||||
|
||||
|
@ -829,16 +829,16 @@ func TestMatchSingleTopic_WithTail_ReturnTrue(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestMatchSingleTopic_NotEquals_ReturnFalse(t *testing.T) {
|
||||
func TestMatchSingleTopic_PartialTopic_ReturnTrue(t *testing.T) {
|
||||
bt := []byte("tes")
|
||||
topic := BytesToTopic(bt)
|
||||
topic := BytesToTopic([]byte("test"))
|
||||
|
||||
if matchSingleTopic(topic, bt) {
|
||||
if !matchSingleTopic(topic, bt) {
|
||||
t.FailNow()
|
||||
}
|
||||
}
|
||||
|
||||
func TestMatchSingleTopic_InsufficientLength_ReturnFalse(t *testing.T) {
|
||||
func TestMatchSingleTopic_NotEquals_ReturnFalse(t *testing.T) {
|
||||
bt := []byte("test")
|
||||
topic := BytesToTopic([]byte("not_equal"))
|
||||
|
||||
|
@ -250,23 +250,6 @@ func (f *Filter) MatchEnvelope(envelope *Envelope) bool {
|
||||
return f.PoW <= 0 || envelope.pow >= f.PoW
|
||||
}
|
||||
|
||||
func matchSingleTopic(topic TopicType, bt []byte) bool {
|
||||
if len(bt) > TopicLength {
|
||||
bt = bt[:TopicLength]
|
||||
}
|
||||
|
||||
if len(bt) < TopicLength {
|
||||
return false
|
||||
}
|
||||
|
||||
for j, b := range bt {
|
||||
if topic[j] != b {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
// IsPubKeyEqual checks that two public keys are equal
|
||||
func IsPubKeyEqual(a, b *ecdsa.PublicKey) bool {
|
||||
if !ValidatePublicKey(a) {
|
||||
|
@ -829,39 +829,3 @@ func TestVariableTopics(t *testing.T) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestMatchSingleTopic_ReturnTrue(t *testing.T) {
|
||||
bt := []byte("test")
|
||||
topic := BytesToTopic(bt)
|
||||
|
||||
if !matchSingleTopic(topic, bt) {
|
||||
t.FailNow()
|
||||
}
|
||||
}
|
||||
|
||||
func TestMatchSingleTopic_WithTail_ReturnTrue(t *testing.T) {
|
||||
bt := []byte("test with tail")
|
||||
topic := BytesToTopic([]byte("test"))
|
||||
|
||||
if !matchSingleTopic(topic, bt) {
|
||||
t.FailNow()
|
||||
}
|
||||
}
|
||||
|
||||
func TestMatchSingleTopic_NotEquals_ReturnFalse(t *testing.T) {
|
||||
bt := []byte("tes")
|
||||
topic := BytesToTopic(bt)
|
||||
|
||||
if matchSingleTopic(topic, bt) {
|
||||
t.FailNow()
|
||||
}
|
||||
}
|
||||
|
||||
func TestMatchSingleTopic_InsufficientLength_ReturnFalse(t *testing.T) {
|
||||
bt := []byte("test")
|
||||
topic := BytesToTopic([]byte("not_equal"))
|
||||
|
||||
if matchSingleTopic(topic, bt) {
|
||||
t.FailNow()
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user