diff --git a/.mergify.yml b/.mergify.yml index 57109505..33b4df7e 100644 --- a/.mergify.yml +++ b/.mergify.yml @@ -15,4 +15,12 @@ pull_request_rules: commit_message_template: > {{ title }} (#{{ number }}) - {{ body }} \ No newline at end of file + {{ body }} + - name: backport patches to v0.47.x branch + conditions: + - base=cosmos/v0.50.x + - label=backport/v0.47.x + actions: + backport: + branches: + - cosmos/v0.47.x \ No newline at end of file diff --git a/modules/module.go b/modules/module.go index 20a0b00c..c105d05b 100644 --- a/modules/module.go +++ b/modules/module.go @@ -4,11 +4,8 @@ import ( "encoding/json" "strings" - "github.com/cosmos/cosmos-sdk/x/authz" - tmctypes "github.com/cometbft/cometbft/rpc/core/types" tmtypes "github.com/cometbft/cometbft/types" - sdk "github.com/cosmos/cosmos-sdk/types" "github.com/go-co-op/gocron" "github.com/forbole/juno/v5/types" @@ -106,5 +103,5 @@ type AuthzMessageModule interface { // are passed as well. // NOTE. The returned error will be logged using the MsgError method. All other modules' handlers // will still be called. - HandleMsgExec(index int, msgExec *authz.MsgExec, authzMsgIndex int, executedMsg sdk.Msg, tx *types.Transaction) error + HandleMsgExec(index int, authzMsgIndex int, executedMsg types.Message, tx *types.Transaction) error } diff --git a/node/builder/builder.go b/node/builder/builder.go index 8bce32af..1fb5dae7 100644 --- a/node/builder/builder.go +++ b/node/builder/builder.go @@ -5,10 +5,18 @@ import ( "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" +<<<<<<< HEAD "github.com/forbole/juno/v5/node" nodeconfig "github.com/forbole/juno/v5/node/config" "github.com/forbole/juno/v5/node/local" "github.com/forbole/juno/v5/node/remote" +======= + + "github.com/forbole/juno/v6/node" + nodeconfig "github.com/forbole/juno/v6/node/config" + "github.com/forbole/juno/v6/node/local" + "github.com/forbole/juno/v6/node/remote" +>>>>>>> 7327795 (fix: added back authz message handler in worker (#121)) ) func BuildNode(cfg nodeconfig.Config, txConfig client.TxConfig, codec codec.Codec) (node.Node, error) { diff --git a/parser/worker.go b/parser/worker.go index 55fa2e3a..6f66350a 100644 --- a/parser/worker.go +++ b/parser/worker.go @@ -295,6 +295,35 @@ func (w Worker) handleMessage(index int, msg types.Message, tx *types.Transactio w.logger.MsgError(module, tx, msg, err) } } + + // If it's a MsgExecute, we need to make sure the included messages are handled as well + if msg.GetType() == "/cosmos.authz.v1beta1.MsgExec" { + var msgExec struct { + Msgs []json.RawMessage `json:"msgs"` + } + + err := json.Unmarshal(msg.GetBytes(), &msgExec) + if err != nil { + w.logger.Error("unable to unmarshal MsgExec inner messages", "error", err) + return + } + + for authzIndex, msgAny := range msgExec.Msgs { + executedMsg, err := types.UnmarshalMessage(authzIndex, msgAny) + if err != nil { + w.logger.Error("unable to unpack MsgExec inner message", "index", authzIndex, "error", err) + } + + for _, module := range w.modules { + if messageModule, ok := module.(modules.AuthzMessageModule); ok { + err = messageModule.HandleMsgExec(index, authzIndex, executedMsg, tx) + if err != nil { + w.logger.MsgError(module, tx, executedMsg, err) + } + } + } + } + } } } diff --git a/types/config/config.go b/types/config/config.go index bb470fea..228fbbe9 100644 --- a/types/config/config.go +++ b/types/config/config.go @@ -3,11 +3,20 @@ package config import ( "strings" +<<<<<<< HEAD databaseconfig "github.com/forbole/juno/v5/database/config" loggingconfig "github.com/forbole/juno/v5/logging/config" nodeconfig "github.com/forbole/juno/v5/node/config" parserconfig "github.com/forbole/juno/v5/parser/config" "gopkg.in/yaml.v3" +======= + "gopkg.in/yaml.v3" + + databaseconfig "github.com/forbole/juno/v6/database/config" + loggingconfig "github.com/forbole/juno/v6/logging/config" + nodeconfig "github.com/forbole/juno/v6/node/config" + parserconfig "github.com/forbole/juno/v6/parser/config" +>>>>>>> 7327795 (fix: added back authz message handler in worker (#121)) ) var (