diff --git a/.golangci.yml b/.golangci.yml index a5442d8097..e2c3a5c6bf 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -95,6 +95,6 @@ linters-settings: - name: time-naming - name: unexported-return - name: unreachable-code - - name: unused-parameter + # - name: unused-parameter - name: var-declaration - name: var-naming diff --git a/.revive.toml b/.revive.toml index 9e28bbaa97..0b071d03e8 100644 --- a/.revive.toml +++ b/.revive.toml @@ -29,7 +29,7 @@ confidence = 0 [rule.time-naming] [rule.unexported-return] [rule.unreachable-code] -[rule.unused-parameter] +#[rule.unused-parameter] [rule.var-declaration] [rule.var-naming] diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c20c37e6e..d8ce58761d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -52,6 +52,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Improvements +- [2328](https://github.com/umee-network/umee/pull/2328) Add UX and `uux` denom aliases for UMEE. - [2388](https://github.com/umee-network/umee/pull/2388) Adjust interest rate algorithm and associated token parameter validation rules. ### Bug Fixes diff --git a/app/modules.go b/app/modules.go index 71dc2eef5a..861a20b1f8 100644 --- a/app/modules.go +++ b/app/modules.go @@ -33,28 +33,7 @@ type BankModule struct { // DefaultGenesis returns custom Umee x/bank module genesis state. func (BankModule) DefaultGenesis(cdc codec.JSONCodec) json.RawMessage { - umeeMetadata := banktypes.Metadata{ - Description: "The native staking token of the Umee network.", - Base: appparams.BondDenom, - Name: appparams.DisplayDenom, - Display: appparams.DisplayDenom, - Symbol: appparams.DisplayDenom, - DenomUnits: []*banktypes.DenomUnit{ - { - Denom: appparams.BondDenom, - Exponent: 0, - Aliases: []string{ - "microumee", - }, - }, - { - Denom: appparams.DisplayDenom, - Exponent: 6, - Aliases: []string{}, - }, - }, - } - + umeeMetadata := appparams.UmeeTokenMetadata() genState := banktypes.DefaultGenesisState() genState.DenomMetadata = append(genState.DenomMetadata, umeeMetadata) diff --git a/app/params/app_settings.go b/app/params/app_settings.go index 22787ac353..530f82c253 100644 --- a/app/params/app_settings.go +++ b/app/params/app_settings.go @@ -4,6 +4,7 @@ import ( "log" sdk "github.com/cosmos/cosmos-sdk/types" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" ) const ( @@ -11,10 +12,14 @@ const ( Name = "umee" // BondDenom defines the native staking token denomination. - BondDenom = "uumee" + // NOTE: it is used by IBC, and must not change to avoid token migration in all IBC chains. + BondDenom = "uumee" + BaseExtraDenom = "uux" // DisplayDenom defines the name, symbol, and display value of the umee token. - DisplayDenom = "UMEE" + DisplayDenom = "UX" + // Old display name. We renamed UMEE to UX. + LegacyDisplayDenom = "UMEE" // DefaultGasLimit - set to the same value as cosmos-sdk flags.DefaultGasLimit // this value is currently only used in tests. @@ -36,4 +41,33 @@ func init() { if AccountAddressPrefix != Name { log.Fatal("AccountAddresPrefix must equal Name") } + + sdk.SetCoinDenomRegex(func() string { + // allow "ux" token. Modify the default regexp to allow 2 character long denoms. + return `[a-zA-Z][a-zA-Z0-9/:._-]{1,127}` + }) +} + +// UmeeTokenMetadata creates bank Metadata for the UX token +func UmeeTokenMetadata() banktypes.Metadata { + return banktypes.Metadata{ + Description: "The native staking token of the Umee network.", + Base: BondDenom, // NOTE: must not change + Name: DisplayDenom, + Display: DisplayDenom, + Symbol: LegacyDisplayDenom, + DenomUnits: []*banktypes.DenomUnit{ + { + Denom: BondDenom, + Exponent: 0, + Aliases: []string{ + "microumee", BaseExtraDenom, + }, + }, { + Denom: DisplayDenom, + Exponent: 6, + Aliases: []string{LegacyDisplayDenom}, + }, + }, + } } diff --git a/app/params/app_settings_test.go b/app/params/app_settings_test.go new file mode 100644 index 0000000000..a2af99bdfb --- /dev/null +++ b/app/params/app_settings_test.go @@ -0,0 +1,17 @@ +package params + +import ( + "testing" + + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/stretchr/testify/assert" +) + +func TestDenoms(t *testing.T) { + assert := assert.New(t) + + assert.NoError(sdk.ValidateDenom(BondDenom)) + assert.NoError(sdk.ValidateDenom(BaseExtraDenom)) + assert.NoError(sdk.ValidateDenom(DisplayDenom)) + assert.NoError(sdk.ValidateDenom(LegacyDisplayDenom)) +} diff --git a/app/params/prefix.go b/app/params/prefix.go index db75fd93e6..cbb9145f70 100644 --- a/app/params/prefix.go +++ b/app/params/prefix.go @@ -5,6 +5,7 @@ import ( ) // AccountAddressPrefix defines the Umee network's Bech32 address prefix. +// NOTE: this must not be changed. const AccountAddressPrefix = "umee" // Account specific Bech32 prefixes. diff --git a/app/test_helpers.go b/app/test_helpers.go index 7647e3242e..05cc83a0ab 100644 --- a/app/test_helpers.go +++ b/app/test_helpers.go @@ -249,8 +249,9 @@ func IntegrationTestNetworkConfig() network.Config { if err := cdc.UnmarshalJSON(appGenState[leveragetypes.ModuleName], &leverageGenState); err != nil { panic(err) } + um := params.UmeeTokenMetadata() leverageGenState.Registry = []leveragetypes.Token{ - fixtures.Token(params.BondDenom, params.DisplayDenom, 6), + fixtures.Token(um.Base, um.Symbol, 6), } bz, err := cdc.MarshalJSON(&leverageGenState) @@ -269,12 +270,12 @@ func IntegrationTestNetworkConfig() network.Config { // are not running a price-feeder. oracleGenState.Params.VotePeriod = 1000 oracleGenState.ExchangeRates = append(oracleGenState.ExchangeRates, oracletypes.NewDenomExchangeRate( - params.DisplayDenom, sdk.MustNewDecFromStr("34.21"), time.Now())) + params.LegacyDisplayDenom, sdk.MustNewDecFromStr("34.21"), time.Now())) // Set mock historic medians to satisfy leverage module's 24 median requirement for i := 1; i <= 24; i++ { median := oracletypes.Price{ ExchangeRateTuple: oracletypes.NewExchangeRateTuple( - params.DisplayDenom, + params.LegacyDisplayDenom, sdk.MustNewDecFromStr("34.21"), ), BlockNum: uint64(i), diff --git a/app/upgrades.go b/app/upgrades.go index d5a057679c..0ada73f083 100644 --- a/app/upgrades.go +++ b/app/upgrades.go @@ -18,6 +18,7 @@ import ( stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" + appparams "github.com/umee-network/umee/v6/app/params" "github.com/umee-network/umee/v6/util" leveragetypes "github.com/umee-network/umee/v6/x/leverage/types" ) @@ -47,6 +48,7 @@ func (app UmeeApp) RegisterUpgradeHandlers() { app.registerOutdatedPlaceholderUpgrade("v6.1") app.registerOutdatedPlaceholderUpgrade("v6.2") app.registerUpgrade("v6.3", upgradeInfo) + app.registerUpgrade6_4(upgradeInfo) } @@ -54,8 +56,12 @@ func (app *UmeeApp) registerUpgrade6_4(_ upgradetypes.Plan) { planName := "v6.4" app.UpgradeKeeper.SetUpgradeHandler(planName, - func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { + func(ctx sdk.Context, _ upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { printPlanName(planName, ctx.Logger()) + // Add UX denom aliases to metadata + app.BankKeeper.SetDenomMetaData(ctx, appparams.UmeeTokenMetadata()) + + // migrate leverage token settings tokens := app.LeverageKeeper.GetAllRegisteredTokens(ctx) for _, token := range tokens { // this will allow existing interest rate curves to pass new Token validation @@ -79,7 +85,7 @@ func (app *UmeeApp) registerUpgrade6_0(upgradeInfo upgradetypes.Plan) { util.Panic(err) app.UpgradeKeeper.SetUpgradeHandler(planName, - func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { + func(ctx sdk.Context, _ upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { printPlanName(planName, ctx.Logger()) if err := app.LeverageKeeper.SetParams(ctx, leveragetypes.DefaultParams()); err != nil { return fromVM, err @@ -100,7 +106,7 @@ func (app *UmeeApp) registerUpgrade4_3(upgradeInfo upgradetypes.Plan) { const planName = "v4.3" app.UpgradeKeeper.SetUpgradeHandler(planName, onlyModuleMigrations(app, planName)) app.UpgradeKeeper.SetUpgradeHandler(planName, - func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { + func(ctx sdk.Context, _ upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { ctx.Logger().Info("Upgrade handler execution", "name", planName) // set the ICS27 consensus version so InitGenesis is not run @@ -145,7 +151,7 @@ func (app *UmeeApp) registerUpgrade4_3(upgradeInfo upgradetypes.Plan) { } func onlyModuleMigrations(app *UmeeApp, planName string) upgradetypes.UpgradeHandler { - return func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { + return func(ctx sdk.Context, _ upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { printPlanName(planName, ctx.Logger()) ctx.Logger().Info("-----------------------------\n-----------------------------") ctx.Logger().Info("Upgrade handler execution", "name", planName) diff --git a/app/wasm/query/whitelist.go b/app/wasm/query/whitelist.go index 710808291f..e87aa935c2 100644 --- a/app/wasm/query/whitelist.go +++ b/app/wasm/query/whitelist.go @@ -168,7 +168,7 @@ func setWhitelistedQuery(queryPath string, protoType codec.ProtoMarshaler) { func GetStargateWhitelistedPaths() (keys []string) { // Iterate over the map and collect the keys - stargateWhitelist.Range(func(key, value interface{}) bool { + stargateWhitelist.Range(func(key, _ interface{}) bool { keyStr, ok := key.(string) if !ok { panic("key is not a string") diff --git a/tests/cli/suite.go b/tests/cli/suite.go index 42e1972437..2993c96119 100644 --- a/tests/cli/suite.go +++ b/tests/cli/suite.go @@ -63,7 +63,8 @@ func (s *E2ESuite) RunQuery(tq TestQuery) { err = clientCtx.Codec.UnmarshalJSON(out.Bytes(), tq.Response) assert.NilError(s.T, err, tq.Name) - assert.Equal(s.T, tq.ExpectedResponse.String(), tq.Response.String(), tq.Name) + s.T.Log("query test name: ", tq.Name) + assert.DeepEqual(s.T, tq.ExpectedResponse, tq.Response) } } diff --git a/tests/e2e/setup/setup.go b/tests/e2e/setup/setup.go index a1b8fcf222..6df7a637c0 100644 --- a/tests/e2e/setup/setup.go +++ b/tests/e2e/setup/setup.go @@ -214,8 +214,9 @@ func (s *E2ETestSuite) initGenesis() { var leverageGenState leveragetypes.GenesisState s.Require().NoError(s.cdc.UnmarshalJSON(appGenState[leveragetypes.ModuleName], &leverageGenState)) + tm := appparams.UmeeTokenMetadata() leverageGenState.Registry = append(leverageGenState.Registry, - fixtures.Token(appparams.BondDenom, appparams.DisplayDenom, 6), + fixtures.Token(tm.Base, tm.Symbol, 6), fixtures.Token(ATOMBaseDenom, ATOM, uint32(ATOMExponent)), ) diff --git a/x/leverage/client/tests/tests.go b/x/leverage/client/tests/tests.go index 1420923060..86373ffd49 100644 --- a/x/leverage/client/tests/tests.go +++ b/x/leverage/client/tests/tests.go @@ -91,7 +91,7 @@ func (s *IntegrationTests) TestLeverageScenario() { Response: &types.QueryRegisteredTokensResponse{}, ExpectedResponse: &types.QueryRegisteredTokensResponse{ Registry: []types.Token{ - fixtures.Token(appparams.BondDenom, appparams.DisplayDenom, 6), + fixtures.Token(appparams.BondDenom, appparams.LegacyDisplayDenom, 6), }, }, ErrMsg: "", @@ -113,7 +113,7 @@ func (s *IntegrationTests) TestLeverageScenario() { Response: &types.QueryRegisteredTokensResponse{}, ExpectedResponse: &types.QueryRegisteredTokensResponse{ Registry: []types.Token{ - fixtures.Token(appparams.BondDenom, appparams.DisplayDenom, 6), + fixtures.Token(appparams.BondDenom, appparams.LegacyDisplayDenom, 6), }, }, ErrMsg: "", @@ -126,12 +126,12 @@ func (s *IntegrationTests) TestLeverageScenario() { }, Response: &types.QueryMarketSummaryResponse{}, ExpectedResponse: &types.QueryMarketSummaryResponse{ - SymbolDenom: "UMEE", + SymbolDenom: appparams.LegacyDisplayDenom, Exponent: 6, OraclePrice: &oracleSymbolPrice, OracleHistoricPrice: &oracleSymbolPrice, UTokenExchangeRate: sdk.OneDec(), - // Borrow rate * (1.52 - ReserveFactor - OracleRewardFactor) + // Borrow rate * (1 - ReserveFactor - OracleRewardFactor) // 1.52 * (1 - 0.2 - 0.01) = 1.2008 Supply_APY: sdk.MustNewDecFromStr("1.2008"), // This is an edge case technically - when effective supply, meaning diff --git a/x/leverage/simulation/operations.go b/x/leverage/simulation/operations.go index 0c02ad6d95..3412e329a4 100644 --- a/x/leverage/simulation/operations.go +++ b/x/leverage/simulation/operations.go @@ -123,7 +123,7 @@ func WeightedOperations( func SimulateMsgSupply(ak simulation.AccountKeeper, bk bankkeeper.Keeper) simtypes.Operation { return func( r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, - accs []simtypes.Account, chainID string, + accs []simtypes.Account, _ string, ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { from, c, skip := randomSupplyFields(r, ctx, accs, bk) if skip { @@ -141,7 +141,7 @@ func SimulateMsgSupply(ak simulation.AccountKeeper, bk bankkeeper.Keeper) simtyp func SimulateMsgWithdraw(ak simulation.AccountKeeper, bk bankkeeper.Keeper, lk keeper.Keeper) simtypes.Operation { return func( r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, - accs []simtypes.Account, chainID string, + accs []simtypes.Account, _ string, ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { from, withdrawUToken, skip := randomWithdrawFields(r, ctx, accs, bk, lk) if skip { @@ -159,7 +159,7 @@ func SimulateMsgWithdraw(ak simulation.AccountKeeper, bk bankkeeper.Keeper, lk k func SimulateMsgBorrow(ak simulation.AccountKeeper, bk bankkeeper.Keeper, lk keeper.Keeper) simtypes.Operation { return func( r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, - accs []simtypes.Account, chainID string, + accs []simtypes.Account, _ string, ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { from, token, skip := randomBorrowFields(r, ctx, accs, lk) if skip { @@ -180,7 +180,7 @@ func SimulateMsgCollateralize( ) simtypes.Operation { return func( r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, - accs []simtypes.Account, chainID string, + accs []simtypes.Account, _ string, ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { from, collateral, skip := randomCollateralizeFields(r, ctx, accs, bk) if skip { @@ -202,7 +202,7 @@ func SimulateMsgDecollateralize( ) simtypes.Operation { return func( r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, - accs []simtypes.Account, chainID string, + accs []simtypes.Account, _ string, ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { from, collateral, skip := randomDecollateralizeFields(r, ctx, accs, lk) if skip { @@ -220,7 +220,7 @@ func SimulateMsgDecollateralize( func SimulateMsgRepay(ak simulation.AccountKeeper, bk bankkeeper.Keeper, lk keeper.Keeper) simtypes.Operation { return func( r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, - accs []simtypes.Account, chainID string, + accs []simtypes.Account, _ string, ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { from, repayToken, skip := randomRepayFields(r, ctx, accs, lk) if skip { @@ -238,7 +238,7 @@ func SimulateMsgRepay(ak simulation.AccountKeeper, bk bankkeeper.Keeper, lk keep func SimulateMsgLiquidate(ak simulation.AccountKeeper, bk bankkeeper.Keeper, lk keeper.Keeper) simtypes.Operation { return func( r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, - accs []simtypes.Account, chainID string, + accs []simtypes.Account, _ string, ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { liquidator, borrower, repaymentToken, rewardDenom, skip := randomLiquidateFields(r, ctx, accs, lk) if skip { diff --git a/x/leverage/types/token.go b/x/leverage/types/token.go index 07620dd800..1cd22fd63d 100644 --- a/x/leverage/types/token.go +++ b/x/leverage/types/token.go @@ -159,9 +159,10 @@ func (t Token) BorrowFactor() sdk.Dec { } func defaultUmeeToken() Token { + tm := appparams.UmeeTokenMetadata() return Token{ - BaseDenom: appparams.BondDenom, - SymbolDenom: "UMEE", + BaseDenom: tm.Base, + SymbolDenom: tm.Symbol, // SymbolDenom should not change Exponent: 6, EnableMsgSupply: true, EnableMsgBorrow: true, diff --git a/x/oracle/abci_test.go b/x/oracle/abci_test.go index d9b07fcc84..da74a15d2a 100644 --- a/x/oracle/abci_test.go +++ b/x/oracle/abci_test.go @@ -24,7 +24,7 @@ import ( ) const ( - displayDenom string = appparams.DisplayDenom + displayDenom string = appparams.LegacyDisplayDenom bondDenom string = appparams.BondDenom ) diff --git a/x/oracle/client/tests/suite.go b/x/oracle/client/tests/suite.go index 949f389804..88c73750a8 100644 --- a/x/oracle/client/tests/suite.go +++ b/x/oracle/client/tests/suite.go @@ -177,7 +177,7 @@ func (s *IntegrationTestSuite) TestQueryExchangeRates() { s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), &res)) s.Require().Len(res.ExchangeRates, 1) - s.Require().Equal(res.ExchangeRates[0].Denom, appparams.DisplayDenom) + s.Require().Equal(res.ExchangeRates[0].Denom, appparams.LegacyDisplayDenom) s.Require().False(res.ExchangeRates[0].Amount.IsZero()) } diff --git a/x/oracle/keeper/grpc_query_test.go b/x/oracle/keeper/grpc_query_test.go index 88672b8ef0..ea0228e235 100644 --- a/x/oracle/keeper/grpc_query_test.go +++ b/x/oracle/keeper/grpc_query_test.go @@ -118,7 +118,7 @@ func (s *IntegrationTestSuite) TestQuerier_AggregatePrevotes() { func (s *IntegrationTestSuite) TestQuerier_AggregateVote() { var tuples types.ExchangeRateTuples tuples = append(tuples, types.ExchangeRateTuple{ - Denom: appparams.DisplayDenom, + Denom: appparams.LegacyDisplayDenom, ExchangeRate: sdk.ZeroDec(), }) diff --git a/x/oracle/keeper/hooks_test.go b/x/oracle/keeper/hooks_test.go index 514704685c..0e9c3bdfbc 100644 --- a/x/oracle/keeper/hooks_test.go +++ b/x/oracle/keeper/hooks_test.go @@ -12,7 +12,7 @@ func (s *IntegrationTestSuite) TestHooks_AfterTokenRegistered() { // require that an existing token does not change the accept list h.AfterTokenRegistered(s.ctx, leveragetypes.Token{ BaseDenom: appparams.BondDenom, - SymbolDenom: appparams.DisplayDenom, + SymbolDenom: appparams.LegacyDisplayDenom, Exponent: 6, }) s.Require().Len(s.app.OracleKeeper.AcceptList(s.ctx), 1) diff --git a/x/oracle/keeper/keeper_test.go b/x/oracle/keeper/keeper_test.go index e8ce168892..c44a849646 100644 --- a/x/oracle/keeper/keeper_test.go +++ b/x/oracle/keeper/keeper_test.go @@ -28,9 +28,9 @@ import ( ) const ( - displayDenom string = appparams.DisplayDenom - bondDenom string = appparams.BondDenom - initialPower = int64(10000000000) + displayDenom = appparams.LegacyDisplayDenom + bondDenom = appparams.BondDenom + initialPower = int64(10000000000) ) // Test addresses diff --git a/x/oracle/simulations/operations.go b/x/oracle/simulations/operations.go index 64c832aee2..6598ed52c4 100644 --- a/x/oracle/simulations/operations.go +++ b/x/oracle/simulations/operations.go @@ -111,7 +111,7 @@ func SimulateMsgAggregateExchangeRatePrevote( voteHashMap map[string]string, ) simtypes.Operation { return func( - r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string, + r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, _ string, ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { simAccount := accs[1] // , _ := simtypes.RandomAcc(r, accs) address := sdk.ValAddress(simAccount.Address) @@ -155,7 +155,7 @@ func SimulateMsgAggregateExchangeRateVote( voteHashMap map[string]string, ) simtypes.Operation { return func( - r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string, + r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, _ string, ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { simAccount, _ := simtypes.RandomAcc(r, accs) address := sdk.ValAddress(simAccount.Address) @@ -197,7 +197,7 @@ func SimulateMsgAggregateExchangeRateVote( // SimulateMsgDelegateFeedConsent generates a MsgDelegateFeedConsent with random values. func SimulateMsgDelegateFeedConsent(ak types.AccountKeeper, bk bankkeeper.Keeper, k keeper.Keeper) simtypes.Operation { return func( - r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string, + r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, _ string, ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { simAccount, _ := simtypes.RandomAcc(r, accs) delegateAccount, _ := simtypes.RandomAcc(r, accs) diff --git a/x/uibc/quota/intest/suite_test.go b/x/uibc/quota/intest/suite_test.go index c8369845bd..0c7cfc9e78 100644 --- a/x/uibc/quota/intest/suite_test.go +++ b/x/uibc/quota/intest/suite_test.go @@ -28,7 +28,6 @@ import ( ) const ( - displayDenom string = appparams.DisplayDenom bondDenom string = appparams.BondDenom initialPower = int64(10000000000) )