Merge pull request #243 from flashbots/add-liquidations
Write liquidations to mev_summary on inspect
This commit is contained in:
commit
53f6be4700
@ -70,6 +70,80 @@ INSERT INTO mev_summary (
|
|||||||
)
|
)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
INSERT_LIQUIDATIONS_SUMMARY_QUERY = """
|
||||||
|
INSERT INTO mev_summary (
|
||||||
|
SELECT
|
||||||
|
NULL,
|
||||||
|
l.block_number,
|
||||||
|
b.block_timestamp,
|
||||||
|
l.protocol as protocol,
|
||||||
|
l.transaction_hash,
|
||||||
|
'liquidation' as type,
|
||||||
|
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,
|
||||||
|
mp.base_fee_per_gas,
|
||||||
|
ct.error as 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(
|
def update_summary_for_block_range(
|
||||||
db_session,
|
db_session,
|
||||||
@ -116,4 +190,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()
|
db_session.commit()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user