Skip to content

Commit abaab05

Browse files
committed
[645] Create amm tvl metrics (liquidity_pools_tvl) in tvl_agg
1 parent 8401018 commit abaab05

3 files changed

Lines changed: 37 additions & 7 deletions

File tree

models/docs/marts/tvl/tvl_agg.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ The total value locked (TVL) denominated in raw asset value (token amounts) for
1212
The total value locked (TVL) denominated in raw asset value (token amounts) for a given date. Aggregated across trustlines selling liabilities
1313
{% enddocs %}
1414

15+
{% docs liquidity_pools_tvl %}
16+
The total value locked (TVL) denominated in raw asset value (token amounts) for a given date. Aggregated across liquidity pool balances (AMM).
17+
{% enddocs %}
18+
1519
{% docs total_tvl %}
16-
The total value locked (TVL) denominated in raw asset value (token amounts) for a given date. Aggregated across relevant ledger entries (e.g., accounts, trustlines).
20+
The total value locked (TVL) denominated in raw asset value (token amounts) for a given date. Aggregated across relevant ledger entries (e.g., accounts, trustlines, liquidity pools).
1721
{% enddocs %}

models/marts/tvl/tvl_agg.sql

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,21 +33,40 @@ with
3333
group by 1, 2, 3, 4
3434
)
3535

36+
, liquidity_pools_tvl as (
37+
select
38+
day
39+
, asset_type
40+
, asset_code
41+
, asset_issuer
42+
, sum(liquidity_pool_balance) as liquidity_pools_tvl
43+
from {{ ref('asset_balances__daily_agg') }}
44+
group by 1, 2, 3, 4
45+
)
46+
3647
, combined as (
3748
select
38-
coalesce(a.day, t.day) as day
39-
, coalesce(a.asset_type, t.asset_type) as asset_type
40-
, coalesce(a.asset_code, t.asset_code) as asset_code
41-
, coalesce(a.asset_issuer, t.asset_issuer) as asset_issuer
49+
coalesce(a.day, t.day, l.day) as day
50+
, coalesce(a.asset_type, t.asset_type, l.asset_type) as asset_type
51+
, coalesce(a.asset_code, t.asset_code, l.asset_code) as asset_code
52+
, coalesce(a.asset_issuer, t.asset_issuer, l.asset_issuer) as asset_issuer
4253
, coalesce(a.accounts_tvl, 0) as accounts_tvl
4354
, coalesce(t.trustlines_tvl, 0) as trustlines_tvl
44-
, coalesce(a.accounts_tvl, 0) + coalesce(t.trustlines_tvl, 0) as total_tvl
55+
, coalesce(l.liquidity_pools_tvl, 0) as liquidity_pools_tvl
56+
, coalesce(a.accounts_tvl, 0)
57+
+ coalesce(t.trustlines_tvl, 0)
58+
+ coalesce(l.liquidity_pools_tvl, 0) as total_tvl
4559
from accounts_tvl as a
4660
full outer join trustlines_tvl as t
4761
on a.day = t.day
4862
and a.asset_type = t.asset_type
4963
and a.asset_code = t.asset_code
5064
and a.asset_issuer = t.asset_issuer
65+
full outer join liquidity_pools_tvl as l
66+
on coalesce(a.day, t.day) = l.day
67+
and coalesce(a.asset_type, t.asset_type) = l.asset_type
68+
and coalesce(a.asset_code, t.asset_code) = l.asset_code
69+
and coalesce(a.asset_issuer, t.asset_issuer) = l.asset_issuer
5170
)
5271

5372
select *

models/marts/tvl/tvl_agg.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ version: 2
22

33
models:
44
- name: tvl_agg
5-
description: "This table aggregates TVL from accounts and trustlines to calculate total TVL"
5+
description: "This table aggregates TVL from accounts, trustlines, and liquidity pools to calculate total TVL"
66
tests:
77
- elementary.schema_changes:
88
tags: [schema_changes]
@@ -59,6 +59,13 @@ models:
5959
date_column_name: "day"
6060
greater_than_equal_to: "2 day"
6161

62+
- name: liquidity_pools_tvl
63+
description: '{{ doc("liquidity_pools_tvl") }}'
64+
tests:
65+
- stellar_dbt_public.incremental_not_null:
66+
date_column_name: "day"
67+
greater_than_equal_to: "2 day"
68+
6269
- name: total_tvl
6370
description: '{{ doc("total_tvl") }}'
6471
tests:

0 commit comments

Comments
 (0)