Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions api/queries/nova/batting_campaign_wins.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
WITH bot_atbat_results AS (
SELECT
label_data -> 'args' ->> 'atBatID' as atbat_id,
label_data -> 'args' ->> 'batterAddress' as batter_address,
label_data -> 'args' ->> 'batterTokenID' as batter_token_id,
label_data -> 'args' ->> 'pitcherAddress' as pitcher_address,
label_data -> 'args' ->> 'pitcherTokenID' as pitcher_token_id,
label_data -> 'args' ->> 'outcome' as outcome
FROM
__labels_table__
WHERE
label_data->>'name' = 'AtBatProgress'
AND address = :fullcount_address
AND label_data -> 'args' ->> 'pitcherAddress' = :bots_address
),
batter_wins AS (
SELECT
pitcher_token_id,
COUNT(*) as wins
FROM
bot_atbat_results
WHERE
outcome = '6'
AND batter_address = :batter_address
AND batter_token_id = :batter_token_id
AND pitcher_token_id IN :pitcher_token_ids
GROUP BY
pitcher_token_id
)
SELECT
COALESCE(json_agg(json_build_object('token_id', pitcher_token_id, 'wins', wins)), json_build_array()) as wins_against_token_id
FROM
batter_wins
24 changes: 24 additions & 0 deletions api/queries/nova/batting_campaign_wins_old.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
WITH bot_atbat_results AS (
SELECT
label_data -> 'args' ->> 'atBatID' as atbat_id,
label_data -> 'args' ->> 'batterAddress' as batter_address,
label_data -> 'args' ->> 'batterTokenID' as batter_token_id,
label_data -> 'args' ->> 'pitcherAddress' as pitcher_address,
label_data -> 'args' ->> 'pitcherTokenID' as pitcher_token_id,
label_data -> 'args' ->> 'outcome' as outcome
FROM
__labels_table__
WHERE
label_data->>'name' = 'AtBatProgress'
AND address = :fullcount_address
AND label_data -> 'args' ->> 'pitcherAddress' = :bots_address
)
SELECT
COUNT(*) as wins
FROM
bot_atbat_results
WHERE
outcome = '6'
AND bot_atbat_results.batter_address = :batter_address
AND bot_atbat_results.batter_token_id = :batter_token_id
AND bot_atbat_results.pitcher_token_id IN :pitcher_token_ids
55 changes: 55 additions & 0 deletions api/queries/nova/leaderboards/home_run_leaderboard.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
with dedup_events as (
SELECT
DISTINCT ON(transaction_hash, log_index) *
FROM arbitrum_nova_labels
WHERE label='moonworm-alpha'
AND address='0xDfE251B4F12547867ff839bcacec4d159DD68E47'
AND log_index IS NOT NULL
), AtBats as (
SELECT
label_data->'args'->>'sessionID' as session_id,
label_data->'args'->>'outcome' as outcome,
label_data->'args'->>'batterAddress' as batter_address,
label_data->'args'->>'batterTokenID' as batter_token_id,
label_data->'args'->>'pitcherAddress' as pitcher_address,
label_data->'args'->>'pitcherTokenID' as pitcher_token_id,
log_index
FROM dedup_events
WHERE label_data->>'name'='AtBatProgress' AND label_data->'args'->>'outcome'!='0'
), batter_stats as (
SELECT
SUM(CASE
WHEN outcome = '1' THEN 1 ELSE 0
END) as strikeouts,
SUM(CASE
WHEN outcome = '2' THEN 1 ELSE 0
END) as walks,
SUM(CASE
WHEN outcome = '3' THEN 1 ELSE 0
END) as singles,
SUM(CASE
WHEN outcome = '4' THEN 1 ELSE 0
END) as doubles,
SUM(CASE
WHEN outcome = '5' THEN 1 ELSE 0
END) as triples,
SUM(CASE
WHEN outcome = '6' THEN 1 ELSE 0
END) as home_runs,
SUM(CASE
WHEN outcome = '7' THEN 1 ELSE 0
END) as in_play_outs,
count(*) as total_batter_events,
batter_address as batter_address,
batter_token_id as batter_token_id
FROM AtBats
GROUP BY batter_address, batter_token_id
ORDER BY home_runs DESC
)
select
batter_address || '_' || batter_token_id as address,
home_runs as score,
json_build_object(
'home_runs', home_runs
) as points_data
from batter_stats
61 changes: 61 additions & 0 deletions api/queries/nova/leaderboards/obp_leaderboard.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
with dedup_events as (
SELECT
DISTINCT ON(transaction_hash, log_index) *
FROM arbitrum_nova_labels
WHERE label='moonworm-alpha'
AND address='0xDfE251B4F12547867ff839bcacec4d159DD68E47'
AND log_index IS NOT NULL
), AtBats as (
SELECT
label_data->'args'->>'sessionID' as session_id,
label_data->'args'->>'outcome' as outcome,
label_data->'args'->>'batterAddress' as batter_address,
label_data->'args'->>'batterTokenID' as batter_token_id,
label_data->'args'->>'pitcherAddress' as pitcher_address,
label_data->'args'->>'pitcherTokenID' as pitcher_token_id,
log_index
FROM dedup_events
WHERE label_data->>'name'='AtBatProgress' AND label_data->'args'->>'outcome'!='0'
), batter_stats as (
SELECT
SUM(CASE
WHEN outcome = '1' THEN 1 ELSE 0
END) as strikeouts,
SUM(CASE
WHEN outcome = '2' THEN 1 ELSE 0
END) as walks,
SUM(CASE
WHEN outcome = '3' THEN 1 ELSE 0
END) as singles,
SUM(CASE
WHEN outcome = '4' THEN 1 ELSE 0
END) as doubles,
SUM(CASE
WHEN outcome = '5' THEN 1 ELSE 0
END) as triples,
SUM(CASE
WHEN outcome = '6' THEN 1 ELSE 0
END) as home_runs,
SUM(CASE
WHEN outcome = '7' THEN 1 ELSE 0
END) as in_play_outs,
count(*) as total_batter_events,
batter_address as batter_address,
batter_token_id as batter_token_id
FROM AtBats
GROUP BY batter_address, batter_token_id
), batter_data as (
SELECT
batter_address || '_' || batter_token_id as address,
1.0 * (walks + singles + doubles + triples + home_runs) / NULLIF(total_batter_events, 0)::float as obp
FROM batter_stats
WHERE total_batter_events > 9
)
select
address,
ROUND(obp * 1000)::int as score,
json_build_object(
'obp', ROUND(obp * 1000)
) as points_data
from batter_data
ORDER BY obp DESC
52 changes: 52 additions & 0 deletions api/queries/nova/leaderboards/pitching_outs_leaderboard.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
with dedup_events as (
SELECT
DISTINCT ON(transaction_hash, log_index) *
FROM arbitrum_nova_labels
WHERE label='moonworm-alpha'
AND address='0xDfE251B4F12547867ff839bcacec4d159DD68E47'
AND log_index IS NOT NULL
), AtBats as (
SELECT
label_data->'args'->>'sessionID' as session_id,
label_data->'args'->>'outcome' as outcome,
label_data->'args'->>'batterAddress' as batter_address,
label_data->'args'->>'batterTokenID' as batter_token_id,
label_data->'args'->>'pitcherAddress' as pitcher_address,
label_data->'args'->>'pitcherTokenID' as pitcher_token_id,
log_index
FROM dedup_events
WHERE label_data->>'name'='AtBatProgress' AND label_data->'args'->>'outcome'!='0'
), pitcher_stats as (
SELECT
SUM(CASE
WHEN outcome = '1' or outcome = '7' THEN 1 ELSE 0
END) as outs,
SUM(CASE
WHEN outcome = '2' THEN 1 ELSE 0
END) as walks,
SUM(CASE
WHEN outcome = '3' THEN 1 ELSE 0
END) as singles,
SUM(CASE
WHEN outcome = '4' THEN 1 ELSE 0
END) as doubles,
SUM(CASE
WHEN outcome = '5' THEN 1 ELSE 0
END) as triples,
SUM(CASE
WHEN outcome = '6' THEN 1 ELSE 0
END) as home_runs,
count(*) as total_pitcher_events,
pitcher_address,
pitcher_token_id
FROM AtBats
GROUP BY pitcher_address, pitcher_token_id
ORDER BY outs DESC
)
select
pitcher_address || '_' || pitcher_token_id as address,
outs as score,
json_build_object(
'outs', outs
) as points_data
from pitcher_stats
55 changes: 55 additions & 0 deletions api/queries/nova/leaderboards/strikeout_leaderboard.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
with dedup_events as (
SELECT
DISTINCT ON(transaction_hash, log_index) *
FROM arbitrum_nova_labels
WHERE label='moonworm-alpha'
AND address='0xDfE251B4F12547867ff839bcacec4d159DD68E47'
AND log_index IS NOT NULL
), AtBats as (
SELECT
label_data->'args'->>'sessionID' as session_id,
label_data->'args'->>'outcome' as outcome,
label_data->'args'->>'batterAddress' as batter_address,
label_data->'args'->>'batterTokenID' as batter_token_id,
label_data->'args'->>'pitcherAddress' as pitcher_address,
label_data->'args'->>'pitcherTokenID' as pitcher_token_id,
log_index
FROM dedup_events
WHERE label_data->>'name'='AtBatProgress' AND label_data->'args'->>'outcome'!='0'
), pitcher_stats as (
SELECT
SUM(CASE
WHEN outcome = '1' THEN 1 ELSE 0
END) as strikeouts,
SUM(CASE
WHEN outcome = '2' THEN 1 ELSE 0
END) as walks,
SUM(CASE
WHEN outcome = '3' THEN 1 ELSE 0
END) as singles,
SUM(CASE
WHEN outcome = '4' THEN 1 ELSE 0
END) as doubles,
SUM(CASE
WHEN outcome = '5' THEN 1 ELSE 0
END) as triples,
SUM(CASE
WHEN outcome = '6' THEN 1 ELSE 0
END) as home_runs,
SUM(CASE
WHEN outcome = '7' THEN 1 ELSE 0
END) as in_play_outs,
count(*) as total_pitcher_events,
pitcher_address,
pitcher_token_id
FROM AtBats
GROUP BY pitcher_address, pitcher_token_id
ORDER BY strikeouts DESC
)
select
pitcher_address || '_' || pitcher_token_id as address,
strikeouts as score,
json_build_object(
'strikeouts', strikeouts
) as points_data
from pitcher_stats
57 changes: 57 additions & 0 deletions api/queries/nova/leaderboards/total_atbats_leaderboard.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
with dedup_events as (
SELECT
DISTINCT ON(transaction_hash, log_index) *
FROM arbitrum_nova_labels
WHERE label='moonworm-alpha'
AND address='0xDfE251B4F12547867ff839bcacec4d159DD68E47'
AND log_index IS NOT NULL
), AtBats as (
SELECT
label_data->'args'->>'outcome' as outcome,
label_data->'args'->>'batterAddress' as batter_address,
label_data->'args'->>'batterTokenID' as batter_token_id,
log_index
FROM dedup_events
WHERE label_data->>'name'='AtBatProgress' AND label_data->'args'->>'outcome'!='0'
), batter_stats as (
SELECT
SUM(CASE
WHEN outcome = '1' THEN 1 ELSE 0
END) as strikeouts,
SUM(CASE
WHEN outcome = '2' THEN 1 ELSE 0
END) as walks,
SUM(CASE
WHEN outcome = '3' THEN 1 ELSE 0
END) as singles,
SUM(CASE
WHEN outcome = '4' THEN 1 ELSE 0
END) as doubles,
SUM(CASE
WHEN outcome = '5' THEN 1 ELSE 0
END) as triples,
SUM(CASE
WHEN outcome = '6' THEN 1 ELSE 0
END) as home_runs,
SUM(CASE
WHEN outcome = '7' THEN 1 ELSE 0
END) as in_play_outs,
count(*) as total_batter_events,
batter_address as batter_address,
batter_token_id as batter_token_id
FROM AtBats
GROUP BY batter_address, batter_token_id
), batter_data as (
SELECT
batter_address || '_' || batter_token_id as address,
total_batter_events - walks as at_bats
FROM batter_stats
ORDER BY at_bats DESC
)
select
address,
at_bats as score,
json_build_object(
'at-bats', at_bats
) as points_data
from batter_data
Loading