Skip to content

Commit 52c310a

Browse files
committed
fix: calculate cavalue locally for tvl
1 parent 115e604 commit 52c310a

File tree

5 files changed

+29
-6
lines changed

5 files changed

+29
-6
lines changed

debts/engine.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,22 @@ func (eng *DebtEngine) CalculateDebt() {
209209
log.Fatalf("CM(%s):pool is missing stats at %d, so cumulative index of pool is unknown", cmAddr, blockNum)
210210
}
211211
}
212+
for _, session := range sessions {
213+
if (session.ClosedAt != 0 && session.ClosedAt <= blockNum) || session.Since > blockNum {
214+
continue
215+
}
216+
pool := eng.priceHandler.GetPoolFromCM(session.CreditManager)
217+
adapter := eng.repo.GetAdapter(pool)
218+
state := adapter.GetUnderlyingState()
219+
if state == nil {
220+
log.Fatal("State for pool not found for address: ", pool)
221+
}
222+
//
223+
market := state.(*schemas.PoolState).Market
224+
if debt := eng.lastDebts[session.ID]; debt != nil {
225+
marketToTvl.add(market, 0, 0, 0, debt.TotalValueInUSD)
226+
}
227+
}
212228
//
213229
eng.createTvlSnapshots(blockNum, marketToTvl)
214230
if len(sessionsUpdated) > 0 {
@@ -260,6 +276,7 @@ func (eng *DebtEngine) createTvlSnapshots(blockNum int64, marketToTvl MarketToTv
260276
AvailableLiquidity: details.totalAvailableLiquidity,
261277
CATotalValue: details.caTotalValue,
262278
ExpectedLiq: details.expectedLiq,
279+
CATotalValueCalc: details.caTotalValueCalculated,
263280
Market: market,
264281
}
265282
addedMarket = append(addedMarket, market)

debts/tvl_snapshots.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,27 @@ 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
1415
x.totalAvailableLiquidity += availLiq
1516
x.expectedLiq += expectedLiq
17+
if len(caValueCalculated) > 0 {
18+
x.caTotalValueCalculated += caValueCalculated[0]
19+
}
1620
} else {
1721
(*ds)[pool] = &caValueAndAvailLiquidity{
1822
caTotalValue: caValue,
1923
totalAvailableLiquidity: availLiq,
2024
expectedLiq: expectedLiq,
2125
}
26+
if len(caValueCalculated) > 0 {
27+
(*ds)[pool].caTotalValueCalculated = caValueCalculated[0]
28+
}
2229
}
2330
}

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=
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
alter table tvl_snapshots add ca_total_value_calc double precision default 0;

0 commit comments

Comments
 (0)