kaspad/infrastructure/network/rpcclient/rpc_get_block_template.go

21 lines
839 B
Go

package rpcclient
import "github.com/kaspanet/kaspad/app/appmessage"
// GetBlockTemplate sends an RPC request respective to the function's name and returns the RPC server's response
func (c *RPCClient) GetBlockTemplate(miningAddress, extraData string) (*appmessage.GetBlockTemplateResponseMessage, error) {
err := c.rpcRouter.outgoingRoute().Enqueue(appmessage.NewGetBlockTemplateRequestMessage(miningAddress, extraData))
if err != nil {
return nil, err
}
response, err := c.route(appmessage.CmdGetBlockTemplateResponseMessage).DequeueWithTimeout(c.timeout)
if err != nil {
return nil, err
}
getBlockTemplateResponse := response.(*appmessage.GetBlockTemplateResponseMessage)
if getBlockTemplateResponse.Error != nil {
return nil, c.convertRPCError(getBlockTemplateResponse.Error)
}
return getBlockTemplateResponse, nil
}