Skip to content

Commit 989643f

Browse files
committed
systemtests
1 parent ede3f22 commit 989643f

File tree

9 files changed

+72
-72
lines changed

9 files changed

+72
-72
lines changed

simapp/v2/app_di.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
basedepinject "cosmossdk.io/x/accounts/defaults/base/depinject"
1717
lockupdepinject "cosmossdk.io/x/accounts/defaults/lockup/depinject"
1818
multisigdepinject "cosmossdk.io/x/accounts/defaults/multisig/depinject"
19+
admindepinject "cosmossdk.io/x/accounts/defaults/admin/depinject"
1920
stakingkeeper "cosmossdk.io/x/staking/keeper"
2021
upgradekeeper "cosmossdk.io/x/upgrade/keeper"
2122

@@ -55,6 +56,7 @@ func AppConfig() depinject.Config {
5556
multisigdepinject.ProvideAccount,
5657
basedepinject.ProvideAccount,
5758
lockupdepinject.ProvideAllLockupAccounts,
59+
admindepinject.ProvideAccount,
5860

5961
// provide base account options
6062
basedepinject.ProvideSecp256K1PubKey,

x/bank/proto/cosmos/bank/v2/authorityMetadata.proto

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,5 @@ message DenomAuthorityMetadata {
1313
option (gogoproto.equal) = true;
1414

1515
// Can be empty for no admin, or a valid osmosis address
16-
bytes admin = 1;
16+
string admin = 1;
1717
}

x/bank/v2/keeper/admins.go

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,3 @@ func (k Keeper) setAuthorityMetadata(ctx context.Context, denom string, metadata
2121

2222
return k.denomAuthority.Set(ctx, denom, metadata)
2323
}
24-
25-
func (k Keeper) setAdmin(ctx context.Context, denom, admin string) error {
26-
metadata, err := k.GetAuthorityMetadata(ctx, denom)
27-
if err != nil {
28-
return err
29-
}
30-
31-
adminAddr, err := k.addressCodec.StringToBytes(admin)
32-
if err != nil {
33-
return err
34-
}
35-
36-
metadata.Admin = adminAddr
37-
38-
return k.setAuthorityMetadata(ctx, denom, metadata)
39-
}

x/bank/v2/keeper/createdenom.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import (
44
"context"
55
"fmt"
66

7-
"cosmossdk.io/x/bank/v2/types"
8-
97
admin "cosmossdk.io/x/accounts/defaults/admin"
108
adminv1 "cosmossdk.io/x/accounts/defaults/admin/v1"
9+
"cosmossdk.io/x/bank/v2/types"
10+
1111
sdk "github.com/cosmos/cosmos-sdk/types"
1212
"github.com/cosmos/cosmos-sdk/types/address"
1313
)
@@ -62,9 +62,17 @@ func (k Keeper) createDenomAfterValidation(ctx context.Context, creatorAddr, den
6262

6363
// Create denom admin account
6464
_, accountAddr, err := k.accountsKeeper.Init(ctx, admin.Type, creatorAddrBz, msgInitAdmin, sdk.NewCoins())
65+
if err != nil {
66+
return err
67+
}
68+
69+
accountAddrStr, err := k.addressCodec.BytesToString(accountAddr)
70+
if err != nil {
71+
return err
72+
}
6573

6674
authorityMetadata := types.DenomAuthorityMetadata{
67-
Admin: accountAddr,
75+
Admin: accountAddrStr,
6876
}
6977
err = k.setAuthorityMetadata(ctx, denom, authorityMetadata)
7078
if err != nil {

x/bank/v2/keeper/handlers.go

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ import (
1010
"google.golang.org/grpc/status"
1111

1212
errorsmod "cosmossdk.io/errors"
13+
adminv1 "cosmossdk.io/x/accounts/defaults/admin/v1"
1314
"cosmossdk.io/x/bank/v2/types"
1415

15-
adminv1 "cosmossdk.io/x/accounts/defaults/admin/v1"
1616
sdk "github.com/cosmos/cosmos-sdk/types"
1717
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
1818
)
@@ -112,15 +112,17 @@ func (h handlers) MsgMint(ctx context.Context, msg *types.MsgMint) (*types.MsgMi
112112
return nil, err
113113
}
114114

115-
adminAccAddr := authorityMetadata.Admin
115+
adminAccAddr, err := h.addressCodec.StringToBytes(authorityMetadata.Admin)
116+
if err != nil {
117+
return nil, err
118+
}
116119

117120
// Query if sender have mint perm
118121

119122
_, err = h.accountsKeeper.Query(ctx, adminAccAddr, &adminv1.QueryMintPerm{
120123
Sender: msg.Authority,
121-
Denom: msg.Amount.Denom,
124+
Denom: msg.Amount.Denom,
122125
})
123-
124126
if err != nil {
125127
return nil, err
126128
}
@@ -181,15 +183,17 @@ func (h handlers) MsgBurn(ctx context.Context, msg *types.MsgBurn) (*types.MsgBu
181183
return nil, err
182184
}
183185

184-
adminAccAddr := authorityMetadata.Admin
186+
adminAccAddr, err := h.addressCodec.StringToBytes(authorityMetadata.Admin)
187+
if err != nil {
188+
return nil, err
189+
}
185190

186191
// Query if sender have mint perm
187192

188193
_, err = h.accountsKeeper.Query(ctx, adminAccAddr, &adminv1.QueryBurnPerm{
189194
Sender: msg.Authority,
190-
Denom: msg.Amount.Denom,
195+
Denom: msg.Amount.Denom,
191196
})
192-
193197
if err != nil {
194198
return nil, err
195199
}
@@ -292,7 +296,11 @@ func (h handlers) QueryDenomsFromCreator(ctx context.Context, req *types.QueryDe
292296
denoms := []string{}
293297

294298
err := h.Keeper.denomAuthority.Walk(ctx, nil, func(denom string, authority types.DenomAuthorityMetadata) (stop bool, err error) {
295-
resp, err := h.accountsKeeper.Query(ctx, authority.Admin, &adminv1.QueryOwner{})
299+
adminAccAddr, err := h.addressCodec.StringToBytes(authority.Admin)
300+
if err != nil {
301+
return true, err
302+
}
303+
resp, err := h.accountsKeeper.Query(ctx, adminAccAddr, &adminv1.QueryOwner{})
296304
if err != nil {
297305
return true, err
298306
}

x/bank/v2/keeper/keeper_test.go

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,14 @@ import (
1414
coretesting "cosmossdk.io/core/testing"
1515
"cosmossdk.io/math"
1616
storetypes "cosmossdk.io/store/types"
17+
accountskeeper "cosmossdk.io/x/accounts"
18+
"cosmossdk.io/x/accounts/accountstd"
19+
"cosmossdk.io/x/accounts/defaults/admin"
20+
adminv1 "cosmossdk.io/x/accounts/defaults/admin/v1"
1721
"cosmossdk.io/x/bank/v2/keeper"
1822
banktestutil "cosmossdk.io/x/bank/v2/testutil"
1923
"cosmossdk.io/x/bank/v2/types"
2024

21-
accountskeeper "cosmossdk.io/x/accounts"
22-
"cosmossdk.io/x/accounts/accountstd"
23-
"cosmossdk.io/x/accounts/defaults/admin"
2425
"github.com/cosmos/cosmos-sdk/codec"
2526
codectestutil "github.com/cosmos/cosmos-sdk/codec/testutil"
2627
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
@@ -29,7 +30,6 @@ import (
2930
sdk "github.com/cosmos/cosmos-sdk/types"
3031
moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil"
3132
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
32-
adminv1 "cosmossdk.io/x/accounts/defaults/admin/v1"
3333
)
3434

3535
const (
@@ -339,7 +339,10 @@ func (s *KeeperTestSuite) TestCreateDenom() {
339339

340340
accountsKeeper := s.bankKeeper.GetAccountsKeeper()
341341

342-
resp, err := accountsKeeper.Query(s.ctx, authority.Admin, &adminv1.QueryOwner{})
342+
adminAccAddr, err := s.addressCodec.StringToBytes(authority.Admin)
343+
require.NoError(err)
344+
345+
resp, err := accountsKeeper.Query(s.ctx, adminAccAddr, &adminv1.QueryOwner{})
343346
require.NoError(err)
344347
v1Resp, ok := resp.(*adminv1.QueryOwnerResponse)
345348
require.True(ok)
@@ -465,7 +468,7 @@ func (s *KeeperTestSuite) TestMintHandler() {
465468
ToAddress: accAddrs[1].String(),
466469
Amount: sdk.NewCoin(barDenom, math.NewInt(100)),
467470
},
468-
expErr: false,
471+
expErr: false,
469472
adminDisable: false,
470473
},
471474
{
@@ -475,7 +478,7 @@ func (s *KeeperTestSuite) TestMintHandler() {
475478
ToAddress: accAddrs[1].String(),
476479
Amount: sdk.NewCoin(barDenom, math.NewInt(100)),
477480
},
478-
expErr: true,
481+
expErr: true,
479482
adminDisable: false,
480483
},
481484
{
@@ -485,7 +488,7 @@ func (s *KeeperTestSuite) TestMintHandler() {
485488
ToAddress: accAddrs[1].String(),
486489
Amount: sdk.NewCoin(newDenom, math.NewInt(100)),
487490
},
488-
expErr: false,
491+
expErr: false,
489492
adminDisable: false,
490493
},
491494
{
@@ -495,7 +498,7 @@ func (s *KeeperTestSuite) TestMintHandler() {
495498
ToAddress: accAddrs[1].String(),
496499
Amount: sdk.NewCoin(newDenom, math.NewInt(100)),
497500
},
498-
expErr: true,
501+
expErr: true,
499502
adminDisable: false,
500503
},
501504
{
@@ -505,7 +508,7 @@ func (s *KeeperTestSuite) TestMintHandler() {
505508
ToAddress: accAddrs[1].String(),
506509
Amount: sdk.NewCoin(newDenom, math.NewInt(100)),
507510
},
508-
expErr: false,
511+
expErr: false,
509512
adminDisable: true,
510513
},
511514
{
@@ -515,7 +518,7 @@ func (s *KeeperTestSuite) TestMintHandler() {
515518
ToAddress: accAddrs[1].String(),
516519
Amount: sdk.NewCoin(newDenom, math.NewInt(100)),
517520
},
518-
expErr: true,
521+
expErr: true,
519522
adminDisable: true,
520523
},
521524
{
@@ -525,12 +528,11 @@ func (s *KeeperTestSuite) TestMintHandler() {
525528
ToAddress: accAddrs[1].String(),
526529
Amount: sdk.NewCoin(newDenom+"s", math.NewInt(100)),
527530
},
528-
expErr: true,
531+
expErr: true,
529532
adminDisable: true,
530533
},
531534
} {
532535
s.Run(fmt.Sprintf("Case %s", tc.desc), func() {
533-
534536
require.NoError(handler.Keeper.SetParams(s.ctx, types.NewParams(sdk.NewCoins(), 0, tc.adminDisable)))
535537
toAddr, err := s.addressCodec.StringToBytes(tc.msg.ToAddress)
536538
require.NoError(err)
@@ -575,10 +577,10 @@ func (s *KeeperTestSuite) TestBurnHandler() {
575577
require.NoError(err)
576578

577579
for _, tc := range []struct {
578-
desc string
579-
msg *types.MsgBurn
580+
desc string
581+
msg *types.MsgBurn
580582
adminDisable bool
581-
expErr bool
583+
expErr bool
582584
}{
583585
{
584586
desc: "Burn foo denom, valid",
@@ -588,7 +590,7 @@ func (s *KeeperTestSuite) TestBurnHandler() {
588590
Amount: sdk.NewCoin(fooDenom, math.NewInt(50)),
589591
},
590592
adminDisable: false,
591-
expErr: false,
593+
expErr: false,
592594
},
593595
{
594596
desc: "Burn foo denom, invalid authority",
@@ -598,7 +600,7 @@ func (s *KeeperTestSuite) TestBurnHandler() {
598600
Amount: sdk.NewCoin(fooDenom, math.NewInt(50)),
599601
},
600602
adminDisable: false,
601-
expErr: true,
603+
expErr: true,
602604
},
603605
{
604606
desc: "Burn foo denom, insufficient funds",
@@ -608,7 +610,7 @@ func (s *KeeperTestSuite) TestBurnHandler() {
608610
Amount: sdk.NewCoin(fooDenom, math.NewInt(200)),
609611
},
610612
adminDisable: false,
611-
expErr: true,
613+
expErr: true,
612614
},
613615
{
614616
desc: "Burn bar denom, invalid denom",
@@ -618,7 +620,7 @@ func (s *KeeperTestSuite) TestBurnHandler() {
618620
Amount: sdk.NewCoin(barDenom, math.NewInt(50)),
619621
},
620622
adminDisable: false,
621-
expErr: true,
623+
expErr: true,
622624
},
623625
{
624626
desc: "Burn tokenfactory denom, admin enable, valid",
@@ -628,7 +630,7 @@ func (s *KeeperTestSuite) TestBurnHandler() {
628630
Amount: sdk.NewCoin(newDenom, math.NewInt(50)),
629631
},
630632
adminDisable: false,
631-
expErr: false,
633+
expErr: false,
632634
},
633635
{
634636
desc: "Burn tokenfactory denom, admin enable, invalid admin",
@@ -638,7 +640,7 @@ func (s *KeeperTestSuite) TestBurnHandler() {
638640
Amount: sdk.NewCoin(newDenom, math.NewInt(50)),
639641
},
640642
adminDisable: false,
641-
expErr: true,
643+
expErr: true,
642644
},
643645
{
644646
desc: "Burn tokenfactory denom, admin disable, valid authority",
@@ -648,7 +650,7 @@ func (s *KeeperTestSuite) TestBurnHandler() {
648650
Amount: sdk.NewCoin(newDenom, math.NewInt(50)),
649651
},
650652
adminDisable: true,
651-
expErr: false,
653+
expErr: false,
652654
},
653655
{
654656
desc: "Burn tokenfactory denom, admin disable, invalid authority",
@@ -658,7 +660,7 @@ func (s *KeeperTestSuite) TestBurnHandler() {
658660
Amount: sdk.NewCoin(newDenom, math.NewInt(50)),
659661
},
660662
adminDisable: true,
661-
expErr: true,
663+
expErr: true,
662664
},
663665
{
664666
desc: "Burn tokenfactory denom, insufficient funds",
@@ -668,7 +670,7 @@ func (s *KeeperTestSuite) TestBurnHandler() {
668670
Amount: sdk.NewCoin(newDenom, math.NewInt(150)),
669671
},
670672
adminDisable: false,
671-
expErr: true,
673+
expErr: true,
672674
},
673675
{
674676
desc: "Burn tokenfactory denom, token not exist",
@@ -678,7 +680,7 @@ func (s *KeeperTestSuite) TestBurnHandler() {
678680
Amount: sdk.NewCoin(newDenom+"s", math.NewInt(50)),
679681
},
680682
adminDisable: false,
681-
expErr: true,
683+
expErr: true,
682684
},
683685
} {
684686
s.Run(fmt.Sprintf("Case %s", tc.desc), func() {

x/bank/v2/types/authorityMetadata.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
package types
22

33
import (
4-
"bytes"
54
"errors"
65
)
76

87
func (metadata DenomAuthorityMetadata) Validate() error {
9-
if bytes.Equal(metadata.Admin, []byte{}) {
8+
if metadata.Admin == "" {
109
return errors.New("empty admin")
1110
}
1211
return nil

0 commit comments

Comments
 (0)