Skip to content

Commit f55ea2a

Browse files
0xlukclaude
andcommitted
Pass lastLogForTick through BuildEventMessage parameter
Move lastLogForTick into BuildEventMessage as a parameter instead of setting it on the returned struct after the call, so the function fully constructs the message. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent a21ca45 commit f55ea2a

3 files changed

Lines changed: 31 additions & 5 deletions

File tree

bob-events-bridge/internal/kafka/message.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ func TransformEventBody(eventType uint32, body interface{}) (map[string]any, err
101101
}
102102

103103
// BuildEventMessage assembles a full Kafka EventMessage from bob log payload components.
104-
func BuildEventMessage(payload *bob.LogPayload, parsedBody interface{}, indexInTick uint32) (*EventMessage, error) {
104+
func BuildEventMessage(payload *bob.LogPayload, parsedBody interface{}, indexInTick uint32, lastLogForTick bool) (*EventMessage, error) {
105105
body, err := TransformEventBody(payload.Type, parsedBody)
106106
if err != nil {
107107
return nil, fmt.Errorf("failed to transform event body: %w", err)
@@ -118,5 +118,6 @@ func BuildEventMessage(payload *bob.LogPayload, parsedBody interface{}, indexInT
118118
Timestamp: payload.Timestamp,
119119
TransactionHash: payload.TxHash,
120120
Body: body,
121+
LastLogForTick: lastLogForTick,
121122
}, nil
122123
}

bob-events-bridge/internal/kafka/message_test.go

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ func TestBuildEventMessage(t *testing.T) {
243243
Amount: 1000,
244244
}
245245

246-
msg, err := BuildEventMessage(payload, body, 3)
246+
msg, err := BuildEventMessage(payload, body, 3, false)
247247
require.NoError(t, err)
248248

249249
assert.Equal(t, uint64(3), msg.Index)
@@ -258,6 +258,7 @@ func TestBuildEventMessage(t *testing.T) {
258258
assert.Equal(t, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", msg.Body["source"])
259259
assert.Equal(t, "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB", msg.Body["destination"])
260260
assert.Equal(t, int64(1000), msg.Body["amount"])
261+
assert.False(t, msg.LastLogForTick)
261262
}
262263

263264
func TestBuildEventMessage_NilBody(t *testing.T) {
@@ -272,8 +273,33 @@ func TestBuildEventMessage_NilBody(t *testing.T) {
272273
TxHash: "TXHASH",
273274
}
274275

275-
msg, err := BuildEventMessage(payload, nil, 0)
276+
msg, err := BuildEventMessage(payload, nil, 0, false)
276277
require.NoError(t, err)
277278
assert.Nil(t, msg.Body)
279+
assert.False(t, msg.LastLogForTick)
280+
}
281+
282+
func TestBuildEventMessage_LastLogForTick(t *testing.T) {
283+
payload := &bob.LogPayload{
284+
OK: true,
285+
Epoch: 145,
286+
Tick: 22000001,
287+
Type: 0,
288+
LogID: 99,
289+
LogDigest: "def456",
290+
BodySize: 64,
291+
Timestamp: uint64(1718461800),
292+
TxHash: "TXHASH",
293+
}
294+
295+
body := &bob.QuTransferBody{
296+
From: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
297+
To: "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
298+
Amount: 500,
299+
}
300+
301+
msg, err := BuildEventMessage(payload, body, 5, true)
302+
require.NoError(t, err)
303+
assert.True(t, msg.LastLogForTick)
278304
}
279305

bob-events-bridge/internal/processor/processor.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -349,11 +349,10 @@ func (p *Processor) handleTickStreamResult(ctx context.Context, result *bob.Tick
349349
// Build kafka message (if publisher configured)
350350
var kafkaMsg *kafka.EventMessage
351351
if p.publisher != nil {
352-
kafkaMsg, err = kafka.BuildEventMessage(&payload, parsed, p.tickEventIndex)
352+
kafkaMsg, err = kafka.BuildEventMessage(&payload, parsed, p.tickEventIndex, isLastLog)
353353
if err != nil {
354354
return fmt.Errorf("failed to build kafka message: %w", err)
355355
}
356-
kafkaMsg.LastLogForTick = isLastLog
357356
}
358357

359358
// Create event proto

0 commit comments

Comments
 (0)