Skip to content

Commit 9b7b327

Browse files
committed
feat: plasma
1 parent 2dc37f3 commit 9b7b327

File tree

5 files changed

+22
-14
lines changed

5 files changed

+22
-14
lines changed

debts/price.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ func (eng *PriceHandler) loadTokenLastPrice(lastDebtSync int64, db *gorm.DB) {
7373

7474
func (eng *PriceHandler) loadTokenOracle(lastDebtSync int64, db *gorm.DB) {
7575
data := []*schemas.TokenOracle{}
76-
err := db.Raw(`select * from token_oracle where block_num < ? and reserve='f' order by block_num`, lastDebtSync).Find(&data).Error
76+
err := db.Raw(`select * from token_oracle where block_num <= ? and reserve='f' order by block_num`, lastDebtSync).Find(&data).Error
7777
log.CheckFatal(err)
7878
for _, entry := range data {
7979
eng.AddTokenOracle(entry)

debts/tvl_snapshots.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ func (ds *MarketToTvl) add(pool string, caValue float64, availLiq float64, expec
1717
(*ds)[pool] = &caValueAndAvailLiquidity{
1818
caTotalValue: caValue,
1919
totalAvailableLiquidity: availLiq,
20+
expectedLiq: expectedLiq,
2021
}
2122
}
2223
}

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-20250929060427-48fca596e725
8+
github.com/Gearbox-protocol/sdk-go v0.0.0-20250929104426-c8299bf40701
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: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,10 @@ 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-20250929042432-4ffe0200b47d h1:MqGnHBLsTbnRIC4Nqppgdl67iYdeSZKFTN1EGQrKyug=
10-
github.com/Gearbox-protocol/sdk-go v0.0.0-20250929042432-4ffe0200b47d/go.mod h1:MZsiiSAwDdnHY6GEILYtHEqhb9wmbUUE34UBQgNlUyM=
11-
github.com/Gearbox-protocol/sdk-go v0.0.0-20250929054550-06c0754d135c h1:wWVanRvZo3NINdDwN9kiBYxBSHXHb2LC5Ns6OW7j6+g=
12-
github.com/Gearbox-protocol/sdk-go v0.0.0-20250929054550-06c0754d135c/go.mod h1:MZsiiSAwDdnHY6GEILYtHEqhb9wmbUUE34UBQgNlUyM=
13-
github.com/Gearbox-protocol/sdk-go v0.0.0-20250929055115-7aacf29fefb9 h1:VVdQ0RqIWypiR5vzueK8TzIAL0cKFkyIx/GCM6eSnTE=
14-
github.com/Gearbox-protocol/sdk-go v0.0.0-20250929055115-7aacf29fefb9/go.mod h1:MZsiiSAwDdnHY6GEILYtHEqhb9wmbUUE34UBQgNlUyM=
15-
github.com/Gearbox-protocol/sdk-go v0.0.0-20250929060427-48fca596e725 h1:Vq8vxWtmElsdlpfdJLMbsAgVMs/akd1jiWIyOs1FI0s=
16-
github.com/Gearbox-protocol/sdk-go v0.0.0-20250929060427-48fca596e725/go.mod h1:MZsiiSAwDdnHY6GEILYtHEqhb9wmbUUE34UBQgNlUyM=
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=
1713
github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow=
1814
github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM=
1915
github.com/OffchainLabs/go-ethereum v1.13.4-0.20240313010929-e5d8587e7227 h1:+/3TrD+q+BP36jGj2Bycdmrc/joKLNbc5ImePQzKRLM=

models/price_oracle/po_v3/on_log.go

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,12 @@ func (mdl *PriceOracle) getErc4626(oracle string) (pfType string, underlyingFeed
205205
}
206206
return
207207
}
208+
func isChainLink(pf0 common.Address, client core.ClientI) bool {
209+
con, err := priceFeed.NewPriceFeed(pf0, client)
210+
log.CheckFatal(err)
211+
_, err1 := con.PhaseId(nil)
212+
return err1 == nil
213+
}
208214

209215
// https://github.com/Gearbox-protocol/integrations-v2/tree/faa9cfd4921c62165782dcdc196ff5a0c0e6075d/contracts/oracles
210216
// https://github.com/Gearbox-protocol/oracles-v3/tree/2ac6d1ba1108df949222084791699d821096bc8c/contracts/oracles
@@ -244,10 +250,7 @@ func (mdl *PriceOracle) V3PriceFeedType(opts *bind.CallOpts, oracle, token strin
244250
if err != nil && strings.Contains(err.Error(), "execution reverted") {
245251
// this means that it can be from outside of gearbox protocol, like redstone own oracle.
246252
pf0Type := func() int {
247-
con, err := priceFeed.NewPriceFeed(pf0, mdl.Client)
248-
log.CheckFatal(err)
249-
_, err1 := con.PhaseId(nil)
250-
if err1 == nil {
253+
if isChainLink(pf0, mdl.Client) {
251254
return core.V3_CHAINLINK_ORACLE
252255
}
253256
return core.V3_CURVE_2LP_ORACLE
@@ -261,6 +264,14 @@ func (mdl *PriceOracle) V3PriceFeedType(opts *bind.CallOpts, oracle, token strin
261264
case core.V3_REDSTONE_ORACLE:
262265
return ds.CompositeRedStonePF, nil, nil
263266
case core.V3_CHAINLINK_ORACLE:
267+
pf1 := func() common.Address {
268+
pf, err := core.CallFuncGetSingleValue(mdl.Client, "ab0ca0e1", common.HexToAddress(oracle), 0, nil) // priceFeed0
269+
log.CheckFatal(err)
270+
return common.BytesToAddress(pf)
271+
}()
272+
if !isChainLink(pf1, mdl.Client) {
273+
return ds.CurvePF, nil, nil
274+
}
264275
return ds.CompositeChainlinkPF, nil, nil
265276
default:
266277
return ds.CurvePF, nil, nil

0 commit comments

Comments
 (0)