kaspad/infrastructure/network/rpcclient/rpc_submit_block.go
Michael Sutton 0e1d247915
Fix stability test mining (allow submission of non DAA blocks too) (#1917)
* Fix stability test mining (allow submission of non DAA blocks too)

* Comments for go fmt

* Use SubmitBlockAlsoIfNonDAA for all tests

Co-authored-by: Elichai Turkel <elichai.turkel@gmail.com>
2021-12-30 11:04:56 +02:00

34 lines
1.4 KiB
Go

package rpcclient
import (
"github.com/kaspanet/kaspad/app/appmessage"
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
)
func (c *RPCClient) submitBlock(block *externalapi.DomainBlock, allowNonDAABlocks bool) (appmessage.RejectReason, error) {
err := c.rpcRouter.outgoingRoute().Enqueue(
appmessage.NewSubmitBlockRequestMessage(appmessage.DomainBlockToRPCBlock(block), allowNonDAABlocks))
if err != nil {
return appmessage.RejectReasonNone, err
}
response, err := c.route(appmessage.CmdSubmitBlockResponseMessage).DequeueWithTimeout(c.timeout)
if err != nil {
return appmessage.RejectReasonNone, err
}
submitBlockResponse := response.(*appmessage.SubmitBlockResponseMessage)
if submitBlockResponse.Error != nil {
return submitBlockResponse.RejectReason, c.convertRPCError(submitBlockResponse.Error)
}
return appmessage.RejectReasonNone, nil
}
// SubmitBlock sends an RPC request respective to the function's name and returns the RPC server's response
func (c *RPCClient) SubmitBlock(block *externalapi.DomainBlock) (appmessage.RejectReason, error) {
return c.submitBlock(block, false)
}
// SubmitBlockAlsoIfNonDAA operates the same as SubmitBlock with the exception that `allowNonDAABlocks` is set to true
func (c *RPCClient) SubmitBlockAlsoIfNonDAA(block *externalapi.DomainBlock) (appmessage.RejectReason, error) {
return c.submitBlock(block, true)
}