WIP: blockchain.transaction.yyy JSON RPC implementations #78
3 changed files with 18 additions and 5 deletions
|
@ -640,6 +640,9 @@ type TransactionBroadcastResp string
|
||||||
|
|
||||||
// 'blockchain.transaction.broadcast'
|
// 'blockchain.transaction.broadcast'
|
||||||
func (s *BlockchainTransactionService) Broadcast(req *TransactionBroadcastReq, resp **TransactionBroadcastResp) error {
|
func (s *BlockchainTransactionService) Broadcast(req *TransactionBroadcastReq, resp **TransactionBroadcastResp) error {
|
||||||
|
if s.sessionMgr == nil {
|
||||||
|
return errors.New("no session manager, rpc not supported")
|
||||||
|
}
|
||||||
strTx := string(*req)
|
strTx := string(*req)
|
||||||
rawTx, err := hex.DecodeString(strTx)
|
rawTx, err := hex.DecodeString(strTx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -98,24 +98,29 @@ fail1:
|
||||||
goto fail2
|
goto fail2
|
||||||
}
|
}
|
||||||
|
|
||||||
// Register other "blockchain.{block,address,scripthash}.*" handlers.
|
// Register "blockchain.{block,address,scripthash,transaction}.*" handlers.
|
||||||
blockchainSvc := &BlockchainBlockService{s.DB, s.Chain}
|
blockchainSvc := &BlockchainBlockService{s.DB, s.Chain}
|
||||||
err = s1.RegisterTCPService(blockchainSvc, "blockchain_block")
|
err = s1.RegisterTCPService(blockchainSvc, "blockchain_block")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("RegisterTCPService: %v\n", err)
|
log.Errorf("RegisterTCPService: %v\n", err)
|
||||||
goto fail2
|
goto fail2
|
||||||
}
|
}
|
||||||
err = s1.RegisterTCPService(&BlockchainHeadersService{s.DB, s.Chain, nil, nil}, "blockchain_headers")
|
err = s1.RegisterTCPService(&BlockchainHeadersService{s.DB, s.Chain, s.sessionManager, nil}, "blockchain_headers")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("RegisterTCPService: %v\n", err)
|
log.Errorf("RegisterTCPService: %v\n", err)
|
||||||
goto fail2
|
goto fail2
|
||||||
}
|
}
|
||||||
err = s1.RegisterTCPService(&BlockchainAddressService{s.DB, s.Chain, nil, nil}, "blockchain_address")
|
err = s1.RegisterTCPService(&BlockchainAddressService{s.DB, s.Chain, s.sessionManager, nil}, "blockchain_address")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("RegisterTCPService: %v\n", err)
|
log.Errorf("RegisterTCPService: %v\n", err)
|
||||||
goto fail2
|
goto fail2
|
||||||
}
|
}
|
||||||
err = s1.RegisterTCPService(&BlockchainScripthashService{s.DB, s.Chain, nil, nil}, "blockchain_scripthash")
|
err = s1.RegisterTCPService(&BlockchainScripthashService{s.DB, s.Chain, s.sessionManager, nil}, "blockchain_scripthash")
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("RegisterTCPService: %v\n", err)
|
||||||
|
goto fail2
|
||||||
|
}
|
||||||
|
err = s1.RegisterTCPService(&BlockchainTransactionService{s.DB, s.Chain, s.sessionManager}, "blockchain_transaction")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("RegisterTCPService: %v\n", err)
|
log.Errorf("RegisterTCPService: %v\n", err)
|
||||||
goto fail2
|
goto fail2
|
||||||
|
|
|
@ -219,7 +219,7 @@ func (sm *sessionManager) addSession(conn net.Conn) *session {
|
||||||
log.Errorf("RegisterName: %v\n", err)
|
log.Errorf("RegisterName: %v\n", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Register other "blockchain.{block,address,scripthash}.*" handlers.
|
// Register "blockchain.{block,address,scripthash,transaction}.*" handlers.
|
||||||
blockchainSvc := &BlockchainBlockService{sm.db, sm.chain}
|
blockchainSvc := &BlockchainBlockService{sm.db, sm.chain}
|
||||||
err = s1.RegisterName("blockchain.block", blockchainSvc)
|
err = s1.RegisterName("blockchain.block", blockchainSvc)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -241,6 +241,11 @@ func (sm *sessionManager) addSession(conn net.Conn) *session {
|
||||||
log.Errorf("RegisterName: %v\n", err)
|
log.Errorf("RegisterName: %v\n", err)
|
||||||
goto fail
|
goto fail
|
||||||
}
|
}
|
||||||
|
err = s1.RegisterName("blockchain.transaction", &BlockchainTransactionService{sm.db, sm.chain, sm})
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("RegisterName: %v\n", err)
|
||||||
|
goto fail
|
||||||
|
}
|
||||||
|
|
||||||
sm.grp.Add(1)
|
sm.grp.Add(1)
|
||||||
go func() {
|
go func() {
|
||||||
|
|
Loading…
Reference in a new issue