Skip to content

Commit 73ae1ce

Browse files
committed
feat: getToken for chainlink/composite oracle shouldn't fail
1 parent 12fe4f1 commit 73ae1ce

File tree

3 files changed

+14
-6
lines changed

3 files changed

+14
-6
lines changed

ds/mergedPFVersion.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package ds
22

33
import (
4+
"fmt"
45
"reflect"
56

67
"github.com/Gearbox-protocol/sdk-go/core"
@@ -89,14 +90,20 @@ func (mdl MergedPFManager) Save(details *core.Json) {
8990
}
9091

9192
func (mdl MergedPFManager) GetMergedPFVersion(token string, blockNum int64, syncAdapterAddr string) schemas.MergedPFVersion {
93+
version, err := mdl.getMergedPFVersion(token, blockNum, syncAdapterAddr)
94+
log.CheckFatal(err)
95+
return version
96+
}
97+
98+
func (mdl MergedPFManager) getMergedPFVersion(token string, blockNum int64, syncAdapterAddr string) (schemas.MergedPFVersion, error) {
9299
for ind := len(mdl[token]) - 1; ind >= 0; ind-- {
93100
if mdl[token][ind].BlockNumber <= blockNum {
94-
return mdl[token][ind].MergedPFVersion
101+
return mdl[token][ind].MergedPFVersion, nil
95102
}
96103
}
97-
log.Fatal("Can't get mergedPFVersion", mdl, blockNum, syncAdapterAddr)
98-
return schemas.MergedPFVersion(0)
104+
return schemas.MergedPFVersion(0), fmt.Errorf("can't get mergedPFVersion %v at %d for adapter: %s", mdl, blockNum, syncAdapterAddr)
99105
}
106+
100107
func (mdl MergedPFManager) AddToken(token string, blockNum int64, pfVersion schemas.PFVersion) {
101108
var last schemas.MergedPFVersion
102109
if len(mdl[token]) != 0 {
@@ -110,8 +117,8 @@ func (mdl MergedPFManager) AddToken(token string, blockNum int64, pfVersion sche
110117
}
111118
func (mdl MergedPFManager) GetTokens(blockNum int64) (tokens []string) {
112119
for token := range mdl {
113-
version := mdl.GetMergedPFVersion(token, blockNum, "")
114-
if version != 0 {
120+
version, err := mdl.getMergedPFVersion(token, blockNum, "")
121+
if version != 0 && err == nil {
115122
tokens = append(tokens, token)
116123
}
117124
}

models/aggregated_block_feed/query_price_feed/yearn_price_feed.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ func (mdl *QueryPriceFeed) AddToken(token string, discoveredAt int64, pfVersion
107107
func (mdl *QueryPriceFeed) DisableToken(token string, disabledAt int64, pfVersion schemas.PFVersion) {
108108
tokenDetails := mdl.DetailsDS.Tokens[token]
109109
if tokenDetails == nil || len(tokenDetails[pfVersion]) != 1 {
110-
log.Fatalf("%s's enable block number for pfVersion %d is malformed: %v", token, pfVersion, tokenDetails)
110+
log.Fatalf("%s's enable block number for pfVersion %d is malformed: %v, trying with new block: %d", token, pfVersion, tokenDetails, disabledAt)
111111
}
112112
tokenDetails[pfVersion] = append(tokenDetails[pfVersion], disabledAt)
113113
}

models/chainlink_price_feed/on_log.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ func (mdl *ChainlinkPriceFeed) OnLogs(txLogs []types.Log) {
3131
if txLogInd+1 < len(txLogs) && int64(txLogs[txLogInd+1].BlockNumber) == blockNum {
3232
continue
3333
}
34+
// has atleast one valid token.
3435
if mdl.mergedPFManager.GetTokens(blockNum)[0] == "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" &&
3536
mdl.Address == "0x37bC7498f4FF12C19678ee8fE19d713b87F6a9e6" && blockNum > 17217055 { // as there is already another chainlink activated 0xE62B71cf983019BFf55bC83B48601ce8419650CC
3637
continue

0 commit comments

Comments
 (0)