Skip to content

Commit 8763d8d

Browse files
chore(x/authz)!: Remove account keeper dependency (#21632)
1 parent c44683d commit 8763d8d

File tree

14 files changed

+96
-202
lines changed

14 files changed

+96
-202
lines changed

simapp/app.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ func NewSimApp(
398398
app.CircuitKeeper = circuitkeeper.NewKeeper(runtime.NewEnvironment(runtime.NewKVStoreService(keys[circuittypes.StoreKey]), logger.With(log.ModuleKey, "x/circuit")), appCodec, govModuleAddr, app.AuthKeeper.AddressCodec())
399399
app.BaseApp.SetCircuitBreaker(&app.CircuitKeeper)
400400

401-
app.AuthzKeeper = authzkeeper.NewKeeper(runtime.NewEnvironment(runtime.NewKVStoreService(keys[authzkeeper.StoreKey]), logger.With(log.ModuleKey, "x/authz"), runtime.EnvWithMsgRouterService(app.MsgServiceRouter()), runtime.EnvWithQueryRouterService(app.GRPCQueryRouter())), appCodec, app.AuthKeeper)
401+
app.AuthzKeeper = authzkeeper.NewKeeper(runtime.NewEnvironment(runtime.NewKVStoreService(keys[authzkeeper.StoreKey]), logger.With(log.ModuleKey, "x/authz"), runtime.EnvWithMsgRouterService(app.MsgServiceRouter()), runtime.EnvWithQueryRouterService(app.GRPCQueryRouter())), appCodec, signingCtx.AddressCodec())
402402

403403
groupConfig := group.DefaultConfig()
404404
/*

x/authz/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
3737

3838
### API Breaking Changes
3939

40+
* [#21632](https://github.com/cosmos/cosmos-sdk/pull/21632) `NewKeeper` now takes `address.Codec` instead of `authKeeper`.
4041
* [#21044](https://github.com/cosmos/cosmos-sdk/pull/21044) `k.DispatchActions` returns a slice of byte slices of proto marshaled anys instead of a slice of byte slices of `sdk.Result.Data`.
4142
* [#20502](https://github.com/cosmos/cosmos-sdk/pull/20502) `Accept` on the `Authorization` interface now expects the authz environment in the `context.Context`. This is already done when `Accept` is called by `k.DispatchActions`, but should be done manually if `Accept` is called directly.
4243
* [#19783](https://github.com/cosmos/cosmos-sdk/pull/19783) Removes the use of Accounts String() method

x/authz/expected_keepers.go

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,9 @@ package authz
33
import (
44
"context"
55

6-
"cosmossdk.io/core/address"
7-
86
sdk "github.com/cosmos/cosmos-sdk/types"
97
)
108

11-
// AccountKeeper defines the expected account keeper (noalias)
12-
type AccountKeeper interface {
13-
AddressCodec() address.Codec
14-
GetAccount(ctx context.Context, addr sdk.AccAddress) sdk.AccountI
15-
NewAccountWithAddress(ctx context.Context, addr sdk.AccAddress) sdk.AccountI
16-
}
17-
189
// BankKeeper defines the expected interface needed to retrieve account balances.
1910
type BankKeeper interface {
2011
SpendableCoins(ctx context.Context, addr sdk.AccAddress) sdk.Coins

x/authz/keeper/genesis.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ func (k Keeper) InitGenesis(ctx context.Context, data *authz.GenesisState) error
1818
continue
1919
}
2020

21-
grantee, err := k.authKeeper.AddressCodec().StringToBytes(entry.Grantee)
21+
grantee, err := k.addrCdc.StringToBytes(entry.Grantee)
2222
if err != nil {
2323
return err
2424
}
25-
granter, err := k.authKeeper.AddressCodec().StringToBytes(entry.Granter)
25+
granter, err := k.addrCdc.StringToBytes(entry.Granter)
2626
if err != nil {
2727
return err
2828
}
@@ -44,11 +44,11 @@ func (k Keeper) InitGenesis(ctx context.Context, data *authz.GenesisState) error
4444
func (k Keeper) ExportGenesis(ctx context.Context) (*authz.GenesisState, error) {
4545
var entries []authz.GrantAuthorization
4646
err := k.IterateGrants(ctx, func(granter, grantee sdk.AccAddress, grant authz.Grant) (bool, error) {
47-
granterAddr, err := k.authKeeper.AddressCodec().BytesToString(granter)
47+
granterAddr, err := k.addrCdc.BytesToString(granter)
4848
if err != nil {
4949
return false, err
5050
}
51-
granteeAddr, err := k.authKeeper.AddressCodec().BytesToString(grantee)
51+
granteeAddr, err := k.addrCdc.BytesToString(grantee)
5252
if err != nil {
5353
return false, err
5454
}

x/authz/keeper/genesis_test.go

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"testing"
55
"time"
66

7-
"github.com/golang/mock/gomock"
87
"github.com/stretchr/testify/suite"
98

109
"cosmossdk.io/core/header"
@@ -14,11 +13,10 @@ import (
1413
storetypes "cosmossdk.io/store/types"
1514
"cosmossdk.io/x/authz/keeper"
1615
authzmodule "cosmossdk.io/x/authz/module"
17-
authztestutil "cosmossdk.io/x/authz/testutil"
1816
bank "cosmossdk.io/x/bank/types"
1917

2018
"github.com/cosmos/cosmos-sdk/baseapp"
21-
"github.com/cosmos/cosmos-sdk/codec/address"
19+
addresscodec "github.com/cosmos/cosmos-sdk/codec/address"
2220
codectestutil "github.com/cosmos/cosmos-sdk/codec/testutil"
2321
"github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1"
2422
"github.com/cosmos/cosmos-sdk/runtime"
@@ -37,11 +35,10 @@ var (
3735
type GenesisTestSuite struct {
3836
suite.Suite
3937

40-
ctx sdk.Context
41-
keeper keeper.Keeper
42-
baseApp *baseapp.BaseApp
43-
accountKeeper *authztestutil.MockAccountKeeper
44-
encCfg moduletestutil.TestEncodingConfig
38+
ctx sdk.Context
39+
keeper keeper.Keeper
40+
baseApp *baseapp.BaseApp
41+
encCfg moduletestutil.TestEncodingConfig
4542
}
4643

4744
func (suite *GenesisTestSuite) SetupTest() {
@@ -52,11 +49,6 @@ func (suite *GenesisTestSuite) SetupTest() {
5249

5350
suite.encCfg = moduletestutil.MakeTestEncodingConfig(codectestutil.CodecOptions{}, authzmodule.AppModule{})
5451

55-
// gomock initializations
56-
ctrl := gomock.NewController(suite.T())
57-
suite.accountKeeper = authztestutil.NewMockAccountKeeper(ctrl)
58-
suite.accountKeeper.EXPECT().AddressCodec().Return(address.NewBech32Codec("cosmos")).AnyTimes()
59-
6052
suite.baseApp = baseapp.NewBaseApp(
6153
"authz",
6254
log.NewNopLogger(),
@@ -71,7 +63,8 @@ func (suite *GenesisTestSuite) SetupTest() {
7163
msr.SetInterfaceRegistry(suite.encCfg.InterfaceRegistry)
7264
env := runtime.NewEnvironment(storeService, coretesting.NewNopLogger(), runtime.EnvWithMsgRouterService(msr))
7365

74-
suite.keeper = keeper.NewKeeper(env, suite.encCfg.Codec, suite.accountKeeper)
66+
addrCdc := addresscodec.NewBech32Codec("cosmos")
67+
suite.keeper = keeper.NewKeeper(env, suite.encCfg.Codec, addrCdc)
7568
}
7669

7770
func (suite *GenesisTestSuite) TestImportExportGenesis() {

x/authz/keeper/grpc_query.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@ func (k Keeper) Grants(ctx context.Context, req *authz.QueryGrantsRequest) (*aut
2525
return nil, status.Errorf(codes.InvalidArgument, "empty request")
2626
}
2727

28-
granter, err := k.authKeeper.AddressCodec().StringToBytes(req.Granter)
28+
granter, err := k.addrCdc.StringToBytes(req.Granter)
2929
if err != nil {
3030
return nil, err
3131
}
3232

33-
grantee, err := k.authKeeper.AddressCodec().StringToBytes(req.Grantee)
33+
grantee, err := k.addrCdc.StringToBytes(req.Grantee)
3434
if err != nil {
3535
return nil, err
3636
}
@@ -95,7 +95,7 @@ func (k Keeper) GranterGrants(ctx context.Context, req *authz.QueryGranterGrants
9595
return nil, status.Errorf(codes.InvalidArgument, "empty request")
9696
}
9797

98-
granter, err := k.authKeeper.AddressCodec().StringToBytes(req.Granter)
98+
granter, err := k.addrCdc.StringToBytes(req.Granter)
9999
if err != nil {
100100
return nil, err
101101
}
@@ -116,7 +116,7 @@ func (k Keeper) GranterGrants(ctx context.Context, req *authz.QueryGranterGrants
116116

117117
grantee := firstAddressFromGrantStoreKey(key)
118118

119-
granteeAddr, err := k.authKeeper.AddressCodec().BytesToString(grantee)
119+
granteeAddr, err := k.addrCdc.BytesToString(grantee)
120120
if err != nil {
121121
return nil, err
122122
}
@@ -146,7 +146,7 @@ func (k Keeper) GranteeGrants(ctx context.Context, req *authz.QueryGranteeGrants
146146
return nil, status.Errorf(codes.InvalidArgument, "empty request")
147147
}
148148

149-
grantee, err := k.authKeeper.AddressCodec().StringToBytes(req.Grantee)
149+
grantee, err := k.addrCdc.StringToBytes(req.Grantee)
150150
if err != nil {
151151
return nil, err
152152
}
@@ -169,7 +169,7 @@ func (k Keeper) GranteeGrants(ctx context.Context, req *authz.QueryGranteeGrants
169169
return nil, status.Error(codes.Internal, err.Error())
170170
}
171171

172-
granterAddr, err := k.authKeeper.AddressCodec().BytesToString(granter)
172+
granterAddr, err := k.addrCdc.BytesToString(granter)
173173
if err != nil {
174174
return nil, err
175175
}

x/authz/keeper/grpc_query_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ func (suite *TestSuite) TestGRPCQueryAuthorization() {
2121
expAuthorization authz.Authorization
2222
)
2323

24-
addr0, err := suite.accountKeeper.AddressCodec().BytesToString(addrs[0])
24+
addr0, err := suite.addrCdc.BytesToString(addrs[0])
2525
suite.Require().NoError(err)
26-
addr1, err := suite.accountKeeper.AddressCodec().BytesToString(addrs[1])
26+
addr1, err := suite.addrCdc.BytesToString(addrs[1])
2727
suite.Require().NoError(err)
2828

2929
testCases := []struct {
@@ -137,7 +137,7 @@ func (suite *TestSuite) TestGRPCQueryGranterGrants() {
137137
require := suite.Require()
138138
queryClient, addrs := suite.queryClient, suite.addrs
139139

140-
addr0, err := suite.accountKeeper.AddressCodec().BytesToString(addrs[0])
140+
addr0, err := suite.addrCdc.BytesToString(addrs[0])
141141
suite.Require().NoError(err)
142142

143143
testCases := []struct {
@@ -209,9 +209,9 @@ func (suite *TestSuite) TestGRPCQueryGranteeGrants() {
209209
require := suite.Require()
210210
queryClient, addrs := suite.queryClient, suite.addrs
211211

212-
addr0, err := suite.accountKeeper.AddressCodec().BytesToString(addrs[0])
212+
addr0, err := suite.addrCdc.BytesToString(addrs[0])
213213
suite.Require().NoError(err)
214-
addr2, err := suite.accountKeeper.AddressCodec().BytesToString(addrs[2])
214+
addr2, err := suite.addrCdc.BytesToString(addrs[2])
215215
suite.Require().NoError(err)
216216

217217
testCases := []struct {
@@ -299,7 +299,7 @@ func (suite *TestSuite) createSendAuthorization(grantee, granter sdk.AccAddress)
299299
func (suite *TestSuite) createSendAuthorizationWithAllowList(grantee, granter sdk.AccAddress) authz.Authorization {
300300
exp := suite.ctx.HeaderInfo().Time.Add(time.Hour)
301301
newCoins := sdk.NewCoins(sdk.NewInt64Coin("steak", 100))
302-
addr, err := suite.accountKeeper.AddressCodec().BytesToString(suite.addrs[5])
302+
addr, err := suite.addrCdc.BytesToString(suite.addrs[5])
303303
suite.Require().NoError(err)
304304
authorization := &banktypes.SendAuthorization{SpendLimit: newCoins, AllowList: []string{addr}}
305305
err = suite.authzKeeper.SaveGrant(suite.ctx, grantee, granter, authorization, &exp)

x/authz/keeper/keeper.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
gogoproto "github.com/cosmos/gogoproto/proto"
1010
gogoprotoany "github.com/cosmos/gogoproto/types/any"
1111

12+
"cosmossdk.io/core/address"
1213
"cosmossdk.io/core/appmodule"
1314
corecontext "cosmossdk.io/core/context"
1415
errorsmod "cosmossdk.io/errors"
@@ -30,16 +31,16 @@ const gasCostPerIteration = uint64(20)
3031
type Keeper struct {
3132
appmodule.Environment
3233

33-
cdc codec.Codec
34-
authKeeper authz.AccountKeeper
34+
cdc codec.Codec
35+
addrCdc address.Codec
3536
}
3637

3738
// NewKeeper constructs a message authorization Keeper
38-
func NewKeeper(env appmodule.Environment, cdc codec.Codec, ak authz.AccountKeeper) Keeper {
39+
func NewKeeper(env appmodule.Environment, cdc codec.Codec, addrCdc address.Codec) Keeper {
3940
return Keeper{
4041
Environment: env,
4142
cdc: cdc,
42-
authKeeper: ak,
43+
addrCdc: addrCdc,
4344
}
4445
}
4546

@@ -206,11 +207,11 @@ func (k Keeper) SaveGrant(ctx context.Context, grantee, granter sdk.AccAddress,
206207
return err
207208
}
208209

209-
granterAddr, err := k.authKeeper.AddressCodec().BytesToString(granter)
210+
granterAddr, err := k.addrCdc.BytesToString(granter)
210211
if err != nil {
211212
return err
212213
}
213-
granteeAddr, err := k.authKeeper.AddressCodec().BytesToString(grantee)
214+
granteeAddr, err := k.addrCdc.BytesToString(grantee)
214215
if err != nil {
215216
return err
216217
}
@@ -229,12 +230,12 @@ func (k Keeper) DeleteGrant(ctx context.Context, grantee, granter sdk.AccAddress
229230
skey := grantStoreKey(grantee, granter, msgType)
230231
grant, found := k.getGrant(ctx, skey)
231232
if !found {
232-
granterAddr, err := k.authKeeper.AddressCodec().BytesToString(granter)
233+
granterAddr, err := k.addrCdc.BytesToString(granter)
233234
if err != nil {
234235
return errorsmod.Wrapf(authz.ErrNoAuthorizationFound,
235236
"could not convert granter address to string")
236237
}
237-
granteeAddr, err := k.authKeeper.AddressCodec().BytesToString(grantee)
238+
granteeAddr, err := k.addrCdc.BytesToString(grantee)
238239
if err != nil {
239240
return errorsmod.Wrapf(authz.ErrNoAuthorizationFound,
240241
"could not convert grantee address to string")
@@ -255,11 +256,11 @@ func (k Keeper) DeleteGrant(ctx context.Context, grantee, granter sdk.AccAddress
255256
return err
256257
}
257258

258-
granterAddr, err := k.authKeeper.AddressCodec().BytesToString(granter)
259+
granterAddr, err := k.addrCdc.BytesToString(granter)
259260
if err != nil {
260261
return err
261262
}
262-
granteeAddr, err := k.authKeeper.AddressCodec().BytesToString(grantee)
263+
granteeAddr, err := k.addrCdc.BytesToString(grantee)
263264
if err != nil {
264265
return err
265266
}
@@ -291,7 +292,7 @@ func (k Keeper) DeleteAllGrants(ctx context.Context, granter sdk.AccAddress) err
291292
}
292293
}
293294

294-
grantAddr, err := k.authKeeper.AddressCodec().BytesToString(granter)
295+
grantAddr, err := k.addrCdc.BytesToString(granter)
295296
if err != nil {
296297
return err
297298
}

0 commit comments

Comments
 (0)