Skip to content

Commit ed48d1a

Browse files
committed
fix: hr
1 parent 8608677 commit ed48d1a

File tree

7 files changed

+39
-20
lines changed

7 files changed

+39
-20
lines changed

debts/debt_db.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package debts
22

33
import (
44
"math/big"
5+
"time"
56

67
"github.com/Gearbox-protocol/sdk-go/core"
78
"github.com/Gearbox-protocol/sdk-go/core/schemas"
@@ -103,7 +104,7 @@ func (eng *DebtEngine) AddDebt(debt *schemas.Debt, forceAdd bool) {
103104
// add debt if throttle is enabled and (last debt is missing or forced add is set)
104105
if lastDebt == nil || forceAdd {
105106
eng.addDebt(debt)
106-
} else if (debt.BlockNumber-lastDebt.BlockNumber) >= core.NoOfBlocksPerHr*eng.config.ThrottleByHrs ||
107+
} else if (debt.BlockNumber-lastDebt.BlockNumber) >= core.BlockPer(core.GetChainId(eng.client), time.Hour)*eng.config.ThrottleByHrs ||
107108
core.DiffMoreThanFraction(lastDebt.CalTotalValueBI, debt.CalTotalValueBI, big.NewFloat(0.05)) ||
108109
core.DiffMoreThanFraction(lastDebt.CalDebtBI, debt.CalDebtBI, big.NewFloat(0.05)) ||
109110
// add debt when the health factor is on different side of 10000 from the lastdebt
@@ -169,7 +170,7 @@ func (eng *DebtEngine) flushDebt(newDebtSyncTill int64, tx *gorm.DB, lastSync sc
169170
if debtLen == 0 {
170171
return
171172
}
172-
log.Infof("Flushing %d till block:%d", debtLen, newDebtSyncTill)
173+
log.Infof("Flushing debt %d till block:%d", debtLen, newDebtSyncTill)
173174
err := tx.Exec(`UPDATE debt_sync set debt_block=?, field_set='t'`, newDebtSyncTill).Error
174175
// err := tx.Clauses(clause.OnConflict{
175176
// UpdateAll: true,

debts/engine.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"fmt"
55
"math/big"
66
"sort"
7+
"time"
78

89
"github.com/Gearbox-protocol/sdk-go/artifacts/multicall"
910
"github.com/Gearbox-protocol/sdk-go/calc"
@@ -178,7 +179,7 @@ func (eng *DebtEngine) CalculateDebt() {
178179
}
179180

180181
func (eng *DebtEngine) createTvlSnapshots(blockNum int64, caTotalValueInUSD float64) {
181-
if eng.lastTvlSnapshot != nil && blockNum-eng.lastTvlSnapshot.BlockNum < core.NoOfBlocksPerHr { // tvl snapshot every hour
182+
if eng.lastTvlSnapshot != nil && blockNum-eng.lastTvlSnapshot.BlockNum < core.BlockPer(core.GetChainId(eng.client), time.Hour) { // tvl snapshot every hour
182183
return
183184
}
184185
var totalAvailableLiquidityInUSD, expectedLiqInUSD float64 = 0, 0

engine/index.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ func (e *Engine) UseThreads() {
5454
}
5555

5656
func (e *Engine) init() {
57-
log.AMQPMsg("Third-eye started")
57+
// log.AMQPMsg("Third-eye started")
5858
e.repo.Init()
5959
// debt engine initialisation
6060
e.debtEng.ProcessBackLogs()

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module github.com/Gearbox-protocol/third-eye
33
go 1.20
44

55
require (
6-
github.com/Gearbox-protocol/sdk-go v0.0.0-20250320044345-a15835e16419
6+
github.com/Gearbox-protocol/sdk-go v0.0.0-20250321082227-8c02f513999c
77
github.com/ethereum/go-ethereum v1.13.14
88
github.com/go-playground/validator/v10 v10.4.1
99
github.com/google/go-cmp v0.5.9

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ contrib.go.opencensus.io/exporter/ocagent v0.6.0/go.mod h1:zmKjrJcdo0aYcVS7bmEeS
55
github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
66
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
77
github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ=
8-
github.com/Gearbox-protocol/sdk-go v0.0.0-20250320044345-a15835e16419 h1:OM2EtfbfEsNndye2ysx6Z8lf4tVqY4Ps0IxPWSG1/hs=
9-
github.com/Gearbox-protocol/sdk-go v0.0.0-20250320044345-a15835e16419/go.mod h1:jRBSOG94bpGc5ci8EWIPUVXZdaGEaekMNmhajbmWFVU=
8+
github.com/Gearbox-protocol/sdk-go v0.0.0-20250321082227-8c02f513999c h1:WacYowsKbNZ8Jn9mHy3jIqaBUNycsZpyga+L/GG4Kbs=
9+
github.com/Gearbox-protocol/sdk-go v0.0.0-20250321082227-8c02f513999c/go.mod h1:jRBSOG94bpGc5ci8EWIPUVXZdaGEaekMNmhajbmWFVU=
1010
github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow=
1111
github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM=
1212
github.com/OffchainLabs/go-ethereum v1.13.4-0.20240313010929-e5d8587e7227 h1:+/3TrD+q+BP36jGj2Bycdmrc/joKLNbc5ImePQzKRLM=

migrations/000055_tvl.up.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
alter table debt_sync add debt_block integer, add tvl_block integer;
22
update debt_sync set debt_block=last_calculated_at;
3-
update debt_sync set tvl_block=last_calculated_at;
3+
update debt_sync set tvl_block=0;
44
alter table debt_sync drop column last_calculated_at;
55

66
alter table tvl_snapshots add expected_liq DOUBLE PRECISION;

scripts/16_fix/main.go

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,35 @@
11
package main
22

33
import (
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

1214
func 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; start < 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

Comments
 (0)