/
expected_keepers.go
58 lines (51 loc) · 2.13 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
package types
import (
"time"
nft "github.com/OmniFlix/onft/exported"
nfttypes "github.com/OmniFlix/onft/types"
streampaytypes "github.com/OmniFlix/streampay/v2/x/streampay/types"
sdk "github.com/cosmos/cosmos-sdk/types"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
)
// AccountKeeper defines the expected account keeper
type AccountKeeper interface {
GetAccount(ctx sdk.Context, addr sdk.AccAddress) authtypes.AccountI
GetModuleAccount(ctx sdk.Context, name string) authtypes.ModuleAccountI
GetModuleAddress(module string) sdk.AccAddress
}
// BankKeeper defines the expected bank keeper
type BankKeeper interface {
SpendableCoins(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins
SendCoins(ctx sdk.Context, from sdk.AccAddress, to sdk.AccAddress, amount sdk.Coins) error
SendCoinsFromModuleToAccount(ctx sdk.Context, formModule string, toAddr sdk.AccAddress, amt sdk.Coins) error
SendCoinsFromModuleToModule(ctx sdk.Context, formModule string, toModule string, amt sdk.Coins) error
SendCoinsFromAccountToModule(ctx sdk.Context, fromAddr sdk.AccAddress, toModule string, amt sdk.Coins) error
}
// NftKeeper defines the expected nft keeper
type NftKeeper interface {
GetONFT(ctx sdk.Context, denomId, onftId string) (nft nft.ONFT, err error)
GetDenom(ctx sdk.Context, denomId string) (nfttypes.Denom, error)
MintONFT(ctx sdk.Context,
denomID, onftID string,
metadata nfttypes.Metadata, data string,
transferable, extensible, nsfw bool,
royaltyShare sdk.Dec, sender, recipient sdk.AccAddress,
) error
TransferOwnership(ctx sdk.Context, denomId, nftId string, srcOwner, dstOwner sdk.AccAddress) error
BurnONFT(ctx sdk.Context, denomId, nftId string, owner sdk.AccAddress) error
}
type StreamPayKeeper interface {
CreateStreamPayment(
ctx sdk.Context,
sender, recipient sdk.AccAddress,
amount sdk.Coin,
paymentType streampaytypes.StreamType,
duration time.Duration,
periods []*streampaytypes.Period,
cancellable bool,
) (string, error)
}
// DistributionKeeper defines the expected distribution keeper
type DistributionKeeper interface {
FundCommunityPool(ctx sdk.Context, amount sdk.Coins, sender sdk.AccAddress) error
}