From 683f35d5a567743c1df534d6700cee4f4dcabbbc Mon Sep 17 00:00:00 2001 From: devon <80245700+devon-chain@users.noreply.github.com> Date: Wed, 9 Aug 2023 17:44:52 +0800 Subject: [PATCH 1/2] fix: authz GetAuthorizations * Iterator Unmarshal Grant with Any cachedValue --- x/authz/keeper/keeper.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/authz/keeper/keeper.go b/x/authz/keeper/keeper.go index d88de2f50487..5293f4096e10 100644 --- a/x/authz/keeper/keeper.go +++ b/x/authz/keeper/keeper.go @@ -266,9 +266,9 @@ func (k Keeper) GetAuthorizations(ctx context.Context, grantee, granter sdk.AccA iter := storetypes.KVStorePrefixIterator(store, key) defer iter.Close() - var authorization authz.Grant var authorizations []authz.Authorization for ; iter.Valid(); iter.Next() { + var authorization authz.Grant if err := k.cdc.Unmarshal(iter.Value(), &authorization); err != nil { return nil, err } From 2057f597065c0820b6dd00518066b2c021ec35bc Mon Sep 17 00:00:00 2001 From: devon <80245700+devon-chain@users.noreply.github.com> Date: Tue, 22 Aug 2023 18:20:15 +0800 Subject: [PATCH 2/2] test: GetAuthorizations --- x/authz/keeper/keeper_test.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/x/authz/keeper/keeper_test.go b/x/authz/keeper/keeper_test.go index b8a53114f6bd..9a7b5d81371b 100644 --- a/x/authz/keeper/keeper_test.go +++ b/x/authz/keeper/keeper_test.go @@ -482,6 +482,27 @@ func (s *TestSuite) TestGetAuthorization() { } } +func (s *TestSuite) TestGetAuthorizations() { + require := s.Require() + addr1 := s.addrs[1] + addr2 := s.addrs[2] + + genAuthMulti := authz.NewGenericAuthorization(sdk.MsgTypeURL(&banktypes.MsgMultiSend{})) + genAuthSend := authz.NewGenericAuthorization(sdk.MsgTypeURL(&banktypes.MsgSend{})) + + start := s.ctx.BlockHeader().Time + expired := start.Add(time.Duration(1) * time.Second) + + s.Require().NoError(s.authzKeeper.SaveGrant(s.ctx, addr1, addr2, genAuthMulti, &expired), "creating multi send grant 1->2") + s.Require().NoError(s.authzKeeper.SaveGrant(s.ctx, addr1, addr2, genAuthSend, &expired), "creating send grant 1->2") + + authzs, err := s.authzKeeper.GetAuthorizations(s.ctx, addr1, addr2) + require.NoError(err) + require.Len(authzs, 2) + require.Equal(sdk.MsgTypeURL(&banktypes.MsgMultiSend{}), authzs[0].MsgTypeURL()) + require.Equal(sdk.MsgTypeURL(&banktypes.MsgSend{}), authzs[1].MsgTypeURL()) +} + func TestTestSuite(t *testing.T) { suite.Run(t, new(TestSuite)) }