github.com/status-im/status-go@v1.1.0/services/ens/service.go (about) 1 package ens 2 3 import ( 4 "database/sql" 5 "time" 6 7 "github.com/ethereum/go-ethereum/p2p" 8 ethRpc "github.com/ethereum/go-ethereum/rpc" 9 "github.com/status-im/status-go/account" 10 "github.com/status-im/status-go/params" 11 "github.com/status-im/status-go/rpc" 12 "github.com/status-im/status-go/transactions" 13 ) 14 15 // NewService initializes service instance. 16 func NewService(rpcClient *rpc.Client, accountsManager *account.GethManager, pendingTracker *transactions.PendingTxTracker, config *params.NodeConfig, appDb *sql.DB, timeSource func() time.Time) *Service { 17 service := &Service{ 18 rpcClient, 19 accountsManager, 20 pendingTracker, 21 config, 22 nil, 23 nil, 24 } 25 service.api = NewAPI(rpcClient, accountsManager, pendingTracker, config, appDb, timeSource, &service.syncUserDetailFunc) 26 return service 27 } 28 29 // Service is a browsers service. 30 type Service struct { 31 rpcClient *rpc.Client 32 accountsManager *account.GethManager 33 pendingTracker *transactions.PendingTxTracker 34 config *params.NodeConfig 35 api *API 36 syncUserDetailFunc syncUsernameDetail 37 } 38 39 func (s *Service) Init(syncUserDetailFunc syncUsernameDetail) { 40 s.syncUserDetailFunc = syncUserDetailFunc 41 } 42 43 // Start a service. 44 func (s *Service) Start() error { 45 return nil 46 } 47 48 // Stop a service. 49 func (s *Service) Stop() error { 50 s.api.Stop() 51 return nil 52 } 53 54 func (s *Service) API() *API { 55 return s.api 56 } 57 58 // APIs returns list of available RPC APIs. 59 func (s *Service) APIs() []ethRpc.API { 60 return []ethRpc.API{ 61 { 62 Namespace: "ens", 63 Version: "0.1.0", 64 Service: s.api, 65 }, 66 } 67 } 68 69 // Protocols returns list of p2p protocols. 70 func (s *Service) Protocols() []p2p.Protocol { 71 return nil 72 }