Skip to content

Commit 8f6fe22

Browse files
authored
switch to dbt solvers table (#357)
* switch to dbt solvers table * make backwards compatible * fix one more query
1 parent 0466c01 commit 8f6fe22

14 files changed

Lines changed: 166 additions & 45 deletions

cowprotocol/accounting/rewards/main_rewards_dashboard_query_2510345.sql

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,16 @@ aggregate_results as (
132132
from solver_competition_rewards as pr left outer join fees_and_costs as fc on pr.solver = fc.solver
133133
),
134134

135+
solvers as (
136+
select
137+
address,
138+
environment,
139+
name,
140+
whitelisted as active
141+
from dune.cowprotocol.solvers
142+
where blockchain = '{{blockchain}}'
143+
),
144+
135145
combined_data as (
136146
select
137147
coalesce(ar.solver, ss.solver, qr.solver) as solver,
@@ -154,7 +164,7 @@ combined_data as (
154164
on ar.solver = ss.solver
155165
full outer join quote_rewards as qr
156166
on ar.solver = qr.solver
157-
left join cow_protocol_{{blockchain}}.solvers as s
167+
left join solvers as s
158168
on coalesce(ar.solver, ss.solver, qr.solver) = s.address
159169
),
160170

cowprotocol/accounting/rewards/overdrafts_tracker_5936281.sql

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,16 @@ most_recent_updates as (
3434
from overdraft_update_events
3535
)
3636
where rn = 1
37+
),
38+
39+
solvers as (
40+
select
41+
address,
42+
environment,
43+
name,
44+
whitelisted as active
45+
from dune.cowprotocol.solvers
46+
where blockchain = '{{blockchain}}'
3747
)
3848

3949
select
@@ -43,6 +53,6 @@ select
4353
s.active,
4454
coalesce(mru.new_overdraft, 0) as current_ovedraft_native_token_atoms,
4555
coalesce(mru.new_overdraft, 0) / pow(10,18) as current_overdraft_native_token_units
46-
from cow_protocol_{{blockchain}}.solvers as s left join most_recent_updates as mru on s.address = mru.solver
56+
from solvers as s left join most_recent_updates as mru on s.address = mru.solver
4757
where coalesce(mru.new_overdraft, 0) > 0
4858
order by coalesce(mru.new_overdraft, 0) desc

cowprotocol/accounting/rewards/unusual_slippage_query_2332678.sql

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,21 @@ url_helper as (
1717
when '{{blockchain}}' = 'bnb' then 'bsc'
1818
else '{{blockchain}}'
1919
end
20+
),
21+
22+
solvers as (
23+
select
24+
address,
25+
environment,
26+
name,
27+
whitelisted as active
28+
from dune.cowprotocol.solvers
29+
where blockchain = '{{blockchain}}'
2030
)
2131

2232
select --noqa: ST06
2333
rpt.block_time,
24-
concat(environment, '-', name) as solver_name,
34+
concat(s.environment, '-', s.name) as solver_name,
2535
concat(
2636
'<a href="https://dune.com/queries/4059683',
2737
'?blockchain={{blockchain}}',
@@ -47,7 +57,7 @@ select --noqa: ST06
4757
network_fee_usd
4858
from results_per_tx as rpt
4959
inner join cow_protocol_{{blockchain}}.batches as b on rpt.tx_hash = b.tx_hash
50-
inner join cow_protocol_{{blockchain}}.solvers on address = rpt.solver_address
60+
inner join solvers as s on s.address = rpt.solver_address
5161
where (
5262
abs(slippage_usd) > {{min_absolute_slippage_tolerance}}
5363
and

cowprotocol/accounting/rewards/vouch_registry_query_1541516.sql

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,16 @@ valid_vouches as (
9797
where time_rank = 1
9898
),
9999

100+
solvers as (
101+
select
102+
address,
103+
environment,
104+
name,
105+
whitelisted as active
106+
from dune.cowprotocol.solvers
107+
where blockchain = '{{blockchain}}'
108+
),
109+
100110
named_results as (
101111
select
102112
vv.solver,
@@ -105,7 +115,7 @@ named_results as (
105115
bp.pool_name,
106116
concat(environment, '-', s.name) as solver_name
107117
from valid_vouches as vv
108-
inner join cow_protocol_{{blockchain}}.solvers as s on vv.solver = s.address
118+
inner join solvers as s on vv.solver = s.address
109119
inner join full_bonding_pools as bp on vv.pool_address = bp.pool_address
110120
)
111121

cowprotocol/accounting/slippage/slippage_query_3427730.sql

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
with solvers as (
2+
select
3+
address,
4+
environment,
5+
name,
6+
whitelisted as active
7+
from dune.cowprotocol.solvers
8+
where blockchain = '{{blockchain}}'
9+
)
10+
111
select
212
solver_address,
313
concat(environment, '-', name) as solver_name,
@@ -12,5 +22,4 @@ select
1222
'" target="_blank">link</a>'
1323
) as slippage_per_transaction
1424
from "query_4070065(blockchain='{{blockchain}}',start_time='{{start_time}}',end_time='{{end_time}}',slippage_table_name='slippage_per_solver')"
15-
inner join cow_protocol_{{blockchain}}.solvers
16-
on solver_address = address
25+
inner join solvers as s on solver_address = s.address

cowprotocol/alerts/solver_daily_revert_rate_base_query_6228775.sql

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,21 @@ breakdown_per_solver as (
2222
100 * sum(is_revert) * 1.0000 / count(*) as percent_of_reverts
2323
from batch_data
2424
group by solver
25+
),
26+
27+
solvers as (
28+
select
29+
address,
30+
environment,
31+
name,
32+
whitelisted as active
33+
from dune.cowprotocol.solvers
34+
where blockchain = '{{blockchain}}'
2535
)
2636

2737
select
2838
s.environment,
2939
s.name,
3040
a.*
31-
from breakdown_per_solver as a inner join cow_protocol_{{blockchain}}.solvers as s
32-
on a.solver = s.address
41+
from breakdown_per_solver as a inner join solvers as s on a.solver = s.address
3342
where a.total_num_winning_solutions > 20
Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
with
2-
ranked as (
1+
with ranked as (
32
select
43
evt_tx_hash as tx_hash,
54
evt_block_time as block_time,
@@ -8,23 +7,33 @@ ranked as (
87
contract_address as token,
98
a.value,
109
rank() over (partition by spender, contract_address order by evt_block_number desc, evt_index desc) as rk
11-
from erc20_{{blockchain}}.evt_Approval as a
10+
from erc20_{{blockchain}}.evt_approval as a
1211
inner join {{blockchain}}.transactions on evt_tx_hash = hash
13-
where owner = 0x9008D19f58AAbD9eD0D60971565AA8510560ab41
12+
where owner = 0x9008d19f58aabd9ed0d60971565aa8510560ab41
13+
),
14+
15+
solvers as (
16+
select
17+
address,
18+
environment,
19+
name,
20+
whitelisted as active
21+
from dune.cowprotocol.solvers
22+
where blockchain = '{{blockchain}}'
1423
)
1524

1625
select --noqa: ST06
1726
block_time,
1827
tx_hash,
1928
responsible_address,
2029
case
21-
when responsible_address = 0x05C5494572E4aB2d48D3AB3aAF6bD4e7b1c98382 or responsible_address = 0xd8ca5fe380b68171155c7069b8df166db28befdd then 'PROPOSER-ACCOUNT'
30+
when responsible_address = 0x05c5494572e4ab2d48d3ab3aaf6bd4e7b1c98382 or responsible_address = 0xd8ca5fe380b68171155c7069b8df166db28befdd then 'PROPOSER-ACCOUNT'
2231
else coalesce(concat(environment, '-', name), 'NON-SOLVER')
2332
end as responsible_solver,
2433
spender,
2534
token,
2635
value
2736
from ranked as r
28-
left outer join cow_protocol_{{blockchain}}.solvers as s on r.responsible_address = s.address
37+
left outer join solvers as s on r.responsible_address = s.address
2938
where rk = 1 and value > 0
3039
order by block_time desc

cowprotocol/revenue/daily_revenue_by_integration_per_chain_4515022.sql

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,20 @@
33
-- {{ui_fee_recipient}} - the partner address that receives the CoW Swap UI fee
44
-- {{blockchain}} - the chain for which to collect the data
55

6+
with solvers as (
7+
select
8+
address,
9+
environment,
10+
name,
11+
whitelisted as active
12+
from dune.cowprotocol.solvers
13+
where blockchain = '{{blockchain}}'
14+
)
15+
616
select
717
s.name,
818
date(block_time) as "day",
919
coalesce(sum("Limit"), 0) + coalesce(sum("Market"), 0) + coalesce(sum("UI Fee"), 0) + coalesce(sum("Partner Fee Share"), 0) as total
1020
from "query_4217030(blockchain='{{blockchain}}',ui_fee_recipient='{{ui_fee_recipient}}')" as r
11-
left join cow_protocol_{{blockchain}}.solvers as s
12-
on r.solver = s.address
21+
left join solvers as s on r.solver = s.address
1322
group by 1, 2

cowprotocol/revenue/daily_revenue_by_solver_per_chain_4515000.sql

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,20 @@
33
-- {{ui_fee_recipient}} - the partner address that receives the CoW Swap UI fee
44
-- {{blockchain}} - the chain for which to collect the data
55

6+
with solvers as (
7+
select
8+
address,
9+
environment,
10+
name,
11+
whitelisted as active
12+
from dune.cowprotocol.solvers
13+
where blockchain = '{{blockchain}}'
14+
)
15+
616
select
717
s.name,
818
date(block_time) as "day",
919
coalesce(sum("Limit"), 0) + coalesce(sum("Market"), 0) + coalesce(sum("UI Fee"), 0) + coalesce(sum("Partner Fee Share"), 0) as total
1020
from "query_4217030(blockchain='{{blockchain}}',ui_fee_recipient='{{ui_fee_recipient}}')" as r
11-
left join cow_protocol_{{blockchain}}.solvers as s
12-
on r.solver = s.address
21+
left join solvers as s on r.solver = s.address
1322
group by 1, 2

cowprotocol/solver_dashboard/active_solvers_1372857.sql

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,38 +6,39 @@
66
-- Parameters
77
-- {{blockchain}}: string the blockchain to query
88

9-
with
10-
solver_latest_batches as (
9+
with solver_latest_batches as (
1110
select
1211
solver_address,
1312
max(block_time) as latest_settlement
1413
from cow_protocol_{{blockchain}}.batches
1514
group by solver_address
1615
),
1716

17+
solvers as (
18+
select
19+
address,
20+
environment,
21+
name,
22+
whitelisted as active
23+
from dune.cowprotocol.solvers
24+
where blockchain = '{{blockchain}}'
25+
),
26+
1827
active_solvers as (
1928
select
2029
address,
2130
environment,
2231
name,
2332
coalesce(latest_settlement, timestamp '1970-01-01') as latest_settlement
24-
from cow_protocol_{{blockchain}}.solvers
25-
full outer join solver_latest_batches
26-
on address = solver_address
27-
where
28-
environment not in ('test', 'service')
29-
and active = true
33+
from solvers full outer join solver_latest_batches on address = solver_address
34+
where environment not in ('test', 'service') and active = true
3035
)
3136

3237
select
3338
prod.name,
3439
prod.address as prod_address,
3540
barn.address as barn_address,
3641
greatest(prod.latest_settlement, barn.latest_settlement) as latest_settlement
37-
from active_solvers as prod
38-
inner join active_solvers as barn
39-
on
40-
prod.name = barn.name
41-
and prod.environment = 'prod'
42-
and barn.environment = 'barn'
42+
from active_solvers as prodinner join active_solvers as barn
43+
on prod.name = barn.name and prod.environment = 'prod' and barn.environment = 'barn'
4344
order by greatest(prod.latest_settlement, barn.latest_settlement) desc

0 commit comments

Comments
 (0)