github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/dex/endblocker.go (about) 1 package dex 2 3 import ( 4 "fmt" 5 6 "github.com/fibonacci-chain/fbc/x/common/perf" 7 "github.com/fibonacci-chain/fbc/x/dex/types" 8 9 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 10 ) 11 12 // EndBlocker called every block 13 func EndBlocker(ctx sdk.Context, k IKeeper) { 14 seq := perf.GetPerf().OnEndBlockEnter(ctx, types.ModuleName) 15 defer perf.GetPerf().OnEndBlockExit(ctx, types.ModuleName, seq) 16 // complete withdraw 17 currentTime := ctx.BlockHeader().Time 18 k.IterateWithdrawAddress(ctx, currentTime, 19 func(_ int64, key []byte) (stop bool) { 20 oldTime, addr := types.SplitWithdrawTimeKey(key) 21 err := k.CompleteWithdraw(ctx, addr) 22 if err != nil { 23 ctx.Logger().Error(fmt.Sprintf("complete undelegate failed: %s, addr:%s", err.Error(), addr.String())) 24 } else { 25 ctx.Logger().Debug(fmt.Sprintf("complete undelegate successful, addr: %s", addr.String())) 26 k.DeleteWithdrawCompleteTimeAddress(ctx, oldTime, addr) 27 } 28 return false 29 }) 30 }