Skip to content

Commit

Permalink
change DefaultParams on the host to allow all messages ("*") (#2290)
Browse files Browse the repository at this point in the history
* change DefaultParams on the host to allow all messages ("*")

Interchain Accounts are used by controller chains to execute transactions on the host chain. My suggestion is just as normal wallets are allowed to submit any transaction, by default, the host should allow all types of messages to be submitted using the ICAs.

Allowing all messages by default makes more sense regarding the purpose of Interchain Accounts.
Otherwise, it looks like this parameter should be configured to enable Interchain Accounts.

* correct formatting (gofumpt)

correct formatting (gofumpt)

* hold wildcard string in a constant

* add changelog

Co-authored-by: george <>
Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: colin axnér <[email protected]>
(cherry picked from commit 17099fe)
  • Loading branch information
georgelombardi97 authored and mergify[bot] committed Sep 21, 2022
1 parent 2672048 commit 11572c1
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 2 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
* (apps/27-interchain-accounts) [\#2146](https://github.com/cosmos/ibc-go/pull/2146) ICS27 controller now claims the channel capability passed via ibc core, and passes `nil` to the underlying app callback. The channel capability arg in `SendTx` is now ignored and looked up internally.
* (apps/27-interchain-accounts) [\#2177](https://github.com/cosmos/ibc-go/pull/2177) Adding `IsMiddlewareEnabled` flag to interchain accounts `ActiveChannel` genesis type.
* (apps/27-interchain-accounts) [\#2140](https://github.com/cosmos/ibc-go/pull/2140) Adding migration handler to ICS27 `controller` submodule to assert ownership of channel capabilities and set middleware enabled flag for existing channels. The ICS27 module consensus version has been bumped from 1 to 2.
* (apps/27-interchain-accounts) [\#2290](https://github.com/cosmos/ibc-go/pull/2290) Changed `DefaultParams` function in `host` submodule to allow all messages by default. Defined a constant named `AllowAllHostMsgs` for `host` module to keep wildcard "*" string which allows all messages.

### Features

Expand Down
5 changes: 4 additions & 1 deletion modules/apps/27-interchain-accounts/host/types/keys.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,15 @@ const (

// StoreKey is the store key string for the interchain accounts host module
StoreKey = SubModuleName

// AllowAllHostMsgs holds the string key that allows all message types on interchain accounts host module
AllowAllHostMsgs = "*"
)

// ContainsMsgType returns true if the sdk.Msg TypeURL is present in allowMsgs, otherwise false
func ContainsMsgType(allowMsgs []string, msg sdk.Msg) bool {
// check that wildcard * option for allowing all message types is the only string in the array, if so, return true
if len(allowMsgs) == 1 && allowMsgs[0] == "*" {
if len(allowMsgs) == 1 && allowMsgs[0] == AllowAllHostMsgs {
return true
}

Expand Down
2 changes: 1 addition & 1 deletion modules/apps/27-interchain-accounts/host/types/params.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ func NewParams(enableHost bool, allowMsgs []string) Params {

// DefaultParams is the default parameter configuration for the host submodule
func DefaultParams() Params {
return NewParams(DefaultHostEnabled, nil)
return NewParams(DefaultHostEnabled, []string{AllowAllHostMsgs})
}

// Validate validates all host submodule parameters
Expand Down

0 comments on commit 11572c1

Please sign in to comment.