Skip to content

Commit

Permalink
fix: propagate events in x/foundation through sdk.Results (Finschia#922)
Browse files Browse the repository at this point in the history
* Propagate events in x/foundation through sdk.Results

* Update CHANGELOG.md
  • Loading branch information
0Tech committed Mar 16, 2023
1 parent d9428ec commit c025e91
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 1 deletion.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
7 changes: 6 additions & 1 deletion x/foundation/keeper/exec.go
Original file line number Diff line number Diff line change
Expand Up @@ -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())
}
}
}

Expand Down

0 comments on commit c025e91

Please sign in to comment.