11package main
22
33import (
4+ "github.com/Gearbox-protocol/sdk-go/core"
45 "github.com/Gearbox-protocol/sdk-go/core/schemas"
56 "github.com/Gearbox-protocol/sdk-go/log"
67 "github.com/Gearbox-protocol/sdk-go/utils"
78 "github.com/Gearbox-protocol/third-eye/config"
9+ "github.com/Gearbox-protocol/third-eye/ethclient"
810 "github.com/Gearbox-protocol/third-eye/repository"
911 "gorm.io/gorm/clause"
1012)
1113
1214func main () {
1315 cfg := config .NewConfig ()
14- // client := ethclient.NewEthClient(cfg)
16+ client := ethclient .NewEthClient (cfg )
1517 db := repository .NewDBClient (cfg )
16- data := schemas.LastSync {}
17- err := db .Raw (`select * from debt_sync` ).Find (& data ).Error
18+ tvlBlock := schemas.LastSync {}
19+ err := db .Raw (`select * from debt_sync` ).Find (& tvlBlock ).Error
1820 log .CheckFatal (err )
19- data .Tvl = utils .Max (15818887 + 10_000 , data .Tvl )
21+ if tvlBlock .Tvl == 0 {
22+ data := struct {
23+ Tvl int64 `gorm:"column:tvl_block"`
24+ }{}
25+ query := `select min(discovered_at) tvl_block from sync_adapters where type not in ('RebaseToken','Treasury','LMRewardsv2','LMRewardsv3','GearToken')`
26+ err := db .Raw (query ).Find (& data ).Error
27+ log .CheckFatal (err )
28+ tvlBlock .Tvl = data .Tvl
29+ }
30+ if core .GetChainId (client ) == 1 {
31+ tvlBlock .Tvl = utils .Max (15818887 + 10_000 , tvlBlock .Tvl )
32+ }
2033 //
2134 type Entry = struct {
2235 Pool string `gorm:"column:pool"`
@@ -32,15 +45,15 @@ func main() {
3245 merged_pf_version>=2
3346 order by block_num desc limit 1) price from
3447 (select distinct on (pool) pool, expected_liquidity, block_num from pool_stats where block_num < ? order by pool, block_num desc) ps join pools p on p.address= ps.pool `
35- err = db .Raw (qyery , data .Tvl ).Find (& entries ).Error
48+ err = db .Raw (qyery , tvlBlock .Tvl ).Find (& entries ).Error
3649 log .CheckFatal (err )
3750 expected := map [string ]float64 {}
3851 for _ , v := range entries {
3952 expected [v .Pool ] = v .ExpectedLiq * v .Price
4053 }
41- log .Info (utils .ToJson (entries ))
54+ log .Info ("init" , tvlBlock , utils .ToJson (entries ), "chainid" , core . GetChainId ( client ))
4255
43- for start := data .Tvl ; data .Tvl < data .Debt ; {
56+ for start := tvlBlock .Tvl ; tvlBlock .Tvl < tvlBlock .Debt ; {
4457 end := start + 100_000
4558 entries = entries [:0 ]
4659 query := `select pool, ps.block_num, expected_liquidity, underlying_token,
@@ -65,25 +78,29 @@ func main() {
6578 ind ++
6679 }
6780 snap .ExpectedLiq = summ (expected )
68- if snap .ExpectedLiq < snap .AvailableLiquidity {
69- log .Fatal ("Expected liquidity is less than available liquidity" , utils .ToJson (snap ))
81+ if snap .ExpectedLiq + 100 < snap .AvailableLiquidity {
82+ // log.Fatal("Expected liquidity is less than available liquidity", utils.ToJson(snap))
7083 }
7184 ans = append (ans , snap )
7285 }
7386 for _ , neww := range entries [ind :] {
7487 expected [neww .Pool ] = neww .ExpectedLiq * neww .Price
7588 }
7689
90+ // log.Fatal(end, utils.ToJson(ans))
7791 tx := db .Begin ()
7892 err = tx .Clauses (clause.OnConflict {UpdateAll : true }).CreateInBatches (ans , 50 ).Error
7993 log .CheckFatal (err )
8094 tx .Exec (`UPDATE debt_sync set tvl_block=?, field_set='t'` , end )
8195 err := tx .Commit ().Error
8296 log .CheckFatal (err )
83- log .Infof ("synced till %d: %d" , end , len (ans ))
84- // log.Fatal(end, utils.ToJson(ans))
97+ sample := schemas.TvlSnapshots {}
98+ if len (ans ) != 0 {
99+ sample = ans [len (ans )- 1 ]
100+ }
101+ log .Infof ("synced till %d: %d exp liq: %f avai: %f" , end , len (ans ), sample .ExpectedLiq , sample .AvailableLiquidity )
85102 //
86- data . Tvl = end
103+ start = end
87104 }
88105}
89106
0 commit comments