kaspad/infrastructure/network/rpcclient/rpc_get_headers.go
Ori Newman 62ddd8fe1c [NOD-1444] Implement getHeaders RPC command (#944)
* [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
2020-10-06 11:18:31 +03:00

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
}