github.com/nspcc-dev/neo-go@v0.105.2-0.20240517133400-6be757af3eba/pkg/core/interop/interopnames/convert.go (about) 1 package interopnames 2 3 import ( 4 "crypto/sha256" 5 "encoding/binary" 6 "errors" 7 ) 8 9 var errNotFound = errors.New("interop not found") 10 11 // ToID returns an identificator of the method based on its name. 12 func ToID(name []byte) uint32 { 13 h := sha256.Sum256(name) 14 return binary.LittleEndian.Uint32(h[:4]) 15 } 16 17 // FromID returns interop name from its id. 18 func FromID(id uint32) (string, error) { 19 for i := range names { 20 if id == ToID([]byte(names[i])) { 21 return names[i], nil 22 } 23 } 24 return "", errNotFound 25 }