@@ -13,34 +13,34 @@ import (
1313 "github.com/ethereum/go-ethereum/core/types"
1414)
1515
16- func (mdl * CompositeChainlinkPF ) breakPoint (tokenType string , mainAgg * cpf.ChainlinkMainAgg ) (int64 , bool ) {
17- newPriceFeed , newPhaseId := mainAgg .GetPriceFeedAddr (mdl .WillSyncTill )
18- previousPF := mdl .getAddrFromDetails (tokenType )
19- if newPriceFeed != previousPF && newPriceFeed != core .NULL_ADDR {
16+ func (mdl * CompositeChainlinkPF ) breakPoint (tokenType string , mainAgg * cpf.ChainlinkMainAgg ) (common. Address , int64 ) {
17+ newPhaseAgg , newPhaseId := mainAgg .GetPriceFeedAddr (mdl .WillSyncTill )
18+ previousPhaseAgg := mdl .getAddrFromDetails (tokenType )
19+ if previousPhaseAgg != newPhaseAgg && newPhaseAgg != core .NULL_ADDR {
2020 var discoveredAt int64
2121 if newPhaseId != - 1 {
2222 discoveredAt = mainAgg .GetFeedUpdateBlockUsingPhaseId (uint16 (newPhaseId ), mdl .LastSync + 1 , mdl .WillSyncTill )
2323 } else {
24- discoveredAt = mainAgg .GetFeedUpdateBlockAggregator (newPriceFeed , mdl .LastSync + 1 , mdl .WillSyncTill )
24+ discoveredAt = mainAgg .GetFeedUpdateBlockAggregator (newPhaseAgg , mdl .LastSync + 1 , mdl .WillSyncTill )
2525 }
26- return discoveredAt , true
26+ return newPhaseAgg , discoveredAt
2727 }
28- return 0 , false
28+ return newPhaseAgg , math . MaxInt64
2929}
3030
3131func (mdl * CompositeChainlinkPF ) OnLogs (txLogs []types.Log ) {
3232 var breakPoint int64 = math .MaxInt64
33- if bp , valid := mdl . breakPoint ( "target" , mdl . MainAgg ); valid {
34- if bp < breakPoint {
35- breakPoint = bp
36- }
33+ //
34+ newMainPhaseAgg , bpOne := mdl . breakPoint ( "targetPhase" , mdl . MainAgg )
35+ if bpOne < breakPoint {
36+ breakPoint = bpOne
3737 }
38- if bp , valid := mdl .breakPoint ("base" , mdl .BaseTokenMainAgg ); valid {
39- if bp < breakPoint {
40- breakPoint = bp
41- }
38+ newBasePhaseAgg , bpTwo := mdl .breakPoint ("basePhase" , mdl .BaseTokenMainAgg )
39+ if bpTwo < breakPoint {
40+ breakPoint = bpTwo
4241 }
43- targetETHPF := mdl .getAddrFromDetails ("target" )
42+ //
43+ targetETHPF := mdl .getAddrFromDetails ("targetPhase" )
4444 for txLogInd , txLog := range txLogs {
4545 blockNum := int64 (txLog .BlockNumber )
4646 if breakPoint <= blockNum {
@@ -77,20 +77,19 @@ func (mdl *CompositeChainlinkPF) OnLogs(txLogs []types.Log) {
7777 }
7878 }
7979 if breakPoint != math .MaxInt64 {
80- oracleAddr := common .HexToAddress (mdl .GetDetailsByKey ("oracle" ))
81- targetPF := getAddrFromRPC (mdl .Client , "targetETH" , oracleAddr , breakPoint )
82- basePF := getAddrFromRPC (mdl .Client , "ETHUSD" , oracleAddr , breakPoint )
8380 mdl .Details ["secAddrs" ] = map [string ]interface {}{
84- "target" : targetPF ,
85- "base" : basePF ,
81+ "target" : mdl .getAddrFromDetails ("target" ),
82+ "base" : mdl .getAddrFromDetails ("base" ),
83+ "targetPhase" : newMainPhaseAgg ,
84+ "basePhase" : newBasePhaseAgg ,
8685 }
8786 mdl .setPrices (breakPoint )
88- mdl .addPriceToDB (breakPoint )
87+ mdl .addPriceToDB (breakPoint ) // H1
8988 //
9089 txLogs , err := core.Node {Client : mdl .Client }.GetLogs (
91- breakPoint ,
90+ breakPoint + 1 , // bcz price for breakPoint already added at H1
9291 mdl .WillSyncTill ,
93- []common.Address {targetPF , basePF },
92+ []common.Address {newMainPhaseAgg , newBasePhaseAgg },
9493 [][]common.Hash {
9594 {core .Topic ("AnswerUpdated(int256,uint256,uint256)" )},
9695 },
0 commit comments