8fb3db8136
* Move and rename BlockchainCodec, BlockchainCodecRequest. These are not specifically "blockchain", rather they are specific to how gorilla/rpc works. * Move claimtrie-related service/handlers to jsonrpc_claimtrie.go. * Pull out decode logic into named func newBlockHeaderElectrum(). * Rename BlockchainService -> BlockchainBlockService. * Drop http.Request arg from handlers, and use RegisterTCPService(). * Implement GetStatus() to pull data from HashXStatus table. * Make the service objects independent, so we don't have inheritance. * Add core session/subscription logic (session.go). Implement subsribe/unsubscribe handlers. * Support both pure JSON and JSON-over-HTTP services. Forward NotifierChan messages to sessionManager. * Only assign default port (50001) if neither --json-rpc-port nor --json-rpc-http-port are specified. * Handle failures with goto instead of break. Update error logging. * Add --max-sessions, --session-timeout args. Enforce max sessions. * Changes to make session.go testable. Conn created with Pipe() used in testing has no unique Addr. * Add tests for headers, headers.subscribe, address.subscribe. * HashXStatus, HashXMempoolStatus not populated by default. Fix GetStatus(). * Use time.Ticker object to drive management activity.
27 lines
570 B
Go
27 lines
570 B
Go
package server
|
|
|
|
import (
|
|
"github.com/lbryio/herald.go/db"
|
|
pb "github.com/lbryio/herald.go/protobuf/go"
|
|
log "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
type ClaimtrieService struct {
|
|
DB *db.ReadOnlyDBColumnFamily
|
|
}
|
|
|
|
type ResolveData struct {
|
|
Data []string `json:"data"`
|
|
}
|
|
|
|
type Result struct {
|
|
Data string `json:"data"`
|
|
}
|
|
|
|
// Resolve is the json rpc endpoint for 'blockchain.claimtrie.resolve'.
|
|
func (t *ClaimtrieService) Resolve(args *ResolveData, result **pb.Outputs) error {
|
|
log.Println("Resolve")
|
|
res, err := InternalResolve(args.Data, t.DB)
|
|
*result = res
|
|
return err
|
|
}
|