with borrows as (
SELECT
msg_value:sender::string as address,
sum(msg_value:execute_msg:borrow_stable:borrow_amount /POW(10,6)) as borrowed_amount
FROM terra.msgs
WHERE msg_value:execute_msg:borrow_stable IS NOT NULL
and tx_status = 'SUCCEEDED'
--and block_timestamp >= CURRENT_DATE - INTERVAL '90 days'
GROUP BY 1),
repays as (
SELECT
msg_value:sender::string as address,
SUM(msg_value:coins[0]:amount/ POW(10,6)) as amount_repaid
FROM terra.msgs
WHERE msg_value:execute_msg:repay_stable IS NOT NULL
and tx_status = 'SUCCEEDED'
--and block_timestamp >= CURRENT_DATE - INTERVAL '90 days'
GROUP BY 1),
netborrows as (
SELECT
b.address as addresses,
sum(b.borrowed_amount - r.amount_repaid) as net_borrow
from borrows b
inner join repays r
on b.address = r.address
group by 1
order by 2 desc ),
deposits as (
SELECT
msg_value:sender::string as address,
sum(msg_value:coins[0]:amount / pow(10,6)) as deposit_amount
FROM terra.msgs
WHERE msg_value:execute_msg:deposit_stable IS NOT NULL