@@ -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 {
0 commit comments