From c26910e74b7a28343b1d06c66cd3c2b25e64154c Mon Sep 17 00:00:00 2001 From: Luke Van Seters Date: Wed, 19 Jan 2022 17:07:24 -0500 Subject: [PATCH] Add liquidations to the summary --- mev_inspect/crud/summary.py | 78 +++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/mev_inspect/crud/summary.py b/mev_inspect/crud/summary.py index 81f5614..1399cb0 100644 --- a/mev_inspect/crud/summary.py +++ b/mev_inspect/crud/summary.py @@ -70,6 +70,76 @@ INSERT INTO mev_summary ( ) """ +INSERT_LIQUIDATIONS_SUMMARY_QUERY = """ +SELECT + l.block_number, + b.block_timestamp, + l.transaction_hash, + 'liquidation' as type, + l.protocol as protocol, + l.received_amount* + ( + SELECT usd_price + FROM prices + WHERE token_address = l.received_token_address + AND timestamp <= b.block_timestamp + ORDER BY timestamp DESC + LIMIT 1 + ) + /POWER(10, received_token.decimals) + + - + + l.debt_purchase_amount* + ( + SELECT usd_price + FROM prices + WHERE token_address = l.debt_token_address + AND timestamp <= b.block_timestamp + ORDER BY timestamp DESC + LIMIT 1 + ) + /POWER(10, debt_token.decimals) as gross_profit_usd, + ( + ( + ((mp.gas_used * mp.gas_price) + mp.coinbase_transfer) / + POWER(10, 18) + ) * + ( + SELECT usd_price + FROM prices p + WHERE + p.timestamp <= b.block_timestamp + AND p.token_address = '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' + ORDER BY p.timestamp DESC + LIMIT 1 + ) + ) AS miner_payment_usd, + mp.gas_used, + mp.gas_price, + mp.coinbase_transfer, + mp.gas_price_with_coinbase_transfer, + mp.miner_address, + ct.error +FROM liquidations l +JOIN blocks b ON b.block_number = l.block_number +JOIN tokens received_token ON received_token.token_address = l.received_token_address +JOIN tokens debt_token ON debt_token.token_address = l.debt_token_address +JOIN miner_payments mp ON + mp.block_number = l.block_number AND + mp.transaction_hash = l.transaction_hash +JOIN classified_traces ct ON + ct.block_number = l.block_number AND + ct.transaction_hash = l.transaction_hash +WHERE + b.block_number >= :after_block_number AND + b.block_number < :before_block_number AND + ct.trace_address = '{}' AND + l.debt_purchase_amount > 0 AND + l.received_amount > 0 AND + l.debt_purchase_amount < 115792089237316195423570985008687907853269984665640564039457584007913129639935 +""" + def update_summary_for_block_range( db_session, @@ -116,4 +186,12 @@ def _insert_into_summary_for_block_range( }, ) + db_session.execute( + INSERT_LIQUIDATIONS_SUMMARY_QUERY, + params={ + "after_block_number": after_block_number, + "before_block_number": before_block_number, + }, + ) + db_session.commit()