@@ -4,85 +4,71 @@ export interface HaskellTraceEvent {
4
4
event : HaskellEvent ;
5
5
}
6
6
7
- type MessageKind = "IB" | "EB" | "RB" | "VT" ;
7
+ type BlockKind = "IB" | "EB" | "RB" | "VT" ;
8
+ type BlockAction = "Generated" | "EnteredState" ;
8
9
9
10
type HaskellEvent =
10
11
| HaskellCpuEvent
11
- | HaskellGeneratedEvent
12
- | HaskellSentEvent
13
- | HaskellReceivedEvent
14
- | HaskellStateEvent ;
12
+ | HaskellBlockEvent // Unified block event type
13
+ | HaskellNetworkEvent ; // Combine Sent/Received into network events
15
14
16
15
interface HaskellCpuEvent {
17
- tag : "Cpu" ;
18
- node : number ;
19
- node_name : string ;
20
- duration_s : number ;
16
+ type : "Cpu" ;
17
+ node : string ;
18
+ cpu_time_s : number ;
21
19
// CPU task types: Block validation (ValIB, ValEB, ValRB), Header validation (ValIH, ValRH), Vote validation (ValVote). Format: "<task_type>: <id>"
22
20
task_label : string ; // e.g., "ValIB: 6-29" or "ValRH: 6253064077348247640"
23
21
}
24
22
25
- type HaskellGeneratedEvent =
26
- | HaskellGeneratedIBEvent
27
- | HaskellGeneratedEBEvent
28
- | HaskellGeneratedRBEvent
29
- | HaskellGeneratedVTEvent ;
23
+ // Base block event interface with just identification info
24
+ interface BaseBlockEvent {
25
+ type : `${BlockKind } ${BlockAction } `;
26
+ node : string ;
27
+ id : string ;
28
+ slot : number ;
29
+ }
30
30
31
- interface HaskellGeneratedBaseEvent {
32
- tag : "generated" ;
33
- node : number ;
34
- node_name : string ;
31
+ // Additional fields for Generated events
32
+ interface GeneratedBlockEvent extends BaseBlockEvent {
35
33
size_bytes : number ;
36
34
}
37
35
38
- interface HaskellGeneratedIBEvent extends HaskellGeneratedBaseEvent {
39
- kind : "IB" ;
40
- id : string ;
41
- slot : number ;
36
+ interface GeneratedInputBlock extends GeneratedBlockEvent {
42
37
payload_bytes : number ;
43
38
rb_ref : string ;
44
39
}
45
40
46
- interface HaskellGeneratedEBEvent extends HaskellGeneratedBaseEvent {
47
- kind : "EB" ;
48
- id : string ;
41
+ interface GeneratedEndorserBlock extends GeneratedBlockEvent {
49
42
input_blocks : string [ ] ;
50
43
}
51
44
52
- interface HaskellGeneratedRBEvent extends HaskellGeneratedBaseEvent {
53
- kind : "RB" ;
54
- id : string ;
45
+ interface GeneratedRankingBlock extends GeneratedBlockEvent {
46
+ endorse_blocks : string [ ] ;
47
+ payload_bytes : number ;
55
48
}
56
49
57
- interface HaskellGeneratedVTEvent extends HaskellGeneratedBaseEvent {
58
- kind : "VT" ;
59
- id : string ;
50
+ interface GeneratedVote extends GeneratedBlockEvent {
60
51
votes : number ;
61
52
endorse_blocks : string [ ] ;
62
53
}
63
54
64
- interface HaskellSentEvent {
65
- tag : "Sent" ;
66
- sender : number ;
67
- receipient : number ;
55
+ // EnteredState events only need the base identification info
56
+ type EnteredStateBlock = BaseBlockEvent ;
57
+
58
+ type HaskellBlockEvent =
59
+ | GeneratedInputBlock
60
+ | GeneratedEndorserBlock
61
+ | GeneratedRankingBlock
62
+ | GeneratedVote
63
+ | EnteredStateBlock ;
64
+
65
+ interface HaskellNetworkEvent {
66
+ type : "NetworkMessage" ;
67
+ action : "Sent" | "Received" ; // Added to distinguish direction
68
+ sender : string ;
69
+ recipient : string ;
70
+ block_kind : BlockKind ;
68
71
msg_size_bytes : number ;
69
72
sending_s : number ;
70
- kind : MessageKind ;
71
73
ids : string [ ] ;
72
74
}
73
-
74
- interface HaskellReceivedEvent {
75
- tag : "received" ;
76
- kind : MessageKind ;
77
- id : string ;
78
- node : number ;
79
- node_name : string ;
80
- }
81
-
82
- interface HaskellStateEvent {
83
- tag : "enteredstate" ;
84
- kind : MessageKind ;
85
- id : string ;
86
- node : number ;
87
- node_name : string ;
88
- }
0 commit comments