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

* [NOD-1444] Implement getHeaders RPC command * [NOD-1444] Fix tests and comments * [NOD-1444] Fix error message * [NOD-1444] Make GetHeaders propagate header serialization errors * [NOD-1444] RLock the dag on GetHeaders * [NOD-1444] Change the error field number to 1000
21 lines
801 B
Go
21 lines
801 B
Go
package rpcclient
|
|
|
|
import "github.com/kaspanet/kaspad/app/appmessage"
|
|
|
|
// GetHeaders sends an RPC request respective to the function's name and returns the RPC server's response
|
|
func (c *RPCClient) GetHeaders(startHash string, limit uint64, isAscending bool) (*appmessage.GetHeadersResponseMessage, error) {
|
|
err := c.rpcRouter.outgoingRoute().Enqueue(appmessage.NewGetHeadersRequestMessage(startHash, limit, isAscending))
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
response, err := c.route(appmessage.CmdGetHeadersResponseMessage).DequeueWithTimeout(c.timeout)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
getHeadersResponse := response.(*appmessage.GetHeadersResponseMessage)
|
|
if getHeadersResponse.Error != nil {
|
|
return nil, c.convertRPCError(getHeadersResponse.Error)
|
|
}
|
|
return getHeadersResponse, nil
|
|
}
|