From 27a94d485f153917c0546ddbe258b5eb8ba9bd2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Eckel?= Date: Fri, 1 Mar 2024 00:15:02 +0100 Subject: [PATCH] Initializing rootDir of dao and machine keeper with the homePath of the validators key material MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jürgen Eckel --- app/app.go | 2 ++ testutil/keeper/dao.go | 1 + testutil/keeper/machine.go | 1 + util/determine_block_proposer.go | 11 ++++------- x/dao/abci.go | 2 +- x/dao/keeper/keeper.go | 3 +++ x/dao/keeper/msg_server_distribution_request.go | 2 +- x/dao/keeper/msg_server_init_pop.go | 2 +- x/dao/keeper/msg_server_redeem_claim.go | 2 +- x/dao/keeper/msg_server_reissue_rddl_proposal.go | 2 +- x/machine/keeper/keeper.go | 3 +++ x/machine/keeper/msg_server_attest_machine.go | 2 +- 12 files changed, 20 insertions(+), 13 deletions(-) diff --git a/app/app.go b/app/app.go index ad6d9f3..04aae52 100644 --- a/app/app.go +++ b/app/app.go @@ -549,6 +549,7 @@ func New( keys[machinemoduletypes.MemStoreKey], app.GetSubspace(machinemoduletypes.ModuleName), authtypes.NewModuleAddress(govtypes.ModuleName).String(), + homePath, ) machineModule := machinemodule.NewAppModule(appCodec, app.MachineKeeper, app.AccountKeeper, app.BankKeeper) @@ -576,6 +577,7 @@ func New( app.AccountKeeper, app.MachineKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(), + homePath, ) daoModule := daomodule.NewAppModule(appCodec, app.DaoKeeper, app.AccountKeeper, app.BankKeeper) diff --git a/testutil/keeper/dao.go b/testutil/keeper/dao.go index 15290c9..81db7c5 100644 --- a/testutil/keeper/dao.go +++ b/testutil/keeper/dao.go @@ -72,6 +72,7 @@ func DaoKeeper(t testing.TB) (*keeper.Keeper, sdk.Context) { nil, nil, authtypes.NewModuleAddress(govtypes.ModuleName).String(), + "", ) // Initialize params diff --git a/testutil/keeper/machine.go b/testutil/keeper/machine.go index 46d2550..2f82f06 100644 --- a/testutil/keeper/machine.go +++ b/testutil/keeper/machine.go @@ -61,6 +61,7 @@ func MachineKeeper(t testing.TB) (*keeper.Keeper, sdk.Context) { memStoreKey, paramsSubspace, authtypes.NewModuleAddress(govtypes.ModuleName).String(), + "", ) ctx := sdk.NewContext(stateStore, tmproto.Header{}, false, log.NewNopLogger()) diff --git a/util/determine_block_proposer.go b/util/determine_block_proposer.go index 23d62d9..22a4c73 100644 --- a/util/determine_block_proposer.go +++ b/util/determine_block_proposer.go @@ -10,7 +10,6 @@ import ( cometcfg "github.com/cometbft/cometbft/config" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/planetmint/planetmint-go/config" ) type Key struct { @@ -24,11 +23,9 @@ type KeyFile struct { PrivKey Key `json:"priv-key"` } -func GetValidatorCometBFTIdentity(ctx sdk.Context) (string, bool) { - conf := config.GetConfig() - +func GetValidatorCometBFTIdentity(ctx sdk.Context, rootDir string) (string, bool) { cfg := cometcfg.DefaultConfig() - jsonFilePath := filepath.Join(conf.ConfigRootDir, cfg.PrivValidatorKey) + jsonFilePath := filepath.Join(rootDir, cfg.PrivValidatorKey) jsonFile, err := os.Open(jsonFilePath) if err != nil { @@ -50,8 +47,8 @@ func GetValidatorCometBFTIdentity(ctx sdk.Context) (string, bool) { return strings.ToLower(keyFile.Address), true } -func IsValidatorBlockProposer(ctx sdk.Context, proposerAddress []byte) bool { - validatorIdentity, validResult := GetValidatorCometBFTIdentity(ctx) +func IsValidatorBlockProposer(ctx sdk.Context, proposerAddress []byte, rootDir string) bool { + validatorIdentity, validResult := GetValidatorCometBFTIdentity(ctx, rootDir) if !validResult { return false } diff --git a/x/dao/abci.go b/x/dao/abci.go index 398f5f2..1e6596a 100644 --- a/x/dao/abci.go +++ b/x/dao/abci.go @@ -15,7 +15,7 @@ func BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock, k keeper.Keeper) // Check if node is block proposer // take the following actions only once, that's why we filter for the Block Proposer - if !util.IsValidatorBlockProposer(ctx, proposerAddress) { + if !util.IsValidatorBlockProposer(ctx, proposerAddress, k.RootDir) { return } currentBlockHeight := req.Header.GetHeight() diff --git a/x/dao/keeper/keeper.go b/x/dao/keeper/keeper.go index 3144899..de10ec9 100644 --- a/x/dao/keeper/keeper.go +++ b/x/dao/keeper/keeper.go @@ -29,6 +29,7 @@ type ( accountKeeper types.AccountKeeper machineKeeper types.MachineKeeper authority string + RootDir string } ) @@ -46,6 +47,7 @@ func NewKeeper( accountKeeper types.AccountKeeper, machineKeeper types.MachineKeeper, authority string, + rootDir string, ) *Keeper { // set KeyTable if it has not already been set if !ps.HasKeyTable() { @@ -66,6 +68,7 @@ func NewKeeper( accountKeeper: accountKeeper, machineKeeper: machineKeeper, authority: authority, + RootDir: rootDir, } } diff --git a/x/dao/keeper/msg_server_distribution_request.go b/x/dao/keeper/msg_server_distribution_request.go index 9115d57..97d1ef3 100644 --- a/x/dao/keeper/msg_server_distribution_request.go +++ b/x/dao/keeper/msg_server_distribution_request.go @@ -28,7 +28,7 @@ func (k msgServer) DistributionRequest(goCtx context.Context, msg *types.MsgDist util.GetAppLogger().Info(ctx, distributionRequestTag+"storing distribution: "+msg.GetDistribution().String()) k.StoreDistributionOrder(ctx, *msg.GetDistribution()) - validatorIdentity, validResult := util.GetValidatorCometBFTIdentity(ctx) + validatorIdentity, validResult := util.GetValidatorCometBFTIdentity(ctx, k.RootDir) if !validResult || msg.Distribution.GetProposer() != validatorIdentity { util.GetAppLogger().Info(ctx, distributionRequestTag+"Not the proposer. valid result: %t proposer: %s validator identity: %s", validResult, msg.Distribution.GetProposer(), validatorIdentity) return &types.MsgDistributionRequestResponse{}, nil diff --git a/x/dao/keeper/msg_server_init_pop.go b/x/dao/keeper/msg_server_init_pop.go index afa8da6..86305f6 100644 --- a/x/dao/keeper/msg_server_init_pop.go +++ b/x/dao/keeper/msg_server_init_pop.go @@ -19,7 +19,7 @@ func (k msgServer) InitPop(goCtx context.Context, msg *types.MsgInitPop) (*types k.StoreChallenge(ctx, challenge) - validatorIdentity, validResult := util.GetValidatorCometBFTIdentity(ctx) + validatorIdentity, validResult := util.GetValidatorCometBFTIdentity(ctx, k.RootDir) if validResult && msg.Initiator == validatorIdentity { go util.SendMqttPopInitMessagesToServer(ctx, challenge) } diff --git a/x/dao/keeper/msg_server_redeem_claim.go b/x/dao/keeper/msg_server_redeem_claim.go index 5d225a6..b7a91df 100644 --- a/x/dao/keeper/msg_server_redeem_claim.go +++ b/x/dao/keeper/msg_server_redeem_claim.go @@ -35,7 +35,7 @@ func (k msgServer) CreateRedeemClaim(goCtx context.Context, msg *types.MsgCreate redeemClaim, ) - if util.IsValidatorBlockProposer(ctx, ctx.BlockHeader().ProposerAddress) { + if util.IsValidatorBlockProposer(ctx, ctx.BlockHeader().ProposerAddress, k.RootDir) { util.GetAppLogger().Info(ctx, fmt.Sprintf("Issuing RDDL claim: %s/%d", msg.Beneficiary, id)) txID, err := util.DistributeAsset(msg.Beneficiary, util.UintValueToRDDLTokenString(msg.Amount), params.ReissuanceAsset) if err != nil { diff --git a/x/dao/keeper/msg_server_reissue_rddl_proposal.go b/x/dao/keeper/msg_server_reissue_rddl_proposal.go index c82a849..b0085f8 100644 --- a/x/dao/keeper/msg_server_reissue_rddl_proposal.go +++ b/x/dao/keeper/msg_server_reissue_rddl_proposal.go @@ -23,7 +23,7 @@ func (k msgServer) ReissueRDDLProposal(goCtx context.Context, msg *types.MsgReis reissuance.LastIncludedPop = msg.GetLastIncludedPop() k.StoreReissuance(ctx, reissuance) - validatorIdentity, validResult := util.GetValidatorCometBFTIdentity(ctx) + validatorIdentity, validResult := util.GetValidatorCometBFTIdentity(ctx, k.RootDir) if !validResult || msg.Proposer != validatorIdentity { util.GetAppLogger().Info(ctx, reissueTag+"Not the proposer. valid result: %t proposer: %s validator identity: %s", validResult, msg.Proposer, validatorIdentity) return &types.MsgReissueRDDLProposalResponse{}, nil diff --git a/x/machine/keeper/keeper.go b/x/machine/keeper/keeper.go index 8606de2..8835ab1 100644 --- a/x/machine/keeper/keeper.go +++ b/x/machine/keeper/keeper.go @@ -22,6 +22,7 @@ type ( memKey storetypes.StoreKey paramstore paramtypes.Subspace authority string + rootDir string } ) @@ -36,6 +37,7 @@ func NewKeeper( memKey storetypes.StoreKey, ps paramtypes.Subspace, authority string, + rootDir string, ) *Keeper { // set KeyTable if it has not already been set if !ps.HasKeyTable() { @@ -53,6 +55,7 @@ func NewKeeper( memKey: memKey, paramstore: ps, authority: authority, + rootDir: rootDir, } } diff --git a/x/machine/keeper/msg_server_attest_machine.go b/x/machine/keeper/msg_server_attest_machine.go index 16f3e1b..8397576 100644 --- a/x/machine/keeper/msg_server_attest_machine.go +++ b/x/machine/keeper/msg_server_attest_machine.go @@ -49,7 +49,7 @@ func (k msgServer) AttestMachine(goCtx context.Context, msg *types.MsgAttestMach return nil, types.ErrMachineTypeUndefined } - if util.IsValidatorBlockProposer(ctx, ctx.BlockHeader().ProposerAddress) { + if util.IsValidatorBlockProposer(ctx, ctx.BlockHeader().ProposerAddress, k.rootDir) { util.GetAppLogger().Info(ctx, "Issuing Machine NFT: "+msg.Machine.String()) err := k.issueMachineNFT(goCtx, msg.Machine) if err != nil {