Skip to content

Commit c93a1d0

Browse files
committed
fix: tweak expected reults query and add some test logging
1 parent 3acd850 commit c93a1d0

File tree

3 files changed

+202
-12
lines changed

3 files changed

+202
-12
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
COPY (
2+
with filtered as (
3+
select * from dbt_testnet_holesky_rewards.operator_avs_status
4+
where block_time < '2024-09-17'
5+
),
6+
marked_statuses AS (
7+
SELECT
8+
operator,
9+
avs,
10+
registered,
11+
block_time,
12+
block_date,
13+
LEAD(block_time) OVER (PARTITION BY operator, avs ORDER BY block_time ASC, log_index ASC) AS next_block_time,
14+
LEAD(registered) OVER (PARTITION BY operator, avs ORDER BY block_time ASC, log_index ASC) AS next_registration_status,
15+
LEAD(block_date) OVER (PARTITION BY operator, avs ORDER BY block_time ASC, log_index ASC) AS next_block_date,
16+
LAG(registered) OVER (PARTITION BY operator, avs ORDER BY block_time ASC, log_index ASC) AS prev_registered,
17+
LAG(block_date) OVER (PARTITION BY operator, avs ORDER BY block_time ASC, log_index ASC) AS prev_block_date
18+
FROM filtered
19+
),
20+
removed_same_day_deregistrations AS (
21+
SELECT * from marked_statuses
22+
WHERE NOT (
23+
(registered = TRUE AND
24+
COALESCE(next_registration_status = FALSE, false) AND
25+
COALESCE(block_date = next_block_date, false)) OR
26+
(registered = FALSE AND
27+
COALESCE(prev_registered = TRUE, false) and
28+
COALESCE(block_date = prev_block_date, false)
29+
)
30+
)
31+
),
32+
registration_periods AS (
33+
SELECT
34+
operator,
35+
avs,
36+
block_time AS start_time,
37+
COALESCE(next_block_time, TIMESTAMP '2024-09-01') AS end_time,
38+
registered
39+
FROM removed_same_day_deregistrations
40+
WHERE registered = TRUE
41+
),
42+
registration_windows_extra as (
43+
SELECT
44+
operator,
45+
avs,
46+
date_trunc('day', start_time) + interval '1' day as start_time,
47+
date_trunc('day', end_time) as end_time
48+
FROM registration_periods
49+
),
50+
operator_avs_registration_windows as (
51+
SELECT * from registration_windows_extra
52+
WHERE start_time != end_time
53+
),
54+
cleaned_records AS (
55+
SELECT * FROM operator_avs_registration_windows
56+
WHERE start_time < end_time
57+
),
58+
final_results as (
59+
SELECT
60+
operator,
61+
avs,
62+
day AS snapshot
63+
FROM cleaned_records
64+
CROSS JOIN generate_series(DATE(start_time), DATE(end_time) - interval '1' day, interval '1' day) AS day
65+
)
66+
select * from final_results
67+
) TO STDOUT WITH DELIMITER ',' CSV HEADER;
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
copy (with ranked_records AS (
2+
SELECT
3+
lower(operator) as operator,
4+
lower(avs) as avs,
5+
lower(strategy) as strategy,
6+
block_time,
7+
date_trunc('day', CAST(block_time as timestamp(6))) + interval '1' day as start_time,
8+
ROW_NUMBER() OVER (
9+
PARTITION BY operator, avs, strategy, date_trunc('day', CAST(block_time as timestamp(6))) + interval '1' day
10+
ORDER BY block_time DESC
11+
) AS rn
12+
FROM public.operator_restaked_strategies
13+
WHERE avs_directory_address = lower('0x055733000064333caddbc92763c58bf0192ffebf')
14+
and block_time < '2024-09-17'
15+
),
16+
latest_records AS (
17+
SELECT
18+
operator,
19+
avs,
20+
strategy,
21+
start_time,
22+
block_time
23+
FROM ranked_records
24+
WHERE rn = 1
25+
),
26+
grouped_records AS (
27+
SELECT
28+
operator,
29+
avs,
30+
strategy,
31+
start_time,
32+
LEAD(start_time) OVER (
33+
PARTITION BY operator, avs, strategy
34+
ORDER BY start_time ASC
35+
) AS next_start_time
36+
FROM latest_records
37+
),
38+
parsed_ranges AS (
39+
SELECT
40+
operator,
41+
avs,
42+
strategy,
43+
start_time,
44+
CASE
45+
WHEN next_start_time IS NULL OR next_start_time > start_time + INTERVAL '1' DAY THEN start_time
46+
ELSE next_start_time
47+
END AS end_time
48+
FROM grouped_records
49+
),
50+
active_windows as (
51+
SELECT *
52+
FROM parsed_ranges
53+
WHERE start_time != end_time
54+
),
55+
gaps_and_islands AS (
56+
SELECT
57+
operator,
58+
avs,
59+
strategy,
60+
start_time,
61+
end_time,
62+
LAG(end_time) OVER(PARTITION BY operator, avs, strategy ORDER BY start_time) as prev_end_time
63+
FROM active_windows
64+
),
65+
island_detection AS (
66+
SELECT operator, avs, strategy, start_time, end_time, prev_end_time,
67+
CASE
68+
WHEN prev_end_time = start_time THEN 0
69+
ELSE 1
70+
END as new_island
71+
FROM gaps_and_islands
72+
),
73+
island_groups AS (
74+
SELECT
75+
operator,
76+
avs,
77+
strategy,
78+
start_time,
79+
end_time,
80+
SUM(new_island) OVER (
81+
PARTITION BY operator, avs, strategy ORDER BY start_time
82+
) AS island_id
83+
FROM island_detection
84+
),
85+
operator_avs_strategy_windows AS (
86+
SELECT
87+
operator,
88+
avs,
89+
strategy,
90+
MIN(start_time) AS start_time,
91+
MAX(end_time) AS end_time
92+
FROM island_groups
93+
GROUP BY operator, avs, strategy, island_id
94+
ORDER BY operator, avs, strategy, start_time
95+
),
96+
cleaned_records AS (
97+
SELECT * FROM operator_avs_strategy_windows
98+
WHERE start_time < end_time
99+
),
100+
final_results as (
101+
SELECT
102+
operator,
103+
avs,
104+
strategy,
105+
cast(day AS DATE) AS snapshot
106+
FROM
107+
cleaned_records
108+
CROSS JOIN
109+
generate_series(DATE(start_time), DATE(end_time) - interval '1' day, interval '1' day) AS day
110+
)
111+
select * from final_results
112+
) to STDOUT DELIMITER ',' CSV HEADER;

