@@ -18,14 +18,10 @@ import (
1818func (mdl * LMRewardsv3 ) getFarmsAndPoolsv3 (blockNum int64 ) {
1919 pools := mdl .Repo .GetDCWrapper ().GetZapperInfo (blockNum )
2020 mdl .SetFarm (pools )
21- }
22-
23- func (mdl * LMRewardsv3 ) setMinPoolSyncedTill (pool common.Address , syncedTill int64 , farm string ) {
24- if mdl .poolsToSyncedTill [pool ] == 0 {
25- mdl .poolsToSyncedTill [pool ] = syncedTill
26- }
27- if mdl .poolsToSyncedTill [pool ] != syncedTill {
28- log .Fatal ("in farm_v3 the pool_synced_till is different from different farms of that pool" , syncedTill , mdl .poolsToSyncedTill [pool ], farm )
21+ log .Info ("here" , mdl .Repo .GetAdapterAddressByName (ds .Pool ))
22+ for _ , pool := range mdl .Repo .GetAdapterAddressByName (ds .Pool ) {
23+ mdl .setPoolSyncedTill (common .HexToAddress (pool ))
24+ mdl .LastSync = utils .Min (mdl .LastSync , mdl .poolsToSyncedTill [common .HexToAddress (pool )])
2925 }
3026}
3127
@@ -56,14 +52,13 @@ func (mdl *LMRewardsv3) SetFarm(pools []dc_wrapper.PoolZapperInfo) {
5652 TotalSupply : (* core .BigInt )(new (big.Int )),
5753 Reward : (* core .BigInt )(new (big.Int )),
5854 FarmSyncedTill : mdl .Repo .GetAdapter (pool .Addr .Hex ()).GetDiscoveredAt (),
59- PoolSyncedTill : mdl .Repo .GetAdapter (pool .Addr .Hex ()).GetDiscoveredAt (),
6055 }
6156 if mdl .farms [farm .Farm ] == nil {
6257 farm .setRewardToken (mdl .Client )
6358 mdl .farms [farm .Farm ] = farm
6459 // poolAndFarms = append(poolAndFarms, farm)
6560 newfarmsForPool = append (newfarmsForPool , common .HexToAddress (farm .Farm ))
66- mdl .LastSync = utils .Min (mdl .LastSync , farm .GetMinSyncedTill () )
61+ mdl .LastSync = utils .Min (mdl .LastSync , farm .FarmSyncedTill )
6762 } else {
6863 farm = mdl .farms [farm .Farm ]
6964 oldfarmsForPool = append (oldfarmsForPool , common .HexToAddress (farm .Farm ))
@@ -82,12 +77,17 @@ func (mdl *LMRewardsv3) SetFarm(pools []dc_wrapper.PoolZapperInfo) {
8277 // mdl.SetUnderlyingState(poolAndFarms)
8378}
8479
80+ // from contractRegister, Is that opposed to saying "Tell will be sad to discover that"?
8581func (mdl * LMRewardsv3 ) AddPoolv3 (blockNum int64 , pool string ) {
8682 data := mdl .Repo .GetDCWrapper ().GetZapperInfo (blockNum , common .HexToAddress (pool ))
8783 mdl .SetFarm (data )
88- // if len(data) == 0 {
89- // log.Warnf("Pool Zapperinfo not found in DCWrapper for block:%d, pool:%s ", blockNum, pool)
90- // }
84+ mdl .setPoolSyncedTill (common .HexToAddress (pool ))
85+ }
86+ func (mdl * LMRewardsv3 ) setPoolSyncedTill (pool common.Address ) {
87+ discoveredAt := mdl .Repo .GetAdapter (pool .Hex ()).GetDiscoveredAt ()
88+ if mdl .poolsToSyncedTill [pool ] < discoveredAt {
89+ mdl .poolsToSyncedTill [pool ] = discoveredAt
90+ }
9191}
9292
9393func (mdl * LMRewardsv3 ) SetUnderlyingState (obj interface {}) {
@@ -100,9 +100,12 @@ func (mdl *LMRewardsv3) SetUnderlyingState(obj interface{}) {
100100 if mdl .farms [farm .Farm ] == nil {
101101 farm .setRewardToken (mdl .Client )
102102 mdl .farms [farm .Farm ] = farm
103- mdl .setMinPoolSyncedTill (common .HexToAddress (farm .Pool ), farm .PoolSyncedTill , farm .Farm )
104103 }
105104 }
105+ case []* DieselSync :
106+ for _ , sync := range ans {
107+ mdl .poolsToSyncedTill [common .HexToAddress (sync .Pool )] = sync .PoolSyncedTill
108+ }
106109 case []* UserLMDetails :
107110 users := map [common.Address ]map [string ]* UserLMDetails {}
108111 for _ , user := range ans {
@@ -185,4 +188,14 @@ func (mdl *LMRewardsv3) Save(tx *gorm.DB, currentTs uint64) {
185188 }
186189 err = tx .Clauses (clause.OnConflict {UpdateAll : true }).CreateInBatches (dataToSave , 500 ).Error
187190 log .CheckFatal (err )
191+
192+ dieselSYncBLock := []DieselSync {}
193+ for pool , syncedTill := range mdl .poolsToSyncedTill {
194+ dieselSYncBLock = append (dieselSYncBLock , DieselSync {
195+ Pool : pool .Hex (),
196+ PoolSyncedTill : syncedTill ,
197+ })
198+ }
199+ err = tx .Clauses (clause.OnConflict {UpdateAll : true }).CreateInBatches (dieselSYncBLock , 500 ).Error
200+ log .CheckFatal (err )
188201}
0 commit comments