package ens import ( "fmt" "strings" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/crypto" ) func nameHash(name string) common.Hash { node := common.Hash{} if len(name) > 0 { labels := strings.Split(name, ".") for i := len(labels) - 1; i >= 0; i-- { labelSha := crypto.Keccak256Hash([]byte(labels[i])) node = crypto.Keccak256Hash(node.Bytes(), labelSha.Bytes()) } } return node } func validateENSUsername(username string) error { if !strings.HasSuffix(username, ".eth") { return fmt.Errorf("username must end with .eth") } return nil }