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 <carlos@interchain.io>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
  • Loading branch information
3 people authored Sep 21, 2022
1 parent 35a27cb commit 17099fe
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 @@ -96,6 +96,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
* (apps/27-interchain-accounts) [\#2157](https://github.com/cosmos/ibc-go/pull/2157) Adding `IsMiddlewareEnabled` functionality to enforce calls to ICS27 msg server to *not* route to the underlying application.
* (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 17099fe

Please sign in to comment.