prsGetting Started
Updated 2024-08-29Copy Reference Fork
99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
›
⌄
WITH transaction_data AS (
SELECT
BLOCK_TIMESTAMP,
POOL_NAME,
AMOUNT_IN,
AMOUNT_OUT,
PLATFORM,
TOKEN_IN,
TOKEN_OUT,
SYMBOL_IN,
SYMBOL_OUT,
(AMOUNT_OUT / AMOUNT_IN) AS AMM_PRICE -- Calculating q
FROM arbitrum.defi.ez_dex_swaps
WHERE platform IN ('uniswap-v2')
),
market_prices AS (
SELECT
HOUR as BLOCK_TIMESTAMP,
TOKEN_ADDRESS AS TOKEN_IN,
PRICE AS MARKET_PRICE
FROM arbitrum.price.ez_prices_hourly
),
lvr_calculation AS (
SELECT
td.BLOCK_TIMESTAMP,
td.POOL_NAME,
td.AMOUNT_IN,
td.AMM_PRICE,
mp.MARKET_PRICE,
td.AMOUNT_IN * (mp.MARKET_PRICE - td.AMM_PRICE) AS LVR_DISCRETE -- Calculating LVR
FROM transaction_data td
LEFT JOIN market_prices mp
ON td.TOKEN_IN = mp.TOKEN_IN
AND ABS(TIMESTAMPDIFF(second, td.BLOCK_TIMESTAMP, mp.BLOCK_TIMESTAMP)) <= 1800 -- 30 minutes tolerance
)
SELECT * FROM lvr_calculation;
QueryRunArchived: QueryRun has been archived