12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package extension
- import (
- "context"
- "github.com/ethereum/go-ethereum/accounts"
- "github.com/ethereum/go-ethereum/eth"
- "github.com/ethereum/go-ethereum/extension/privacyExtension"
- "github.com/ethereum/go-ethereum/node"
- "github.com/ethereum/go-ethereum/private"
- )
- type ServicesFactory interface {
- AccountManager() *accounts.Manager
- DataHandler() DataHandler
- StateFetcher() *StateFetcher
- }
- type DefaultServicesFactory struct {
- backendService *PrivacyService
- accountManager *accounts.Manager
- dataHandler *JsonFileDataHandler
- stateFetcher *StateFetcher
- }
- func NewServicesFactory(stack *node.Node, ptm private.PrivateTransactionManager, ethService *eth.Ethereum) (*DefaultServicesFactory, error) {
- factory := &DefaultServicesFactory{}
- factory.accountManager = ethService.AccountManager()
- factory.dataHandler = NewJsonFileDataHandler(stack.InstanceDir())
- factory.stateFetcher = NewStateFetcher(ethService.BlockChain())
- backendService, err := New(stack, ptm, factory.AccountManager(), factory.DataHandler(), factory.StateFetcher(), ethService.APIBackend, ethService.BlockChain().Config())
- if err != nil {
- return nil, err
- }
- factory.backendService = backendService
- isMultitenant := ethService.BlockChain().SupportsMultitenancy(context.Background())
- privacyExtension.DefaultExtensionHandler.SupportMultitenancy(isMultitenant)
- privacyExtension.DefaultExtensionHandler.SetPSMR(ethService.BlockChain().PrivateStateManager())
- ethService.BlockChain().PopulateSetPrivateState(privacyExtension.DefaultExtensionHandler.CheckExtensionAndSetPrivateState)
- return factory, nil
- }
- func (factory *DefaultServicesFactory) AccountManager() *accounts.Manager {
- return factory.accountManager
- }
- func (factory *DefaultServicesFactory) DataHandler() DataHandler {
- return factory.dataHandler
- }
- func (factory *DefaultServicesFactory) StateFetcher() *StateFetcher {
- return factory.stateFetcher
- }
|