From 061f9c448ac7b10372d8a152c83f2017e57c794d Mon Sep 17 00:00:00 2001 From: 0xluk Date: Fri, 20 Dec 2024 14:34:32 +0200 Subject: [PATCH] added early exit clause in GetTickEvents which return early when no transactions are present in the specified tick --- sdk/events/client.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sdk/events/client.go b/sdk/events/client.go index bdbac78..88c3fbd 100644 --- a/sdk/events/client.go +++ b/sdk/events/client.go @@ -69,6 +69,10 @@ func (c *Client) GetTickEventsOneByOne(ctx context.Context, passcode [4]uint64, return nil, errors.Wrap(err, "getting tick data") } + if len(td.TransactionIds) == 0 { + return &qubicpb.TickEvents{Tick: tickNumber, TxEvents: []*qubicpb.TransactionEvents{}}, nil + } + txEvents := make([]*qubicpb.TransactionEvents, 0, len(td.TransactionIds)) for txIndex, txID := range td.TransactionIds { @@ -128,6 +132,10 @@ func (c *Client) GetTickEvents(ctx context.Context, passcode [4]uint64, tickNumb return nil, errors.Wrap(err, "getting tick data") } + if len(td.TransactionIds) == 0 { + return &qubicpb.TickEvents{Tick: tickNumber, TxEvents: []*qubicpb.TransactionEvents{}}, nil + } + req := struct { Passcode [4]uint64 TickNumber uint32 @@ -159,6 +167,10 @@ func (c *Client) GetTickEvents(ctx context.Context, passcode [4]uint64, tickNumb endEventId = result.FromEventID[i] + result.Length[i] - 1 } + if startEventId == math.MaxInt64 { + return &qubicpb.TickEvents{Tick: tickNumber, TxEvents: []*qubicpb.TransactionEvents{}}, nil + } + events, err := c.GetRangeEvents(ctx, passcode, uint64(startEventId), uint64(endEventId)) if err != nil { return nil, errors.Wrap(err, "getting range events")