Skip to content

Commit 077323c

Browse files
committed
fix: update diesel_sync
1 parent 52c310a commit 077323c

File tree

7 files changed

+55
-24
lines changed

7 files changed

+55
-24
lines changed

engine/index.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@ func (e *Engine) Sync(syncTill int64) {
207207
func (e *Engine) SyncModel(mdl ds.SyncAdapterI, syncTill int64, wg *sync.WaitGroup) {
208208
defer wg.Done()
209209
syncFrom := mdl.GetLastSync() + 1
210+
// log.Info(syncFrom, mdl)
210211
syncTill = utils.Min(mdl.GetBlockToDisableOn(), syncTill)
211212
if syncFrom > syncTill {
212213
return
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
create table diesel_sync (
2+
pool varchar(42) PRIMARY KEY,
3+
pool_synced_till integer
4+
);
5+
6+
insert into diesel_sync (select distinct on (pool) pool, pool_synced_till from farm_V3 order by pool);

models/pool_lmrewards/v3/farm.go

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,23 +26,21 @@ type Farmv3 struct {
2626
//
2727
TotalSupply *core.BigInt `gorm:"column:total_supply"`
2828
FarmSyncedTill int64 `gorm:"column:synced_till"`
29-
PoolSyncedTill int64 `gorm:"column:pool_synced_till"`
3029
}
3130

32-
func (farm Farmv3) GetMinSyncedTill() int64 {
33-
if farm.FarmSyncedTill < farm.PoolSyncedTill {
34-
return farm.FarmSyncedTill
35-
}
36-
return farm.PoolSyncedTill
31+
type DieselSync struct {
32+
PoolSyncedTill int64 `gorm:"column:pool_synced_till"`
33+
Pool string `gorm:"column:pool;primaryKey"`
34+
}
35+
36+
func (DieselSync) TableName() string {
37+
return "diesel_sync"
3738
}
3839

3940
func (farm *Farmv3) SetSyncedTill(synedTill int64) {
4041
if farm.FarmSyncedTill < synedTill {
4142
farm.FarmSyncedTill = synedTill
4243
}
43-
if farm.PoolSyncedTill < synedTill {
44-
farm.PoolSyncedTill = synedTill
45-
}
4644
}
4745

4846
func (farm *Farmv3) setRewardToken(client core.ClientI) {

models/pool_lmrewards/v3/log.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func GetLogs() func() ss {
2323
cfg := config.NewConfig()
2424
client := ethclient.NewEthClient(cfg)
2525
node := pkg.Node{Client: client}
26-
addr := "0x3E965117A51186e41c2BB58b729A1e518A715e5F"
26+
addr := "0x3E965117A51186e41c2BB58b729A1e518A715e5F" // nikitakle address on mainnet
2727
log.Info(core.GetChainId(client))
2828
txlogs, err := node.GetLogsForTransfer(0, node.GetLatestBlockNumber(), []common.Address{common.HexToAddress("0xda0002859B2d05F66a753d8241fCDE8623f26F4f")}, []common.Hash{common.HexToHash(addr)})
2929
log.CheckFatal(err)

models/pool_lmrewards/v3/model.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,5 +113,11 @@ func (mdl *LMRewardsv3) AfterSyncHook(syncedTill int64) {
113113
for _, farm := range mdl.farms {
114114
farm.SetSyncedTill(syncedTill)
115115
}
116+
for pool, till := range mdl.poolsToSyncedTill {
117+
if till < syncedTill {
118+
till = syncedTill
119+
}
120+
mdl.poolsToSyncedTill[pool] = till
121+
}
116122
mdl.SyncAdapter.AfterSyncHook(syncedTill)
117123
}

models/pool_lmrewards/v3/state.go

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,10 @@ import (
1818
func (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"?
8581
func (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

9393
func (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
}

repository/reward_v3.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"github.com/Gearbox-protocol/sdk-go/utils"
66
"github.com/Gearbox-protocol/third-eye/ds"
77
lmrewardsv3 "github.com/Gearbox-protocol/third-eye/models/pool_lmrewards/v3"
8+
v3 "github.com/Gearbox-protocol/third-eye/models/pool_lmrewards/v3"
89
"gorm.io/gorm"
910
)
1011

@@ -22,6 +23,12 @@ func (repo *Repository) loadLMRewardDetailsv3() {
2223
err := repo.db.Raw(`SELECT * FROM farm_v3`).Find(&farms).Error
2324
log.CheckFatal(err)
2425
adapter.SetUnderlyingState(farms)
26+
27+
//
28+
dieselsync := []*v3.DieselSync{}
29+
err = repo.db.Raw(`SELECT * FROM diesel_sync`).Find(&farms).Error
30+
log.CheckFatal(err)
31+
adapter.SetUnderlyingState(dieselsync)
2532
//
2633
details := []*lmrewardsv3.UserLMDetails{}
2734
err = repo.db.Raw(`SELECT * FROM user_lmdetails_v3`).Find(&details).Error

0 commit comments

Comments
 (0)