TokenEngineeringCommunity/BalancerPools_Model

Fetch weights/fee _state changes_ from GBQ, not the reconstructed state

markusbkoch opened this issue · 0 comments

The following is downloading the reconstructed state from GBQ, which is very resource intensive. GBQ has to process all state changes to reconstruct the state at every block and the downloaded dataset is much larger than it needed be, since most of the time weights and fees remains constant. Most pools are finalized and those parameters can't change at all.

with open("view_pools_fees.sql", "r") as f:
fees_sql = f.read().format(pool_address)
with open("view_pools_tokens_denorm_weights.sql", "r") as f:
denorms_sql = f.read().format(pool_address)

I suggest this be modified so as to only download the state changes (basically the events subquery in view_pools_fees.sql and view_pools_weights.sql) and the state be reconstructed as part of the cadCAD simulation. This would be analogous to the current approach for swaps, joins, exits.