Skip to content

Commit 3b214a6

Browse files
committed
fix: calculate cavalue locally for tvl
1 parent 115e604 commit 3b214a6

File tree

4 files changed

+29
-6
lines changed

4 files changed

+29
-6
lines changed

debts/engine.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ func (eng *DebtEngine) CalculateDebt() {
174174
}
175175
//
176176
market := state.(*schemas.PoolState).Market
177+
log.Info("Market for cm:", session.Account, "is", market, caValue, sessionSnapshot.TotalValueBI.Convert())
177178
marketToTvl.add(market, caValue, 0, 0)
178179
}
179180

@@ -209,6 +210,22 @@ func (eng *DebtEngine) CalculateDebt() {
209210
log.Fatalf("CM(%s):pool is missing stats at %d, so cumulative index of pool is unknown", cmAddr, blockNum)
210211
}
211212
}
213+
for _, session := range sessions {
214+
if (session.ClosedAt != 0 && session.ClosedAt <= blockNum) || session.Since > blockNum {
215+
continue
216+
}
217+
pool := eng.priceHandler.GetPoolFromCM(session.CreditManager)
218+
adapter := eng.repo.GetAdapter(pool)
219+
state := adapter.GetUnderlyingState()
220+
if state == nil {
221+
log.Fatal("State for pool not found for address: ", pool)
222+
}
223+
//
224+
market := state.(*schemas.PoolState).Market
225+
if debt := eng.lastDebts[session.ID]; debt != nil {
226+
marketToTvl.add(market, 0, 0, 0, debt.TotalValueInUSD)
227+
}
228+
}
212229
//
213230
eng.createTvlSnapshots(blockNum, marketToTvl)
214231
if len(sessionsUpdated) > 0 {

debts/tvl_snapshots.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,28 @@ type caValueAndAvailLiquidity struct {
44
caTotalValue float64
55
totalAvailableLiquidity float64
66
expectedLiq float64
7+
caTotalValueCalculated float64
78
}
89

910
type MarketToTvl map[string]*caValueAndAvailLiquidity
1011

11-
func (ds *MarketToTvl) add(pool string, caValue float64, availLiq float64, expectedLiq float64) {
12+
func (ds *MarketToTvl) add(pool string, caValue float64, availLiq float64, expectedLiq float64, caValueCalculated ...float64) {
1213
if x := (*ds)[pool]; x != nil {
1314
x.caTotalValue += caValue
15+
x.caTotalValueCalculated += caValueCalculated[0]
1416
x.totalAvailableLiquidity += availLiq
1517
x.expectedLiq += expectedLiq
18+
if len(caValueCalculated) > 0 {
19+
x.caTotalValueCalculated += caValueCalculated[0]
20+
}
1621
} else {
1722
(*ds)[pool] = &caValueAndAvailLiquidity{
1823
caTotalValue: caValue,
1924
totalAvailableLiquidity: availLiq,
2025
expectedLiq: expectedLiq,
2126
}
27+
if len(caValueCalculated) > 0 {
28+
(*ds)[pool].caTotalValueCalculated = caValueCalculated[0]
29+
}
2230
}
2331
}

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ go 1.23
55
// toolchain go1.23.2
66

77
require (
8-
github.com/Gearbox-protocol/sdk-go v0.0.0-20250929104426-c8299bf40701
8+
github.com/Gearbox-protocol/sdk-go v0.0.0-20251003023307-36e24214f260
99
github.com/ethereum/go-ethereum v1.13.14
1010
github.com/go-playground/validator/v10 v10.4.1
1111
github.com/google/go-cmp v0.6.0

go.sum

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,8 @@ 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=
88
github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo=
9-
github.com/Gearbox-protocol/sdk-go v0.0.0-20250929102435-cb0c6080818c h1:QIP4D/YtOiBMXBv59I/GbgPvrwqOTU/lAv0kQaxAAP4=
10-
github.com/Gearbox-protocol/sdk-go v0.0.0-20250929102435-cb0c6080818c/go.mod h1:MZsiiSAwDdnHY6GEILYtHEqhb9wmbUUE34UBQgNlUyM=
11-
github.com/Gearbox-protocol/sdk-go v0.0.0-20250929104426-c8299bf40701 h1:jekIAAiAui7J95/VFtfIxVtCcadW0/wDcbPWJOub/JU=
12-
github.com/Gearbox-protocol/sdk-go v0.0.0-20250929104426-c8299bf40701/go.mod h1:MZsiiSAwDdnHY6GEILYtHEqhb9wmbUUE34UBQgNlUyM=
9+
github.com/Gearbox-protocol/sdk-go v0.0.0-20251003023307-36e24214f260 h1:kUM2YOxHE5ybdGQ7OoPvKJ4La0QRWALkTWfYQoNLIW0=
10+
github.com/Gearbox-protocol/sdk-go v0.0.0-20251003023307-36e24214f260/go.mod h1:MZsiiSAwDdnHY6GEILYtHEqhb9wmbUUE34UBQgNlUyM=
1311
github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow=
1412
github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM=
1513
github.com/OffchainLabs/go-ethereum v1.13.4-0.20240313010929-e5d8587e7227 h1:+/3TrD+q+BP36jGj2Bycdmrc/joKLNbc5ImePQzKRLM=

0 commit comments

Comments
 (0)