kaspad/app/rpc/rpccontext/context.go
2023-12-11 04:11:54 +01:00

51 lines
1.5 KiB
Go

package rpccontext
import (
"github.com/fabbez/topiad/app/protocol"
"github.com/fabbez/topiad/domain"
"github.com/fabbez/topiad/domain/utxoindex"
"github.com/fabbez/topiad/infrastructure/config"
"github.com/fabbez/topiad/infrastructure/network/addressmanager"
"github.com/fabbez/topiad/infrastructure/network/connmanager"
"github.com/fabbez/topiad/infrastructure/network/netadapter"
)
// Context represents the RPC context
type Context struct {
Config *config.Config
NetAdapter *netadapter.NetAdapter
Domain domain.Domain
ProtocolManager *protocol.Manager
ConnectionManager *connmanager.ConnectionManager
AddressManager *addressmanager.AddressManager
UTXOIndex *utxoindex.UTXOIndex
ShutDownChan chan<- struct{}
NotificationManager *NotificationManager
}
// NewContext creates a new RPC context
func NewContext(cfg *config.Config,
domain domain.Domain,
netAdapter *netadapter.NetAdapter,
protocolManager *protocol.Manager,
connectionManager *connmanager.ConnectionManager,
addressManager *addressmanager.AddressManager,
utxoIndex *utxoindex.UTXOIndex,
shutDownChan chan<- struct{}) *Context {
context := &Context{
Config: cfg,
NetAdapter: netAdapter,
Domain: domain,
ProtocolManager: protocolManager,
ConnectionManager: connectionManager,
AddressManager: addressManager,
UTXOIndex: utxoIndex,
ShutDownChan: shutDownChan,
}
context.NotificationManager = NewNotificationManager(cfg.ActiveNetParams)
return context
}