From bd06b4510794f5fc8685cb842a4c9260b1e33d2d Mon Sep 17 00:00:00 2001 From: mconcat Date: Wed, 4 May 2022 17:59:13 +0900 Subject: [PATCH 1/2] add hookup for extend lockup --- x/lockup/keeper/lock.go | 10 ++++++++-- x/lockup/types/hooks.go | 7 +++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/x/lockup/keeper/lock.go b/x/lockup/keeper/lock.go index 0d031e28427..2a3b9b241c0 100644 --- a/x/lockup/keeper/lock.go +++ b/x/lockup/keeper/lock.go @@ -580,8 +580,14 @@ func (k Keeper) ExtendLockup(ctx sdk.Context, lock types.PeriodLock, newDuration return err } - k.hooks.OnTokenUnlocked(ctx, lock.OwnerAddress(), lock.ID, lock.Coins, oldLock.Duration, lock.EndTime) - k.hooks.OnTokenLocked(ctx, lock.OwnerAddress(), lock.ID, lock.Coins, lock.Duration, lock.EndTime) + k.hooks.OnLockupExtend(ctx, + lock.OwnerAddress(), + lock.GetID(), + lock.GetCoins(), + oldLock.GetDuration(), + lock.GetDuration(), + lock.GetEndTime(), + ) return nil } diff --git a/x/lockup/types/hooks.go b/x/lockup/types/hooks.go index 716ba0697a2..876e6d23ac4 100644 --- a/x/lockup/types/hooks.go +++ b/x/lockup/types/hooks.go @@ -12,6 +12,7 @@ type LockupHooks interface { OnStartUnlock(ctx sdk.Context, address sdk.AccAddress, lockID uint64, amount sdk.Coins, lockDuration time.Duration, unlockTime time.Time) OnTokenUnlocked(ctx sdk.Context, address sdk.AccAddress, lockID uint64, amount sdk.Coins, lockDuration time.Duration, unlockTime time.Time) OnTokenSlashed(ctx sdk.Context, lockID uint64, amount sdk.Coins) + OnLockupExtend(ctx sdk.Context, address sdk.AccAddress, lockID uint64, amount sdk.Coins, prevDuration time.Duration, newDuration time.Duration, unlockTime time.Time) } var _ LockupHooks = MultiLockupHooks{} @@ -52,3 +53,9 @@ func (h MultiLockupHooks) OnTokenSlashed(ctx sdk.Context, lockID uint64, amount h[i].OnTokenSlashed(ctx, lockID, amount) } } + +func (h MultiLockupHooks) OnLockupExtend(ctx sdk.Context, address sdk.AccAddress, lockID uint64, amount sdk.Coins, prevDuration, newDuration time.Duration, unlockTime time.Time) { + for i := range h { + h[i].OnLockupExtend(ctx, address, lockID, amount, prevDuration, newDuration, unlockTime) + } +} From 73946c8281918c3c71649d0cb728d43bafeef931 Mon Sep 17 00:00:00 2001 From: mconcat Date: Thu, 5 May 2022 22:01:10 +0900 Subject: [PATCH 2/2] fix extend hook api --- x/lockup/keeper/lock.go | 3 --- x/lockup/types/hooks.go | 6 +++--- x/superfluid/keeper/hooks.go | 3 +++ 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/x/lockup/keeper/lock.go b/x/lockup/keeper/lock.go index 2a3b9b241c0..50d89f431f0 100644 --- a/x/lockup/keeper/lock.go +++ b/x/lockup/keeper/lock.go @@ -581,12 +581,9 @@ func (k Keeper) ExtendLockup(ctx sdk.Context, lock types.PeriodLock, newDuration } k.hooks.OnLockupExtend(ctx, - lock.OwnerAddress(), lock.GetID(), - lock.GetCoins(), oldLock.GetDuration(), lock.GetDuration(), - lock.GetEndTime(), ) return nil diff --git a/x/lockup/types/hooks.go b/x/lockup/types/hooks.go index 876e6d23ac4..648a0f52242 100644 --- a/x/lockup/types/hooks.go +++ b/x/lockup/types/hooks.go @@ -12,7 +12,7 @@ type LockupHooks interface { OnStartUnlock(ctx sdk.Context, address sdk.AccAddress, lockID uint64, amount sdk.Coins, lockDuration time.Duration, unlockTime time.Time) OnTokenUnlocked(ctx sdk.Context, address sdk.AccAddress, lockID uint64, amount sdk.Coins, lockDuration time.Duration, unlockTime time.Time) OnTokenSlashed(ctx sdk.Context, lockID uint64, amount sdk.Coins) - OnLockupExtend(ctx sdk.Context, address sdk.AccAddress, lockID uint64, amount sdk.Coins, prevDuration time.Duration, newDuration time.Duration, unlockTime time.Time) + OnLockupExtend(ctx sdk.Context, lockID uint64, prevDuration time.Duration, newDuration time.Duration) } var _ LockupHooks = MultiLockupHooks{} @@ -54,8 +54,8 @@ func (h MultiLockupHooks) OnTokenSlashed(ctx sdk.Context, lockID uint64, amount } } -func (h MultiLockupHooks) OnLockupExtend(ctx sdk.Context, address sdk.AccAddress, lockID uint64, amount sdk.Coins, prevDuration, newDuration time.Duration, unlockTime time.Time) { +func (h MultiLockupHooks) OnLockupExtend(ctx sdk.Context, lockID uint64, prevDuration, newDuration time.Duration) { for i := range h { - h[i].OnLockupExtend(ctx, address, lockID, amount, prevDuration, newDuration, unlockTime) + h[i].OnLockupExtend(ctx, lockID, prevDuration, newDuration) } } diff --git a/x/superfluid/keeper/hooks.go b/x/superfluid/keeper/hooks.go index 8aa674a17b7..6848da25228 100644 --- a/x/superfluid/keeper/hooks.go +++ b/x/superfluid/keeper/hooks.go @@ -64,6 +64,9 @@ func (h Hooks) OnTokenUnlocked(ctx sdk.Context, address sdk.AccAddress, lockID u func (h Hooks) OnTokenSlashed(ctx sdk.Context, lockID uint64, amount sdk.Coins) { } +func (h Hooks) OnLockupExtend(ctx sdk.Context, lockID uint64, oldDuration, newDuration time.Duration) { +} + // staking hooks. func (h Hooks) AfterValidatorCreated(ctx sdk.Context, valAddr sdk.ValAddress) {} func (h Hooks) BeforeValidatorModified(ctx sdk.Context, valAddr sdk.ValAddress) {}