mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-19 02:12:23 +00:00
contracts: exported ensNode method
This commit is contained in:
parent
9936d8064b
commit
9baa7c5dd6
2 changed files with 4 additions and 9 deletions
|
|
@ -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 {
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue