@@ -47,3 +47,41 @@ def test_log_encode(log: FramePerfLog):
47
47
48
48
assert decoded ["threshold" ] == log .threshold
49
49
assert decoded ["frame" ] == list (log .frame )
50
+
51
+
52
+ def test_logs_encode ():
53
+ log_0 = FramePerfLog (ReferenceBlockStampFactory .build (), (EpochNumber (100 ), EpochNumber (500 )))
54
+ log_0 .operators [NodeOperatorId (42 )].validators ["41337" ].perf = AttestationsAccumulator (220 , 119 )
55
+ log_0 .operators [NodeOperatorId (42 )].distributed = 17
56
+ log_0 .operators [NodeOperatorId (0 )].distributed = 0
57
+
58
+ log_1 = FramePerfLog (ReferenceBlockStampFactory .build (), (EpochNumber (500 ), EpochNumber (900 )))
59
+ log_1 .operators [NodeOperatorId (5 )].validators ["1234" ].perf = AttestationsAccumulator (400 , 399 )
60
+ log_1 .operators [NodeOperatorId (5 )].distributed = 40
61
+ log_1 .operators [NodeOperatorId (18 )].distributed = 0
62
+
63
+ logs = [log_0 , log_1 ]
64
+
65
+ encoded = FramePerfLog .encode (logs )
66
+
67
+ decoded = json .loads (encoded )
68
+
69
+ assert len (decoded ) == 2
70
+
71
+ assert decoded [0 ]["operators" ]["42" ]["validators" ]["41337" ]["perf" ]["assigned" ] == 220
72
+ assert decoded [0 ]["operators" ]["42" ]["validators" ]["41337" ]["perf" ]["included" ] == 119
73
+ assert decoded [0 ]["operators" ]["42" ]["distributed" ] == 17
74
+ assert decoded [0 ]["operators" ]["0" ]["distributed" ] == 0
75
+
76
+ assert decoded [1 ]["operators" ]["5" ]["validators" ]["1234" ]["perf" ]["assigned" ] == 400
77
+ assert decoded [1 ]["operators" ]["5" ]["validators" ]["1234" ]["perf" ]["included" ] == 399
78
+ assert decoded [1 ]["operators" ]["5" ]["distributed" ] == 40
79
+ assert decoded [1 ]["operators" ]["18" ]["distributed" ] == 0
80
+
81
+ for i , log in enumerate (logs ):
82
+ assert decoded [i ]["blockstamp" ]["block_hash" ] == log .blockstamp .block_hash
83
+ assert decoded [i ]["blockstamp" ]["ref_slot" ] == log .blockstamp .ref_slot
84
+
85
+ assert decoded [i ]["threshold" ] == log .threshold
86
+ assert decoded [i ]["frame" ] == list (log .frame )
87
+ assert decoded [i ]["distributable" ] == log .distributable
0 commit comments