From e4eb56a4a9f4f401d44cd11fd44f72f12c62b382 Mon Sep 17 00:00:00 2001 From: Sina Mahmoodi Date: Tue, 24 Oct 2023 18:14:04 +0200 Subject: [PATCH] add error code for blocks length check --- internal/ethapi/api.go | 6 ++---- internal/ethapi/errors.go | 5 +++++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/internal/ethapi/api.go b/internal/ethapi/api.go index 9238fd0086..d2c5b983a5 100644 --- a/internal/ethapi/api.go +++ b/internal/ethapi/api.go @@ -1230,11 +1230,9 @@ func (s *BlockChainAPI) Call(ctx context.Context, args TransactionArgs, blockNrO // useful to execute and retrieve values. func (s *BlockChainAPI) MulticallV1(ctx context.Context, opts multicallOpts, blockNrOrHash *rpc.BlockNumberOrHash) ([]blockResult, error) { if len(opts.BlockStateCalls) == 0 { - // TODO return error code. - return nil, errors.New("invalid params") + return nil, &invalidParamsError{message: "empty input"} } else if len(opts.BlockStateCalls) > maxMulticallBlocks { - // TODO return error code. - return nil, errors.New("invalid params") + return nil, &invalidParamsError{message: "too many blocks"} } if blockNrOrHash == nil { n := rpc.BlockNumberOrHashWithNumber(rpc.LatestBlockNumber) diff --git a/internal/ethapi/errors.go b/internal/ethapi/errors.go index 6ea92823a2..fae01418d2 100644 --- a/internal/ethapi/errors.go +++ b/internal/ethapi/errors.go @@ -68,3 +68,8 @@ func callErrorFromError(err error) *callError { Code: errCodeInternalError, } } + +type invalidParamsError struct{ message string } + +func (e *invalidParamsError) Error() string { return e.message } +func (e *invalidParamsError) ErrorCode() int { return errCodeInvalidParams }