Skip to content

Commit

Permalink
do not accept unknown block status
Browse files Browse the repository at this point in the history
  • Loading branch information
illia-malachyn committed Oct 1, 2024
1 parent 4503d5e commit e1a4a36
Showing 1 changed file with 20 additions and 3 deletions.
23 changes: 20 additions & 3 deletions access/grpc/grpc.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,11 @@ package grpc

import (
"context"
"errors"
"fmt"
"io"

"github.com/onflow/flow/protobuf/go/flow/entities"
"google.golang.org/grpc"

"github.com/onflow/cadence"
Expand Down Expand Up @@ -1136,9 +1138,14 @@ func (c *BaseClient) SubscribeBlocksFromStartBlockID(
blockStatus flow.BlockStatus,
opts ...grpc.CallOption,
) (<-chan flow.Block, <-chan error, error) {
status := convert.BlockStatusToEntity(blockStatus)
if status == entities.BlockStatus_BLOCK_UNKNOWN {
return nil, nil, newRPCError(errors.New("unknown block status"))
}

request := &access.SubscribeBlocksFromStartBlockIDRequest{
StartBlockId: startBlockID.Bytes(),
BlockStatus: convert.BlockStatusToEntity(blockStatus),
BlockStatus: status,
}

subscribeClient, err := c.rpcClient.SubscribeBlocksFromStartBlockID(ctx, request, opts...)
Expand All @@ -1164,9 +1171,14 @@ func (c *BaseClient) SubscribeBlocksFromStartHeight(
blockStatus flow.BlockStatus,
opts ...grpc.CallOption,
) (<-chan flow.Block, <-chan error, error) {
status := convert.BlockStatusToEntity(blockStatus)
if status == entities.BlockStatus_BLOCK_UNKNOWN {
return nil, nil, newRPCError(errors.New("unknown block status"))
}

request := &access.SubscribeBlocksFromStartHeightRequest{
StartBlockHeight: startHeight,
BlockStatus: convert.BlockStatusToEntity(blockStatus),
BlockStatus: status,
}

subscribeClient, err := c.rpcClient.SubscribeBlocksFromStartHeight(ctx, request, opts...)
Expand All @@ -1191,8 +1203,13 @@ func (c *BaseClient) SubscribeBlocksFromLatest(
blockStatus flow.BlockStatus,
opts ...grpc.CallOption,
) (<-chan flow.Block, <-chan error, error) {
status := convert.BlockStatusToEntity(blockStatus)
if status == entities.BlockStatus_BLOCK_UNKNOWN {
return nil, nil, newRPCError(errors.New("unknown block status"))
}

request := &access.SubscribeBlocksFromLatestRequest{
BlockStatus: convert.BlockStatusToEntity(blockStatus),
BlockStatus: status,
}

subscribeClient, err := c.rpcClient.SubscribeBlocksFromLatest(ctx, request, opts...)
Expand Down

0 comments on commit e1a4a36

Please sign in to comment.