Skip to content

Commit acba076

Browse files
authored
Merge pull request #5 from bianjieai/sheldon/v1.6.2
modify nft tokenId validation rules
2 parents 651b50b + 6519b89 commit acba076

File tree

9 files changed

+28
-118
lines changed

9 files changed

+28
-118
lines changed

go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ go 1.17
44

55
require (
66
github.com/cosmos/cosmos-sdk v0.45.1
7-
github.com/cosmos/ibc-go v1.1.0
87
github.com/gogo/protobuf v1.3.3
98
github.com/golang/protobuf v1.5.2
109
github.com/gorilla/mux v1.8.0

go.sum

Lines changed: 0 additions & 33 deletions
Large diffs are not rendered by default.

modules/farm/client/cli/query.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ func GetCmdQueryFarmPools() *cobra.Command {
3838
Example: fmt.Sprintf("$ %s query farm pools", version.AppName),
3939
Short: "Query farm pools by page",
4040
RunE: func(cmd *cobra.Command, args []string) error {
41-
clientCtx, err := client.GetClientTxContext(cmd)
41+
clientCtx, err := client.GetClientQueryContext(cmd)
4242
if err != nil {
4343
return err
4444
}
@@ -71,7 +71,7 @@ func GetCmdQueryFarmPool() *cobra.Command {
7171
Short: "Query a farm pool",
7272
Args: cobra.ExactArgs(1),
7373
RunE: func(cmd *cobra.Command, args []string) error {
74-
clientCtx, err := client.GetClientTxContext(cmd)
74+
clientCtx, err := client.GetClientQueryContext(cmd)
7575
if err != nil {
7676
return err
7777
}
@@ -98,7 +98,7 @@ func GetCmdQueryFarmer() *cobra.Command {
9898
Short: "Query farmer reward",
9999
Args: cobra.ExactArgs(1),
100100
RunE: func(cmd *cobra.Command, args []string) error {
101-
clientCtx, err := client.GetClientTxContext(cmd)
101+
clientCtx, err := client.GetClientQueryContext(cmd)
102102
if err != nil {
103103
return err
104104
}

modules/mt/client/cli/query.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func GetCmdQueryDenoms() *cobra.Command {
3939
Long: "Query all denoms.",
4040
Example: fmt.Sprintf("$ %s query mt denoms", version.AppName),
4141
RunE: func(cmd *cobra.Command, args []string) error {
42-
clientCtx, err := client.GetClientTxContext(cmd)
42+
clientCtx, err := client.GetClientQueryContext(cmd)
4343
if err != nil {
4444
return err
4545
}
@@ -69,7 +69,7 @@ func GetCmdQueryDenom() *cobra.Command {
6969
Example: fmt.Sprintf("$ %s query mt denom <denom-id>", version.AppName),
7070
Args: cobra.ExactArgs(1),
7171
RunE: func(cmd *cobra.Command, args []string) error {
72-
clientCtx, err := client.GetClientTxContext(cmd)
72+
clientCtx, err := client.GetClientQueryContext(cmd)
7373
if err != nil {
7474
return err
7575
}
@@ -98,7 +98,7 @@ func GetCmdQueryMTSupply() *cobra.Command {
9898
Example: fmt.Sprintf("$ %s query mt supply <denom-id> <mt-id>", version.AppName),
9999
Args: cobra.ExactArgs(2),
100100
RunE: func(cmd *cobra.Command, args []string) error {
101-
clientCtx, err := client.GetClientTxContext(cmd)
101+
clientCtx, err := client.GetClientQueryContext(cmd)
102102
if err != nil {
103103
return err
104104
}
@@ -127,7 +127,7 @@ func GetCmdQueryMTs() *cobra.Command {
127127
Example: fmt.Sprintf("$ %s query mt tokens <denom-id>", version.AppName),
128128
Args: cobra.ExactArgs(1),
129129
RunE: func(cmd *cobra.Command, args []string) error {
130-
clientCtx, err := client.GetClientTxContext(cmd)
130+
clientCtx, err := client.GetClientQueryContext(cmd)
131131
if err != nil {
132132
return err
133133
}
@@ -162,7 +162,7 @@ func GetCmdQueryMT() *cobra.Command {
162162
Example: fmt.Sprintf("$ %s query mt token <denom-id> <mt-id>", version.AppName),
163163
Args: cobra.ExactArgs(2),
164164
RunE: func(cmd *cobra.Command, args []string) error {
165-
clientCtx, err := client.GetClientTxContext(cmd)
165+
clientCtx, err := client.GetClientQueryContext(cmd)
166166
if err != nil {
167167
return err
168168
}
@@ -191,7 +191,7 @@ func GetCmdQueryBalances() *cobra.Command {
191191
Example: fmt.Sprintf("$ %s query mt balances <owner> <denom-id>", version.AppName),
192192
Args: cobra.ExactArgs(2),
193193
RunE: func(cmd *cobra.Command, args []string) error {
194-
clientCtx, err := client.GetClientTxContext(cmd)
194+
clientCtx, err := client.GetClientQueryContext(cmd)
195195
if err != nil {
196196
return err
197197
}

modules/nft/client/cli/query.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ func GetCmdQuerySupply() *cobra.Command {
4242
Example: fmt.Sprintf("$ %s query nft supply <denom-id>", version.AppName),
4343
Args: cobra.ExactArgs(1),
4444
RunE: func(cmd *cobra.Command, args []string) error {
45-
clientCtx, err := client.GetClientTxContext(cmd)
45+
clientCtx, err := client.GetClientQueryContext(cmd)
4646
if err != nil {
4747
return err
4848
}
@@ -85,7 +85,7 @@ func GetCmdQueryOwner() *cobra.Command {
8585
Example: fmt.Sprintf("$ %s query nft owner <address> --denom-id=<denom-id>", version.AppName),
8686
Args: cobra.ExactArgs(1),
8787
RunE: func(cmd *cobra.Command, args []string) error {
88-
clientCtx, err := client.GetClientTxContext(cmd)
88+
clientCtx, err := client.GetClientQueryContext(cmd)
8989
if err != nil {
9090
return err
9191
}
@@ -128,7 +128,7 @@ func GetCmdQueryCollection() *cobra.Command {
128128
Example: fmt.Sprintf("$ %s query nft collection <denom-id>", version.AppName),
129129
Args: cobra.ExactArgs(1),
130130
RunE: func(cmd *cobra.Command, args []string) error {
131-
clientCtx, err := client.GetClientTxContext(cmd)
131+
clientCtx, err := client.GetClientQueryContext(cmd)
132132
if err != nil {
133133
return err
134134
}
@@ -164,7 +164,7 @@ func GetCmdQueryDenoms() *cobra.Command {
164164
Long: "Query all denominations of all collections of NFTs.",
165165
Example: fmt.Sprintf("$ %s query nft denoms", version.AppName),
166166
RunE: func(cmd *cobra.Command, args []string) error {
167-
clientCtx, err := client.GetClientTxContext(cmd)
167+
clientCtx, err := client.GetClientQueryContext(cmd)
168168
if err != nil {
169169
return err
170170
}
@@ -194,7 +194,7 @@ func GetCmdQueryDenom() *cobra.Command {
194194
Example: fmt.Sprintf("$ %s query nft denom <denom-id>", version.AppName),
195195
Args: cobra.ExactArgs(1),
196196
RunE: func(cmd *cobra.Command, args []string) error {
197-
clientCtx, err := client.GetClientTxContext(cmd)
197+
clientCtx, err := client.GetClientQueryContext(cmd)
198198
if err != nil {
199199
return err
200200
}
@@ -223,7 +223,7 @@ func GetCmdQueryNFT() *cobra.Command {
223223
Example: fmt.Sprintf("$ %s query nft token <denom-id> <nft-id>", version.AppName),
224224
Args: cobra.ExactArgs(2),
225225
RunE: func(cmd *cobra.Command, args []string) error {
226-
clientCtx, err := client.GetClientTxContext(cmd)
226+
clientCtx, err := client.GetClientQueryContext(cmd)
227227
if err != nil {
228228
return err
229229
}

modules/nft/types/genesis.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ func NewGenesisState(collections []Collection) *GenesisState {
1515
// error for any failed validation criteria.
1616
func ValidateGenesis(data GenesisState) error {
1717
for _, c := range data.Collections {
18-
if err := ValidateDenomID(c.Denom.Name); err != nil {
18+
if err := ValidateDenomID(c.Denom.Id); err != nil {
1919
return err
2020
}
2121

modules/nft/types/validation.go

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,16 @@ var (
2929
// IsBeginWithAlpha only begin with [a-z]
3030
IsBeginWithAlpha = regexp.MustCompile(`^[a-z].*`).MatchString
3131

32+
tokenIdString = `[a-z0-9]{1,128}`
33+
regexpTokenID = regexp.MustCompile(fmt.Sprintf(`^%s$`, tokenIdString)).MatchString
34+
3235
keywords = strings.Join([]string{ReservedPeg, ReservedIBC, ReservedHTLT, ReservedTIBC}, "|")
3336
regexpKeywordsFmt = fmt.Sprintf("^(%s).*", keywords)
3437
regexpKeyword = regexp.MustCompile(regexpKeywordsFmt).MatchString
3538
)
3639

3740
// ValidateDenomID verifies whether the parameters are legal
3841
func ValidateDenomID(denomID string) error {
39-
if len(denomID) < MinDenomLen || len(denomID) > MaxDenomLen {
40-
return sdkerrors.Wrapf(ErrInvalidDenom, "the length of denom(%s) only accepts value [%d, %d]", denomID, MinDenomLen, MaxDenomLen)
41-
}
4242
boolPrifix := strings.HasPrefix(denomID, "tibc-")
4343
if !IsBeginWithAlpha(denomID) || !IsAlphaNumeric(denomID) && !boolPrifix {
4444
return sdkerrors.Wrapf(ErrInvalidDenom, "the denom(%s) only accepts alphanumeric characters, and begin with an english letter", denomID)
@@ -48,11 +48,8 @@ func ValidateDenomID(denomID string) error {
4848

4949
// ValidateTokenID verify that the tokenID is legal
5050
func ValidateTokenID(tokenID string) error {
51-
if len(tokenID) < MinDenomLen || len(tokenID) > MaxDenomLen {
52-
return sdkerrors.Wrapf(ErrInvalidTokenID, "the length of nft id(%s) only accepts value [%d, %d]", tokenID, MinDenomLen, MaxDenomLen)
53-
}
54-
if !IsBeginWithAlpha(tokenID) || !IsAlphaNumeric(tokenID) {
55-
return sdkerrors.Wrapf(ErrInvalidTokenID, "nft id(%s) only accepts alphanumeric characters, and begin with an english letter", tokenID)
51+
if !regexpTokenID(tokenID) {
52+
return sdkerrors.Wrapf(ErrInvalidTokenID, "tokenID can only accept characters that match the regular expression: (%s),but got (%s)", tokenIdString, tokenID)
5653
}
5754
return nil
5855
}

modules/record/client/cli/query.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ func GetCmdQueryRecord() *cobra.Command {
3737
Short: "Query a record",
3838
Args: cobra.ExactArgs(1),
3939
RunE: func(cmd *cobra.Command, args []string) error {
40-
clientCtx, err := client.GetClientTxContext(cmd)
40+
clientCtx, err := client.GetClientQueryContext(cmd)
4141
if err != nil {
4242
return err
4343
}

simapp/app.go

Lines changed: 6 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import (
1616
tmos "github.com/tendermint/tendermint/libs/os"
1717
dbm "github.com/tendermint/tm-db"
1818

19-
vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types"
2019
"github.com/cosmos/cosmos-sdk/baseapp"
2120
"github.com/cosmos/cosmos-sdk/client"
2221
"github.com/cosmos/cosmos-sdk/client/grpc/tmservice"
@@ -40,6 +39,7 @@ import (
4039
authtx "github.com/cosmos/cosmos-sdk/x/auth/tx"
4140
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
4241
"github.com/cosmos/cosmos-sdk/x/auth/vesting"
42+
vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types"
4343
"github.com/cosmos/cosmos-sdk/x/bank"
4444
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
4545
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
@@ -82,14 +82,6 @@ import (
8282
upgradeclient "github.com/cosmos/cosmos-sdk/x/upgrade/client"
8383
upgradekeeper "github.com/cosmos/cosmos-sdk/x/upgrade/keeper"
8484
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
85-
transfer "github.com/cosmos/ibc-go/modules/apps/transfer"
86-
ibctransferkeeper "github.com/cosmos/ibc-go/modules/apps/transfer/keeper"
87-
ibctransfertypes "github.com/cosmos/ibc-go/modules/apps/transfer/types"
88-
ibc "github.com/cosmos/ibc-go/modules/core"
89-
porttypes "github.com/cosmos/ibc-go/modules/core/05-port/types"
90-
ibchost "github.com/cosmos/ibc-go/modules/core/24-host"
91-
ibckeeper "github.com/cosmos/ibc-go/modules/core/keeper"
92-
ibcmock "github.com/cosmos/ibc-go/testing/mock"
9385

9486
"github.com/irisnet/irismod/modules/coinswap"
9587
coinswapkeeper "github.com/irisnet/irismod/modules/coinswap/keeper"
@@ -150,10 +142,8 @@ var (
150142
crisis.AppModuleBasic{},
151143
slashing.AppModuleBasic{},
152144
feegrantmodule.AppModuleBasic{},
153-
ibc.AppModuleBasic{},
154145
upgrade.AppModuleBasic{},
155146
evidence.AppModuleBasic{},
156-
transfer.AppModuleBasic{},
157147
vesting.AppModuleBasic{},
158148

159149
token.AppModuleBasic{},
@@ -175,7 +165,6 @@ var (
175165
stakingtypes.BondedPoolName: {authtypes.Burner, authtypes.Staking},
176166
stakingtypes.NotBondedPoolName: {authtypes.Burner, authtypes.Staking},
177167
govtypes.ModuleName: {authtypes.Burner},
178-
ibctransfertypes.ModuleName: {authtypes.Minter, authtypes.Burner},
179168
tokentypes.ModuleName: {authtypes.Minter, authtypes.Burner},
180169
htlctypes.ModuleName: {authtypes.Minter, authtypes.Burner},
181170
coinswaptypes.ModuleName: {authtypes.Minter, authtypes.Burner},
@@ -221,9 +210,7 @@ type SimApp struct {
221210
CrisisKeeper crisiskeeper.Keeper
222211
UpgradeKeeper upgradekeeper.Keeper
223212
ParamsKeeper paramskeeper.Keeper
224-
IBCKeeper *ibckeeper.Keeper // IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly
225213
EvidenceKeeper evidencekeeper.Keeper
226-
TransferKeeper ibctransferkeeper.Keeper
227214
FeeGrantKeeper feegrantkeeper.Keeper
228215

229216
// make scoped keepers public for test purposes
@@ -280,9 +267,9 @@ func NewSimApp(
280267
keys := sdk.NewKVStoreKeys(
281268
authtypes.StoreKey, banktypes.StoreKey, stakingtypes.StoreKey,
282269
minttypes.StoreKey, distrtypes.StoreKey, slashingtypes.StoreKey,
283-
govtypes.StoreKey, paramstypes.StoreKey, ibchost.StoreKey,
270+
govtypes.StoreKey, paramstypes.StoreKey,
284271
upgradetypes.StoreKey, feegrant.StoreKey, evidencetypes.StoreKey,
285-
ibctransfertypes.StoreKey, capabilitytypes.StoreKey, tokentypes.StoreKey,
272+
capabilitytypes.StoreKey, tokentypes.StoreKey,
286273
nfttypes.StoreKey, htlctypes.StoreKey, recordtypes.StoreKey,
287274
coinswaptypes.StoreKey, servicetypes.StoreKey, oracletypes.StoreKey,
288275
randomtypes.StoreKey, farmtypes.StoreKey,
@@ -308,11 +295,6 @@ func NewSimApp(
308295

309296
// add capability keeper and ScopeToModule for ibc module
310297
app.CapabilityKeeper = capabilitykeeper.NewKeeper(appCodec, keys[capabilitytypes.StoreKey], memKeys[capabilitytypes.MemStoreKey])
311-
scopedIBCKeeper := app.CapabilityKeeper.ScopeToModule(ibchost.ModuleName)
312-
scopedTransferKeeper := app.CapabilityKeeper.ScopeToModule(ibctransfertypes.ModuleName)
313-
// NOTE: the IBC mock keeper and application module is used only for testing core IBC. Do
314-
// note replicate if you do not need to test core IBC or light clients.
315-
scopedIBCMockKeeper := app.CapabilityKeeper.ScopeToModule(ibcmock.ModuleName)
316298

317299
// add keepers
318300
app.AccountKeeper = authkeeper.NewAccountKeeper(
@@ -347,29 +329,6 @@ func NewSimApp(
347329
stakingtypes.NewMultiStakingHooks(app.DistrKeeper.Hooks(), app.SlashingKeeper.Hooks()),
348330
)
349331

350-
// Create IBC Keeper
351-
app.IBCKeeper = ibckeeper.NewKeeper(
352-
appCodec, keys[ibchost.StoreKey], app.GetSubspace(ibchost.ModuleName), app.StakingKeeper, app.UpgradeKeeper, scopedIBCKeeper,
353-
)
354-
355-
// Create Transfer Keepers
356-
app.TransferKeeper = ibctransferkeeper.NewKeeper(
357-
appCodec, keys[ibctransfertypes.StoreKey], app.GetSubspace(ibctransfertypes.ModuleName),
358-
app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper,
359-
app.AccountKeeper, app.BankKeeper, scopedTransferKeeper,
360-
)
361-
transferModule := transfer.NewAppModule(app.TransferKeeper)
362-
363-
// NOTE: the IBC mock keeper and application module is used only for testing core IBC. Do
364-
// note replicate if you do not need to test core IBC or light clients.
365-
mockModule := ibcmock.NewAppModule(scopedIBCMockKeeper, &app.IBCKeeper.PortKeeper)
366-
367-
// Create static IBC router, add transfer route, then set and seal it
368-
ibcRouter := porttypes.NewRouter()
369-
ibcRouter.AddRoute(ibctransfertypes.ModuleName, transferModule)
370-
ibcRouter.AddRoute(ibcmock.ModuleName, mockModule)
371-
app.IBCKeeper.SetRouter(ibcRouter)
372-
373332
// create evidence keeper with router
374333
evidenceKeeper := evidencekeeper.NewKeeper(
375334
appCodec, keys[evidencetypes.StoreKey], &app.StakingKeeper, app.SlashingKeeper,
@@ -478,9 +437,7 @@ func NewSimApp(
478437
staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper),
479438
upgrade.NewAppModule(app.UpgradeKeeper),
480439
evidence.NewAppModule(app.EvidenceKeeper),
481-
ibc.NewAppModule(app.IBCKeeper),
482440
params.NewAppModule(app.ParamsKeeper),
483-
transferModule,
484441
token.NewAppModule(appCodec, app.TokenKeeper, app.AccountKeeper, app.BankKeeper),
485442
record.NewAppModule(appCodec, app.RecordKeeper, app.AccountKeeper, app.BankKeeper),
486443
nft.NewAppModule(appCodec, app.NFTKeeper, app.AccountKeeper, app.BankKeeper),
@@ -502,7 +459,7 @@ func NewSimApp(
502459
govtypes.ModuleName, minttypes.ModuleName, crisistypes.ModuleName,
503460
genutiltypes.ModuleName, evidencetypes.ModuleName, feegrant.ModuleName,
504461
paramstypes.ModuleName, upgradetypes.ModuleName, vestingtypes.ModuleName,
505-
ibchost.ModuleName, ibctransfertypes.ModuleName, tokentypes.ModuleName,
462+
tokentypes.ModuleName,
506463
nfttypes.ModuleName, htlctypes.ModuleName, recordtypes.ModuleName,
507464
coinswaptypes.ModuleName, servicetypes.ModuleName, oracletypes.ModuleName,
508465
randomtypes.ModuleName, farmtypes.ModuleName, feegrant.ModuleName,
@@ -513,7 +470,7 @@ func NewSimApp(
513470
govtypes.ModuleName, minttypes.ModuleName, crisistypes.ModuleName,
514471
genutiltypes.ModuleName, evidencetypes.ModuleName, feegrant.ModuleName,
515472
paramstypes.ModuleName, upgradetypes.ModuleName, vestingtypes.ModuleName,
516-
ibchost.ModuleName, ibctransfertypes.ModuleName, tokentypes.ModuleName,
473+
tokentypes.ModuleName,
517474
nfttypes.ModuleName, htlctypes.ModuleName, recordtypes.ModuleName,
518475
coinswaptypes.ModuleName, servicetypes.ModuleName, oracletypes.ModuleName,
519476
randomtypes.ModuleName, farmtypes.ModuleName, feegrant.ModuleName,
@@ -530,7 +487,7 @@ func NewSimApp(
530487
govtypes.ModuleName, minttypes.ModuleName, crisistypes.ModuleName,
531488
genutiltypes.ModuleName, evidencetypes.ModuleName, feegrant.ModuleName,
532489
paramstypes.ModuleName, upgradetypes.ModuleName, vestingtypes.ModuleName,
533-
ibchost.ModuleName, ibctransfertypes.ModuleName, tokentypes.ModuleName,
490+
tokentypes.ModuleName,
534491
nfttypes.ModuleName, htlctypes.ModuleName, recordtypes.ModuleName,
535492
coinswaptypes.ModuleName, servicetypes.ModuleName, oracletypes.ModuleName,
536493
randomtypes.ModuleName, farmtypes.ModuleName, feegrant.ModuleName,
@@ -597,14 +554,6 @@ func NewSimApp(
597554
tmos.Exit(err.Error())
598555
}
599556
}
600-
601-
app.ScopedIBCKeeper = scopedIBCKeeper
602-
app.ScopedTransferKeeper = scopedTransferKeeper
603-
604-
// NOTE: the IBC mock keeper and application module is used only for testing core IBC. Do
605-
// note replicate if you do not need to test core IBC or light clients.
606-
app.ScopedIBCMockKeeper = scopedIBCMockKeeper
607-
608557
return app
609558
}
610559

@@ -779,8 +728,6 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino
779728
paramsKeeper.Subspace(htlctypes.ModuleName)
780729
paramsKeeper.Subspace(coinswaptypes.ModuleName)
781730
paramsKeeper.Subspace(servicetypes.ModuleName)
782-
paramsKeeper.Subspace(ibctransfertypes.ModuleName)
783-
paramsKeeper.Subspace(ibchost.ModuleName)
784731
paramsKeeper.Subspace(farmtypes.ModuleName)
785732

786733
return paramsKeeper

0 commit comments

Comments
 (0)