Skip to content

Commit 6318e06

Browse files
authored
fix(staking): replace total stake amount history api (#47)
1 parent 6aabd2c commit 6318e06

File tree

2 files changed

+2
-95
lines changed

2 files changed

+2
-95
lines changed

pkg/server/handler.go

Lines changed: 2 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ func (s *Server) TotalStakeHandler() gin.HandlerFunc {
298298
return func(c *gin.Context) {
299299
logger := log.With().Str("handler", "TotalStakeHandler").Logger()
300300

301-
row, err := db.GetLatestCLTotalStake(s.dbOperator)
301+
row, err := db.GetLatestCLTotalStakeHist(s.dbOperator)
302302
if err != nil {
303303
logger.Error().Err(err).Msg("failed to get latest cl total stake")
304304
c.JSON(http.StatusOK, Response{
@@ -308,7 +308,7 @@ func (s *Server) TotalStakeHandler() gin.HandlerFunc {
308308
return
309309
}
310310

311-
indexPointTime, err := db.GetIndexPointTime(s.dbOperator, "cl_total_stake")
311+
indexPointTime, err := db.GetIndexPointTime(s.dbOperator, "cl_staking_event")
312312
if err != nil {
313313
logger.Error().Err(err).Msg("failed to get index point time")
314314
c.JSON(http.StatusOK, Response{
@@ -359,98 +359,6 @@ func (s *Server) TotalStakeHistoryHandler() gin.HandlerFunc {
359359
return
360360
}
361361

362-
var stakeHistory []StakeAmountData
363-
// Get the last amount before the period
364-
if Interval(interval) != IntervalAllTime {
365-
row, err := db.GetLatestCLTotalStakeBefore(s.dbOperator, startTime.Unix())
366-
if err != nil {
367-
logger.Error().Err(err).Msg("failed to get latest cl total stake before period")
368-
c.JSON(http.StatusOK, Response{
369-
Code: http.StatusInternalServerError,
370-
Error: ErrInternalDataServiceError.Error(),
371-
})
372-
return
373-
}
374-
stakeHistory = append(stakeHistory, StakeAmountData{
375-
TotalStakeAmount: row.TotalStakeAmount,
376-
UpdateAt: row.UpdateAt,
377-
})
378-
}
379-
// Get all amount updates after the start time
380-
if Interval(interval) == IntervalAllTime {
381-
rows, err := db.GetCLTotalStakes(s.dbOperator)
382-
if err != nil {
383-
logger.Error().Err(err).Msg("failed to get all cl total stakes")
384-
c.JSON(http.StatusOK, Response{
385-
Code: http.StatusInternalServerError,
386-
Error: ErrInternalDataServiceError.Error(),
387-
})
388-
return
389-
}
390-
for _, row := range rows {
391-
stakeHistory = append(stakeHistory, StakeAmountData{
392-
TotalStakeAmount: row.TotalStakeAmount,
393-
UpdateAt: row.UpdateAt,
394-
})
395-
}
396-
} else {
397-
rows, err := db.GetCLTotalStakesAfter(s.dbOperator, startTime.Unix())
398-
if err != nil {
399-
logger.Error().Err(err).Msg("failed to get cl total stakes within period")
400-
c.JSON(http.StatusOK, Response{
401-
Code: http.StatusInternalServerError,
402-
Error: ErrInternalDataServiceError.Error(),
403-
})
404-
return
405-
}
406-
for _, row := range rows {
407-
stakeHistory = append(stakeHistory, StakeAmountData{
408-
TotalStakeAmount: row.TotalStakeAmount,
409-
UpdateAt: row.UpdateAt,
410-
})
411-
}
412-
}
413-
414-
c.JSON(http.StatusOK, Response{
415-
Code: http.StatusOK,
416-
Msg: map[string]any{
417-
"total_stake_amount_history": stakeHistory,
418-
},
419-
})
420-
}
421-
}
422-
423-
func (s *Server) TotalStakeHistoryHandlerV2() gin.HandlerFunc {
424-
return func(c *gin.Context) {
425-
logger := log.With().Str("handler", "TotalStakeHistoryHandlerV2").Logger()
426-
427-
interval := c.Query("interval")
428-
if interval == "" {
429-
interval = string(IntervalOneDay)
430-
}
431-
432-
var (
433-
startTime time.Time
434-
currentTime = time.Now()
435-
)
436-
switch Interval(interval) {
437-
case IntervalOneDay:
438-
startTime = currentTime.AddDate(0, 0, -1)
439-
case IntervalSevenDays:
440-
startTime = currentTime.AddDate(0, 0, -7)
441-
case IntervalThirtyDays:
442-
startTime = currentTime.AddDate(0, 0, -30)
443-
case IntervalAllTime:
444-
// no filter needed
445-
default:
446-
logger.Error().Str("interval", interval).Msg("invalid interval")
447-
c.JSON(http.StatusOK, Response{
448-
Code: http.StatusBadRequest,
449-
Error: ErrInvalidParameter.Error(),
450-
})
451-
return
452-
}
453-
454362
var stakeHistory []StakeAmountData
455363
// Get the last amount before the period
456364
if Interval(interval) != IntervalAllTime {

pkg/server/server.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,6 @@ func (s *Server) setupStakingAPI() {
191191
apiGroup.GET("/rewards/:evm_address", s.RewardsHandler())
192192
apiGroup.GET("/staking/total_stake", s.TotalStakeHandler())
193193
apiGroup.GET("/staking/total_stake/history", s.TotalStakeHistoryHandler())
194-
apiGroup.GET("/staking/total_stake/history/v2", s.TotalStakeHistoryHandlerV2())
195194
// Proxy to Story API.
196195
apiGroup.GET("/staking/params", s.StakingParamsHandler())
197196

0 commit comments

Comments
 (0)