mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-05-21 06:16:45 +00:00

Co-authored-by: Svarog <feanorr@gmail.com> (cherry picked from commit 36c56f73bf7b41528c81013d5d0d3bc7d7f6a206)
48 lines
1.4 KiB
Go
48 lines
1.4 KiB
Go
package rpchandlers
|
|
|
|
import (
|
|
"github.com/kaspanet/kaspad/app/appmessage"
|
|
"github.com/kaspanet/kaspad/app/rpc/rpccontext"
|
|
"github.com/kaspanet/kaspad/domain/consensus/utils/hashes"
|
|
"github.com/kaspanet/kaspad/infrastructure/network/netadapter/router"
|
|
)
|
|
|
|
// HandleGetBlockDAGInfo handles the respectively named RPC command
|
|
func HandleGetBlockDAGInfo(context *rpccontext.Context, _ *router.Router, _ appmessage.Message) (appmessage.Message, error) {
|
|
params := context.Config.ActiveNetParams
|
|
consensus := context.Domain.Consensus()
|
|
|
|
response := appmessage.NewGetBlockDAGInfoResponseMessage()
|
|
response.NetworkName = params.Name
|
|
|
|
syncInfo, err := consensus.GetSyncInfo()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
response.BlockCount = syncInfo.BlockCount
|
|
response.HeaderCount = syncInfo.HeaderCount
|
|
|
|
tipHashes, err := consensus.Tips()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
response.TipHashes = hashes.ToStrings(tipHashes)
|
|
|
|
virtualInfo, err := consensus.GetVirtualInfo()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
response.VirtualParentHashes = hashes.ToStrings(virtualInfo.ParentHashes)
|
|
response.Difficulty = context.GetDifficultyRatio(virtualInfo.Bits, context.Config.ActiveNetParams)
|
|
response.PastMedianTime = virtualInfo.PastMedianTime
|
|
response.VirtualDAAScore = virtualInfo.DAAScore
|
|
|
|
pruningPoint, err := context.Domain.Consensus().PruningPoint()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
response.PruningPointHash = pruningPoint.String()
|
|
|
|
return response, nil
|
|
}
|