Skip to content

Commit 3309514

Browse files
committed
fix: not success
1 parent 6475127 commit 3309514

File tree

4 files changed

+36
-6
lines changed

4 files changed

+36
-6
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
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-20250822181838-ac8361ed4e9a
8+
github.com/Gearbox-protocol/sdk-go v0.0.0-20250823150503-bcf2904cd922
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
@@ -84,6 +84,6 @@ require (
8484

8585
replace github.com/btcsuite/btcd => github.com/btcsuite/btcd v0.22.1
8686

87-
replace github.com/Gearbox-protocol/sdk-go v0.0.0-20250822162102-023af754b86d => ../sdk-go
87+
replace github.com/Gearbox-protocol/sdk-go v0.0.0-20250822181838-ac8361ed4e9a => ../sdk-go
8888

8989
replace github.com/ethereum/go-ethereum v1.13.14 => github.com/OffchainLabs/go-ethereum v1.13.4-0.20240313010929-e5d8587e7227

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ=
88
github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo=
99
github.com/Gearbox-protocol/sdk-go v0.0.0-20250822181838-ac8361ed4e9a h1:87eVjlY/oqNj48E4aCtNC78YUz0SyGgDDW5xnAvKh74=
1010
github.com/Gearbox-protocol/sdk-go v0.0.0-20250822181838-ac8361ed4e9a/go.mod h1:MZsiiSAwDdnHY6GEILYtHEqhb9wmbUUE34UBQgNlUyM=
11+
github.com/Gearbox-protocol/sdk-go v0.0.0-20250823150503-bcf2904cd922 h1:eO3bCqBKI0dpIfLxsKywN4pDW9AzTGnrBrx2y9GLphM=
12+
github.com/Gearbox-protocol/sdk-go v0.0.0-20250823150503-bcf2904cd922/go.mod h1:MZsiiSAwDdnHY6GEILYtHEqhb9wmbUUE34UBQgNlUyM=
1113
github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow=
1214
github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM=
1315
github.com/OffchainLabs/go-ethereum v1.13.4-0.20240313010929-e5d8587e7227 h1:+/3TrD+q+BP36jGj2Bycdmrc/joKLNbc5ImePQzKRLM=

models/credit_manager/cm_common/retry_redstone_get_account.go

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55

66
"github.com/Gearbox-protocol/sdk-go/core"
77
"github.com/Gearbox-protocol/sdk-go/log"
8+
"github.com/Gearbox-protocol/sdk-go/pkg"
89
"github.com/Gearbox-protocol/sdk-go/pkg/dc"
910
"github.com/Gearbox-protocol/sdk-go/pkg/redstone"
1011

@@ -13,7 +14,7 @@ import (
1314
"github.com/ethereum/go-ethereum/common"
1415
)
1516

16-
func (mdl *CommonCMAdapter) priceFeedNeeded(balances core.DBBalanceFormat) (ans []core.RedStonePF) {
17+
func (mdl *CommonCMAdapter) priceFeedNeededRedStone(balances core.DBBalanceFormat) (ans []core.RedStonePF) {
1718
pool := mdl.State.PoolAddress
1819
priceOracle := mdl.Repo.GetAdapter(pool).(*pool_v3.Poolv3).State.PriceOracle
1920
feeds := mdl.Repo.GetMainTokenOracles()[priceOracle]
@@ -37,13 +38,40 @@ func (mdl *CommonCMAdapter) priceFeedNeeded(balances core.DBBalanceFormat) (ans
3738
}
3839
return
3940
}
41+
42+
func (mdl *CommonCMAdapter) priceFeedPyth(balances core.DBBalanceFormat, blockNum int64) (ans []redstone.PytDataWithFeed) {
43+
pool := mdl.State.PoolAddress
44+
priceOracle := mdl.Repo.GetAdapter(pool).(*pool_v3.Poolv3).State.PriceOracle
45+
feeds := mdl.Repo.GetMainTokenOracles()[priceOracle]
46+
ts := mdl.Repo.SetAndGetBlock(blockNum).Timestamp
47+
for token, bal := range balances {
48+
{
49+
d := feeds[token]
50+
adapter := mdl.Repo.GetAdapter(d.Feed)
51+
if adapter.GetName() == ds.QueryPriceFeed && d.FeedType == ds.PythPF && bal.BI.Convert().Cmp(big.NewInt(10)) > 0 {
52+
datas, ok := adapter.GetDetails()["underlyings"].([]interface{})
53+
if !ok {
54+
log.Fatal("Pyth price feed underlyings not found for token:", token, "adapter:", adapter.GetAddress())
55+
}
56+
data, err := pkg.GetPythPrice(datas[0].(string), int64(ts))
57+
log.CheckFatal(err)
58+
ans = append(ans, redstone.PytDataWithFeed{
59+
PythData: data,
60+
Feed: common.HexToAddress(adapter.GetAddress()),
61+
})
62+
}
63+
}
64+
}
65+
return
66+
}
4067
func (mdl *CommonCMAdapter) retry(oldaccount dc.CreditAccountCallData, blockNum int64) (dc.CreditAccountCallData, error) {
4168
ts := mdl.Repo.SetAndGetBlock(blockNum).Timestamp
4269
bal := moreThan1Balance(oldaccount.Balances)
4370
bal[mdl.GetUnderlyingToken()] = core.DBTokenBalance{BI: (*core.BigInt)(big.NewInt(1))}
44-
redPFs := mdl.priceFeedNeeded(bal)
71+
redPFs := mdl.priceFeedNeededRedStone(bal)
72+
pythPFs := mdl.priceFeedPyth(bal, blockNum)
4573
v3Pods := mdl.Repo.GetRedStonemgr().GetPodSign(int64(ts), redPFs)
46-
v3PodsCalls := redstone.GetpodToCalls(300, common.HexToAddress(mdl.GetCreditFacadeAddr()), v3Pods, redPFs)
74+
v3PodsCalls := redstone.GetpodToCalls(mdl.Client, core.FetchActualVersion(mdl.Address, 0, mdl.Client), common.HexToAddress(mdl.GetCreditFacadeAddr()), v3Pods, redPFs, pythPFs)
4775
log.Info("retrying to get credit account data", oldaccount.Addr, blockNum, "pods", len(v3Pods), "calls", len(v3PodsCalls))
4876
//
4977
return mdl.Repo.GetDCWrapper().Retry(blockNum, oldaccount.Addr, v3Pods, v3PodsCalls)

repository/handlers/treasury/price.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ func (repo TreasuryRepo) IsRedStoneAdapter(blockNum int64, oracle schemas.PriceO
132132
adapter := repo.adapters.GetAdapter(priceFeed.Hex())
133133
if adapter != nil && // for chainlink or composite chainlink oracle
134134
adapter.GetName() == ds.QueryPriceFeed &&
135-
utils.Contains([]string{ds.RedStonePF, ds.CompositeRedStonePF}, adapter.GetDetailsByKey("pfType")) {
135+
utils.Contains([]string{ds.RedStonePF, ds.CompositeRedStonePF, ds.PythPF}, adapter.GetDetailsByKey("pfType")) {
136136
return aggregated_block_feed.FromAdapter(adapter)
137137
}
138138
//

0 commit comments

Comments
 (0)