contracts: exported ensNode method

This commit is contained in:
stolen 2018-06-05 17:40:22 +02:00
parent 9936d8064b
commit 9baa7c5dd6
2 changed files with 4 additions and 9 deletions

View file

@ -95,16 +95,11 @@ func ensParentNode(name string) (common.Hash, common.Hash) {
} }
} }
func ensNode(name string) common.Hash { func EnsNode(name string) common.Hash {
parentNode, parentLabel := ensParentNode(name) parentNode, parentLabel := ensParentNode(name)
return crypto.Keccak256Hash(parentNode[:], parentLabel[:]) return crypto.Keccak256Hash(parentNode[:], parentLabel[:])
} }
// Suggest exporting ensNode so external code can use it for generating ens namehashes
func EnsNode(name string) common.Hash {
return ensNode(name)
}
func (self *ENS) getResolver(node [32]byte) (*contract.PublicResolverSession, error) { func (self *ENS) getResolver(node [32]byte) (*contract.PublicResolverSession, error) {
resolverAddr, err := self.Resolver(node) resolverAddr, err := self.Resolver(node)
if err != nil { if err != nil {
@ -141,7 +136,7 @@ func (self *ENS) getRegistrar(node [32]byte) (*contract.FIFSRegistrarSession, er
// Resolve is a non-transactional call that returns the content hash associated with a name. // Resolve is a non-transactional call that returns the content hash associated with a name.
func (self *ENS) Resolve(name string) (common.Hash, error) { func (self *ENS) Resolve(name string) (common.Hash, error) {
node := ensNode(name) node := EnsNode(name)
resolver, err := self.getResolver(node) resolver, err := self.getResolver(node)
if err != nil { if err != nil {
@ -170,7 +165,7 @@ func (self *ENS) Register(name string) (*types.Transaction, error) {
// SetContentHash sets the content hash associated with a name. Only works if the caller // SetContentHash sets the content hash associated with a name. Only works if the caller
// owns the name, and the associated resolver implements a `setContent` function. // owns the name, and the associated resolver implements a `setContent` function.
func (self *ENS) SetContentHash(name string, hash common.Hash) (*types.Transaction, error) { func (self *ENS) SetContentHash(name string, hash common.Hash) (*types.Transaction, error) {
node := ensNode(name) node := EnsNode(name)
resolver, err := self.getResolver(node) resolver, err := self.getResolver(node)
if err != nil { if err != nil {

View file

@ -55,7 +55,7 @@ func TestENS(t *testing.T) {
if err != nil { if err != nil {
t.Fatalf("can't deploy resolver: %v", err) t.Fatalf("can't deploy resolver: %v", err)
} }
if _, err := ens.SetResolver(ensNode(name), resolverAddr); err != nil { if _, err := ens.SetResolver(EnsNode(name), resolverAddr); err != nil {
t.Fatalf("can't set resolver: %v", err) t.Fatalf("can't set resolver: %v", err)
} }
contractBackend.Commit() contractBackend.Commit()