/
msg_fee_handler.go
42 lines (33 loc) · 1.4 KB
/
msg_fee_handler.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
package handlers
import (
sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
msgfeestypes "github.com/provenance-io/provenance/x/msgfees/types"
)
type PioBaseAppKeeperOptions struct {
AccountKeeper msgfeestypes.AccountKeeper
BankKeeper bankkeeper.Keeper
FeegrantKeeper msgfeestypes.FeegrantKeeper
MsgFeesKeeper msgfeestypes.MsgFeesKeeper
Decoder sdk.TxDecoder
}
func NewAdditionalMsgFeeHandler(options PioBaseAppKeeperOptions) (sdk.FeeHandler, error) {
if options.AccountKeeper == nil {
return nil, sdkerrors.ErrLogic.Wrap("account keeper is required for AdditionalMsgFeeHandler builder")
}
if options.BankKeeper == nil {
return nil, sdkerrors.ErrLogic.Wrap("bank keeper is required for AdditionalMsgFeeHandler builder")
}
if options.FeegrantKeeper == nil {
return nil, sdkerrors.ErrLogic.Wrap("fee grant keeper is required for AdditionalMsgFeeHandler builder")
}
if options.MsgFeesKeeper == nil {
return nil, sdkerrors.ErrLogic.Wrap("msgbased fee keeper is required for AdditionalMsgFeeHandler builder")
}
if options.Decoder == nil {
return nil, sdkerrors.ErrLogic.Wrap("Decoder is required for AdditionalMsgFeeHandler builder")
}
return NewMsgFeeInvoker(options.BankKeeper, options.AccountKeeper, options.FeegrantKeeper,
options.MsgFeesKeeper, options.Decoder).Invoke, nil
}