From c025e91f8a09ce8e46168bd9687a991294e83b82 Mon Sep 17 00:00:00 2001 From: Youngtaek Yoon Date: Thu, 16 Mar 2023 17:20:34 +0900 Subject: [PATCH] fix: propagate events in x/foundation through sdk.Results (#922) * Propagate events in x/foundation through sdk.Results * Update CHANGELOG.md --- CHANGELOG.md | 1 + x/foundation/keeper/exec.go | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 47264130e2..a6e3047970 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -62,6 +62,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (x/collection,token) [\#866](https://github.com/line/lbm-sdk/pull/866) Do not create account on x/token,collection * (x/collection,token) [\#881](https://github.com/line/lbm-sdk/pull/881) Remove some x/token,collection queries on listable collections * (x/collection) [\#911](https://github.com/line/lbm-sdk/pull/911) Add missing command(TxCmdModify) for CLI +* (x/foundation) [\#922](https://github.com/line/lbm-sdk/pull/922) Propagate events in x/foundation through sdk.Results ### Removed * [\#853](https://github.com/line/lbm-sdk/pull/853) remove useless stub BeginBlock, EndBlock methods from modules below diff --git a/x/foundation/keeper/exec.go b/x/foundation/keeper/exec.go index f0d5068094..cf317b2fe9 100644 --- a/x/foundation/keeper/exec.go +++ b/x/foundation/keeper/exec.go @@ -50,13 +50,18 @@ func (k Keeper) Exec(ctx sdk.Context, proposalID uint64) error { // Caching context so that we don't update the store in case of failure. ctx, flush := ctx.CacheContext() - if _, err = k.doExecuteMsgs(ctx, *proposal); err != nil { + if results, err := k.doExecuteMsgs(ctx, *proposal); err != nil { proposal.ExecutorResult = foundation.PROPOSAL_EXECUTOR_RESULT_FAILURE logs = fmt.Sprintf("proposal execution failed on proposal %d, because of error %s", proposalID, err.Error()) logger.Info("proposal execution failed", "cause", err, "proposalID", proposal.Id) } else { proposal.ExecutorResult = foundation.PROPOSAL_EXECUTOR_RESULT_SUCCESS flush() + + for _, res := range results { + // NOTE: The sdk msg handler creates a new EventManager, so events must be correctly propagated back to the current context + ctx.EventManager().EmitEvents(res.GetEvents()) + } } }