github.com/Finschia/finschia-sdk@v0.48.1/x/staking/types/hooks.go (about)

     1  package types
     2  
     3  import (
     4  	sdk "github.com/Finschia/finschia-sdk/types"
     5  )
     6  
     7  // combine multiple staking hooks, all hook functions are run in array sequence
     8  type MultiStakingHooks []StakingHooks
     9  
    10  func NewMultiStakingHooks(hooks ...StakingHooks) MultiStakingHooks {
    11  	return hooks
    12  }
    13  
    14  func (h MultiStakingHooks) AfterValidatorCreated(ctx sdk.Context, valAddr sdk.ValAddress) {
    15  	for i := range h {
    16  		h[i].AfterValidatorCreated(ctx, valAddr)
    17  	}
    18  }
    19  
    20  func (h MultiStakingHooks) BeforeValidatorModified(ctx sdk.Context, valAddr sdk.ValAddress) {
    21  	for i := range h {
    22  		h[i].BeforeValidatorModified(ctx, valAddr)
    23  	}
    24  }
    25  
    26  func (h MultiStakingHooks) AfterValidatorRemoved(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) {
    27  	for i := range h {
    28  		h[i].AfterValidatorRemoved(ctx, consAddr, valAddr)
    29  	}
    30  }
    31  
    32  func (h MultiStakingHooks) AfterValidatorBonded(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) {
    33  	for i := range h {
    34  		h[i].AfterValidatorBonded(ctx, consAddr, valAddr)
    35  	}
    36  }
    37  
    38  func (h MultiStakingHooks) AfterValidatorBeginUnbonding(ctx sdk.Context, consAddr sdk.ConsAddress, valAddr sdk.ValAddress) {
    39  	for i := range h {
    40  		h[i].AfterValidatorBeginUnbonding(ctx, consAddr, valAddr)
    41  	}
    42  }
    43  
    44  func (h MultiStakingHooks) BeforeDelegationCreated(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) {
    45  	for i := range h {
    46  		h[i].BeforeDelegationCreated(ctx, delAddr, valAddr)
    47  	}
    48  }
    49  
    50  func (h MultiStakingHooks) BeforeDelegationSharesModified(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) {
    51  	for i := range h {
    52  		h[i].BeforeDelegationSharesModified(ctx, delAddr, valAddr)
    53  	}
    54  }
    55  
    56  func (h MultiStakingHooks) BeforeDelegationRemoved(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) {
    57  	for i := range h {
    58  		h[i].BeforeDelegationRemoved(ctx, delAddr, valAddr)
    59  	}
    60  }
    61  
    62  func (h MultiStakingHooks) AfterDelegationModified(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) {
    63  	for i := range h {
    64  		h[i].AfterDelegationModified(ctx, delAddr, valAddr)
    65  	}
    66  }
    67  
    68  func (h MultiStakingHooks) BeforeValidatorSlashed(ctx sdk.Context, valAddr sdk.ValAddress, fraction sdk.Dec) {
    69  	for i := range h {
    70  		h[i].BeforeValidatorSlashed(ctx, valAddr, fraction)
    71  	}
    72  }