From 041b1fd775ca413c04ce99e9e70d740236609916 Mon Sep 17 00:00:00 2001 From: Reece Williams Date: Tue, 23 Jul 2024 13:00:01 -0500 Subject: [PATCH] fix: depinject issue with authority --- .gitignore | 1 + keeper/keeper.go | 4 ++++ module/depinject.go | 12 +++++++++--- simulation/operations.go | 4 +++- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index c6bccf2..e41e7be 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ debug_container.dot build/ go.work.sum +debug_*.* \ No newline at end of file diff --git a/keeper/keeper.go b/keeper/keeper.go index ba8747a..12e92a5 100644 --- a/keeper/keeper.go +++ b/keeper/keeper.go @@ -113,6 +113,10 @@ func (k *Keeper) SetTestAccountKeeper(ak AccountKeeper) { k.accountKeeper = ak } +func (k *Keeper) SetTestAuthority(addr string) { + k.authority = addr +} + func (k Keeper) GetAdmin(ctx context.Context) string { return k.authority } diff --git a/module/depinject.go b/module/depinject.go index 5b390a2..be8cf78 100644 --- a/module/depinject.go +++ b/module/depinject.go @@ -13,6 +13,8 @@ import ( "cosmossdk.io/depinject" "cosmossdk.io/log" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" "github.com/strangelove-ventures/poa" modulev1 "github.com/strangelove-ventures/poa/api/module/v1" "github.com/strangelove-ventures/poa/keeper" @@ -38,6 +40,7 @@ type ModuleInputs struct { depinject.In Cdc codec.Codec + Config *modulev1.Module StoreService store.KVStoreService AddressCodec address.Codec @@ -45,8 +48,6 @@ type ModuleInputs struct { SlashingKeeper keeper.SlashingKeeper BankKeeper keeper.BankKeeper AccountKeeper keeper.AccountKeeper // for testing - - Authority string } type ModuleOutputs struct { @@ -57,7 +58,12 @@ type ModuleOutputs struct { } func ProvideModule(in ModuleInputs) ModuleOutputs { - k := keeper.NewKeeper(in.Cdc, in.StoreService, in.StakingKeeper, in.SlashingKeeper, in.BankKeeper, log.NewLogger(os.Stderr), in.Authority) + authority := authtypes.NewModuleAddress(govtypes.ModuleName) + if len(in.Config.Admins) > 0 && in.Config.Admins[0] != "" { + authority = authtypes.NewModuleAddressOrBech32Address(in.Config.Admins[0]) + } + + k := keeper.NewKeeper(in.Cdc, in.StoreService, in.StakingKeeper, in.SlashingKeeper, in.BankKeeper, log.NewLogger(os.Stderr), authority.String()) k.SetTestAccountKeeper(in.AccountKeeper) // for testing m := NewAppModule(in.Cdc, k) diff --git a/simulation/operations.go b/simulation/operations.go index 2f6d463..d643b2a 100644 --- a/simulation/operations.go +++ b/simulation/operations.go @@ -108,7 +108,7 @@ func SimulateMsgCreateValidator(txGen client.TxConfig, k keeper.Keeper) simtypes // Generate a random self-delegation amount between 1 and balance amount := sdkmath.NewInt(r.Int63n(balance.Amount.Int64()-1) + 1) - if err != nil { + if amount.IsNegative() { return simtypes.NoOpMsg(poatypes.ModuleName, msgType, "unable to generate positive amount"), nil, err } @@ -196,6 +196,8 @@ func SimulateMsgRemoveValidator(txGen client.TxConfig, k keeper.Keeper) simtypes func SimulateMsgSetPower(txGen client.TxConfig, k keeper.Keeper) simtypes.Operation { return func(r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string, ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { + k.SetTestAuthority(accs[0].Address.String()) + msgType := sdk.MsgTypeURL(&poatypes.MsgSetPower{}) validators, err := k.GetStakingKeeper().GetAllValidators(ctx)