Make the service objects independent, so we don't have inheritance.

This commit is contained in:
Jonathan Moody 2022-09-27 18:08:16 -05:00
parent 8c66d67a52
commit b9cb9d8c5a
3 changed files with 13 additions and 18 deletions

View file

@ -28,12 +28,14 @@ type BlockchainBlockService struct {
// BlockchainAddressService methods handle "blockchain.address.*" RPCs // BlockchainAddressService methods handle "blockchain.address.*" RPCs
type BlockchainAddressService struct { type BlockchainAddressService struct {
BlockchainBlockService DB *db.ReadOnlyDBColumnFamily
Chain *chaincfg.Params
} }
// BlockchainScripthashService methods handle "blockchain.scripthash.*" RPCs // BlockchainScripthashService methods handle "blockchain.scripthash.*" RPCs
type BlockchainScripthashService struct { type BlockchainScripthashService struct {
BlockchainBlockService DB *db.ReadOnlyDBColumnFamily
Chain *chaincfg.Params
} }
const CHUNK_SIZE = 96 const CHUNK_SIZE = 96

View file

@ -161,10 +161,8 @@ func TestGetBalance(t *testing.T) {
} }
s := &BlockchainAddressService{ s := &BlockchainAddressService{
BlockchainBlockService{ DB: db,
DB: db, Chain: &chaincfg.RegressionNetParams,
Chain: &chaincfg.RegressionNetParams,
},
} }
for _, addr := range regTestAddrs { for _, addr := range regTestAddrs {
@ -192,10 +190,8 @@ func TestGetHistory(t *testing.T) {
} }
s := &BlockchainAddressService{ s := &BlockchainAddressService{
BlockchainBlockService{ DB: db,
DB: db, Chain: &chaincfg.RegressionNetParams,
Chain: &chaincfg.RegressionNetParams,
},
} }
for _, addr := range regTestAddrs { for _, addr := range regTestAddrs {
@ -223,10 +219,8 @@ func TestListUnspent(t *testing.T) {
} }
s := &BlockchainAddressService{ s := &BlockchainAddressService{
BlockchainBlockService{ DB: db,
DB: db, Chain: &chaincfg.RegressionNetParams,
Chain: &chaincfg.RegressionNetParams,
},
} }
for _, addr := range regTestAddrs { for _, addr := range regTestAddrs {

View file

@ -63,16 +63,15 @@ func (s *Server) StartJsonRPC() error {
} }
// Register other "blockchain.{block,address,scripthash}.*" handlers. // Register other "blockchain.{block,address,scripthash}.*" handlers.
blockchainSvc := &BlockchainBlockService{s.DB, s.Chain} err = s1.RegisterTCPService(&BlockchainBlockService{s.DB, s.Chain}, "blockchain_block")
err = s1.RegisterTCPService(blockchainSvc, "blockchain_block")
if err != nil { if err != nil {
log.Errorf("RegisterService: %v\n", err) log.Errorf("RegisterService: %v\n", err)
} }
err = s1.RegisterTCPService(&BlockchainAddressService{*blockchainSvc}, "blockchain_address") err = s1.RegisterTCPService(&BlockchainAddressService{s.DB, s.Chain}, "blockchain_address")
if err != nil { if err != nil {
log.Errorf("RegisterService: %v\n", err) log.Errorf("RegisterService: %v\n", err)
} }
err = s1.RegisterTCPService(&BlockchainScripthashService{*blockchainSvc}, "blockchain_scripthash") err = s1.RegisterTCPService(&BlockchainScripthashService{s.DB, s.Chain}, "blockchain_scripthash")
if err != nil { if err != nil {
log.Errorf("RegisterService: %v\n", err) log.Errorf("RegisterService: %v\n", err)
} }