rpc/server: improve submitblock and submitnotaryrequest also

This commit is contained in:
Roman Khimov 2021-04-10 22:47:24 +03:00
parent 274f2c0408
commit 13619a0e77

View file

@ -1325,13 +1325,13 @@ func (s *Server) runScriptInVM(t trigger.Type, script []byte, contractScriptHash
func (s *Server) submitBlock(reqParams request.Params) (interface{}, *response.Error) { func (s *Server) submitBlock(reqParams request.Params) (interface{}, *response.Error) {
blockBytes, err := reqParams.ValueWithType(0, request.StringT).GetBytesBase64() blockBytes, err := reqParams.ValueWithType(0, request.StringT).GetBytesBase64()
if err != nil { if err != nil {
return nil, response.ErrInvalidParams return nil, response.NewInvalidParamsError("missing parameter or not base64", err)
} }
b := block.New(s.stateRootEnabled) b := block.New(s.stateRootEnabled)
r := io.NewBinReaderFromBuf(blockBytes) r := io.NewBinReaderFromBuf(blockBytes)
b.DecodeBinary(r) b.DecodeBinary(r)
if r.Err != nil { if r.Err != nil {
return nil, response.ErrInvalidParams return nil, response.NewInvalidParamsError("can't decode block", r.Err)
} }
err = s.chain.AddBlock(b) err = s.chain.AddBlock(b)
if err != nil { if err != nil {
@ -1354,15 +1354,15 @@ func (s *Server) submitNotaryRequest(ps request.Params) (interface{}, *response.
} }
if len(ps) < 1 { if len(ps) < 1 {
return nil, response.ErrInvalidParams return nil, response.NewInvalidParamsError("not enough parameters", nil)
} }
bytePayload, err := ps[0].GetBytesBase64() bytePayload, err := ps[0].GetBytesBase64()
if err != nil { if err != nil {
return nil, response.ErrInvalidParams return nil, response.NewInvalidParamsError("not base64", err)
} }
r, err := payload.NewP2PNotaryRequestFromBytes(bytePayload) r, err := payload.NewP2PNotaryRequestFromBytes(bytePayload)
if err != nil { if err != nil {
return nil, response.ErrInvalidParams return nil, response.NewInvalidParamsError("can't decode notary payload", err)
} }
return getRelayResult(s.coreServer.RelayP2PNotaryRequest(r), r.FallbackTransaction.Hash()) return getRelayResult(s.coreServer.RelayP2PNotaryRequest(r), r.FallbackTransaction.Hash())
} }