-
Notifications
You must be signed in to change notification settings - Fork 36
/
expected_keepers.go
104 lines (86 loc) · 4.86 KB
/
expected_keepers.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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package types
import (
"context"
"time"
sdk "github.com/cosmos/cosmos-sdk/types"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
"github.com/cosmos/cosmos-sdk/x/authz"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
"github.com/cosmos/cosmos-sdk/x/feegrant"
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1"
transfertypes "github.com/cosmos/ibc-go/v6/modules/apps/transfer/types"
attrtypes "github.com/provenance-io/provenance/x/attribute/types"
)
// AccountKeeper defines the auth/account functionality needed by the marker keeper.
type AccountKeeper interface {
GetAllAccounts(ctx sdk.Context) (accounts []authtypes.AccountI)
GetNextAccountNumber(ctx sdk.Context) uint64
GetAccount(sdk.Context, sdk.AccAddress) authtypes.AccountI
SetAccount(sdk.Context, authtypes.AccountI)
NewAccount(sdk.Context, authtypes.AccountI) authtypes.AccountI
RemoveAccount(ctx sdk.Context, acc authtypes.AccountI)
}
// AuthzKeeper defines the authz functionality needed by the marker keeper.
type AuthzKeeper interface {
GetAuthorization(ctx sdk.Context, grantee sdk.AccAddress, granter sdk.AccAddress, msgType string) (authz.Authorization, *time.Time)
DeleteGrant(ctx sdk.Context, grantee sdk.AccAddress, granter sdk.AccAddress, msgType string) error
SaveGrant(ctx sdk.Context, grantee, granter sdk.AccAddress, authorization authz.Authorization, expiration *time.Time) error
}
// BankKeeper defines the bank functionality needed by the marker module.
type BankKeeper interface {
GetAllBalances(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins
GetBalance(ctx sdk.Context, addr sdk.AccAddress, denom string) sdk.Coin
GetSupply(ctx sdk.Context, denom string) sdk.Coin
DenomOwners(goCtx context.Context, req *banktypes.QueryDenomOwnersRequest) (*banktypes.QueryDenomOwnersResponse, error)
SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error
SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error
SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error
MintCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error
BurnCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error
AppendSendRestriction(restriction banktypes.SendRestrictionFn)
BlockedAddr(addr sdk.AccAddress) bool
GetDenomMetaData(ctx sdk.Context, denom string) (banktypes.Metadata, bool)
SetDenomMetaData(ctx sdk.Context, denomMetaData banktypes.Metadata)
// TODO: Delete the below entries when no longer needed.
// IterateAllBalances only used in GetAllMarkerHolders used by the unneeded querier.
// The Holding query just uses the DenomOwners query endpoint.
IterateAllBalances(ctx sdk.Context, cb func(address sdk.AccAddress, coin sdk.Coin) (stop bool))
// GetAllSendEnabledEntries only needed by RemoveIsSendEnabledEntries in the quicksilver upgrade.
GetAllSendEnabledEntries(ctx sdk.Context) []banktypes.SendEnabled
// DeleteSendEnabled only needed by RemoveIsSendEnabledEntries in the quicksilver upgrade.
DeleteSendEnabled(ctx sdk.Context, denom string)
}
// FeeGrantKeeper defines the fee-grant functionality needed by the marker module.
type FeeGrantKeeper interface {
GrantAllowance(ctx sdk.Context, granter, grantee sdk.AccAddress, feeAllowance feegrant.FeeAllowanceI) error
}
// Note: There is no IBCKeeper interface in here.
// The SendTransfer function takes in a checkRestrictionsHandler. That is defined in the
// ibc keeper package. Furthermore, checkRestrictionsHandler takes in an IBC Keeper anyway.
// So there's no way to remove the dependency on that ibc keeper package.
// AttrKeeper defines the attribute functionality needed by the marker module.
type AttrKeeper interface {
GetMaxValueLength(ctx sdk.Context) uint32
GetAllAttributesAddr(ctx sdk.Context, addr []byte) ([]attrtypes.Attribute, error)
GetAccountData(ctx sdk.Context, addr string) (string, error)
SetAccountData(ctx sdk.Context, addr string, value string) error
}
// NameKeeper defines the name keeper functionality needed by the marker module.
type NameKeeper interface {
Normalize(ctx sdk.Context, name string) (string, error)
}
// GovKeeper defines the gov functionality needed by the marker module sims.
type GovKeeper interface {
GetProposal(ctx sdk.Context, proposalID uint64) (govtypes.Proposal, bool)
GetDepositParams(ctx sdk.Context) govtypes.DepositParams
GetVotingParams(ctx sdk.Context) govtypes.VotingParams
GetProposalID(ctx sdk.Context) (uint64, error)
}
// IbcTransferMsgServer defines the message server functionality needed by the marker module.
type IbcTransferMsgServer interface {
Transfer(goCtx context.Context, msg *transfertypes.MsgTransfer) (*transfertypes.MsgTransferResponse, error)
}
// GroupChecker defines the functionality for checking if an account is part of a group.
type GroupChecker interface {
IsGroupAddress(sdk.Context, sdk.AccAddress) bool
}