/
hooks.go
39 lines (31 loc) · 1.05 KB
/
hooks.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package types
import (
sdk "github.com/cosmos/cosmos-sdk/types"
)
// Hooks defines pre or post processing hooks for various actions the x/leverage
// module takes.
type Hooks interface {
// AfterTokenRegistered defines a hook another keeper can execute after the
// x/leverage registers a token.
AfterTokenRegistered(ctx sdk.Context, token Token)
// AfterRegisteredTokenRemoved defines a hook another keeper can execute after
// the x/leverage module removes a registered token.
AfterRegisteredTokenRemoved(ctx sdk.Context, token Token)
}
var _ Hooks = MultiHooks{}
// MultiHooks defines a type alias for multiple hooks, i.e. for multiple keepers
// to execute x/leverage hooks.
type MultiHooks []Hooks
func NewMultiHooks(hooks ...Hooks) MultiHooks {
return hooks
}
func (mh MultiHooks) AfterTokenRegistered(ctx sdk.Context, token Token) {
for _, h := range mh {
h.AfterTokenRegistered(ctx, token)
}
}
func (mh MultiHooks) AfterRegisteredTokenRemoved(ctx sdk.Context, token Token) {
for _, h := range mh {
h.AfterRegisteredTokenRemoved(ctx, token)
}
}