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  }