Skip to content

Commit

Permalink
fix: don't disable v1 oracles
Browse files Browse the repository at this point in the history
  • Loading branch information
harsh-98 committed Nov 12, 2024
1 parent 8cd65b6 commit 6de0a91
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 34 deletions.
6 changes: 3 additions & 3 deletions ds/mergedPFVersion.go
Original file line number Diff line number Diff line change
Expand Up @@ -162,9 +162,9 @@ func (mdl MergedPFManager) CloseV2(client core.ClientI, syncedTill int64, addres
if syncedTill >= v2CloseBlock && log.GetBaseNet(core.GetChainId(client)) == "MAINNET" {
for _, token := range mdl.GetTokens(v2CloseBlock) {
pfversion := mdl.GetMergedPFVersion(token, v2CloseBlock, address)
if pfversion&schemas.MergedPFVersion(schemas.V1PF) != 0 {
mdl.DisableToken(v2CloseBlock, token, schemas.V1PF)
}
// if pfversion&schemas.MergedPFVersion(schemas.V1PF) != 0 {
// mdl.DisableToken(v2CloseBlock, token, schemas.V1PF)
// }
if pfversion&schemas.MergedPFVersion(schemas.V2PF) != 0 {
mdl.DisableToken(v2CloseBlock, token, schemas.V2PF)
}
Expand Down
31 changes: 3 additions & 28 deletions models/aggregated_block_feed/base_price_feed/call_and_process.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ func (mdl *BasePriceFeed) GetCalls(blockNum int64) (calls []multicall.Multicall2
}}, true
}

func ParseQueryRoundData(returnData []byte, isPriceInUSD bool, feed string, blockNum int64, reserve bool) *schemas.PriceFeed {
func ParseQueryRoundData(returnData []byte, isPriceInUSD bool, feed string, blockNum int64) *schemas.PriceFeed {
priceFeedABI := core.GetAbi("PriceFeed")
roundData := schemas.LatestRounData{}
value, err := priceFeedABI.Unpack("latestRoundData", returnData)
if err != nil {
if !reserve {
if !utils.Contains([]string{"0x7B7C81748f311Cf3B9dfe90Ec7F23e9F06813323", "0x2E65c16Fe6CFd0519Ae1F80448FCa0E0B07c1911"}, feed) {
log.Warnf("For feed(%s) can't get the latestRounData: %s at %d", feed, err, blockNum)
}
return nil
Expand Down Expand Up @@ -70,31 +70,6 @@ func (mdl *BasePriceFeed) ProcessResult(blockNum int64, results []multicall.Mult
}
}

return ParseQueryRoundData(results[0].ReturnData, isPriceInUSD, mdl.GetAddress(), blockNum, mdl.HasReversePF())
return ParseQueryRoundData(results[0].ReturnData, isPriceInUSD, mdl.GetAddress(), blockNum)
//
}

func (mdl *BasePriceFeed) HasReversePF() bool {
var reversePF, exact bool
for token, pfVersion := range mdl.GetTokens() {
for version := range pfVersion {
if version&schemas.V3PF_REVERSE != 0 {
if exact && (version != schemas.V3PF_REVERSE) { // if already exact but not exact now.
log.Error("not exact", token, version, "pf", mdl.GetAddress())
}
exact = exact || (version == schemas.V3PF_REVERSE)

if reversePF && (version&schemas.V3PF_REVERSE != 0) {
log.Error("not reverse pf, not one of the pf is reserve", token, version, "pf", mdl.GetAddress())
}
reversePF = reversePF || (version&schemas.V3PF_REVERSE != 0)
}
}
}
if reversePF {
if !exact {
log.Error("reverse PF is set and exact not set", mdl.GetAddress())
}
}
return reversePF
}
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,9 @@ func (mdl *BasePriceFeed) AfterSyncHook(b int64) {
if log.GetBaseNet(core.GetChainId(mdl.Client)) == "MAINNET" {
var v1CloseBlock int64 = 18577104 // v1 all accounts closed at
if b >= v1CloseBlock {
for token, details := range mdl.DetailsDS.Tokens {
for token, details := range mdl.DetailsDS.Tokens { // only 2 yearn are disabled.
// 0x614f9486Ab9C7a217526c097656D2F6bD2DB631C
// 0x172971182351e00C2D700bA1e8c5586Ad2CFa38c
if len(details[schemas.V1PF]) == 1 {
mdl.DisableToken(token, v1CloseBlock, schemas.V1PF)
}
Expand Down
2 changes: 1 addition & 1 deletion models/aggregated_block_feed/curve_price_feed/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ func (adapter *CurvePriceFeed) ProcessResult(blockNum int64, results []multicall
}
}
isPriceInUSD := adapter.GetVersion().IsPriceInUSD()
return base_price_feed.ParseQueryRoundData(results[0].ReturnData, isPriceInUSD, adapter.GetAddress(), blockNum, adapter.HasReversePF())
return base_price_feed.ParseQueryRoundData(results[0].ReturnData, isPriceInUSD, adapter.GetAddress(), blockNum)
}

func GetCurveVirtualPrice(blockNum int64, oracleAddr common.Address, version core.VersionType, client core.ClientI) *big.Int {
Expand Down
2 changes: 1 addition & 1 deletion models/aggregated_block_feed/yearn_price_feed/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,5 +61,5 @@ func (mdl *YearnPriceFeed) ProcessResult(blockNum int64, results []multicall.Mul
}
}
isPriceInUSD := mdl.GetVersion().IsPriceInUSD()
return base_price_feed.ParseQueryRoundData(results[0].ReturnData, isPriceInUSD, mdl.GetAddress(), blockNum, mdl.HasReversePF())
return base_price_feed.ParseQueryRoundData(results[0].ReturnData, isPriceInUSD, mdl.GetAddress(), blockNum)
}

0 comments on commit 6de0a91

Please sign in to comment.