aboutsummaryrefslogtreecommitdiffstats
path: root/contracts/ens/ens.go
diff options
context:
space:
mode:
Diffstat (limited to 'contracts/ens/ens.go')
-rw-r--r--contracts/ens/ens.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/contracts/ens/ens.go b/contracts/ens/ens.go
index 75d9d0e4b..b7448c471 100644
--- a/contracts/ens/ens.go
+++ b/contracts/ens/ens.go
@@ -151,6 +151,38 @@ func (self *ENS) Resolve(name string) (common.Hash, error) {
return common.BytesToHash(ret[:]), nil
}
+// Addr is a non-transactional call that returns the address associated with a name.
+func (self *ENS) Addr(name string) (common.Address, error) {
+ node := EnsNode(name)
+
+ resolver, err := self.getResolver(node)
+ if err != nil {
+ return common.Address{}, err
+ }
+
+ ret, err := resolver.Addr(node)
+ if err != nil {
+ return common.Address{}, err
+ }
+
+ return common.BytesToAddress(ret[:]), nil
+}
+
+// SetAddress sets the address associated with a name. Only works if the caller
+// owns the name, and the associated resolver implements a `setAddress` function.
+func (self *ENS) SetAddr(name string, addr common.Address) (*types.Transaction, error) {
+ node := EnsNode(name)
+
+ resolver, err := self.getResolver(node)
+ if err != nil {
+ return nil, err
+ }
+
+ opts := self.TransactOpts
+ opts.GasLimit = 200000
+ return resolver.Contract.SetAddr(&opts, node, addr)
+}
+
// Register registers a new domain name for the caller, making them the owner of the new name.
// Only works if the registrar for the parent domain implements the FIFS registrar protocol.
func (self *ENS) Register(name string) (*types.Transaction, error) {