@@ -48,7 +48,7 @@ func (t *Trie) Prove(key []byte, proofDb ethdb.KeyValueWriter) error {
4848 for len (key ) > 0 && tn != nil {
4949 switch n := tn .(type ) {
5050 case * shortNode :
51- if len ( key ) < len ( n . Key ) || ! bytes .Equal ( n . Key , key [: len ( n .Key )] ) {
51+ if ! bytes .HasPrefix ( key , n .Key ) {
5252 // The trie doesn't contain the key.
5353 tn = nil
5454 } else {
@@ -371,7 +371,7 @@ func unset(parent node, child node, key []byte, pos int, removeLeft bool) error
371371 }
372372 return unset (cld , cld.Children [key [pos ]], key , pos + 1 , removeLeft )
373373 case * shortNode :
374- if len ( key [ pos :]) < len ( cld . Key ) || ! bytes .Equal ( cld . Key , key [pos :pos + len ( cld .Key )] ) {
374+ if ! bytes .HasPrefix ( key [pos :], cld .Key ) {
375375 // Find the fork point, it's a non-existent branch.
376376 if removeLeft {
377377 if bytes .Compare (cld .Key , key [pos :]) < 0 {
@@ -434,7 +434,7 @@ func hasRightElement(node node, key []byte) bool {
434434 }
435435 node , pos = rn.Children [key [pos ]], pos + 1
436436 case * shortNode :
437- if len ( key ) - pos < len ( rn . Key ) || ! bytes .Equal ( rn . Key , key [pos :pos + len ( rn .Key )] ) {
437+ if ! bytes .HasPrefix ( key [pos :], rn .Key ) {
438438 return bytes .Compare (rn .Key , key [pos :]) > 0
439439 }
440440 node , pos = rn .Val , pos + len (rn .Key )
@@ -589,7 +589,7 @@ func get(tn node, key []byte, skipResolved bool) ([]byte, node) {
589589 for {
590590 switch n := tn .(type ) {
591591 case * shortNode :
592- if len ( key ) < len ( n . Key ) || ! bytes .Equal ( n . Key , key [: len ( n .Key )] ) {
592+ if ! bytes .HasPrefix ( key , n .Key ) {
593593 return nil , nil
594594 }
595595 tn = n .Val
0 commit comments