From 8f761992140c07e25a10ceb80b9db6827721bd76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Eckel?= Date: Thu, 5 Oct 2023 17:31:41 +0200 Subject: [PATCH] added MsgReissueRDDLResult handling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jürgen Eckel --- x/dao/keeper/msg_server_reissue_rddl_result.go | 18 ++++++++++++++++-- x/dao/types/errors.go | 4 ++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/x/dao/keeper/msg_server_reissue_rddl_result.go b/x/dao/keeper/msg_server_reissue_rddl_result.go index f619f53..caf801f 100644 --- a/x/dao/keeper/msg_server_reissue_rddl_result.go +++ b/x/dao/keeper/msg_server_reissue_rddl_result.go @@ -3,6 +3,7 @@ package keeper import ( "context" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/planetmint/planetmint-go/x/dao/types" ) @@ -10,8 +11,21 @@ import ( func (k msgServer) ReissueRDDLResult(goCtx context.Context, msg *types.MsgReissueRDDLResult) (*types.MsgReissueRDDLResultResponse, error) { ctx := sdk.UnwrapSDKContext(goCtx) - // TODO: Handling the message - _ = ctx + reissuance, found := k.GetReissuance(ctx, msg.GetBlockHeight()) + if found != true { + return nil, errorsmod.Wrapf(types.ErrReissuanceNotFound, " for provided block height %u", msg.GetBlockHeight()) + } + if reissuance.GetBlockHeight() != msg.GetBlockHeight() { + return nil, errorsmod.Wrapf(types.ErrWrongBlockHeight, " for provided block height %u", msg.GetBlockHeight()) + } + if reissuance.GetProposer() != msg.GetProposer() { + return nil, errorsmod.Wrapf(types.ErrInvalidProposer, " for provided block height %u", msg.GetBlockHeight()) + } + if reissuance.GetTxId() != "" { + return nil, errorsmod.Wrapf(types.ErrTXAlreadySet, " for provided block height %u", msg.GetBlockHeight()) + } + reissuance.TxId = msg.GetTxId() + k.StoreReissuance(ctx, reissuance) return &types.MsgReissueRDDLResultResponse{}, nil } diff --git a/x/dao/types/errors.go b/x/dao/types/errors.go index 41807f4..68f2059 100644 --- a/x/dao/types/errors.go +++ b/x/dao/types/errors.go @@ -13,4 +13,8 @@ var ( ErrTransferFailed = errorsmod.Register(ModuleName, 4, "transfer failed") ErrInvalidAddress = errorsmod.Register(ModuleName, 5, "invalid address") ErrAlreadyMinted = errorsmod.Register(ModuleName, 6, "already minted") + ErrWrongBlockHeight = errorsmod.Register(ModuleName, 7, "wrong block height") + ErrReissuanceNotFound = errorsmod.Register(ModuleName, 8, "reissuance not found") + ErrInvalidProposer = errorsmod.Register(ModuleName, 9, "invalid proposer") + ErrTXAlreadySet = errorsmod.Register(ModuleName, 10, "tx already set") )