83ee39448e
* resolver -> common/registrar * global registrar name registry interface * add Call to resolver backend interface * the hashReg and UrlHing contracts now initialised from global registry * initialization of contracts uniform * improve errors and more econsistent method names * common/registrar/ethreg: versioned registrar * integrate new naming and registrar in natspec * js console api: setGlobalRegistrar, setHashReg, setUrlHint * js test TestContract uses mining - tests fixed all pass * eth/backend: allow PoW test mode (small ethash DAG) * console jsre refers to resolver.abi/addr, * cmd/geth/contracts.go moved to common/registrar
33 lines
638 B
Go
33 lines
638 B
Go
package ethreg
|
|
|
|
import (
|
|
"math/big"
|
|
|
|
"github.com/ethereum/go-ethereum/common/registrar"
|
|
"github.com/ethereum/go-ethereum/xeth"
|
|
)
|
|
|
|
// implements a versioned Registrar on an archiving full node
|
|
type EthReg struct {
|
|
backend *xeth.XEth
|
|
registry *registrar.Registrar
|
|
}
|
|
|
|
func New(xe *xeth.XEth) (self *EthReg) {
|
|
self = &EthReg{backend: xe}
|
|
self.registry = registrar.New(xe)
|
|
return
|
|
}
|
|
|
|
func (self *EthReg) Registry() *registrar.Registrar {
|
|
return self.registry
|
|
}
|
|
|
|
func (self *EthReg) Resolver(n *big.Int) *registrar.Registrar {
|
|
xe := self.backend
|
|
if n != nil {
|
|
xe = self.backend.AtStateNum(n.Int64())
|
|
}
|
|
return registrar.New(xe)
|
|
}
|