pkg/rewards/rewards_test.go

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -294,36 +294,47 @@ func Test_Rewards(t *testing.T) {
294294
fmt.Printf("\tRows in gold_6_rfae_operators: %v - [time: %v]\n", rows, time.Since(testStart))
295295
testStart = time.Now()
296296

297+
rewardsV2Enabled, err := cfg.IsRewardsV2EnabledForCutoffDate(snapshotDate)
298+
assert.Nil(t, err)
299+
297300
fmt.Printf("Running gold_7_active_od_rewards\n")
298301
err = rc.Generate7ActiveODRewards(snapshotDate)
299302
assert.Nil(t, err)
300-
rows, err = getRowCountForTable(grm, goldTableNames[rewardsUtils.Table_7_ActiveODRewards])
301-
assert.Nil(t, err)
302-
fmt.Printf("\tRows in gold_7_active_od_rewards: %v - [time: %v]\n", rows, time.Since(testStart))
303+
if rewardsV2Enabled {
304+
rows, err = getRowCountForTable(grm, goldTableNames[rewardsUtils.Table_7_ActiveODRewards])
305+
assert.Nil(t, err)
306+
fmt.Printf("\tRows in gold_7_active_od_rewards: %v - [time: %v]\n", rows, time.Since(testStart))
307+
}
303308
testStart = time.Now()
304309

305310
fmt.Printf("Running gold_8_operator_od_reward_amounts\n")
306311
err = rc.GenerateGold8OperatorODRewardAmountsTable(snapshotDate)
307312
assert.Nil(t, err)
308-
rows, err = getRowCountForTable(grm, goldTableNames[rewardsUtils.Table_8_OperatorODRewardAmounts])
309-
assert.Nil(t, err)
310-
fmt.Printf("\tRows in gold_8_operator_od_reward_amounts: %v - [time: %v]\n", rows, time.Since(testStart))
313+
if rewardsV2Enabled {
314+
rows, err = getRowCountForTable(grm, goldTableNames[rewardsUtils.Table_8_OperatorODRewardAmounts])
315+
assert.Nil(t, err)
316+
fmt.Printf("\tRows in gold_8_operator_od_reward_amounts: %v - [time: %v]\n", rows, time.Since(testStart))
317+
}
311318
testStart = time.Now()
312319

313320
fmt.Printf("Running gold_9_staker_od_reward_amounts\n")
314321
err = rc.GenerateGold9StakerODRewardAmountsTable(snapshotDate)
315322
assert.Nil(t, err)
316-
rows, err = getRowCountForTable(grm, goldTableNames[rewardsUtils.Table_9_StakerODRewardAmounts])
317-
assert.Nil(t, err)
318-
fmt.Printf("\tRows in gold_9_staker_od_reward_amounts: %v - [time: %v]\n", rows, time.Since(testStart))
323+
if rewardsV2Enabled {
324+
rows, err = getRowCountForTable(grm, goldTableNames[rewardsUtils.Table_9_StakerODRewardAmounts])
325+
assert.Nil(t, err)
326+
fmt.Printf("\tRows in gold_9_staker_od_reward_amounts: %v - [time: %v]\n", rows, time.Since(testStart))
327+
}
319328
testStart = time.Now()
320329

321330
fmt.Printf("Running gold_10_avs_od_reward_amounts\n")
322331
err = rc.GenerateGold10AvsODRewardAmountsTable(snapshotDate)
323332
assert.Nil(t, err)
324-
rows, err = getRowCountForTable(grm, goldTableNames[rewardsUtils.Table_10_AvsODRewardAmounts])
325-
assert.Nil(t, err)
326-
fmt.Printf("\tRows in gold_10_avs_od_reward_amounts: %v - [time: %v]\n", rows, time.Since(testStart))
333+
if rewardsV2Enabled {
334+
rows, err = getRowCountForTable(grm, goldTableNames[rewardsUtils.Table_10_AvsODRewardAmounts])
335+
assert.Nil(t, err)
336+
fmt.Printf("\tRows in gold_10_avs_od_reward_amounts: %v - [time: %v]\n", rows, time.Since(testStart))
337+
}
327338
testStart = time.Now()
328339

329340
fmt.Printf("Running gold_11_staging\n")

0 commit comments

Comments
 (0)