/
hooks.go
44 lines (36 loc) · 1.44 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
40
41
42
43
44
package types
import (
sdkmath "cosmossdk.io/math"
sdk "github.com/cosmos/cosmos-sdk/types"
)
var _ OrderBookHooks = MultiOrderBookHooks{}
// MultiOrderBookHooks combine multiple orderbook hooks, all hook functions are run in array sequence
type MultiOrderBookHooks []OrderBookHooks
// NewMultiOrderBookHooks returns list of hooks defined for the orderbook module.
func NewMultiOrderBookHooks(hooks ...OrderBookHooks) MultiOrderBookHooks {
return hooks
}
// AfterHouseWin registers all of hooks for this method.
func (h MultiOrderBookHooks) AfterHouseWin(ctx sdk.Context, house sdk.AccAddress, originalAmount, profit sdkmath.Int) {
for i := range h {
h[i].AfterHouseWin(ctx, house, originalAmount, profit)
}
}
// AfterHouseLoss registers all of hooks for this method.
func (h MultiOrderBookHooks) AfterHouseLoss(ctx sdk.Context, house sdk.AccAddress, originalAmount, lostAmt sdkmath.Int) {
for i := range h {
h[i].AfterHouseLoss(ctx, house, originalAmount, lostAmt)
}
}
// AfterHouseRefund registers all of hooks for this method.
func (h MultiOrderBookHooks) AfterHouseRefund(ctx sdk.Context, house sdk.AccAddress, originalAmount sdkmath.Int) {
for i := range h {
h[i].AfterHouseRefund(ctx, house, originalAmount)
}
}
// AfterHouseFeeRefund registers all of hooks for this method.
func (h MultiOrderBookHooks) AfterHouseFeeRefund(ctx sdk.Context, house sdk.AccAddress, fee sdkmath.Int) {
for i := range h {
h[i].AfterHouseRefund(ctx, house, fee)
}
}