freemartianDaily Shorts & Longs
Updated 2022-11-05
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 prices as (
select hour::date as date,
symbol,
decimals,
avg(price) as usdprice
from ethereum.core.fact_hourly_token_prices
where (symbol in ('USDC','MIM','LINK','USDT','WETH','WBTC','DAI','FRAX')
or token_address in ('0x1f9840a85d5af5bf1d1762f925bdaddc4201f984')) --UNI
group by 1, 2, 3
),
base as (
select
tx_hash,
regexp_substr_all(SUBSTR(INPUT_DATA, 11, len(INPUT_DATA)), '.{64}') AS segmented_data,
concat('0x', SUBSTR(segmented_data[11], 25, 40)) AS Underlying_Asset,
case
when concat('0x', SUBSTR(segmented_data[1], 25, 40)) = '0xda10009cbd5d07dd0cecc66161fc93d7c9000da1' then 'DAI'
when concat('0x', SUBSTR(segmented_data[1], 25, 40)) = '0xff970a61a04b1ca14834a43f5de4533ebddb5cc8' then 'USDC'
when concat('0x', SUBSTR(segmented_data[1], 25, 40)) = '0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9' then 'USDT'
when concat('0x', SUBSTR(segmented_data[1], 25, 40)) = '0x17fc002b466eec40dae837fc4be5c67993ddbd6f' then 'FRAX'
when concat('0x', SUBSTR(segmented_data[1], 25, 40)) = '0xfea7a6a0b346362bf88a9e4a88416b77a57d6c2a' then 'MIM'
when concat('0x', SUBSTR(segmented_data[1], 25, 40)) = '0x82af49447d8a07e3bd95bd0d56f35241523fbab1' then 'WETH'
when concat('0x', SUBSTR(segmented_data[1], 25, 40)) = '0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f' then 'WBTC'
when concat('0x', SUBSTR(segmented_data[1], 25, 40)) = '0xfa7f8980b0f1e64a2062791cc3b0871572f1f7f0' then 'UNI'
when concat('0x', SUBSTR(segmented_data[1], 25, 40)) = '0xf97f4df75117a78c1a5a0dbb814af92458539fb4' then 'LINK'
end as leveraged_token,
sum((ethereum.public.udf_hex_to_int(segmented_data[2] :: STRING)/pow(10,p.decimals))*usdprice) AS amount_in_usd,
case
when ethereum.public.udf_hex_to_int(segmented_data[5] :: STRING) = '0' then 'Short'
when ethereum.public.udf_hex_to_int(segmented_data[5] :: STRING) = '1' then 'Long'
end as direction,
block_timestamp::date as TIME
from arbitrum.core.fact_transactions f
inner join prices p on p.date = f.block_timestamp::date
where to_address in ('0xb87a436b93ffe9d75c5cfa7bacfff96430b09868', '0x3d6ba331e3d9702c5e8a8d254e5d8a285f223aba')
and STATUS = 'SUCCESS'
Run a query to Download Data