Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: make fee storage more efficient #956

Merged
merged 7 commits into from
Feb 23, 2022

Conversation

damiannolan
Copy link
Member

@damiannolan damiannolan commented Feb 21, 2022

Description

The following PR updates the ics29 proto models to accommodate for more efficient use of storage.
This includes the introduction of a new PacketFee type which excludes the packet identifier (channelID/portID/sequence).
Identified Fees will be maintained for users and genesis state ux.

This PR uses the proto definitions proposed in #915.

Follow-up PRs will address:

closes: #760


Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

  • Targeted PR against correct branch (see CONTRIBUTING.md)
  • Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
  • Code follows the module structure standards.
  • Wrote unit and integration tests
  • Updated relevant documentation (docs/) or specification (x/<module>/spec/)
  • Added relevant godoc comments.
  • Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
  • Re-reviewed Files changed in the Github PR explorer
  • Review Codecov Report in the comment section below once CI passes

@codecov-commenter
Copy link

codecov-commenter commented Feb 21, 2022

Codecov Report

Merging #956 (0555a08) into ics29-fee-middleware (6999e10) will decrease coverage by 0.08%.
The diff coverage is 69.64%.

Impacted file tree graph

@@                   Coverage Diff                    @@
##           ics29-fee-middleware     #956      +/-   ##
========================================================
- Coverage                 79.89%   79.81%   -0.09%     
========================================================
  Files                       165      165              
  Lines                     11664    11676      +12     
========================================================
  Hits                       9319     9319              
- Misses                     1896     1908      +12     
  Partials                    449      449              
Impacted Files Coverage Δ
modules/apps/29-fee/types/fee.go 55.55% <0.00%> (-27.78%) ⬇️
modules/apps/29-fee/keeper/msg_server.go 76.31% <60.00%> (+1.31%) ⬆️
modules/apps/29-fee/keeper/keeper.go 90.29% <92.85%> (ø)
modules/apps/29-fee/ibc_module.go 93.87% <100.00%> (ø)
modules/apps/29-fee/keeper/escrow.go 80.00% <100.00%> (ø)
modules/apps/29-fee/keeper/events.go 100.00% <100.00%> (ø)
.../light-clients/07-tendermint/types/client_state.go 72.16% <0.00%> (-0.18%) ⬇️

@damiannolan
Copy link
Member Author

There is a small dip in coverage but should be pretty trivial to resolve in following PRs. Didn't want to over bloat these unnecessarily. I think its just from the addition of NewFee(), NewPacketFee()...etc in types

// if the callback returns true, then iteration is stopped.
func (k Keeper) IterateIdentifiedChannelFeesInEscrow(ctx sdk.Context, portID, channelID string, cb func(identifiedFees types.IdentifiedPacketFees) (stop bool)) {
func (k Keeper) IterateChannelFeesInEscrow(ctx sdk.Context, portID, channelID string, cb func(identifiedFee types.IdentifiedPacketFee) (stop bool)) {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will be removed after all these PRs are in, along with the SetFeeInEscrow/GetFeeInEscrow..etc, essentially the functions associated with storing the single packet fee.

@@ -57,7 +57,9 @@ func (k Keeper) PayPacketFee(goCtx context.Context, msg *types.MsgPayPacketFee)
func (k Keeper) PayPacketFeeAsync(goCtx context.Context, msg *types.MsgPayPacketFeeAsync) (*types.MsgPayPacketFeeAsyncResponse, error) {
ctx := sdk.UnwrapSDKContext(goCtx)

if err := k.EscrowPacketFee(ctx, msg.IdentifiedPacketFee.PacketId, msg.IdentifiedPacketFee); err != nil {
// TODO: Update MsgPayPacketFeeAsync to include PacketFee in favour of IdentifiedPacketFee
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This todo will be addressed in a follow up. I think the MsgPayPacketFeeAsync should look something like this:

message MsgPayPacketFeeAsync {
    ibc.core.channel.v1.PacketId packet_id = 1;
    PacketFee packet_fee = 2;
}

Copy link
Member Author

@damiannolan damiannolan Feb 22, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Opened #975 and will follow up with this

Copy link
Contributor

@seantking seantking left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM but can we merge this after my currently open PRs are merged? Just to limit the merge conflicts. I'll try to get everything merged today.

@damiannolan
Copy link
Member Author

LGTM but can we merge this after my currently open PRs are merged? Just to limit the merge conflicts. I'll try to get everything merged today.

Sounds like a plan to me! I was planning that I'd stack up these PRs and get them in together. Happy to get the others merged first 👍

Copy link
Member

@AdityaSripal AdityaSripal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just confused by iterate fns

modules/apps/29-fee/keeper/keeper.go Show resolved Hide resolved
Comment on lines +286 to -300
func (k Keeper) IteratePacketFeesInEscrow(ctx sdk.Context, portID, channelID string, cb func(packetFees types.PacketFees) (stop bool)) {
store := ctx.KVStore(k.storeKey)
iterator := sdk.KVStorePrefixIterator(store, types.KeyFeeInEscrowChannelPrefix(portID, channelID))
iterator := sdk.KVStorePrefixIterator(store, types.KeyFeesInEscrowChannelPrefix(portID, channelID))

defer iterator.Close()
for ; iterator.Valid(); iterator.Next() {
identifiedFee := k.MustUnmarshalFee(iterator.Value())
if cb(identifiedFee) {
packetFees := k.MustUnmarshalFees(iterator.Value())
if cb(packetFees) {
break
}
}
}

// IterateIdentifiedChannelFeesInEscrow iterates over all the fees on the given channel currently escrowed and calls the provided callback
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand the changes you've made to these iterate functions

Copy link
Contributor

@colin-axner colin-axner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So clean :)

ibc.core.channel.v1.PacketId packet_id = 1
[(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"packet_id\""];
repeated PacketFee packet_fees = 2 [(gogoproto.moretags) = "yaml:\"packet_fees\"", (gogoproto.nullable) = false];
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should this be PacketFees?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good question. It could be PacketFees (non repeated), but PacketFees is just really a wrapper type for marshalling the fees as bytes to store in state.
I figured using regular repeated PacketFee here just reduced having to reference an additional child if that makes sense. e.g. instead of identifiedFees.PacketFees.PacketFees we can just use identifiedFees.PacketFees

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it possible to structure these types like how the SDK does Coins. See proto cast and type definition?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this idea. I can take a look later today 👍

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is possible. If I understood the suggestion correctly it would be to do away with PacketFees and have that defined as an alias in the Go code and use (gogoproto.castrepeated):

type PacketFees []PacketFee

I believe we still need the proto defined type PacketFees as the type we store here must implement codec.ProtoMarshaller and using an alias type will not have the proto specific methods needed to marshal bytes.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea that seems correct. Looks like the SDK always does some workaround to directly setting a slice of a type (splitting up the type into a key/value or adding some other value to the key to create mapping to each element in the slice)

I'm in favor of the current implementation 👍

@@ -7,13 +7,31 @@ import (
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
)

// NewIdentifiedPacketFees creates and returns a new IdentifiedPacketFees struct
func NewIdentifiedPacketFees(packetFees []IdentifiedPacketFee) IdentifiedPacketFees {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what happened to this constructor?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Replaced by NewPacketFees() on line 20 below.

The IdentifiedPacketFees struct used for Genesis is a repeated type so the []IdentifiedPacketFees is returned directly from GetAllIdentifiedPacketFees and used in ExportGenesis. See #957 -> here https://github.com/cosmos/ibc-go/pull/957/files#diff-b7d50f2bf0988eeab4d6734bd38c10ebf00bda7451e4a6730575de154406937cR330

@damiannolan damiannolan merged commit b02d193 into ics29-fee-middleware Feb 23, 2022
@damiannolan damiannolan deleted the damian/760-effecient-storage branch February 23, 2022 13:51
seantking added a commit that referenced this pull request Apr 6, 2022
* scaffolding for 29-fee (#274)

* scaffolding for 29-fee

* fix build

* update keeper test

* remove module test

* feat: adding proto files for fee payment middleware (#272)

* feat: adding proto files for fee payment middleware

* grammar

* fix: remove generated .pb files

* fix: comment

* feat: adding PacketId type

* refactor: fee / genesis

* refactor: escrowed fees map

* Apply suggestions from code review

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update proto/ibc/applications/middleware/fee/v1/tx.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update proto/ibc/applications/middleware/fee/v1/tx.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update proto/ibc/applications/middleware/fee/v1/tx.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* refactor: use packetID + minor changes

* feat: adding query for all incentivized packets + some fixes

* feat: adding pagination to incentivized query

* fix: removing generated ibc directory + adding import/yaml

* fix: naming

* increase max depth for proto file searching and make proto all

* Update proto/ibc/applications/middleware/fee/v1/fee.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* refactor: remove file imports/add yaml/add argument for requests

* refactor: updating IdentifiedPacketFee

* fix: remove hidden file

* removing middleware dir & adding query

* remove junk file and update query rpcs

* Apply suggestions from code review

* Apply suggestions from code review

* remove query yaml, make proto-all

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Aditya Sripal <adityasripal@gmail.com>

* fix: removing unncessary fields MsgEscrow & adding query params (#300)

* fix: removing unncessary fields MsgEscrow & adding query params

* fix: grammar

* fix: add yaml

* feat: #258 Register Counterparty Address (#376)

* feat: adding MsgServer for RegisterCounterPartyAddress &
EscrowPacketFree

* test: adding test for ValidateBasic

* fix: removing validate basic check

* fix: removing empty file

* Update modules/apps/29-fee/keeper/msg_server.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/types/msgs.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/types/keys.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/keeper/keeper.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* fix: fixing typos, variable names, comments

* fix: updating import comments

* test: adding test for KeyRelayerAddress

* update: comments & key_test

* Update modules/apps/29-fee/keeper/msg_server.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: error message

* docs: updating RegisterCounterpartyAddress fn description

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Aditya <adityasripal@gmail.com>

* fix: remove comments for imports (#385)

* feat: Add handshake logic to ics29 (#307)

* do handshake logic, create test file

* do cap logic and fix build

* open handshake implementation and tests

* remove prints

* Update modules/apps/29-fee/module.go

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* debugging progress

* fee enabled flag

* cleanup handshake logic

* fix tests

* much cleaner simapp

* split module.go file

* cleanup and docs

* assert IBC interfaces are fulfilled in middleware

* Update modules/apps/transfer/module.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix unnecessary crossing hello logic

* fix version negotiation bugs and improve tests

* cleanup tests

* Apply suggestions from code review

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* address rest of colin comments

Co-authored-by: Sean King <seantking@users.noreply.github.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Fee Middleware: Escrow logic (#465)

* fix: adding second endpoint for async pay fee + renaming types

* feat: adding escrow logic

* feat: updating proto types & escrow logic

* fix: stub fn & proto comment

* feat: adding PayFee & PayFeeTimeout & escrow_test

* test: adding happy path for EscrowPacketFee

* fix: comments, error handling

* fix: comments & grammar

* test: adding unhappy path for escrow

* tests(escrow): adding hasBalance check for module acc

* test(PayFee): adding happy path for PayFee tests

* tests(PayFee, PayFeeTimeout): adding tests

* fix: adding relayers back to IdentifiedPacket

* fix: removing refund acc from key

* fix: storing IdentifiedPacketFee in state instead of Fee

* feat: adding msg_server test for registerCPAddr, wiring for codec + stubs for sdk.Msg interface

* test: adding msg_server test for PayPacketFee

* test: adding PayPacketFeeAsync msg_server test

* chore: updating PayFee -> DistributeFee & minor nits

* nit: removing unnecessary nil check

* refactor: add portId to store key & use packetId as param

* fix: add DeleteFeeInEscrow & remove fee on successful distribution

* tests: adding validation & signer tests for PayFee/Async & updating proto to use Signer sdk standard

* chore: adding NewIdentifiedPacketFee fn

* fix: getter/setter for counterparty address + fix NewIdentifiedPacketFee

* fix: updating EscrowPacketFee with correct usage of coins api

* test: adding balance check for refund acc after escrow

* fix: remove unncessary errors

* test: updating escrow tests + miscellaneous fixes

* nit: updating var names

* docs: godoc

* refactor: IdentifiedPacketFee & Fee no longer pointers

* fixes: small fixes

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/keeper/keeper.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/keeper/msg_server.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/keeper/msg_server.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/types/msgs.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* nit: proto doc & error fix

* fix: escrow test

* test: updating distribute fee tests

* test: adding validation check for fee and updating tests

* test: allow counterparty address to be arbitrary string

* fix: message validation should pass if one fee is valid

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: nits

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* test: adding isZero check for msgs

Co-authored-by: Aditya <adityasripal@gmail.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* feat: update protos, grpc queries (#488)

* store refund address in IdentifiedPacketFee (#546)

* 29-Fee: Genesis (#557)

* proto: adding genesis state

* feat: add GetAllIdentifiedPacketFees

* feat: adding genesis.go & updating proto + app.go

* fix: removing PortId from genesis

* feat: adding GetAll for relayer addr/fee enabled chan + update genesis

* test: TestExportGenesis

* feat: update type + hook up to module.go

* fix: remove PortKey

* fix: imports + remove scoped keeper

* nit: using NewPacketId helper and updating helper def to have correct params

* feat: adding genesis validation + tests (#561)

* feat: adding genesis validation + tests

* fix: imports

* Update modules/apps/29-fee/types/genesis.go

* fix: nit

* Update modules/apps/29-fee/types/genesis_test.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* nit: imporve default gen val test

* chore: move packetId + val to channeltypes and use validate fn

Co-authored-by: Aditya <adityasripal@gmail.com>

* feat: add incentivised ack proto (#564)

* proto file

* incentivized ack proto

* Fee Closing Handshake (#551)

* add iterate logic

* add closing logic with tests

* add comments for panic

* change invariant breaking recovery to disabling middleware rather than panicing

* docs, tests, minor refactor

* Fee Middleware: Add ICS4 wrapper (#562)

* chore: add ICS4 wrapper

* fix: remove channelKeeper sender packet

* chore: add WriteAck

* feat: ics 29 packet callbacks (#357)

* update imports to v3

* regenerate proto files

* fix build

* fix: event caching for fee distribution (#661)

* proto file

* initial impl

* apply self review suggestions

Deduplicate fee distribution code.
Rename DistributeFee to DistributePacketFees.
Rename DistributeFeeTimeout to DistributePacketFeesOnTimeout

* fixup tests

rename validCoins.
DistributePacketFeesOnTimeout no longer has a valid error case
Add test case for invalid forward relayer address on DistributePacketFees.

* partially fix tests

timeout fee is still being distributed depsite WriteFn() not being called

* fix tests

* address code nit

Co-authored-by: Colin Axnér <25233464+colin-axner@users.noreply.github.com>

* ics4 callbacks fee middleware (#580)

* feat: adding WriteAcknowledgement

* updating genesis & relayer prefix

* fix: comment

* fix: comments

* Update modules/apps/29-fee/keeper/relay.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* feat: add DeleteForwardRelayerAddr helper + use Set in ack

* fix: SetForwardAddr

* chore: add panic

* fix: remove fmt

* test: add WriteAcknowledgement test

* Update modules/apps/29-fee/ibc_module.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* fix: remove print

* fix: WriteAck

* fix: use constructor

* Update modules/apps/29-fee/keeper/keeper.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: nits

* fix: remove found var not used

* test: adding check that forward relayer address is successfully deleted if set

* fix: merge issues

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Aditya <adityasripal@gmail.com>

* chore: making PacketId non nullable (#737)

* nits: proto spacing + naming (#739)

* nits: proto spacing + naming

* nit: update comment

* fix: go.mod

* nit: option above import proto

* fix: spacing

* sean/fix-proto-identified-fee-not-null (#746)

* nits: more ics29 nits (#741)

* nits: remove capital from error + add godoc

* nit: add Wrapf

* nit: use strings.TrimSpace

* nit: add err type for MsgPayPacketFee

* refactor: app version + add comment (#750)

* chore: remove error

* test: add test for whitespaced empty string

* nit: update err syntax (#747)

* nit: update err syntax

* nit: more

* nit: err syntax

* feat: adding Route, Type, GetSignBytes for all messages (#743)

* feat: adding Route, Type, GetSignBytes for all messages

* tests: adding tests for Route/Type/GetSignBytes

* hygiene: add validate fn for Fee (#748)

* hygiene: add validate fn for Fee

* Update modules/apps/29-fee/types/msgs.go

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* fix: error message

* test: move Validate to fee.go & abstract out test

* chore: remove test cases

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* fix: app.go (#789)

* refactor: ics29 json encoded version metadata (#883)

* adding metadata type to ics29 protos

* updating ics29 handshake handlers to support json encoded metadata

* updating tests to support json encoded metadata

* Update modules/apps/29-fee/ibc_module.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/ibc_module.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* renaming metadata version to fee_version

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: return nil on OnRecvPacket for async pay (#911)

* nit: ics29 comments (#910)

* fix: comments

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* chore: Add transfer test for ics29 (#901)

* begin writing transfer test for ics29

* finish writing transfer test

* refactor: ics29 OnChanOpenInit callback tests now use mock module (#924)

* refactor: OnChanOpenInit callback tests now use mock module

* Update modules/apps/29-fee/fee_test.go

* feat: allow multiple addrs to incentivize packets (#915)

* [WIP] allow multiple addresses to incentivize a packet

* distribute multiple fees, fix broken tests

* use NewIdentifiedPacketFees in EscrowPacketFee

* cleanup var naming

* removing commented out code and adding test case

* Update modules/apps/29-fee/ibc_module.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* fix: refund RecvFee if ForwardAddr is invalid

* test: update tests to distribute multiple identified fees

* refactor: clean up DistrPacketFees

* refactor: using .Empty() helper func for code hygiene

Co-authored-by: Aditya <adityasripal@gmail.com>
Co-authored-by: Sean King <sean@seking.dev>
Co-authored-by: Sean King <seantking@users.noreply.github.com>

* chore: remove spec directory from ics29 (#934)

* refactor: use mock module for ics29 closing handshakes (#926)

* refactor: use mock module for closing handshakes in ics29

* self-review fix

* refactor: use mock module for ics29 grpc_query_test.go (#933)

* refactor: readjust keeper_test.go to use mock module (#930)

* fix: fields for genesis should be non nullable (#938)

* refactor: use mock module for ics29 escrow_test.go (#932)

* refactor: use mock module for ics29 genesis_test.go (#931)

* ics29:feat: emit event escrow (#914)

* feat: emit EventTypeSendIncentivizedPacket event on EscrowPacket

* fix: string conversion

* refactor: add helper fn for emit event

* chore: godoc

* nit: use .String())

* refactor: OnRecvPacket to use mock module (#927)

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* refactor: ics29 OnChanOpenTry/Ack use mock module for testing instead of ics20 (#925)

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* refactor: use mock module for OnAcknowledgePacket callback testing (#929)

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* refactor: OnTimeoutPacket to use mock module (#928)

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* chore: add packet id arg to EscrowPacketFee (#951)

* adding packet id arg to EscrowPacketFee

* updating tests

* review adaptations

* chore: remove legacy testing functions (#954)

* fix:ics29: WriteAck update + adding success bool to IncentivizedAck (#952)

* fix: updating WriteAck & adding Success boolean to IncentivizedAcknowledgement

* feat: adding check of is fee enabled

* nit: change successful to underlying_application_success

* test: adding seperate test for fee disabled write async

* Update modules/apps/29-fee/ibc_module_test.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* test: adding check to compare hash of acks

* fix: var name

Co-authored-by: Aditya <adityasripal@gmail.com>

* chore: add cli cmd to incentivize existing packet (async) (#965)

* chore: add cli to incentivize existing packets

* Update modules/apps/29-fee/client/cli/cli.go

* Update modules/apps/29-fee/client/cli/cli.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* chore: update cli example

Co-authored-by: Aditya <adityasripal@gmail.com>

* ics29:fix: counterparty addr must contain channelID (#937)

* fix: counterparty address must chain channelID

* nit: updating var name

* test: adding validation check for channelID

* nit: fn names

* chore: fix err msg (#971)

* ics29:fix: store source address for query later on WriteAck (#912)

* fix: for async WriteAck store source address for query later

* ics29:fix: update genesis type (#913)

* fix: adding ForwardRelayerAddresses to genesis

* fix: trimspace on string check

* nit: err + trimspace error case

* refactor: updating WriteAck + keeper fn name

* Update modules/apps/29-fee/keeper/relay.go

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* chore: remove legacy testing functions (#954)

* fix:ics29: WriteAck update + adding success bool to IncentivizedAck (#952)

* fix: updating WriteAck & adding Success boolean to IncentivizedAcknowledgement

* feat: adding check of is fee enabled

* nit: change successful to underlying_application_success

* test: adding seperate test for fee disabled write async

* Update modules/apps/29-fee/ibc_module_test.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* test: adding check to compare hash of acks

* fix: var name

Co-authored-by: Aditya <adityasripal@gmail.com>

Co-authored-by: Damian Nolan <damiannolan@gmail.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Aditya <adityasripal@gmail.com>

* refactor: make fee storage more efficient (#956)

* adding new proto types and codegen

* refactoring ics29 fees for more efficient storage

* updating tests

* fixing typo in protodoc comments

* chore: update ics29 genesis state to support multiple packet fees (#957)

* adding new proto types and codegen

* refactoring ics29 fees for more efficient storage

* updating tests

* updating genesis protos to use IdentifiedPacketFees

* updating init/export genesis state functionality and tests

* chore: update MsgPayPacketFeeAsync fields (#979)

* adding new proto types and codegen

* refactoring ics29 fees for more efficient storage

* updating tests

* fixing typo in protodoc comments

* updating protos and codegen

* updating MsgPayPacketFeeAsync handler and tests

* chore: add ParseKeyFeesInEscrow helper function (#998)

* chore: update grpc queries to handle multiple fees (#967)

* adding new proto types and codegen

* refactoring ics29 fees for more efficient storage

* updating tests

* updating protos and existing queries

* updating grpc queries and refactoring tests

* format error correct in favour of proto string() method

* leveraging ParseKeyFeesInEscrow to obtain  packet id in query

* feat: CLI cmd for MsgRegisterCounterpartyAddress (#987)

* feat: CLI cmd for MsgRegisterCounterpartyAddress

* fix: examples

* Update modules/apps/29-fee/client/cli/tx.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/client/cli/tx.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* chore: remove print

* nit: update address for counterparty

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: ics29: switch source with destintion for chan/port IDs (#961)

* fix: switch source with destintion for chan/port IDs

* fix: blunder

* test: adding tests in case of incorrect channel/port id

* test: moving check to WriteAcknowledgement

* add test case for Get/Set counterparty address

* nit: path name

* Update modules/apps/29-fee/keeper/msg_server_test.go

* test: cleanup 29-fee/types tests (#1006)

* feat: grpc query total recv packet fees (#1015)

* adding query for total packet recv fees to proto query server

* adding total packet recv fee query impl and tests

* updating doc comments

* chore: switch code ordering (#1025)

* feat: Add ParseKeyFeeEnabled and rename FeeEnabledKey -> KeyFeeEnabled (#1023)

* chore: add ParseKeyFeesInEscrow helper function

* feat: add ParseKeyFeeEnabled function and rename FeeEnabledKey to KeyFeeEnabled

* feat: ics29 cli for query total recv fees (#1035)

* feat: grpc query total ack fees (#1032)

* adding query for total packet recv fees to proto query server

* adding total packet recv fee query impl and tests

* updating doc comments

* adding protos and codegen

* adding total ack fees query and tests

* fixing protodoc comment

* feat: grpc query total timeout fees (#1033)

* adding query for total packet recv fees to proto query server

* adding total packet recv fee query impl and tests

* updating doc comments

* adding protos and codegen

* adding total ack fees query and tests

* adding protos and codegen

* adding query total timeout fees and tests

* fixing protodoc comment

* fixing protodoc comment

* feat: adding clis for total ack and timeout queries (#1043)

* add ParseKeyForwardRelayerAddress function + test (#1046)

* chore: remove unused ics29 keeper funcs (#1044)

* removing keys, adding additional test, moving event attribute keys

* removing unused code and updating tests

* removing unused IdentifiedPacketFee type

* chore: add gRPC for querying incentivized packets for a specific channel (#983)

* generate proto files

* feat: add gRPC for querying incentivized packets for a specific channel

* test: add gRPC test for incentivized packets for channel query

* fix build

* partially fix tests

* chore: fix tests

* deduplicate code

* chore: code cleanup

* fix build

* remove changes from merge conflict

* nit: rename c to goCtx

* add function EscrowAccountHasBalance (#1042)

* add function EscrowAccountHasBalance

* change API to use sdk.Coins

* feat: ParseKeyCounterpartyRelayer function (#1047)

* chore: adding queries to cmd builder (#1057)

* chore: update ics29 protodocs (#1055)

* updating protodocs comments and regen code/docs

* Update proto/ibc/applications/fee/v1/tx.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* updating incentivized ack doc

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* add counter party channel ID to argument list of on channel open ack (#1159)

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* ADR 004: Fee module locking in the presence of severe bugs (#1060)

* add adr 004

* add to README

* Update docs/architecture/adr-004-ics29-lock-fee-module.md

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update docs/architecture/adr-004-ics29-lock-fee-module.md

Co-authored-by: Aditya <adityasripal@gmail.com>

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>
Co-authored-by: Aditya <adityasripal@gmail.com>

* nit: packetID var name (#1214)

* ics29: update with changes from main (#1221)

* add banner image (#1158)

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* Add alpha, beta, and rc release definitions (#1151)

## Description

The proposed definitions for each phase of our release cycle. Please feel free to adjust my wording

closes: #881 


---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* build(deps): bump google.golang.org/protobuf from 1.27.1 to 1.28.0 (#1164)

Bumps [google.golang.org/protobuf](https://github.com/protocolbuffers/protobuf-go) from 1.27.1 to 1.28.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/protocolbuffers/protobuf-go/releases">google.golang.org/protobuf's releases</a>.</em></p>
<blockquote>
<h2>v1.28.0</h2>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-overview">Overview</a></li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-notable-changes">Notable changes</a>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-recursion-limit">UnmarshalOption RecursionLimit</a></li>
</ul>
</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-breaking-changes">Upcoming breakage changes</a></li>
</ul>
<h2>Overview </h2>
<p>The release provides a new unmarshal option for limiting the recursion depth when unmarshalling nested messages to prevent stack overflows. (<a href="https://pkg.go.dev/google.golang.org/protobuf/proto#UnmarshalOptions.RecursionLimit"><code>UnmarshalOptions.RecursionLimit</code></a>).</p>
<h2>Notable changes </h2>
<p><strong>New features:</strong></p>
<ul>
<li><a href="https://go.dev/cl/340489">CL/340489</a>: testing/protocmp: add Message.Unwrap</li>
</ul>
<p><strong>Documentation improvements:</strong></p>
<ul>
<li><a href="https://go.dev/cl/339569">CL/339569</a>: reflect/protoreflect: add more docs on Value aliasing</li>
</ul>
<p><strong>Updated supported versions:</strong></p>
<ul>
<li><a href="https://go.dev/cl/370055">CL/370055</a>: all: update supported versions</li>
</ul>
<h3>UnmarshalOption RecursionLimit </h3>
<ul>
<li><a href="https://golang.org/cl/385854">CL/385854</a>: all: implement depth limit for unmarshalling</li>
</ul>
<p>The new <a href="https://pkg.go.dev/google.golang.org/protobuf/proto#UnmarshalOptions.RecursionLimit"><code>UnmarshalOptions.RecursionLimit</code></a> limits the maximum recursion depth when unmarshalling messages. The limit is applied for nested messages. When messages are nested deeper than the specified limit the unmarshalling will fail. If unspecified, a default limit of 10,000 is applied.</p>
<p>In addition to the configurable limit for message nesting a non-configurable recursion limit for <a href="https://developers.google.com/protocol-buffers/docs/proto#groups">group</a> nesting of 10,000 was introduced.</p>
<h2>Upcoming breakage changes </h2>
<p>The default recursion limit of 10,000 introduced in the release is subject to change. We want to align this limit with implementations for other languages in the long term. C++ and Java use a limit of 100 which is also the target for the Go implementation.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/32051b4f86e54c2142c7c05362c6e96ae3454a1c"><code>32051b4</code></a> all: release v1.28.0</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/3992ea83a23c00882339f33511074d251e19822c"><code>3992ea8</code></a> all: implement depth limit for unmarshaling</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/e5db2960ed1380681b571cdf4648230beefaf58b"><code>e5db296</code></a> all: update supported versions</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/3a9e1dc314e2cb57d6cb054df513f17586295fc7"><code>3a9e1dc</code></a> all: gofmt all</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/26e8bcb3c743193558d1a0ff540c9e05f999267d"><code>26e8bcb</code></a> all: remove unnecessary string([]byte) conversion in fmt.Sprintf with %s</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/5aec41b4809b9822a34e17acd06ae9ae9f41c13d"><code>5aec41b</code></a> testing/protocmp: add Message.Unwrap</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/05be61fde35dcaa3502f4430edee444a294d41c3"><code>05be61f</code></a> reflect/protoreflect: add more docs on Value aliasing</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/b03064a95cacfede187231741d9918a75653057d"><code>b03064a</code></a> all: start v1.27.1-devel</li>
<li>See full diff in <a href="https://github.com/protocolbuffers/protobuf-go/compare/v1.27.1...v1.28.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/protobuf&package-manager=go_modules&previous-version=1.27.1&new-version=1.28.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

* fix typos in the controller params (#1172)

## Description



closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* add versions for new releases (#1175)

## Description



closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* fix: link checker reporting broken milestone link (#1200)

* update roadmap for q2 2022 and deleted history roadmap (don't think we'll need it)

* requirements document for ICA (#1173)

* add requirements document for interchain accounts

* fix branch

* added number in tittle.

* apply suggestions from review

Co-authored-by: Aditya <adityasripal@gmail.com>

* review comment

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>
Co-authored-by: Aditya <adityasripal@gmail.com>

* imp: improve Logger performance (#1160)

* fix: Logger marshal errors

* changelog

* update

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>
Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Damian Nolan <damiannolan@gmail.com>
Co-authored-by: Aditya <adityasripal@gmail.com>
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Sean King <seantking@users.noreply.github.com>
Co-authored-by: Charly <charly@interchain.berlin>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Carlos Rodriguez <crodveg@yahoo.es>
Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>
Co-authored-by: Luke Rhoads <51463884+lukerhoads@users.noreply.github.com>
Co-authored-by: Damian Nolan <damiannolan@gmail.com>
Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
Co-authored-by: Jack Zampolin <jack.zampolin@gmail.com>
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: Leo Pang <34628052+allthatjazzleo@users.noreply.github.com>
Co-authored-by: Barrie Byron <barrie.byron@tendermint.com>
Co-authored-by: Tyler <48813565+technicallyty@users.noreply.github.com>
Co-authored-by: technicallyty <48813565+tytech3@users.noreply.github.com>
Co-authored-by: Barrie Byron <barriebyron.barriebyron@gmail.com>
Co-authored-by: Marko <marbar3778@yahoo.com>
Co-authored-by: Marko Baricevic <markobaricevic3778@gmail.com>
Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: nir1218 <nir1218@users.noreply.github.com>
Co-authored-by: Carlos Rodriguez <carlos@interchain.io>
Co-authored-by: Assaf Morami <assaf.morami@gmail.com>
Co-authored-by: Dan McCandless <dkmccandless@users.noreply.github.com>
Co-authored-by: Ramiro Carlucho <ramirocarlucho@gmail.com>
Co-authored-by: frog power 4000 <rigel.rozanski@gmail.com>
Co-authored-by: Sean King <sean@seking.dev>
damiannolan added a commit that referenced this pull request Apr 26, 2022
* refactor: allow the mock module to be used multiple times as base ibc application in middleware stack (#892)

## Description

Currently the `AppModule` assumes a single scoped keeper. This doesn't allow the mock module to be used as a base application for different middleware stack (ica stack, fee stack, etc)

I broke the API because I think it is cleaner. If we want this to be non API breaking, I can try to readjust

ref: #891 

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* feat: adding Pack/Unpack acknowledgement helper fns (#895)

* feat: adding Pack/Unpack acknowledgement helper fns

* chore: changelog

* fix: docs

* Update modules/core/04-channel/types/codec.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* imp: support custom keys for testing (#893)

* chore: add ParsePacketFromEvents testing helper function (#904)

## Description



ref: #891

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* fix: correctly claim capability for mock module, handle genesis exports (#921)

## Description

This contains two fixes:
- the capability being claimed by the scoped keeper was incorrect (mock.ModuleName -> port ID)
- the mock module wasn't accounting for non empty genesis state in capabilities (after genesis export, capability will create the bound ports so rebinding doesn't need to happen)

closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* docs: update migration docs for upgrade proposal in relation to ICS27 (#920)

## Description



closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* chore(ica): add trail of bits audit report (#903)

* chore(ica): add trail of bits audit report

* relocate the audit report for ICA

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* testing: adding multiple sender accounts for testing purposes (#935)

* testing: adding multiple sender accounts for testing puproses

* fix genesis setup (#936)

* Update testing/chain.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* refactor: code hygiene

* Update testing/chain.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* fix: setting totalySupply to empty

* nit: CamelCase not UPPERCASE

Co-authored-by: Aditya <adityasripal@gmail.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Create test chain with multiple validators (#942)

* testing: adding multiple sender accounts for testing puproses

* fix genesis setup (#936)

* Update testing/chain.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* refactor: code hygiene

* Update testing/chain.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* multi validator commit taken from @saione

* add function to pass custom valset

* add changelog

Co-authored-by: Sean King <sean@seking.dev>
Co-authored-by: Sean King <seantking@users.noreply.github.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* add changelog entry for SDK bump

* fix: classify client states without consensus states as expired (#941)

## Description



closes: #850 

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* chore: fix broken link (#972)

* add backport actions for v1.3.x and v2.1.x (#958)

* Revert "feat: adding Pack/Unpack acknowledgement helper fns (#895)" (#973)

This reverts commit 843b459635da8cedd92945141c4efe3a762f305d.

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* chore: update migration docs (#985)

* chore: update migration docs

* Update docs/migrations/v2-to-v3.md

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* chore: fix mispelled words (#991)

* fix: remove go mod tidy from proto-gen script (#989)

* bug: support base denoms with slashes (#978)

* bug: support base denoms with slashes

* add changelog entry

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* upgrade ics23 to v0.7 (#948)

* upgrade ics23 to v0.7-rc

* add changelog entry

* update ics23 to final 0.7

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* ibctesting: make `testing.T` public (#1020)

* add changelog entry for #941

* fix package import (#1007)

* feat: Add a function to initialize the ICS27 module via an upgrade proposal (#1037)

## Description



closes: #1034 

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* docs: add missing args to NewKeeper in integration docs (#1038)

## Description



This add some missing arguments to `ibckeeper.NewKeeper` and `ibctransferkeeper.NewKeeper` in integration docs

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [x] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* small fixes for v2 to v3 migration (#1016)

* small fixes for v2 to v3 migration

* review comment

* Update v2-to-v3.md

* add store upgrade documentation

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* add missing slash

* build(deps): bump actions/checkout from 2.4.0 to 3 (#1045)

Bumps [actions/checkout](https://github.com/actions/checkout) from 2.4.0 to 3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/actions/checkout/releases">actions/checkout's releases</a>.</em></p>
<blockquote>
<h2>v3.0.0</h2>
<ul>
<li>Update default runtime to node16</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>v2.3.1</h2>
<ul>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/284">Fix default branch resolution for .wiki and when using SSH</a></li>
</ul>
<h2>v2.3.0</h2>
<ul>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/278">Fallback to the default branch</a></li>
</ul>
<h2>v2.2.0</h2>
<ul>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/258">Fetch all history for all tags and branches when fetch-depth=0</a></li>
</ul>
<h2>v2.1.1</h2>
<ul>
<li>Changes to support GHES (<a href="https://github-redirect.dependabot.com/actions/checkout/pull/236">here</a> and <a href="https://github-redirect.dependabot.com/actions/checkout/pull/248">here</a>)</li>
</ul>
<h2>v2.1.0</h2>
<ul>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/191">Group output</a></li>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/199">Changes to support GHES alpha release</a></li>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/184">Persist core.sshCommand for submodules</a></li>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/163">Add support ssh</a></li>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/179">Convert submodule SSH URL to HTTPS, when not using SSH</a></li>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/157">Add submodule support</a></li>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/144">Follow proxy settings</a></li>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/141">Fix ref for pr closed event when a pr is merged</a></li>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/128">Fix issue checking detached when git less than 2.22</a></li>
</ul>
<h2>v2.0.0</h2>
<ul>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/108">Do not pass cred on command line</a></li>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/107">Add input persist-credentials</a></li>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/104">Fallback to REST API to download repo</a></li>
</ul>
<h2>v2 (beta)</h2>
<ul>
<li>Improved fetch performance
<ul>
<li>The default behavior now fetches only the SHA being checked-out</li>
</ul>
</li>
<li>Script authenticated git commands
<ul>
<li>Persists <code>with.token</code> in the local git config</li>
<li>Enables your scripts to run authenticated git commands</li>
<li>Post-job cleanup removes the token</li>
<li>Coming soon: Opt out by setting <code>with.persist-credentials</code> to <code>false</code></li>
</ul>
</li>
<li>Creates a local branch
<ul>
<li>No longer detached HEAD when checking out a branch</li>
<li>A local branch is created with the corresponding upstream branch set</li>
</ul>
</li>
<li>Improved layout</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/actions/checkout/commit/a12a3943b4bdde767164f792f33f40b04645d846"><code>a12a394</code></a> update readme for v3 (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/708">#708</a>)</li>
<li><a href="https://github.com/actions/checkout/commit/8f9e05e482293f862823fcca12d9eddfb3723131"><code>8f9e05e</code></a> Update to node 16 (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/689">#689</a>)</li>
<li><a href="https://github.com/actions/checkout/commit/230611dbd0eb52da1e1f4f7bc8bb0c3a339fc8b7"><code>230611d</code></a> Change secret name for PAT to not start with GITHUB_ (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/623">#623</a>)</li>
<li>See full diff in <a href="https://github.com/actions/checkout/compare/v2.4.0...v3">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=2.4.0&new-version=3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

* call packet.GetSequence() rather than passing the func as argument (#995)

* Add counterpartyChannelID param to IBCModule.OnChanOpenAck (#1086)

* add counterpartyChannelID param to IBCModule OnChanOpenAck()

* change testing mock

* change ica IBCModules ChannelOpenAck

* change transfer IBCModules ChannelOpenAck

* change core keeper ChannelOpenAck()

* CHANGELOG.md

* update v2-to-v3 migration doc

* Update docs/migrations/v2-to-v3.md

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* fix mirgation docs (#1091)

* fix: handle testing update client errors (#1094)

* replace channel keeper with IBC keeper in AnteDecorator (#950)

* replace channel keeper with IBC keeper in AnteDecorator and pass message to rpc handler

* fix error checking condition

* fix for proper way of getting go context

* refactor tests for ante handler

* review comment

* review comments and some fixes

* review comments

* execute message for update client as well

* add migration

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* add backport rules for v1.4.x and v2.2.x (#1085)

* ibctesting: custom voting power reduction for testing (#939)

* ibctesting: custom voting power reduction for testing

* changelog

* fix

* make T public

* fix

* revert changes

* fix test

* build(deps): bump github.com/spf13/cobra from 1.3.0 to 1.4.0 (#1105)

* build(deps): bump google.golang.org/grpc from 1.44.0 to 1.45.0 (#1098)

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.44.0 to 1.45.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.44.0...v1.45.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: adjust InitModule to account for empty controller and host keepers (#1120)

## Description



closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [x] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [x] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [x] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [x] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [x] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [x] Review `Codecov Report` in the comment section below once CI passes

* Merge pull request from GHSA-j658-c98j-fww4

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* fixes for the documentation about handling ack for SDK <= 0.45 (#1122)

* fixes for documentation

* review comment

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* Allow testing to update ValidatorSet (#1003)

* testing: adding multiple sender accounts for testing puproses

* fix genesis setup (#936)

* Update testing/chain.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* refactor: code hygiene

* Update testing/chain.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* multi validator commit taken from @saione

* add function to pass custom valset

* create simplest failing test

* progress

* fix changevalset test

* fix errors in tendermint package

* fix client types test

* fix client keeper

* fix cap functions

* fix genesis core tests

* fix ica tests

* fix doc

* CHANGELOG

* replace signer array with signer map

* add documentation

* fix merge

* documentation

* ordered signer array doc

* add new delegation and comment to change valset test

Co-authored-by: Sean King <sean@seking.dev>
Co-authored-by: Sean King <seantking@users.noreply.github.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* imp: create codeql-analysis action (#1128)

## Description



Noticed that [CodeQL](https://codeql.github.com/) wasn't enabled on the IBC-go repo

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* update changelog (#1131)

* update changelog

* fix typo

* build(deps): bump github.com/stretchr/testify from 1.7.0 to 1.7.1 (#1134)

Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.7.0 to 1.7.1.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.7.0...v1.7.1)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* call packet.GetSequence() rather than passing the func as argument (#1130)

* call packet.GetSequence() rather than passing the func as argument

* add changelog entry

* fix: prefix ResponseResultType enum for proto linting (#1143)

* build(deps): bump actions/cache from 2.1.7 to 3 (#1150)

Bumps [actions/cache](https://github.com/actions/cache) from 2.1.7 to 3.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v2.1.7...v3)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fixes for go-releaser configuration (#1148)

* set the pre-release status if the tag contains alpha, beta or rc

* add separate filter for final releases

* add banner image (#1158)

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* Add alpha, beta, and rc release definitions (#1151)

## Description

The proposed definitions for each phase of our release cycle. Please feel free to adjust my wording

closes: #881 


---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* build(deps): bump google.golang.org/protobuf from 1.27.1 to 1.28.0 (#1164)

Bumps [google.golang.org/protobuf](https://github.com/protocolbuffers/protobuf-go) from 1.27.1 to 1.28.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/protocolbuffers/protobuf-go/releases">google.golang.org/protobuf's releases</a>.</em></p>
<blockquote>
<h2>v1.28.0</h2>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-overview">Overview</a></li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-notable-changes">Notable changes</a>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-recursion-limit">UnmarshalOption RecursionLimit</a></li>
</ul>
</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-breaking-changes">Upcoming breakage changes</a></li>
</ul>
<h2>Overview </h2>
<p>The release provides a new unmarshal option for limiting the recursion depth when unmarshalling nested messages to prevent stack overflows. (<a href="https://pkg.go.dev/google.golang.org/protobuf/proto#UnmarshalOptions.RecursionLimit"><code>UnmarshalOptions.RecursionLimit</code></a>).</p>
<h2>Notable changes </h2>
<p><strong>New features:</strong></p>
<ul>
<li><a href="https://go.dev/cl/340489">CL/340489</a>: testing/protocmp: add Message.Unwrap</li>
</ul>
<p><strong>Documentation improvements:</strong></p>
<ul>
<li><a href="https://go.dev/cl/339569">CL/339569</a>: reflect/protoreflect: add more docs on Value aliasing</li>
</ul>
<p><strong>Updated supported versions:</strong></p>
<ul>
<li><a href="https://go.dev/cl/370055">CL/370055</a>: all: update supported versions</li>
</ul>
<h3>UnmarshalOption RecursionLimit </h3>
<ul>
<li><a href="https://golang.org/cl/385854">CL/385854</a>: all: implement depth limit for unmarshalling</li>
</ul>
<p>The new <a href="https://pkg.go.dev/google.golang.org/protobuf/proto#UnmarshalOptions.RecursionLimit"><code>UnmarshalOptions.RecursionLimit</code></a> limits the maximum recursion depth when unmarshalling messages. The limit is applied for nested messages. When messages are nested deeper than the specified limit the unmarshalling will fail. If unspecified, a default limit of 10,000 is applied.</p>
<p>In addition to the configurable limit for message nesting a non-configurable recursion limit for <a href="https://developers.google.com/protocol-buffers/docs/proto#groups">group</a> nesting of 10,000 was introduced.</p>
<h2>Upcoming breakage changes </h2>
<p>The default recursion limit of 10,000 introduced in the release is subject to change. We want to align this limit with implementations for other languages in the long term. C++ and Java use a limit of 100 which is also the target for the Go implementation.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/32051b4f86e54c2142c7c05362c6e96ae3454a1c"><code>32051b4</code></a> all: release v1.28.0</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/3992ea83a23c00882339f33511074d251e19822c"><code>3992ea8</code></a> all: implement depth limit for unmarshaling</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/e5db2960ed1380681b571cdf4648230beefaf58b"><code>e5db296</code></a> all: update supported versions</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/3a9e1dc314e2cb57d6cb054df513f17586295fc7"><code>3a9e1dc</code></a> all: gofmt all</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/26e8bcb3c743193558d1a0ff540c9e05f999267d"><code>26e8bcb</code></a> all: remove unnecessary string([]byte) conversion in fmt.Sprintf with %s</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/5aec41b4809b9822a34e17acd06ae9ae9f41c13d"><code>5aec41b</code></a> testing/protocmp: add Message.Unwrap</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/05be61fde35dcaa3502f4430edee444a294d41c3"><code>05be61f</code></a> reflect/protoreflect: add more docs on Value aliasing</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/b03064a95cacfede187231741d9918a75653057d"><code>b03064a</code></a> all: start v1.27.1-devel</li>
<li>See full diff in <a href="https://github.com/protocolbuffers/protobuf-go/compare/v1.27.1...v1.28.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/protobuf&package-manager=go_modules&previous-version=1.27.1&new-version=1.28.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

* fix typos in the controller params (#1172)

## Description



closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* add versions for new releases (#1175)

## Description



closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* fix: link checker reporting broken milestone link (#1200)

* update roadmap for q2 2022 and deleted history roadmap (don't think we'll need it)

* requirements document for ICA (#1173)

* add requirements document for interchain accounts

* fix branch

* added number in tittle.

* apply suggestions from review

Co-authored-by: Aditya <adityasripal@gmail.com>

* review comment

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>
Co-authored-by: Aditya <adityasripal@gmail.com>

* imp: improve Logger performance (#1160)

* fix: Logger marshal errors

* changelog

* update

* ICS 29: Fee Middleware (#276)

* scaffolding for 29-fee (#274)

* scaffolding for 29-fee

* fix build

* update keeper test

* remove module test

* feat: adding proto files for fee payment middleware (#272)

* feat: adding proto files for fee payment middleware

* grammar

* fix: remove generated .pb files

* fix: comment

* feat: adding PacketId type

* refactor: fee / genesis

* refactor: escrowed fees map

* Apply suggestions from code review

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update proto/ibc/applications/middleware/fee/v1/tx.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update proto/ibc/applications/middleware/fee/v1/tx.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update proto/ibc/applications/middleware/fee/v1/tx.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* refactor: use packetID + minor changes

* feat: adding query for all incentivized packets + some fixes

* feat: adding pagination to incentivized query

* fix: removing generated ibc directory + adding import/yaml

* fix: naming

* increase max depth for proto file searching and make proto all

* Update proto/ibc/applications/middleware/fee/v1/fee.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* refactor: remove file imports/add yaml/add argument for requests

* refactor: updating IdentifiedPacketFee

* fix: remove hidden file

* removing middleware dir & adding query

* remove junk file and update query rpcs

* Apply suggestions from code review

* Apply suggestions from code review

* remove query yaml, make proto-all

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Aditya Sripal <adityasripal@gmail.com>

* fix: removing unncessary fields MsgEscrow & adding query params (#300)

* fix: removing unncessary fields MsgEscrow & adding query params

* fix: grammar

* fix: add yaml

* feat: #258 Register Counterparty Address (#376)

* feat: adding MsgServer for RegisterCounterPartyAddress &
EscrowPacketFree

* test: adding test for ValidateBasic

* fix: removing validate basic check

* fix: removing empty file

* Update modules/apps/29-fee/keeper/msg_server.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/types/msgs.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/types/keys.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/keeper/keeper.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* fix: fixing typos, variable names, comments

* fix: updating import comments

* test: adding test for KeyRelayerAddress

* update: comments & key_test

* Update modules/apps/29-fee/keeper/msg_server.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: error message

* docs: updating RegisterCounterpartyAddress fn description

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Aditya <adityasripal@gmail.com>

* fix: remove comments for imports (#385)

* feat: Add handshake logic to ics29 (#307)

* do handshake logic, create test file

* do cap logic and fix build

* open handshake implementation and tests

* remove prints

* Update modules/apps/29-fee/module.go

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* debugging progress

* fee enabled flag

* cleanup handshake logic

* fix tests

* much cleaner simapp

* split module.go file

* cleanup and docs

* assert IBC interfaces are fulfilled in middleware

* Update modules/apps/transfer/module.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix unnecessary crossing hello logic

* fix version negotiation bugs and improve tests

* cleanup tests

* Apply suggestions from code review

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* address rest of colin comments

Co-authored-by: Sean King <seantking@users.noreply.github.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Fee Middleware: Escrow logic (#465)

* fix: adding second endpoint for async pay fee + renaming types

* feat: adding escrow logic

* feat: updating proto types & escrow logic

* fix: stub fn & proto comment

* feat: adding PayFee & PayFeeTimeout & escrow_test

* test: adding happy path for EscrowPacketFee

* fix: comments, error handling

* fix: comments & grammar

* test: adding unhappy path for escrow

* tests(escrow): adding hasBalance check for module acc

* test(PayFee): adding happy path for PayFee tests

* tests(PayFee, PayFeeTimeout): adding tests

* fix: adding relayers back to IdentifiedPacket

* fix: removing refund acc from key

* fix: storing IdentifiedPacketFee in state instead of Fee

* feat: adding msg_server test for registerCPAddr, wiring for codec + stubs for sdk.Msg interface

* test: adding msg_server test for PayPacketFee

* test: adding PayPacketFeeAsync msg_server test

* chore: updating PayFee -> DistributeFee & minor nits

* nit: removing unnecessary nil check

* refactor: add portId to store key & use packetId as param

* fix: add DeleteFeeInEscrow & remove fee on successful distribution

* tests: adding validation & signer tests for PayFee/Async & updating proto to use Signer sdk standard

* chore: adding NewIdentifiedPacketFee fn

* fix: getter/setter for counterparty address + fix NewIdentifiedPacketFee

* fix: updating EscrowPacketFee with correct usage of coins api

* test: adding balance check for refund acc after escrow

* fix: remove unncessary errors

* test: updating escrow tests + miscellaneous fixes

* nit: updating var names

* docs: godoc

* refactor: IdentifiedPacketFee & Fee no longer pointers

* fixes: small fixes

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/keeper/keeper.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/keeper/msg_server.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/keeper/msg_server.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/types/msgs.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* nit: proto doc & error fix

* fix: escrow test

* test: updating distribute fee tests

* test: adding validation check for fee and updating tests

* test: allow counterparty address to be arbitrary string

* fix: message validation should pass if one fee is valid

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: nits

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* test: adding isZero check for msgs

Co-authored-by: Aditya <adityasripal@gmail.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* feat: update protos, grpc queries (#488)

* store refund address in IdentifiedPacketFee (#546)

* 29-Fee: Genesis (#557)

* proto: adding genesis state

* feat: add GetAllIdentifiedPacketFees

* feat: adding genesis.go & updating proto + app.go

* fix: removing PortId from genesis

* feat: adding GetAll for relayer addr/fee enabled chan + update genesis

* test: TestExportGenesis

* feat: update type + hook up to module.go

* fix: remove PortKey

* fix: imports + remove scoped keeper

* nit: using NewPacketId helper and updating helper def to have correct params

* feat: adding genesis validation + tests (#561)

* feat: adding genesis validation + tests

* fix: imports

* Update modules/apps/29-fee/types/genesis.go

* fix: nit

* Update modules/apps/29-fee/types/genesis_test.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* nit: imporve default gen val test

* chore: move packetId + val to channeltypes and use validate fn

Co-authored-by: Aditya <adityasripal@gmail.com>

* feat: add incentivised ack proto (#564)

* proto file

* incentivized ack proto

* Fee Closing Handshake (#551)

* add iterate logic

* add closing logic with tests

* add comments for panic

* change invariant breaking recovery to disabling middleware rather than panicing

* docs, tests, minor refactor

* Fee Middleware: Add ICS4 wrapper (#562)

* chore: add ICS4 wrapper

* fix: remove channelKeeper sender packet

* chore: add WriteAck

* feat: ics 29 packet callbacks (#357)

* update imports to v3

* regenerate proto files

* fix build

* fix: event caching for fee distribution (#661)

* proto file

* initial impl

* apply self review suggestions

Deduplicate fee distribution code.
Rename DistributeFee to DistributePacketFees.
Rename DistributeFeeTimeout to DistributePacketFeesOnTimeout

* fixup tests

rename validCoins.
DistributePacketFeesOnTimeout no longer has a valid error case
Add test case for invalid forward relayer address on DistributePacketFees.

* partially fix tests

timeout fee is still being distributed depsite WriteFn() not being called

* fix tests

* address code nit

Co-authored-by: Colin Axnér <25233464+colin-axner@users.noreply.github.com>

* ics4 callbacks fee middleware (#580)

* feat: adding WriteAcknowledgement

* updating genesis & relayer prefix

* fix: comment

* fix: comments

* Update modules/apps/29-fee/keeper/relay.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* feat: add DeleteForwardRelayerAddr helper + use Set in ack

* fix: SetForwardAddr

* chore: add panic

* fix: remove fmt

* test: add WriteAcknowledgement test

* Update modules/apps/29-fee/ibc_module.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* fix: remove print

* fix: WriteAck

* fix: use constructor

* Update modules/apps/29-fee/keeper/keeper.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: nits

* fix: remove found var not used

* test: adding check that forward relayer address is successfully deleted if set

* fix: merge issues

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Aditya <adityasripal@gmail.com>

* chore: making PacketId non nullable (#737)

* nits: proto spacing + naming (#739)

* nits: proto spacing + naming

* nit: update comment

* fix: go.mod

* nit: option above import proto

* fix: spacing

* sean/fix-proto-identified-fee-not-null (#746)

* nits: more ics29 nits (#741)

* nits: remove capital from error + add godoc

* nit: add Wrapf

* nit: use strings.TrimSpace

* nit: add err type for MsgPayPacketFee

* refactor: app version + add comment (#750)

* chore: remove error

* test: add test for whitespaced empty string

* nit: update err syntax (#747)

* nit: update err syntax

* nit: more

* nit: err syntax

* feat: adding Route, Type, GetSignBytes for all messages (#743)

* feat: adding Route, Type, GetSignBytes for all messages

* tests: adding tests for Route/Type/GetSignBytes

* hygiene: add validate fn for Fee (#748)

* hygiene: add validate fn for Fee

* Update modules/apps/29-fee/types/msgs.go

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* fix: error message

* test: move Validate to fee.go & abstract out test

* chore: remove test cases

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* fix: app.go (#789)

* refactor: ics29 json encoded version metadata (#883)

* adding metadata type to ics29 protos

* updating ics29 handshake handlers to support json encoded metadata

* updating tests to support json encoded metadata

* Update modules/apps/29-fee/ibc_module.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/ibc_module.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* renaming metadata version to fee_version

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: return nil on OnRecvPacket for async pay (#911)

* nit: ics29 comments (#910)

* fix: comments

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* chore: Add transfer test for ics29 (#901)

* begin writing transfer test for ics29

* finish writing transfer test

* refactor: ics29 OnChanOpenInit callback tests now use mock module (#924)

* refactor: OnChanOpenInit callback tests now use mock module

* Update modules/apps/29-fee/fee_test.go

* feat: allow multiple addrs to incentivize packets (#915)

* [WIP] allow multiple addresses to incentivize a packet

* distribute multiple fees, fix broken tests

* use NewIdentifiedPacketFees in EscrowPacketFee

* cleanup var naming

* removing commented out code and adding test case

* Update modules/apps/29-fee/ibc_module.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* fix: refund RecvFee if ForwardAddr is invalid

* test: update tests to distribute multiple identified fees

* refactor: clean up DistrPacketFees

* refactor: using .Empty() helper func for code hygiene

Co-authored-by: Aditya <adityasripal@gmail.com>
Co-authored-by: Sean King <sean@seking.dev>
Co-authored-by: Sean King <seantking@users.noreply.github.com>

* chore: remove spec directory from ics29 (#934)

* refactor: use mock module for ics29 closing handshakes (#926)

* refactor: use mock module for closing handshakes in ics29

* self-review fix

* refactor: use mock module for ics29 grpc_query_test.go (#933)

* refactor: readjust keeper_test.go to use mock module (#930)

* fix: fields for genesis should be non nullable (#938)

* refactor: use mock module for ics29 escrow_test.go (#932)

* refactor: use mock module for ics29 genesis_test.go (#931)

* ics29:feat: emit event escrow (#914)

* feat: emit EventTypeSendIncentivizedPacket event on EscrowPacket

* fix: string conversion

* refactor: add helper fn for emit event

* chore: godoc

* nit: use .String())

* refactor: OnRecvPacket to use mock module (#927)

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* refactor: ics29 OnChanOpenTry/Ack use mock module for testing instead of ics20 (#925)

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* refactor: use mock module for OnAcknowledgePacket callback testing (#929)

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* refactor: OnTimeoutPacket to use mock module (#928)

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* chore: add packet id arg to EscrowPacketFee (#951)

* adding packet id arg to EscrowPacketFee

* updating tests

* review adaptations

* chore: remove legacy testing functions (#954)

* fix:ics29: WriteAck update + adding success bool to IncentivizedAck (#952)

* fix: updating WriteAck & adding Success boolean to IncentivizedAcknowledgement

* feat: adding check of is fee enabled

* nit: change successful to underlying_application_success

* test: adding seperate test for fee disabled write async

* Update modules/apps/29-fee/ibc_module_test.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* test: adding check to compare hash of acks

* fix: var name

Co-authored-by: Aditya <adityasripal@gmail.com>

* chore: add cli cmd to incentivize existing packet (async) (#965)

* chore: add cli to incentivize existing packets

* Update modules/apps/29-fee/client/cli/cli.go

* Update modules/apps/29-fee/client/cli/cli.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* chore: update cli example

Co-authored-by: Aditya <adityasripal@gmail.com>

* ics29:fix: counterparty addr must contain channelID (#937)

* fix: counterparty address must chain channelID

* nit: updating var name

* test: adding validation check for channelID

* nit: fn names

* chore: fix err msg (#971)

* ics29:fix: store source address for query later on WriteAck (#912)

* fix: for async WriteAck store source address for query later

* ics29:fix: update genesis type (#913)

* fix: adding ForwardRelayerAddresses to genesis

* fix: trimspace on string check

* nit: err + trimspace error case

* refactor: updating WriteAck + keeper fn name

* Update modules/apps/29-fee/keeper/relay.go

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* chore: remove legacy testing functions (#954)

* fix:ics29: WriteAck update + adding success bool to IncentivizedAck (#952)

* fix: updating WriteAck & adding Success boolean to IncentivizedAcknowledgement

* feat: adding check of is fee enabled

* nit: change successful to underlying_application_success

* test: adding seperate test for fee disabled write async

* Update modules/apps/29-fee/ibc_module_test.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* test: adding check to compare hash of acks

* fix: var name

Co-authored-by: Aditya <adityasripal@gmail.com>

Co-authored-by: Damian Nolan <damiannolan@gmail.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Aditya <adityasripal@gmail.com>

* refactor: make fee storage more efficient (#956)

* adding new proto types and codegen

* refactoring ics29 fees for more efficient storage

* updating tests

* fixing typo in protodoc comments

* chore: update ics29 genesis state to support multiple packet fees (#957)

* adding new proto types and codegen

* refactoring ics29 fees for more efficient storage

* updating tests

* updating genesis protos to use IdentifiedPacketFees

* updating init/export genesis state functionality and tests

* chore: update MsgPayPacketFeeAsync fields (#979)

* adding new proto types and codegen

* refactoring ics29 fees for more efficient storage

* updating tests

* fixing typo in protodoc comments

* updating protos and codegen

* updating MsgPayPacketFeeAsync handler and tests

* chore: add ParseKeyFeesInEscrow helper function (#998)

* chore: update grpc queries to handle multiple fees (#967)

* adding new proto types and codegen

* refactoring ics29 fees for more efficient storage

* updating tests

* updating protos and existing queries

* updating grpc queries and refactoring tests

* format error correct in favour of proto string() method

* leveraging ParseKeyFeesInEscrow to obtain  packet id in query

* feat: CLI cmd for MsgRegisterCounterpartyAddress (#987)

* feat: CLI cmd for MsgRegisterCounterpartyAddress

* fix: examples

* Update modules/apps/29-fee/client/cli/tx.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/client/cli/tx.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* chore: remove print

* nit: update address for counterparty

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: ics29: switch source with destintion for chan/port IDs (#961)

* fix: switch source with destintion for chan/port IDs

* fix: blunder

* test: adding tests in case of incorrect channel/port id

* test: moving check to WriteAcknowledgement

* add test case for Get/Set counterparty address

* nit: path name

* Update modules/apps/29-fee/keeper/msg_server_test.go

* test: cleanup 29-fee/types tests (#1006)

* feat: grpc query total recv packet fees (#1015)

* adding query for total packet recv fees to proto query server

* adding total packet recv fee query impl and tests

* updating doc comments

* chore: switch code ordering (#1025)

* feat: Add ParseKeyFeeEnabled and rename FeeEnabledKey -> KeyFeeEnabled (#1023)

* chore: add ParseKeyFeesInEscrow helper function

* feat: add ParseKeyFeeEnabled function and rename FeeEnabledKey to KeyFeeEnabled

* feat: ics29 cli for query total recv fees (#1035)

* feat: grpc query total ack fees (#1032)

* adding query for total packet recv fees to proto query server

* adding total packet recv fee query impl and tests

* updating doc comments

* adding protos and codegen

* adding total ack fees query and tests

* fixing protodoc comment

* feat: grpc query total timeout fees (#1033)

* adding query for total packet recv fees to proto query server

* adding total packet recv fee query impl and tests

* updating doc comments

* adding protos and codegen

* adding total ack fees query and tests

* adding protos and codegen

* adding query total timeout fees and tests

* fixing protodoc comment

* fixing protodoc comment

* feat: adding clis for total ack and timeout queries (#1043)

* add ParseKeyForwardRelayerAddress function + test (#1046)

* chore: remove unused ics29 keeper funcs (#1044)

* removing keys, adding additional test, moving event attribute keys

* removing unused code and updating tests

* removing unused IdentifiedPacketFee type

* chore: add gRPC for querying incentivized packets for a specific channel (#983)

* generate proto files

* feat: add gRPC for querying incentivized packets for a specific channel

* test: add gRPC test for incentivized packets for channel query

* fix build

* partially fix tests

* chore: fix tests

* deduplicate code

* chore: code cleanup

* fix build

* remove changes from merge conflict

* nit: rename c to goCtx

* add function EscrowAccountHasBalance (#1042)

* add function EscrowAccountHasBalance

* change API to use sdk.Coins

* feat: ParseKeyCounterpartyRelayer function (#1047)

* chore: adding queries to cmd builder (#1057)

* chore: update ics29 protodocs (#1055)

* updating protodocs comments and regen code/docs

* Update proto/ibc/applications/fee/v1/tx.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* updating incentivized ack doc

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* add counter party channel ID to argument list of on channel open ack (#1159)

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* ADR 004: Fee module locking in the presence of severe bugs (#1060)

* add adr 004

* add to README

* Update docs/architecture/adr-004-ics29-lock-fee-module.md

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update docs/architecture/adr-004-ics29-lock-fee-module.md

Co-authored-by: Aditya <adityasripal@gmail.com>

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>
Co-authored-by: Aditya <adityasripal@gmail.com>

* nit: packetID var name (#1214)

* ics29: update with changes from main (#1221)

* add banner image (#1158)

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* Add alpha, beta, and rc release definitions (#1151)

## Description

The proposed definitions for each phase of our release cycle. Please feel free to adjust my wording

closes: #881 


---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* build(deps): bump google.golang.org/protobuf from 1.27.1 to 1.28.0 (#1164)

Bumps [google.golang.org/protobuf](https://github.com/protocolbuffers/protobuf-go) from 1.27.1 to 1.28.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/protocolbuffers/protobuf-go/releases">google.golang.org/protobuf's releases</a>.</em></p>
<blockquote>
<h2>v1.28.0</h2>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-overview">Overview</a></li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-notable-changes">Notable changes</a>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-recursion-limit">UnmarshalOption RecursionLimit</a></li>
</ul>
</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-breaking-changes">Upcoming breakage changes</a></li>
</ul>
<h2>Overview </h2>
<p>The release provides a new unmarshal option for limiting the recursion depth when unmarshalling nested messages to prevent stack overflows. (<a href="https://pkg.go.dev/google.golang.org/protobuf/proto#UnmarshalOptions.RecursionLimit"><code>UnmarshalOptions.RecursionLimit</code></a>).</p>
<h2>Notable changes </h2>
<p><strong>New features:</strong></p>
<ul>
<li><a href="https://go.dev/cl/340489">CL/340489</a>: testing/protocmp: add Message.Unwrap</li>
</ul>
<p><strong>Documentation improvements:</strong></p>
<ul>
<li><a href="https://go.dev/cl/339569">CL/339569</a>: reflect/protoreflect: add more docs on Value aliasing</li>
</ul>
<p><strong>Updated supported versions:</strong></p>
<ul>
<li><a href="https://go.dev/cl/370055">CL/370055</a>: all: update supported versions</li>
</ul>
<h3>UnmarshalOption RecursionLimit </h3>
<ul>
<li><a href="https://golang.org/cl/385854">CL/385854</a>: all: implement depth limit for unmarshalling</li>
</ul>
<p>The new <a href="https://pkg.go.dev/google.golang.org/protobuf/proto#UnmarshalOptions.RecursionLimit"><code>UnmarshalOptions.RecursionLimit</code></a> limits the maximum recursion depth when unmarshalling messages. The limit is applied for nested messages. When messages are nested deeper than the specified limit the unmarshalling will fail. If unspecified, a default limit of 10,000 is applied.</p>
<p>In addition to the configurable limit for message nesting a non-configurable recursion limit for <a href="https://developers.google.com/protocol-buffers/docs/proto#groups">group</a> nesting of 10,000 was introduced.</p>
<h2>Upcoming breakage changes </h2>
<p>The default recursion limit of 10,000 introduced in the release is subject to change. We want to align this limit with implementations for other languages in the long term. C++ and Java use a limit of 100 which is also the target for the Go implementation.</p>
</blockquote>
</details>
<details>
<summary>…
colin-axner added a commit that referenced this pull request Aug 3, 2022
* fix mirgation docs (#1091)

* fix: handle testing update client errors (#1094)

* replace channel keeper with IBC keeper in AnteDecorator (#950)

* replace channel keeper with IBC keeper in AnteDecorator and pass message to rpc handler

* fix error checking condition

* fix for proper way of getting go context

* refactor tests for ante handler

* review comment

* review comments and some fixes

* review comments

* execute message for update client as well

* add migration

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* add backport rules for v1.4.x and v2.2.x (#1085)

* ibctesting: custom voting power reduction for testing (#939)

* ibctesting: custom voting power reduction for testing

* changelog

* fix

* make T public

* fix

* revert changes

* fix test

* build(deps): bump github.com/spf13/cobra from 1.3.0 to 1.4.0 (#1105)

* build(deps): bump google.golang.org/grpc from 1.44.0 to 1.45.0 (#1098)

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.44.0 to 1.45.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.44.0...v1.45.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: adjust InitModule to account for empty controller and host keepers (#1120)

## Description



closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [x] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [x] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [x] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [x] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [x] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [x] Review `Codecov Report` in the comment section below once CI passes

* Merge pull request from GHSA-j658-c98j-fww4

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* fixes for the documentation about handling ack for SDK <= 0.45 (#1122)

* fixes for documentation

* review comment

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* Allow testing to update ValidatorSet (#1003)

* testing: adding multiple sender accounts for testing puproses

* fix genesis setup (#936)

* Update testing/chain.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* refactor: code hygiene

* Update testing/chain.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* multi validator commit taken from @saione

* add function to pass custom valset

* create simplest failing test

* progress

* fix changevalset test

* fix errors in tendermint package

* fix client types test

* fix client keeper

* fix cap functions

* fix genesis core tests

* fix ica tests

* fix doc

* CHANGELOG

* replace signer array with signer map

* add documentation

* fix merge

* documentation

* ordered signer array doc

* add new delegation and comment to change valset test

Co-authored-by: Sean King <sean@seking.dev>
Co-authored-by: Sean King <seantking@users.noreply.github.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* imp: create codeql-analysis action (#1128)

## Description



Noticed that [CodeQL](https://codeql.github.com/) wasn't enabled on the IBC-go repo

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* update changelog (#1131)

* update changelog

* fix typo

* build(deps): bump github.com/stretchr/testify from 1.7.0 to 1.7.1 (#1134)

Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.7.0 to 1.7.1.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.7.0...v1.7.1)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* call packet.GetSequence() rather than passing the func as argument (#1130)

* call packet.GetSequence() rather than passing the func as argument

* add changelog entry

* fix: prefix ResponseResultType enum for proto linting (#1143)

* build(deps): bump actions/cache from 2.1.7 to 3 (#1150)

Bumps [actions/cache](https://github.com/actions/cache) from 2.1.7 to 3.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v2.1.7...v3)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fixes for go-releaser configuration (#1148)

* set the pre-release status if the tag contains alpha, beta or rc

* add separate filter for final releases

* add banner image (#1158)

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* Add alpha, beta, and rc release definitions (#1151)

## Description

The proposed definitions for each phase of our release cycle. Please feel free to adjust my wording

closes: #881 


---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* build(deps): bump google.golang.org/protobuf from 1.27.1 to 1.28.0 (#1164)

Bumps [google.golang.org/protobuf](https://github.com/protocolbuffers/protobuf-go) from 1.27.1 to 1.28.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/protocolbuffers/protobuf-go/releases">google.golang.org/protobuf's releases</a>.</em></p>
<blockquote>
<h2>v1.28.0</h2>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-overview">Overview</a></li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-notable-changes">Notable changes</a>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-recursion-limit">UnmarshalOption RecursionLimit</a></li>
</ul>
</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-breaking-changes">Upcoming breakage changes</a></li>
</ul>
<h2>Overview </h2>
<p>The release provides a new unmarshal option for limiting the recursion depth when unmarshalling nested messages to prevent stack overflows. (<a href="https://pkg.go.dev/google.golang.org/protobuf/proto#UnmarshalOptions.RecursionLimit"><code>UnmarshalOptions.RecursionLimit</code></a>).</p>
<h2>Notable changes </h2>
<p><strong>New features:</strong></p>
<ul>
<li><a href="https://go.dev/cl/340489">CL/340489</a>: testing/protocmp: add Message.Unwrap</li>
</ul>
<p><strong>Documentation improvements:</strong></p>
<ul>
<li><a href="https://go.dev/cl/339569">CL/339569</a>: reflect/protoreflect: add more docs on Value aliasing</li>
</ul>
<p><strong>Updated supported versions:</strong></p>
<ul>
<li><a href="https://go.dev/cl/370055">CL/370055</a>: all: update supported versions</li>
</ul>
<h3>UnmarshalOption RecursionLimit </h3>
<ul>
<li><a href="https://golang.org/cl/385854">CL/385854</a>: all: implement depth limit for unmarshalling</li>
</ul>
<p>The new <a href="https://pkg.go.dev/google.golang.org/protobuf/proto#UnmarshalOptions.RecursionLimit"><code>UnmarshalOptions.RecursionLimit</code></a> limits the maximum recursion depth when unmarshalling messages. The limit is applied for nested messages. When messages are nested deeper than the specified limit the unmarshalling will fail. If unspecified, a default limit of 10,000 is applied.</p>
<p>In addition to the configurable limit for message nesting a non-configurable recursion limit for <a href="https://developers.google.com/protocol-buffers/docs/proto#groups">group</a> nesting of 10,000 was introduced.</p>
<h2>Upcoming breakage changes </h2>
<p>The default recursion limit of 10,000 introduced in the release is subject to change. We want to align this limit with implementations for other languages in the long term. C++ and Java use a limit of 100 which is also the target for the Go implementation.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/32051b4f86e54c2142c7c05362c6e96ae3454a1c"><code>32051b4</code></a> all: release v1.28.0</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/3992ea83a23c00882339f33511074d251e19822c"><code>3992ea8</code></a> all: implement depth limit for unmarshaling</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/e5db2960ed1380681b571cdf4648230beefaf58b"><code>e5db296</code></a> all: update supported versions</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/3a9e1dc314e2cb57d6cb054df513f17586295fc7"><code>3a9e1dc</code></a> all: gofmt all</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/26e8bcb3c743193558d1a0ff540c9e05f999267d"><code>26e8bcb</code></a> all: remove unnecessary string([]byte) conversion in fmt.Sprintf with %s</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/5aec41b4809b9822a34e17acd06ae9ae9f41c13d"><code>5aec41b</code></a> testing/protocmp: add Message.Unwrap</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/05be61fde35dcaa3502f4430edee444a294d41c3"><code>05be61f</code></a> reflect/protoreflect: add more docs on Value aliasing</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/b03064a95cacfede187231741d9918a75653057d"><code>b03064a</code></a> all: start v1.27.1-devel</li>
<li>See full diff in <a href="https://github.com/protocolbuffers/protobuf-go/compare/v1.27.1...v1.28.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/protobuf&package-manager=go_modules&previous-version=1.27.1&new-version=1.28.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

* fix typos in the controller params (#1172)

## Description



closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* add versions for new releases (#1175)

## Description



closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* fix: link checker reporting broken milestone link (#1200)

* update roadmap for q2 2022 and deleted history roadmap (don't think we'll need it)

* requirements document for ICA (#1173)

* add requirements document for interchain accounts

* fix branch

* added number in tittle.

* apply suggestions from review

Co-authored-by: Aditya <adityasripal@gmail.com>

* review comment

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>
Co-authored-by: Aditya <adityasripal@gmail.com>

* imp: improve Logger performance (#1160)

* fix: Logger marshal errors

* changelog

* update

* ICS 29: Fee Middleware (#276)

* scaffolding for 29-fee (#274)

* scaffolding for 29-fee

* fix build

* update keeper test

* remove module test

* feat: adding proto files for fee payment middleware (#272)

* feat: adding proto files for fee payment middleware

* grammar

* fix: remove generated .pb files

* fix: comment

* feat: adding PacketId type

* refactor: fee / genesis

* refactor: escrowed fees map

* Apply suggestions from code review

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update proto/ibc/applications/middleware/fee/v1/tx.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update proto/ibc/applications/middleware/fee/v1/tx.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update proto/ibc/applications/middleware/fee/v1/tx.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* refactor: use packetID + minor changes

* feat: adding query for all incentivized packets + some fixes

* feat: adding pagination to incentivized query

* fix: removing generated ibc directory + adding import/yaml

* fix: naming

* increase max depth for proto file searching and make proto all

* Update proto/ibc/applications/middleware/fee/v1/fee.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* refactor: remove file imports/add yaml/add argument for requests

* refactor: updating IdentifiedPacketFee

* fix: remove hidden file

* removing middleware dir & adding query

* remove junk file and update query rpcs

* Apply suggestions from code review

* Apply suggestions from code review

* remove query yaml, make proto-all

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Aditya Sripal <adityasripal@gmail.com>

* fix: removing unncessary fields MsgEscrow & adding query params (#300)

* fix: removing unncessary fields MsgEscrow & adding query params

* fix: grammar

* fix: add yaml

* feat: #258 Register Counterparty Address (#376)

* feat: adding MsgServer for RegisterCounterPartyAddress &
EscrowPacketFree

* test: adding test for ValidateBasic

* fix: removing validate basic check

* fix: removing empty file

* Update modules/apps/29-fee/keeper/msg_server.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/types/msgs.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/types/keys.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/keeper/keeper.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* fix: fixing typos, variable names, comments

* fix: updating import comments

* test: adding test for KeyRelayerAddress

* update: comments & key_test

* Update modules/apps/29-fee/keeper/msg_server.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: error message

* docs: updating RegisterCounterpartyAddress fn description

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Aditya <adityasripal@gmail.com>

* fix: remove comments for imports (#385)

* feat: Add handshake logic to ics29 (#307)

* do handshake logic, create test file

* do cap logic and fix build

* open handshake implementation and tests

* remove prints

* Update modules/apps/29-fee/module.go

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* debugging progress

* fee enabled flag

* cleanup handshake logic

* fix tests

* much cleaner simapp

* split module.go file

* cleanup and docs

* assert IBC interfaces are fulfilled in middleware

* Update modules/apps/transfer/module.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix unnecessary crossing hello logic

* fix version negotiation bugs and improve tests

* cleanup tests

* Apply suggestions from code review

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* address rest of colin comments

Co-authored-by: Sean King <seantking@users.noreply.github.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Fee Middleware: Escrow logic (#465)

* fix: adding second endpoint for async pay fee + renaming types

* feat: adding escrow logic

* feat: updating proto types & escrow logic

* fix: stub fn & proto comment

* feat: adding PayFee & PayFeeTimeout & escrow_test

* test: adding happy path for EscrowPacketFee

* fix: comments, error handling

* fix: comments & grammar

* test: adding unhappy path for escrow

* tests(escrow): adding hasBalance check for module acc

* test(PayFee): adding happy path for PayFee tests

* tests(PayFee, PayFeeTimeout): adding tests

* fix: adding relayers back to IdentifiedPacket

* fix: removing refund acc from key

* fix: storing IdentifiedPacketFee in state instead of Fee

* feat: adding msg_server test for registerCPAddr, wiring for codec + stubs for sdk.Msg interface

* test: adding msg_server test for PayPacketFee

* test: adding PayPacketFeeAsync msg_server test

* chore: updating PayFee -> DistributeFee & minor nits

* nit: removing unnecessary nil check

* refactor: add portId to store key & use packetId as param

* fix: add DeleteFeeInEscrow & remove fee on successful distribution

* tests: adding validation & signer tests for PayFee/Async & updating proto to use Signer sdk standard

* chore: adding NewIdentifiedPacketFee fn

* fix: getter/setter for counterparty address + fix NewIdentifiedPacketFee

* fix: updating EscrowPacketFee with correct usage of coins api

* test: adding balance check for refund acc after escrow

* fix: remove unncessary errors

* test: updating escrow tests + miscellaneous fixes

* nit: updating var names

* docs: godoc

* refactor: IdentifiedPacketFee & Fee no longer pointers

* fixes: small fixes

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/keeper/keeper.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/keeper/msg_server.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/keeper/msg_server.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/types/msgs.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* nit: proto doc & error fix

* fix: escrow test

* test: updating distribute fee tests

* test: adding validation check for fee and updating tests

* test: allow counterparty address to be arbitrary string

* fix: message validation should pass if one fee is valid

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: nits

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* test: adding isZero check for msgs

Co-authored-by: Aditya <adityasripal@gmail.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* feat: update protos, grpc queries (#488)

* store refund address in IdentifiedPacketFee (#546)

* 29-Fee: Genesis (#557)

* proto: adding genesis state

* feat: add GetAllIdentifiedPacketFees

* feat: adding genesis.go & updating proto + app.go

* fix: removing PortId from genesis

* feat: adding GetAll for relayer addr/fee enabled chan + update genesis

* test: TestExportGenesis

* feat: update type + hook up to module.go

* fix: remove PortKey

* fix: imports + remove scoped keeper

* nit: using NewPacketId helper and updating helper def to have correct params

* feat: adding genesis validation + tests (#561)

* feat: adding genesis validation + tests

* fix: imports

* Update modules/apps/29-fee/types/genesis.go

* fix: nit

* Update modules/apps/29-fee/types/genesis_test.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* nit: imporve default gen val test

* chore: move packetId + val to channeltypes and use validate fn

Co-authored-by: Aditya <adityasripal@gmail.com>

* feat: add incentivised ack proto (#564)

* proto file

* incentivized ack proto

* Fee Closing Handshake (#551)

* add iterate logic

* add closing logic with tests

* add comments for panic

* change invariant breaking recovery to disabling middleware rather than panicing

* docs, tests, minor refactor

* Fee Middleware: Add ICS4 wrapper (#562)

* chore: add ICS4 wrapper

* fix: remove channelKeeper sender packet

* chore: add WriteAck

* feat: ics 29 packet callbacks (#357)

* update imports to v3

* regenerate proto files

* fix build

* fix: event caching for fee distribution (#661)

* proto file

* initial impl

* apply self review suggestions

Deduplicate fee distribution code.
Rename DistributeFee to DistributePacketFees.
Rename DistributeFeeTimeout to DistributePacketFeesOnTimeout

* fixup tests

rename validCoins.
DistributePacketFeesOnTimeout no longer has a valid error case
Add test case for invalid forward relayer address on DistributePacketFees.

* partially fix tests

timeout fee is still being distributed depsite WriteFn() not being called

* fix tests

* address code nit

Co-authored-by: Colin Axnér <25233464+colin-axner@users.noreply.github.com>

* ics4 callbacks fee middleware (#580)

* feat: adding WriteAcknowledgement

* updating genesis & relayer prefix

* fix: comment

* fix: comments

* Update modules/apps/29-fee/keeper/relay.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* feat: add DeleteForwardRelayerAddr helper + use Set in ack

* fix: SetForwardAddr

* chore: add panic

* fix: remove fmt

* test: add WriteAcknowledgement test

* Update modules/apps/29-fee/ibc_module.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* fix: remove print

* fix: WriteAck

* fix: use constructor

* Update modules/apps/29-fee/keeper/keeper.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: nits

* fix: remove found var not used

* test: adding check that forward relayer address is successfully deleted if set

* fix: merge issues

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Aditya <adityasripal@gmail.com>

* chore: making PacketId non nullable (#737)

* nits: proto spacing + naming (#739)

* nits: proto spacing + naming

* nit: update comment

* fix: go.mod

* nit: option above import proto

* fix: spacing

* sean/fix-proto-identified-fee-not-null (#746)

* nits: more ics29 nits (#741)

* nits: remove capital from error + add godoc

* nit: add Wrapf

* nit: use strings.TrimSpace

* nit: add err type for MsgPayPacketFee

* refactor: app version + add comment (#750)

* chore: remove error

* test: add test for whitespaced empty string

* nit: update err syntax (#747)

* nit: update err syntax

* nit: more

* nit: err syntax

* feat: adding Route, Type, GetSignBytes for all messages (#743)

* feat: adding Route, Type, GetSignBytes for all messages

* tests: adding tests for Route/Type/GetSignBytes

* hygiene: add validate fn for Fee (#748)

* hygiene: add validate fn for Fee

* Update modules/apps/29-fee/types/msgs.go

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* fix: error message

* test: move Validate to fee.go & abstract out test

* chore: remove test cases

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* fix: app.go (#789)

* refactor: ics29 json encoded version metadata (#883)

* adding metadata type to ics29 protos

* updating ics29 handshake handlers to support json encoded metadata

* updating tests to support json encoded metadata

* Update modules/apps/29-fee/ibc_module.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/ibc_module.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* renaming metadata version to fee_version

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: return nil on OnRecvPacket for async pay (#911)

* nit: ics29 comments (#910)

* fix: comments

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* chore: Add transfer test for ics29 (#901)

* begin writing transfer test for ics29

* finish writing transfer test

* refactor: ics29 OnChanOpenInit callback tests now use mock module (#924)

* refactor: OnChanOpenInit callback tests now use mock module

* Update modules/apps/29-fee/fee_test.go

* feat: allow multiple addrs to incentivize packets (#915)

* [WIP] allow multiple addresses to incentivize a packet

* distribute multiple fees, fix broken tests

* use NewIdentifiedPacketFees in EscrowPacketFee

* cleanup var naming

* removing commented out code and adding test case

* Update modules/apps/29-fee/ibc_module.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* fix: refund RecvFee if ForwardAddr is invalid

* test: update tests to distribute multiple identified fees

* refactor: clean up DistrPacketFees

* refactor: using .Empty() helper func for code hygiene

Co-authored-by: Aditya <adityasripal@gmail.com>
Co-authored-by: Sean King <sean@seking.dev>
Co-authored-by: Sean King <seantking@users.noreply.github.com>

* chore: remove spec directory from ics29 (#934)

* refactor: use mock module for ics29 closing handshakes (#926)

* refactor: use mock module for closing handshakes in ics29

* self-review fix

* refactor: use mock module for ics29 grpc_query_test.go (#933)

* refactor: readjust keeper_test.go to use mock module (#930)

* fix: fields for genesis should be non nullable (#938)

* refactor: use mock module for ics29 escrow_test.go (#932)

* refactor: use mock module for ics29 genesis_test.go (#931)

* ics29:feat: emit event escrow (#914)

* feat: emit EventTypeSendIncentivizedPacket event on EscrowPacket

* fix: string conversion

* refactor: add helper fn for emit event

* chore: godoc

* nit: use .String())

* refactor: OnRecvPacket to use mock module (#927)

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* refactor: ics29 OnChanOpenTry/Ack use mock module for testing instead of ics20 (#925)

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* refactor: use mock module for OnAcknowledgePacket callback testing (#929)

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* refactor: OnTimeoutPacket to use mock module (#928)

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* chore: add packet id arg to EscrowPacketFee (#951)

* adding packet id arg to EscrowPacketFee

* updating tests

* review adaptations

* chore: remove legacy testing functions (#954)

* fix:ics29: WriteAck update + adding success bool to IncentivizedAck (#952)

* fix: updating WriteAck & adding Success boolean to IncentivizedAcknowledgement

* feat: adding check of is fee enabled

* nit: change successful to underlying_application_success

* test: adding seperate test for fee disabled write async

* Update modules/apps/29-fee/ibc_module_test.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* test: adding check to compare hash of acks

* fix: var name

Co-authored-by: Aditya <adityasripal@gmail.com>

* chore: add cli cmd to incentivize existing packet (async) (#965)

* chore: add cli to incentivize existing packets

* Update modules/apps/29-fee/client/cli/cli.go

* Update modules/apps/29-fee/client/cli/cli.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* chore: update cli example

Co-authored-by: Aditya <adityasripal@gmail.com>

* ics29:fix: counterparty addr must contain channelID (#937)

* fix: counterparty address must chain channelID

* nit: updating var name

* test: adding validation check for channelID

* nit: fn names

* chore: fix err msg (#971)

* ics29:fix: store source address for query later on WriteAck (#912)

* fix: for async WriteAck store source address for query later

* ics29:fix: update genesis type (#913)

* fix: adding ForwardRelayerAddresses to genesis

* fix: trimspace on string check

* nit: err + trimspace error case

* refactor: updating WriteAck + keeper fn name

* Update modules/apps/29-fee/keeper/relay.go

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* chore: remove legacy testing functions (#954)

* fix:ics29: WriteAck update + adding success bool to IncentivizedAck (#952)

* fix: updating WriteAck & adding Success boolean to IncentivizedAcknowledgement

* feat: adding check of is fee enabled

* nit: change successful to underlying_application_success

* test: adding seperate test for fee disabled write async

* Update modules/apps/29-fee/ibc_module_test.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* test: adding check to compare hash of acks

* fix: var name

Co-authored-by: Aditya <adityasripal@gmail.com>

Co-authored-by: Damian Nolan <damiannolan@gmail.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Aditya <adityasripal@gmail.com>

* refactor: make fee storage more efficient (#956)

* adding new proto types and codegen

* refactoring ics29 fees for more efficient storage

* updating tests

* fixing typo in protodoc comments

* chore: update ics29 genesis state to support multiple packet fees (#957)

* adding new proto types and codegen

* refactoring ics29 fees for more efficient storage

* updating tests

* updating genesis protos to use IdentifiedPacketFees

* updating init/export genesis state functionality and tests

* chore: update MsgPayPacketFeeAsync fields (#979)

* adding new proto types and codegen

* refactoring ics29 fees for more efficient storage

* updating tests

* fixing typo in protodoc comments

* updating protos and codegen

* updating MsgPayPacketFeeAsync handler and tests

* chore: add ParseKeyFeesInEscrow helper function (#998)

* chore: update grpc queries to handle multiple fees (#967)

* adding new proto types and codegen

* refactoring ics29 fees for more efficient storage

* updating tests

* updating protos and existing queries

* updating grpc queries and refactoring tests

* format error correct in favour of proto string() method

* leveraging ParseKeyFeesInEscrow to obtain  packet id in query

* feat: CLI cmd for MsgRegisterCounterpartyAddress (#987)

* feat: CLI cmd for MsgRegisterCounterpartyAddress

* fix: examples

* Update modules/apps/29-fee/client/cli/tx.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/client/cli/tx.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* chore: remove print

* nit: update address for counterparty

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: ics29: switch source with destintion for chan/port IDs (#961)

* fix: switch source with destintion for chan/port IDs

* fix: blunder

* test: adding tests in case of incorrect channel/port id

* test: moving check to WriteAcknowledgement

* add test case for Get/Set counterparty address

* nit: path name

* Update modules/apps/29-fee/keeper/msg_server_test.go

* test: cleanup 29-fee/types tests (#1006)

* feat: grpc query total recv packet fees (#1015)

* adding query for total packet recv fees to proto query server

* adding total packet recv fee query impl and tests

* updating doc comments

* chore: switch code ordering (#1025)

* feat: Add ParseKeyFeeEnabled and rename FeeEnabledKey -> KeyFeeEnabled (#1023)

* chore: add ParseKeyFeesInEscrow helper function

* feat: add ParseKeyFeeEnabled function and rename FeeEnabledKey to KeyFeeEnabled

* feat: ics29 cli for query total recv fees (#1035)

* feat: grpc query total ack fees (#1032)

* adding query for total packet recv fees to proto query server

* adding total packet recv fee query impl and tests

* updating doc comments

* adding protos and codegen

* adding total ack fees query and tests

* fixing protodoc comment

* feat: grpc query total timeout fees (#1033)

* adding query for total packet recv fees to proto query server

* adding total packet recv fee query impl and tests

* updating doc comments

* adding protos and codegen

* adding total ack fees query and tests

* adding protos and codegen

* adding query total timeout fees and tests

* fixing protodoc comment

* fixing protodoc comment

* feat: adding clis for total ack and timeout queries (#1043)

* add ParseKeyForwardRelayerAddress function + test (#1046)

* chore: remove unused ics29 keeper funcs (#1044)

* removing keys, adding additional test, moving event attribute keys

* removing unused code and updating tests

* removing unused IdentifiedPacketFee type

* chore: add gRPC for querying incentivized packets for a specific channel (#983)

* generate proto files

* feat: add gRPC for querying incentivized packets for a specific channel

* test: add gRPC test for incentivized packets for channel query

* fix build

* partially fix tests

* chore: fix tests

* deduplicate code

* chore: code cleanup

* fix build

* remove changes from merge conflict

* nit: rename c to goCtx

* add function EscrowAccountHasBalance (#1042)

* add function EscrowAccountHasBalance

* change API to use sdk.Coins

* feat: ParseKeyCounterpartyRelayer function (#1047)

* chore: adding queries to cmd builder (#1057)

* chore: update ics29 protodocs (#1055)

* updating protodocs comments and regen code/docs

* Update proto/ibc/applications/fee/v1/tx.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* updating incentivized ack doc

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* add counter party channel ID to argument list of on channel open ack (#1159)

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* ADR 004: Fee module locking in the presence of severe bugs (#1060)

* add adr 004

* add to README

* Update docs/architecture/adr-004-ics29-lock-fee-module.md

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update docs/architecture/adr-004-ics29-lock-fee-module.md

Co-authored-by: Aditya <adityasripal@gmail.com>

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>
Co-authored-by: Aditya <adityasripal@gmail.com>

* nit: packetID var name (#1214)

* ics29: update with changes from main (#1221)

* add banner image (#1158)

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* Add alpha, beta, and rc release definitions (#1151)

## Description

The proposed definitions for each phase of our release cycle. Please feel free to adjust my wording

closes: #881 


---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* build(deps): bump google.golang.org/protobuf from 1.27.1 to 1.28.0 (#1164)

Bumps [google.golang.org/protobuf](https://github.com/protocolbuffers/protobuf-go) from 1.27.1 to 1.28.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/protocolbuffers/protobuf-go/releases">google.golang.org/protobuf's releases</a>.</em></p>
<blockquote>
<h2>v1.28.0</h2>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-overview">Overview</a></li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-notable-changes">Notable changes</a>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-recursion-limit">UnmarshalOption RecursionLimit</a></li>
</ul>
</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-breaking-changes">Upcoming breakage changes</a></li>
</ul>
<h2>Overview </h2>
<p>The release provides a new unmarshal option for limiting the recursion depth when unmarshalling nested messages to prevent stack overflows. (<a href="https://pkg.go.dev/google.golang.org/protobuf/proto#UnmarshalOptions.RecursionLimit"><code>UnmarshalOptions.RecursionLimit</code></a>).</p>
<h2>Notable changes </h2>
<p><strong>New features:</strong></p>
<ul>
<li><a href="https://go.dev/cl/340489">CL/340489</a>: testing/protocmp: add Message.Unwrap</li>
</ul>
<p><strong>Documentation improvements:</strong></p>
<ul>
<li><a href="https://go.dev/cl/339569">CL/339569</a>: reflect/protoreflect: add more docs on Value aliasing</li>
</ul>
<p><strong>Updated supported versions:</strong></p>
<ul>
<li><a href="https://go.dev/cl/370055">CL/370055</a>: all: update supported versions</li>
</ul>
<h3>UnmarshalOption RecursionLimit </h3>
<ul>
<li><a href="https://golang.org/cl/385854">CL/385854</a>: all: implement depth limit for unmarshalling</li>
</ul>
<p>The new <a href="https://pkg.go.dev/google.golang.org/protobuf/proto#UnmarshalOptions.RecursionLimit"><code>UnmarshalOptions.RecursionLimit</code></a> limits the maximum recursion depth when unmarshalling messages. The limit is applied for nested messages. When messages are nested deeper than the specified limit the unmarshalling will fail. If unspecified, a default limit of 10,000 is applied.</p>
<p>In addition to the configurable limit for message nesting a non-configurable recursion limit for <a href="https://developers.google.com/protocol-buffers/docs/proto#groups">group</a> nesting of 10,000 was introduced.</p>
<h2>Upcoming breakage changes </h2>
<p>The default recursion limit of 10,000 introduced in the release is subject to change. We want to align this limit with implementations for other languages in the long term. C++ and Java use a limit of 100 which is also the target for the Go implementation.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/32051b4f86e54c2142c7c05362c6e96ae3454a1c"><code>32051b4</code></a> all: release v1.28.0</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/3992ea83a23c00882339f33511074d251e19822c"><code>3992ea8</code></a> all: implement depth limit for unmarshaling</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/e5db2960ed1380681b571cdf4648230beefaf58b"><code>e5db296</code></a> all: update supported versions</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/3a9e1dc314e2cb57d6cb054df513f17586295fc7"><code>3a9e1dc</code></a> all: gofmt all</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/26e8bcb3c743193558d1a0ff540c9e05f999267d"><code>26e8bcb</code></a> all: remove unnecessary string([]byte) conversion in fmt.Sprintf with %s</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/5aec41b4809b9822a34e17acd06ae9ae9f41c13d"><code>5aec41b</code></a> testing/protocmp: add Message.Unwrap</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/05be61fde35dcaa3502f4430edee444a294d41c3"><code>05be61f</code></a> reflect/protoreflect: add more docs on Value aliasing</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/b03064a95cacfede187231741d9918a75653057d"><code>b03064a</code></a> all: start v1.27.1-devel</li>
<li>See full diff in <a href="https://github.com/protocolbuffers/protobuf-go/compare/v1.27.1...v1.28.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/protobuf&package-manager=go_modules&previous-version=1.27.1&new-version=1.28.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

* fix typos in the controller params (#1172)

## Description



closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* add versions for new releases (#1175)

## Description



closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* fix: link checker reporting broken milestone link (#1200)

* update roadmap for q2 2022 and deleted history roadmap (don't think we'll need it)

* requirements document for ICA (#1173)

* add requirements document for interchain accounts

* fix branch

* added number in tittle.

* apply suggestions from review

Co-authored-by: Aditya <adityasripal@gmail.com>

* review comment

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>
Co-authored-by: Aditya <adityasripal@gmail.com>

* imp: improve Logger performance (#1160)

* fix: Logger marshal errors

* changelog

* update

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>
Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Damian Nolan <damiannolan@gmail.com>
Co-authored-by: Aditya <adityasripal@gmail.com>
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Sean King <seantking@users.noreply.github.com>
Co-authored-by: Charly <charly@interchain.berlin>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Carlos Rodriguez <crodveg@yahoo.es>
Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>
Co-authored-by: Luke Rhoads <51463884+lukerhoads@users.noreply.github.com>
Co-authored-by: Damian Nolan <damiannolan@gmail.com>
Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
Co-authored-by: Jack Zampolin <jack.zampolin@gmail.com>
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: Leo Pang <34628052+allthatjazzleo@users.noreply.github.com>
Co-authored-by: Barrie Byron <barrie.byron@tendermint.com>
Co-authored-by: Tyler <48813565+technicallyty@users.noreply.github.com>
Co-authored-by: technicallyty <48813565+tytech3@users.noreply.github.com>
Co-authored-by: Barrie Byron <barriebyron.barriebyron@gmail.com>
Co-authored-by: Marko <marbar3778@yahoo.com>
Co-authored-by: Marko Baricevic <markobaricevic3778@gmail.com>
Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: nir1218 <nir1218@users.noreply.github.com>
Co-authored-by: Carlos Rodriguez <carlos@interchain.io>
Co-authored-by: Assaf Morami <assaf.morami@gmail.com>
Co-authored-by: Dan McCandless <dkmccandless@users.noreply.github.com>
Co-authored-by: Ramiro Carlucho <ramirocarlucho@gmail.com>
Co-authored-by: frog power 4000 <rigel.rozanski@gmail.com>
Co-authored-by: Sean King <sean@seking.dev>

* build(deps): bump codecov/codecov-action from 2.1.0 to 3 (#1222)

Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.1.0 to 3.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v2.1.0...v3)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

* ics29: feat: CLI query commands for packets (#1229)

* feat: adding query for getting incentivized packet by packet-id

* feat: add cli for getting all incentivized packets across all channels

* nits: suggestions

* Update modules/apps/29-fee/client/cli/query.go

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* chore: changelog

* nits: comments

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* add check for blocked addr for forward relayer distribution (#1231)

* feat: ics29 counterparty address grpc query and CLI  (#1224)

* generating codegen protobufs for query counterparty address

* adding grpc query, tests and cli

* Update modules/apps/29-fee/keeper/grpc_query_test.go

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* Update modules/apps/29-fee/keeper/grpc_query_test.go

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* updating godoc

* adding changelog

* updating cli descriptions for ics29

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* chore: fix go ctx arg naming in ics29 grpc queries (#1226)

* chore: ics29 module housekeeping cleanup (#1227)

* feat: ics29 fee enabled channel queries (#1225)

* adding protobuf codegen

* adding grpc queries and tests

* adding clis for queries

* adding changelog

* resolving nits from pr review

* updating grpc gateway options

* chore: cleanup OnAcknowledgement and OnTimeout code ics29 (#1228)

* add changelog entry for #276 (#1233)

* feat: adding CLI for getting incentivized packets on a specific channel (#1230)

* feat: adding CLI for getting incentivized packets on a specific channel

* chore: changelog

* refactor: usage

* chore: ics29 cleanup, addressing nits (#1236)

* refactor: moving fn definition to bottom of file and switching params (#1232)

## Description

closes: #868 #997 

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* feat: allow ability to lock fee module in presence of severe bug  (#1239)

* apply code changes from pr #1031

* update comments

* chore: update fee module is locked error string

* update godoc to reference ADR 004

* add more references to ADR 004

* build(deps): bump actions/download-artifact from 2 to 3 (#1241)

Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 2 to 3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/actions/download-artifact/releases">actions/download-artifact's releases</a>.</em></p>
<blockquote>
<h2>v3.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update default runtime to node16 (<a href="https://github-redirect.dependabot.com/actions/download-artifact/pull/134">actions/download-artifact#134</a>)</li>
<li>Update package-lock.json file version to 2 (<a href="https://github-redirect.dependabot.com/actions/download-artifact/pull/136">actions/download-artifact#136</a>)</li>
</ul>
<h3>Breaking Changes</h3>
<p>With the update to Node 16, all scripts will now be run with Node 16 rather than Node 12.</p>
<h2>v2.1.0 Download Artifact</h2>
<ul>
<li>Improved output &amp; logging</li>
<li>Fixed issue where downloading all artifacts could cause display percentages to be over 100%</li>
<li>Various small bug fixes &amp; improvements</li>
</ul>
<h2>v2.0.10</h2>
<ul>
<li>Retry on HTTP 500 responses from the service</li>
</ul>
<h2>v2.0.9</h2>
<ul>
<li>Fixes to proxy related issues</li>
</ul>
<h2>v2.0.8</h2>
<ul>
<li>Improvements to retryability if an error is encountered during artifact download</li>
</ul>
<h2>v2.0.7 download-artifact</h2>
<ul>
<li>Improved download retry-ability if a partial download is encountered</li>
</ul>
<h2>v2.0.6</h2>
<p>Update actions/core NPM package that is used internally</p>
<h2>v2.0.5</h2>
<ul>
<li>Add Third Party License Information</li>
</ul>
<h2>v2.0.4</h2>
<ul>
<li>Use the latest version of the <code>@actions/artifact</code> NPM package</li>
</ul>
<h2>v2.0.3</h2>
<ul>
<li>Misc improvements</li>
</ul>
<h2>v2.0.2</h2>
<ul>
<li>Support for tilde expansion</li>
</ul>
<h2>v2.0.1</h2>
<ul>
<li>Download path output</li>
<li>Improved logging</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/actions/download-artifact/commit/fb598a63ae348fa914e94cd0ff38f362e927b741"><code>fb598a6</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/actions/download-artifact/issues/136">#136</a> from actions/jtamsut/update-lockfile-version</li>
<li><a href="https://github.com/actions/download-artifact/commit/a4a09c5d7eb5932e0e6c4e77a434738189a24f1b"><code>a4a09c5</code></a> regenerate index.js</li>
<li><a href="https://github.com/actions/download-artifact/commit/9acf51df7946118a04918663acc5d955f49de177"><code>9acf51d</code></a> regenerate package lock</li>
<li><a href="https://github.com/actions/download-artifact/commit/882107232564f8bc8c5083706e009246f11aa871"><code>8821072</code></a> upgrade artifact version</li>
<li><a href="https://github.com/actions/download-artifact/commit/b8bbd3b64f298f12cfabf7d85ee4e716714eae3b"><code>b8bbd3b</code></a> regenerate lockfile</li>
<li><a href="https://github.com/actions/download-artifact/commit/6ee3d963e5a7ed7dac02925e126c37e459c36aa6"><code>6ee3d96</code></a> revert artifact version</li>
<li><a href="https://github.com/actions/download-artifact/commit/d4793f4e27ec52069836c96d310f815ffa48176c"><code>d4793f4</code></a> update docs for v3</li>
<li><a href="https://github.com/actions/download-artifact/commit/2d338d2145c33c497f1f4f574ca1eb88e1061a8e"><code>2d338d2</code></a> upgrade package to v3</li>
<li><a href="https://github.com/actions/download-artifact/commit/360d0830b5796c983178d8073e39063e8d32bc46"><code>360d083</code></a> update dependency on artifact lib</li>
<li><a href="https://github.com/actions/download-artifact/commit/d9b73cccacd09ac21cc34b82578e6cbb1b4e2539"><code>d9b73cc</code></a> update lock file</li>
<li>Additional commits viewable in <a href="https://github.com/actions/download-artifact/compare/v2...v3">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/download-artifact&package-manager=github_actions&previous-version=2&new-version=3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

* build(deps): bump actions/upload-artifact from 2 to 3 (#1240)

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/actions/upload-artifact/releases">actions/upload-artifact's releases</a>.</em></p>
<blockquote>
<h2>v3.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update default runtime to node16 (<a href="https://github-redirect.dependabot.com/actions/upload-artifact/issues/293">#293</a>)</li>
<li>Update package-lock.json file version to 2 (<a href="https://github-redirect.dependabot.com/actions/upload-artifact/issues/302">#302</a>)</li>
</ul>
<h3>Breaking Changes</h3>
<p>With the update to Node 16, all scripts will now be run with Node 16 rather than Node 12.</p>
<h2>v2.3.1</h2>
<p>Fix for empty fails on Windows failing on upload <a href="https://github-redirect.dependabot.com/actions/upload-artifact/issues/281">#281</a></p>
<h2>v2.3.0 Upload Artifact</h2>
<ul>
<li>Optimizations for faster uploads of larger files that are already compressed</li>
…
oshorefueled pushed a commit to ComposableFi/ibc-go that referenced this pull request Aug 9, 2022
* refactor: allow the mock module to be used multiple times as base ibc application in middleware stack (#892)

## Description

Currently the `AppModule` assumes a single scoped keeper. This doesn't allow the mock module to be used as a base application for different middleware stack (ica stack, fee stack, etc)

I broke the API because I think it is cleaner. If we want this to be non API breaking, I can try to readjust

ref: #891 

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* feat: adding Pack/Unpack acknowledgement helper fns (#895)

* feat: adding Pack/Unpack acknowledgement helper fns

* chore: changelog

* fix: docs

* Update modules/core/04-channel/types/codec.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* imp: support custom keys for testing (#893)

* chore: add ParsePacketFromEvents testing helper function (#904)

## Description



ref: #891

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* fix: correctly claim capability for mock module, handle genesis exports (#921)

## Description

This contains two fixes:
- the capability being claimed by the scoped keeper was incorrect (mock.ModuleName -> port ID)
- the mock module wasn't accounting for non empty genesis state in capabilities (after genesis export, capability will create the bound ports so rebinding doesn't need to happen)

closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* docs: update migration docs for upgrade proposal in relation to ICS27 (#920)

## Description



closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* chore(ica): add trail of bits audit report (#903)

* chore(ica): add trail of bits audit report

* relocate the audit report for ICA

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* testing: adding multiple sender accounts for testing purposes (#935)

* testing: adding multiple sender accounts for testing puproses

* fix genesis setup (#936)

* Update testing/chain.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* refactor: code hygiene

* Update testing/chain.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* fix: setting totalySupply to empty

* nit: CamelCase not UPPERCASE

Co-authored-by: Aditya <adityasripal@gmail.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Create test chain with multiple validators (#942)

* testing: adding multiple sender accounts for testing puproses

* fix genesis setup (#936)

* Update testing/chain.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* refactor: code hygiene

* Update testing/chain.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* multi validator commit taken from @saione

* add function to pass custom valset

* add changelog

Co-authored-by: Sean King <sean@seking.dev>
Co-authored-by: Sean King <seantking@users.noreply.github.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* add changelog entry for SDK bump

* fix: classify client states without consensus states as expired (#941)

## Description



closes: #850 

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* chore: fix broken link (#972)

* add backport actions for v1.3.x and v2.1.x (#958)

* Revert "feat: adding Pack/Unpack acknowledgement helper fns (#895)" (#973)

This reverts commit 843b459635da8cedd92945141c4efe3a762f305d.

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* chore: update migration docs (#985)

* chore: update migration docs

* Update docs/migrations/v2-to-v3.md

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* chore: fix mispelled words (#991)

* fix: remove go mod tidy from proto-gen script (#989)

* bug: support base denoms with slashes (#978)

* bug: support base denoms with slashes

* add changelog entry

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* upgrade ics23 to v0.7 (#948)

* upgrade ics23 to v0.7-rc

* add changelog entry

* update ics23 to final 0.7

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* ibctesting: make `testing.T` public (#1020)

* add changelog entry for #941

* fix package import (#1007)

* feat: Add a function to initialize the ICS27 module via an upgrade proposal (#1037)

## Description



closes: #1034 

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* docs: add missing args to NewKeeper in integration docs (#1038)

## Description



This add some missing arguments to `ibckeeper.NewKeeper` and `ibctransferkeeper.NewKeeper` in integration docs

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [x] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* small fixes for v2 to v3 migration (#1016)

* small fixes for v2 to v3 migration

* review comment

* Update v2-to-v3.md

* add store upgrade documentation

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* add missing slash

* build(deps): bump actions/checkout from 2.4.0 to 3 (#1045)

Bumps [actions/checkout](https://github.com/actions/checkout) from 2.4.0 to 3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/actions/checkout/releases">actions/checkout's releases</a>.</em></p>
<blockquote>
<h2>v3.0.0</h2>
<ul>
<li>Update default runtime to node16</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>v2.3.1</h2>
<ul>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/284">Fix default branch resolution for .wiki and when using SSH</a></li>
</ul>
<h2>v2.3.0</h2>
<ul>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/278">Fallback to the default branch</a></li>
</ul>
<h2>v2.2.0</h2>
<ul>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/258">Fetch all history for all tags and branches when fetch-depth=0</a></li>
</ul>
<h2>v2.1.1</h2>
<ul>
<li>Changes to support GHES (<a href="https://github-redirect.dependabot.com/actions/checkout/pull/236">here</a> and <a href="https://github-redirect.dependabot.com/actions/checkout/pull/248">here</a>)</li>
</ul>
<h2>v2.1.0</h2>
<ul>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/191">Group output</a></li>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/199">Changes to support GHES alpha release</a></li>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/184">Persist core.sshCommand for submodules</a></li>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/163">Add support ssh</a></li>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/179">Convert submodule SSH URL to HTTPS, when not using SSH</a></li>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/157">Add submodule support</a></li>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/144">Follow proxy settings</a></li>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/141">Fix ref for pr closed event when a pr is merged</a></li>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/128">Fix issue checking detached when git less than 2.22</a></li>
</ul>
<h2>v2.0.0</h2>
<ul>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/108">Do not pass cred on command line</a></li>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/107">Add input persist-credentials</a></li>
<li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/104">Fallback to REST API to download repo</a></li>
</ul>
<h2>v2 (beta)</h2>
<ul>
<li>Improved fetch performance
<ul>
<li>The default behavior now fetches only the SHA being checked-out</li>
</ul>
</li>
<li>Script authenticated git commands
<ul>
<li>Persists <code>with.token</code> in the local git config</li>
<li>Enables your scripts to run authenticated git commands</li>
<li>Post-job cleanup removes the token</li>
<li>Coming soon: Opt out by setting <code>with.persist-credentials</code> to <code>false</code></li>
</ul>
</li>
<li>Creates a local branch
<ul>
<li>No longer detached HEAD when checking out a branch</li>
<li>A local branch is created with the corresponding upstream branch set</li>
</ul>
</li>
<li>Improved layout</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/actions/checkout/commit/a12a3943b4bdde767164f792f33f40b04645d846"><code>a12a394</code></a> update readme for v3 (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/708">#708</a>)</li>
<li><a href="https://github.com/actions/checkout/commit/8f9e05e482293f862823fcca12d9eddfb3723131"><code>8f9e05e</code></a> Update to node 16 (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/689">#689</a>)</li>
<li><a href="https://github.com/actions/checkout/commit/230611dbd0eb52da1e1f4f7bc8bb0c3a339fc8b7"><code>230611d</code></a> Change secret name for PAT to not start with GITHUB_ (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/623">#623</a>)</li>
<li>See full diff in <a href="https://github.com/actions/checkout/compare/v2.4.0...v3">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=2.4.0&new-version=3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

* call packet.GetSequence() rather than passing the func as argument (#995)

* Add counterpartyChannelID param to IBCModule.OnChanOpenAck (#1086)

* add counterpartyChannelID param to IBCModule OnChanOpenAck()

* change testing mock

* change ica IBCModules ChannelOpenAck

* change transfer IBCModules ChannelOpenAck

* change core keeper ChannelOpenAck()

* CHANGELOG.md

* update v2-to-v3 migration doc

* Update docs/migrations/v2-to-v3.md

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* fix mirgation docs (#1091)

* fix: handle testing update client errors (#1094)

* replace channel keeper with IBC keeper in AnteDecorator (#950)

* replace channel keeper with IBC keeper in AnteDecorator and pass message to rpc handler

* fix error checking condition

* fix for proper way of getting go context

* refactor tests for ante handler

* review comment

* review comments and some fixes

* review comments

* execute message for update client as well

* add migration

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* add backport rules for v1.4.x and v2.2.x (#1085)

* ibctesting: custom voting power reduction for testing (#939)

* ibctesting: custom voting power reduction for testing

* changelog

* fix

* make T public

* fix

* revert changes

* fix test

* build(deps): bump github.com/spf13/cobra from 1.3.0 to 1.4.0 (#1105)

* build(deps): bump google.golang.org/grpc from 1.44.0 to 1.45.0 (#1098)

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.44.0 to 1.45.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.44.0...v1.45.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: adjust InitModule to account for empty controller and host keepers (#1120)

## Description



closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [x] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [x] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [x] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [x] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [x] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [x] Review `Codecov Report` in the comment section below once CI passes

* Merge pull request from GHSA-j658-c98j-fww4

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* fixes for the documentation about handling ack for SDK <= 0.45 (#1122)

* fixes for documentation

* review comment

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* Allow testing to update ValidatorSet (#1003)

* testing: adding multiple sender accounts for testing puproses

* fix genesis setup (#936)

* Update testing/chain.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* refactor: code hygiene

* Update testing/chain.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* multi validator commit taken from @saione

* add function to pass custom valset

* create simplest failing test

* progress

* fix changevalset test

* fix errors in tendermint package

* fix client types test

* fix client keeper

* fix cap functions

* fix genesis core tests

* fix ica tests

* fix doc

* CHANGELOG

* replace signer array with signer map

* add documentation

* fix merge

* documentation

* ordered signer array doc

* add new delegation and comment to change valset test

Co-authored-by: Sean King <sean@seking.dev>
Co-authored-by: Sean King <seantking@users.noreply.github.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* imp: create codeql-analysis action (#1128)

## Description



Noticed that [CodeQL](https://codeql.github.com/) wasn't enabled on the IBC-go repo

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* update changelog (#1131)

* update changelog

* fix typo

* build(deps): bump github.com/stretchr/testify from 1.7.0 to 1.7.1 (#1134)

Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.7.0 to 1.7.1.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.7.0...v1.7.1)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* call packet.GetSequence() rather than passing the func as argument (#1130)

* call packet.GetSequence() rather than passing the func as argument

* add changelog entry

* fix: prefix ResponseResultType enum for proto linting (#1143)

* build(deps): bump actions/cache from 2.1.7 to 3 (#1150)

Bumps [actions/cache](https://github.com/actions/cache) from 2.1.7 to 3.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v2.1.7...v3)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fixes for go-releaser configuration (#1148)

* set the pre-release status if the tag contains alpha, beta or rc

* add separate filter for final releases

* add banner image (#1158)

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* Add alpha, beta, and rc release definitions (#1151)

## Description

The proposed definitions for each phase of our release cycle. Please feel free to adjust my wording

closes: #881 


---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* build(deps): bump google.golang.org/protobuf from 1.27.1 to 1.28.0 (#1164)

Bumps [google.golang.org/protobuf](https://github.com/protocolbuffers/protobuf-go) from 1.27.1 to 1.28.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/protocolbuffers/protobuf-go/releases">google.golang.org/protobuf's releases</a>.</em></p>
<blockquote>
<h2>v1.28.0</h2>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-overview">Overview</a></li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-notable-changes">Notable changes</a>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-recursion-limit">UnmarshalOption RecursionLimit</a></li>
</ul>
</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-breaking-changes">Upcoming breakage changes</a></li>
</ul>
<h2>Overview </h2>
<p>The release provides a new unmarshal option for limiting the recursion depth when unmarshalling nested messages to prevent stack overflows. (<a href="https://pkg.go.dev/google.golang.org/protobuf/proto#UnmarshalOptions.RecursionLimit"><code>UnmarshalOptions.RecursionLimit</code></a>).</p>
<h2>Notable changes </h2>
<p><strong>New features:</strong></p>
<ul>
<li><a href="https://go.dev/cl/340489">CL/340489</a>: testing/protocmp: add Message.Unwrap</li>
</ul>
<p><strong>Documentation improvements:</strong></p>
<ul>
<li><a href="https://go.dev/cl/339569">CL/339569</a>: reflect/protoreflect: add more docs on Value aliasing</li>
</ul>
<p><strong>Updated supported versions:</strong></p>
<ul>
<li><a href="https://go.dev/cl/370055">CL/370055</a>: all: update supported versions</li>
</ul>
<h3>UnmarshalOption RecursionLimit </h3>
<ul>
<li><a href="https://golang.org/cl/385854">CL/385854</a>: all: implement depth limit for unmarshalling</li>
</ul>
<p>The new <a href="https://pkg.go.dev/google.golang.org/protobuf/proto#UnmarshalOptions.RecursionLimit"><code>UnmarshalOptions.RecursionLimit</code></a> limits the maximum recursion depth when unmarshalling messages. The limit is applied for nested messages. When messages are nested deeper than the specified limit the unmarshalling will fail. If unspecified, a default limit of 10,000 is applied.</p>
<p>In addition to the configurable limit for message nesting a non-configurable recursion limit for <a href="https://developers.google.com/protocol-buffers/docs/proto#groups">group</a> nesting of 10,000 was introduced.</p>
<h2>Upcoming breakage changes </h2>
<p>The default recursion limit of 10,000 introduced in the release is subject to change. We want to align this limit with implementations for other languages in the long term. C++ and Java use a limit of 100 which is also the target for the Go implementation.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/32051b4f86e54c2142c7c05362c6e96ae3454a1c"><code>32051b4</code></a> all: release v1.28.0</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/3992ea83a23c00882339f33511074d251e19822c"><code>3992ea8</code></a> all: implement depth limit for unmarshaling</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/e5db2960ed1380681b571cdf4648230beefaf58b"><code>e5db296</code></a> all: update supported versions</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/3a9e1dc314e2cb57d6cb054df513f17586295fc7"><code>3a9e1dc</code></a> all: gofmt all</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/26e8bcb3c743193558d1a0ff540c9e05f999267d"><code>26e8bcb</code></a> all: remove unnecessary string([]byte) conversion in fmt.Sprintf with %s</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/5aec41b4809b9822a34e17acd06ae9ae9f41c13d"><code>5aec41b</code></a> testing/protocmp: add Message.Unwrap</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/05be61fde35dcaa3502f4430edee444a294d41c3"><code>05be61f</code></a> reflect/protoreflect: add more docs on Value aliasing</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/b03064a95cacfede187231741d9918a75653057d"><code>b03064a</code></a> all: start v1.27.1-devel</li>
<li>See full diff in <a href="https://github.com/protocolbuffers/protobuf-go/compare/v1.27.1...v1.28.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/protobuf&package-manager=go_modules&previous-version=1.27.1&new-version=1.28.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

* fix typos in the controller params (#1172)

## Description



closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* add versions for new releases (#1175)

## Description



closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* fix: link checker reporting broken milestone link (#1200)

* update roadmap for q2 2022 and deleted history roadmap (don't think we'll need it)

* requirements document for ICA (#1173)

* add requirements document for interchain accounts

* fix branch

* added number in tittle.

* apply suggestions from review

Co-authored-by: Aditya <adityasripal@gmail.com>

* review comment

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>
Co-authored-by: Aditya <adityasripal@gmail.com>

* imp: improve Logger performance (#1160)

* fix: Logger marshal errors

* changelog

* update

* ICS 29: Fee Middleware (#276)

* scaffolding for 29-fee (#274)

* scaffolding for 29-fee

* fix build

* update keeper test

* remove module test

* feat: adding proto files for fee payment middleware (#272)

* feat: adding proto files for fee payment middleware

* grammar

* fix: remove generated .pb files

* fix: comment

* feat: adding PacketId type

* refactor: fee / genesis

* refactor: escrowed fees map

* Apply suggestions from code review

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update proto/ibc/applications/middleware/fee/v1/tx.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update proto/ibc/applications/middleware/fee/v1/tx.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update proto/ibc/applications/middleware/fee/v1/tx.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* refactor: use packetID + minor changes

* feat: adding query for all incentivized packets + some fixes

* feat: adding pagination to incentivized query

* fix: removing generated ibc directory + adding import/yaml

* fix: naming

* increase max depth for proto file searching and make proto all

* Update proto/ibc/applications/middleware/fee/v1/fee.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* refactor: remove file imports/add yaml/add argument for requests

* refactor: updating IdentifiedPacketFee

* fix: remove hidden file

* removing middleware dir & adding query

* remove junk file and update query rpcs

* Apply suggestions from code review

* Apply suggestions from code review

* remove query yaml, make proto-all

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Aditya Sripal <adityasripal@gmail.com>

* fix: removing unncessary fields MsgEscrow & adding query params (#300)

* fix: removing unncessary fields MsgEscrow & adding query params

* fix: grammar

* fix: add yaml

* feat: #258 Register Counterparty Address (#376)

* feat: adding MsgServer for RegisterCounterPartyAddress &
EscrowPacketFree

* test: adding test for ValidateBasic

* fix: removing validate basic check

* fix: removing empty file

* Update modules/apps/29-fee/keeper/msg_server.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/types/msgs.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/types/keys.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/keeper/keeper.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* fix: fixing typos, variable names, comments

* fix: updating import comments

* test: adding test for KeyRelayerAddress

* update: comments & key_test

* Update modules/apps/29-fee/keeper/msg_server.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: error message

* docs: updating RegisterCounterpartyAddress fn description

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Aditya <adityasripal@gmail.com>

* fix: remove comments for imports (#385)

* feat: Add handshake logic to ics29 (#307)

* do handshake logic, create test file

* do cap logic and fix build

* open handshake implementation and tests

* remove prints

* Update modules/apps/29-fee/module.go

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* debugging progress

* fee enabled flag

* cleanup handshake logic

* fix tests

* much cleaner simapp

* split module.go file

* cleanup and docs

* assert IBC interfaces are fulfilled in middleware

* Update modules/apps/transfer/module.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix unnecessary crossing hello logic

* fix version negotiation bugs and improve tests

* cleanup tests

* Apply suggestions from code review

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* address rest of colin comments

Co-authored-by: Sean King <seantking@users.noreply.github.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Fee Middleware: Escrow logic (#465)

* fix: adding second endpoint for async pay fee + renaming types

* feat: adding escrow logic

* feat: updating proto types & escrow logic

* fix: stub fn & proto comment

* feat: adding PayFee & PayFeeTimeout & escrow_test

* test: adding happy path for EscrowPacketFee

* fix: comments, error handling

* fix: comments & grammar

* test: adding unhappy path for escrow

* tests(escrow): adding hasBalance check for module acc

* test(PayFee): adding happy path for PayFee tests

* tests(PayFee, PayFeeTimeout): adding tests

* fix: adding relayers back to IdentifiedPacket

* fix: removing refund acc from key

* fix: storing IdentifiedPacketFee in state instead of Fee

* feat: adding msg_server test for registerCPAddr, wiring for codec + stubs for sdk.Msg interface

* test: adding msg_server test for PayPacketFee

* test: adding PayPacketFeeAsync msg_server test

* chore: updating PayFee -> DistributeFee & minor nits

* nit: removing unnecessary nil check

* refactor: add portId to store key & use packetId as param

* fix: add DeleteFeeInEscrow & remove fee on successful distribution

* tests: adding validation & signer tests for PayFee/Async & updating proto to use Signer sdk standard

* chore: adding NewIdentifiedPacketFee fn

* fix: getter/setter for counterparty address + fix NewIdentifiedPacketFee

* fix: updating EscrowPacketFee with correct usage of coins api

* test: adding balance check for refund acc after escrow

* fix: remove unncessary errors

* test: updating escrow tests + miscellaneous fixes

* nit: updating var names

* docs: godoc

* refactor: IdentifiedPacketFee & Fee no longer pointers

* fixes: small fixes

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/keeper/keeper.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/keeper/msg_server.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/keeper/msg_server.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/types/msgs.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* nit: proto doc & error fix

* fix: escrow test

* test: updating distribute fee tests

* test: adding validation check for fee and updating tests

* test: allow counterparty address to be arbitrary string

* fix: message validation should pass if one fee is valid

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: nits

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* test: adding isZero check for msgs

Co-authored-by: Aditya <adityasripal@gmail.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* feat: update protos, grpc queries (#488)

* store refund address in IdentifiedPacketFee (#546)

* 29-Fee: Genesis (#557)

* proto: adding genesis state

* feat: add GetAllIdentifiedPacketFees

* feat: adding genesis.go & updating proto + app.go

* fix: removing PortId from genesis

* feat: adding GetAll for relayer addr/fee enabled chan + update genesis

* test: TestExportGenesis

* feat: update type + hook up to module.go

* fix: remove PortKey

* fix: imports + remove scoped keeper

* nit: using NewPacketId helper and updating helper def to have correct params

* feat: adding genesis validation + tests (#561)

* feat: adding genesis validation + tests

* fix: imports

* Update modules/apps/29-fee/types/genesis.go

* fix: nit

* Update modules/apps/29-fee/types/genesis_test.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* nit: imporve default gen val test

* chore: move packetId + val to channeltypes and use validate fn

Co-authored-by: Aditya <adityasripal@gmail.com>

* feat: add incentivised ack proto (#564)

* proto file

* incentivized ack proto

* Fee Closing Handshake (#551)

* add iterate logic

* add closing logic with tests

* add comments for panic

* change invariant breaking recovery to disabling middleware rather than panicing

* docs, tests, minor refactor

* Fee Middleware: Add ICS4 wrapper (#562)

* chore: add ICS4 wrapper

* fix: remove channelKeeper sender packet

* chore: add WriteAck

* feat: ics 29 packet callbacks (#357)

* update imports to v3

* regenerate proto files

* fix build

* fix: event caching for fee distribution (#661)

* proto file

* initial impl

* apply self review suggestions

Deduplicate fee distribution code.
Rename DistributeFee to DistributePacketFees.
Rename DistributeFeeTimeout to DistributePacketFeesOnTimeout

* fixup tests

rename validCoins.
DistributePacketFeesOnTimeout no longer has a valid error case
Add test case for invalid forward relayer address on DistributePacketFees.

* partially fix tests

timeout fee is still being distributed depsite WriteFn() not being called

* fix tests

* address code nit

Co-authored-by: Colin Axnér <25233464+colin-axner@users.noreply.github.com>

* ics4 callbacks fee middleware (#580)

* feat: adding WriteAcknowledgement

* updating genesis & relayer prefix

* fix: comment

* fix: comments

* Update modules/apps/29-fee/keeper/relay.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* feat: add DeleteForwardRelayerAddr helper + use Set in ack

* fix: SetForwardAddr

* chore: add panic

* fix: remove fmt

* test: add WriteAcknowledgement test

* Update modules/apps/29-fee/ibc_module.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* fix: remove print

* fix: WriteAck

* fix: use constructor

* Update modules/apps/29-fee/keeper/keeper.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: nits

* fix: remove found var not used

* test: adding check that forward relayer address is successfully deleted if set

* fix: merge issues

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Aditya <adityasripal@gmail.com>

* chore: making PacketId non nullable (#737)

* nits: proto spacing + naming (#739)

* nits: proto spacing + naming

* nit: update comment

* fix: go.mod

* nit: option above import proto

* fix: spacing

* sean/fix-proto-identified-fee-not-null (#746)

* nits: more ics29 nits (#741)

* nits: remove capital from error + add godoc

* nit: add Wrapf

* nit: use strings.TrimSpace

* nit: add err type for MsgPayPacketFee

* refactor: app version + add comment (#750)

* chore: remove error

* test: add test for whitespaced empty string

* nit: update err syntax (#747)

* nit: update err syntax

* nit: more

* nit: err syntax

* feat: adding Route, Type, GetSignBytes for all messages (#743)

* feat: adding Route, Type, GetSignBytes for all messages

* tests: adding tests for Route/Type/GetSignBytes

* hygiene: add validate fn for Fee (#748)

* hygiene: add validate fn for Fee

* Update modules/apps/29-fee/types/msgs.go

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* fix: error message

* test: move Validate to fee.go & abstract out test

* chore: remove test cases

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* fix: app.go (#789)

* refactor: ics29 json encoded version metadata (#883)

* adding metadata type to ics29 protos

* updating ics29 handshake handlers to support json encoded metadata

* updating tests to support json encoded metadata

* Update modules/apps/29-fee/ibc_module.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/ibc_module.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* renaming metadata version to fee_version

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: return nil on OnRecvPacket for async pay (#911)

* nit: ics29 comments (#910)

* fix: comments

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* chore: Add transfer test for ics29 (#901)

* begin writing transfer test for ics29

* finish writing transfer test

* refactor: ics29 OnChanOpenInit callback tests now use mock module (#924)

* refactor: OnChanOpenInit callback tests now use mock module

* Update modules/apps/29-fee/fee_test.go

* feat: allow multiple addrs to incentivize packets (#915)

* [WIP] allow multiple addresses to incentivize a packet

* distribute multiple fees, fix broken tests

* use NewIdentifiedPacketFees in EscrowPacketFee

* cleanup var naming

* removing commented out code and adding test case

* Update modules/apps/29-fee/ibc_module.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* fix: refund RecvFee if ForwardAddr is invalid

* test: update tests to distribute multiple identified fees

* refactor: clean up DistrPacketFees

* refactor: using .Empty() helper func for code hygiene

Co-authored-by: Aditya <adityasripal@gmail.com>
Co-authored-by: Sean King <sean@seking.dev>
Co-authored-by: Sean King <seantking@users.noreply.github.com>

* chore: remove spec directory from ics29 (#934)

* refactor: use mock module for ics29 closing handshakes (#926)

* refactor: use mock module for closing handshakes in ics29

* self-review fix

* refactor: use mock module for ics29 grpc_query_test.go (#933)

* refactor: readjust keeper_test.go to use mock module (#930)

* fix: fields for genesis should be non nullable (#938)

* refactor: use mock module for ics29 escrow_test.go (#932)

* refactor: use mock module for ics29 genesis_test.go (#931)

* ics29:feat: emit event escrow (#914)

* feat: emit EventTypeSendIncentivizedPacket event on EscrowPacket

* fix: string conversion

* refactor: add helper fn for emit event

* chore: godoc

* nit: use .String())

* refactor: OnRecvPacket to use mock module (#927)

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* refactor: ics29 OnChanOpenTry/Ack use mock module for testing instead of ics20 (#925)

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* refactor: use mock module for OnAcknowledgePacket callback testing (#929)

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* refactor: OnTimeoutPacket to use mock module (#928)

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* chore: add packet id arg to EscrowPacketFee (#951)

* adding packet id arg to EscrowPacketFee

* updating tests

* review adaptations

* chore: remove legacy testing functions (#954)

* fix:ics29: WriteAck update + adding success bool to IncentivizedAck (#952)

* fix: updating WriteAck & adding Success boolean to IncentivizedAcknowledgement

* feat: adding check of is fee enabled

* nit: change successful to underlying_application_success

* test: adding seperate test for fee disabled write async

* Update modules/apps/29-fee/ibc_module_test.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* test: adding check to compare hash of acks

* fix: var name

Co-authored-by: Aditya <adityasripal@gmail.com>

* chore: add cli cmd to incentivize existing packet (async) (#965)

* chore: add cli to incentivize existing packets

* Update modules/apps/29-fee/client/cli/cli.go

* Update modules/apps/29-fee/client/cli/cli.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* chore: update cli example

Co-authored-by: Aditya <adityasripal@gmail.com>

* ics29:fix: counterparty addr must contain channelID (#937)

* fix: counterparty address must chain channelID

* nit: updating var name

* test: adding validation check for channelID

* nit: fn names

* chore: fix err msg (#971)

* ics29:fix: store source address for query later on WriteAck (#912)

* fix: for async WriteAck store source address for query later

* ics29:fix: update genesis type (#913)

* fix: adding ForwardRelayerAddresses to genesis

* fix: trimspace on string check

* nit: err + trimspace error case

* refactor: updating WriteAck + keeper fn name

* Update modules/apps/29-fee/keeper/relay.go

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* chore: remove legacy testing functions (#954)

* fix:ics29: WriteAck update + adding success bool to IncentivizedAck (#952)

* fix: updating WriteAck & adding Success boolean to IncentivizedAcknowledgement

* feat: adding check of is fee enabled

* nit: change successful to underlying_application_success

* test: adding seperate test for fee disabled write async

* Update modules/apps/29-fee/ibc_module_test.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* test: adding check to compare hash of acks

* fix: var name

Co-authored-by: Aditya <adityasripal@gmail.com>

Co-authored-by: Damian Nolan <damiannolan@gmail.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Aditya <adityasripal@gmail.com>

* refactor: make fee storage more efficient (#956)

* adding new proto types and codegen

* refactoring ics29 fees for more efficient storage

* updating tests

* fixing typo in protodoc comments

* chore: update ics29 genesis state to support multiple packet fees (#957)

* adding new proto types and codegen

* refactoring ics29 fees for more efficient storage

* updating tests

* updating genesis protos to use IdentifiedPacketFees

* updating init/export genesis state functionality and tests

* chore: update MsgPayPacketFeeAsync fields (#979)

* adding new proto types and codegen

* refactoring ics29 fees for more efficient storage

* updating tests

* fixing typo in protodoc comments

* updating protos and codegen

* updating MsgPayPacketFeeAsync handler and tests

* chore: add ParseKeyFeesInEscrow helper function (#998)

* chore: update grpc queries to handle multiple fees (#967)

* adding new proto types and codegen

* refactoring ics29 fees for more efficient storage

* updating tests

* updating protos and existing queries

* updating grpc queries and refactoring tests

* format error correct in favour of proto string() method

* leveraging ParseKeyFeesInEscrow to obtain  packet id in query

* feat: CLI cmd for MsgRegisterCounterpartyAddress (#987)

* feat: CLI cmd for MsgRegisterCounterpartyAddress

* fix: examples

* Update modules/apps/29-fee/client/cli/tx.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/client/cli/tx.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* chore: remove print

* nit: update address for counterparty

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: ics29: switch source with destintion for chan/port IDs (#961)

* fix: switch source with destintion for chan/port IDs

* fix: blunder

* test: adding tests in case of incorrect channel/port id

* test: moving check to WriteAcknowledgement

* add test case for Get/Set counterparty address

* nit: path name

* Update modules/apps/29-fee/keeper/msg_server_test.go

* test: cleanup 29-fee/types tests (#1006)

* feat: grpc query total recv packet fees (#1015)

* adding query for total packet recv fees to proto query server

* adding total packet recv fee query impl and tests

* updating doc comments

* chore: switch code ordering (#1025)

* feat: Add ParseKeyFeeEnabled and rename FeeEnabledKey -> KeyFeeEnabled (#1023)

* chore: add ParseKeyFeesInEscrow helper function

* feat: add ParseKeyFeeEnabled function and rename FeeEnabledKey to KeyFeeEnabled

* feat: ics29 cli for query total recv fees (#1035)

* feat: grpc query total ack fees (#1032)

* adding query for total packet recv fees to proto query server

* adding total packet recv fee query impl and tests

* updating doc comments

* adding protos and codegen

* adding total ack fees query and tests

* fixing protodoc comment

* feat: grpc query total timeout fees (#1033)

* adding query for total packet recv fees to proto query server

* adding total packet recv fee query impl and tests

* updating doc comments

* adding protos and codegen

* adding total ack fees query and tests

* adding protos and codegen

* adding query total timeout fees and tests

* fixing protodoc comment

* fixing protodoc comment

* feat: adding clis for total ack and timeout queries (#1043)

* add ParseKeyForwardRelayerAddress function + test (#1046)

* chore: remove unused ics29 keeper funcs (#1044)

* removing keys, adding additional test, moving event attribute keys

* removing unused code and updating tests

* removing unused IdentifiedPacketFee type

* chore: add gRPC for querying incentivized packets for a specific channel (#983)

* generate proto files

* feat: add gRPC for querying incentivized packets for a specific channel

* test: add gRPC test for incentivized packets for channel query

* fix build

* partially fix tests

* chore: fix tests

* deduplicate code

* chore: code cleanup

* fix build

* remove changes from merge conflict

* nit: rename c to goCtx

* add function EscrowAccountHasBalance (#1042)

* add function EscrowAccountHasBalance

* change API to use sdk.Coins

* feat: ParseKeyCounterpartyRelayer function (#1047)

* chore: adding queries to cmd builder (#1057)

* chore: update ics29 protodocs (#1055)

* updating protodocs comments and regen code/docs

* Update proto/ibc/applications/fee/v1/tx.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* updating incentivized ack doc

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* add counter party channel ID to argument list of on channel open ack (#1159)

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* ADR 004: Fee module locking in the presence of severe bugs (#1060)

* add adr 004

* add to README

* Update docs/architecture/adr-004-ics29-lock-fee-module.md

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update docs/architecture/adr-004-ics29-lock-fee-module.md

Co-authored-by: Aditya <adityasripal@gmail.com>

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>
Co-authored-by: Aditya <adityasripal@gmail.com>

* nit: packetID var name (#1214)

* ics29: update with changes from main (#1221)

* add banner image (#1158)

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* Add alpha, beta, and rc release definitions (#1151)

## Description

The proposed definitions for each phase of our release cycle. Please feel free to adjust my wording

closes: #881 


---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* build(deps): bump google.golang.org/protobuf from 1.27.1 to 1.28.0 (#1164)

Bumps [google.golang.org/protobuf](https://github.com/protocolbuffers/protobuf-go) from 1.27.1 to 1.28.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/protocolbuffers/protobuf-go/releases">google.golang.org/protobuf's releases</a>.</em></p>
<blockquote>
<h2>v1.28.0</h2>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-overview">Overview</a></li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-notable-changes">Notable changes</a>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-recursion-limit">UnmarshalOption RecursionLimit</a></li>
</ul>
</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-breaking-changes">Upcoming breakage changes</a></li>
</ul>
<h2>Overview </h2>
<p>The release provides a new unmarshal option for limiting the recursion depth when unmarshalling nested messages to prevent stack overflows. (<a href="https://pkg.go.dev/google.golang.org/protobuf/proto#UnmarshalOptions.RecursionLimit"><code>UnmarshalOptions.RecursionLimit</code></a>).</p>
<h2>Notable changes </h2>
<p><strong>New features:</strong></p>
<ul>
<li><a href="https://go.dev/cl/340489">CL/340489</a>: testing/protocmp: add Message.Unwrap</li>
</ul>
<p><strong>Documentation improvements:</strong></p>
<ul>
<li><a href="https://go.dev/cl/339569">CL/339569</a>: reflect/protoreflect: add more docs on Value aliasing</li>
</ul>
<p><strong>Updated supported versions:</strong></p>
<ul>
<li><a href="https://go.dev/cl/370055">CL/370055</a>: all: update supported versions</li>
</ul>
<h3>UnmarshalOption RecursionLimit </h3>
<ul>
<li><a href="https://golang.org/cl/385854">CL/385854</a>: all: implement depth limit for unmarshalling</li>
</ul>
<p>The new <a href="https://pkg.go.dev/google.golang.org/protobuf/proto#UnmarshalOptions.RecursionLimit"><code>UnmarshalOptions.RecursionLimit</code></a> limits the maximum recursion depth when unmarshalling messages. The limit is applied for nested messages. When messages are nested deeper than the specified limit the unmarshalling will fail. If unspecified, a default limit of 10,000 is applied.</p>
<p>In addition to the configurable limit for message nesting a non-configurable recursion limit for <a href="https://developers.google.com/protocol-buffers/docs/proto#groups">group</a> nesting of 10,000 was introduced.</p>
<h2>Upcoming breakage changes </h2>
<p>The default recursion limit of 10,000 introduced in the release is subject to change. We want to align this limit with implementations for other languages in the long term. C++ and Java use a limit of 100 which is also the target for the Go implementation.</p>
</blockquote>
</details>
<details>
<summary>…
oshorefueled pushed a commit to ComposableFi/ibc-go that referenced this pull request Aug 9, 2022
* fix mirgation docs (#1091)

* fix: handle testing update client errors (#1094)

* replace channel keeper with IBC keeper in AnteDecorator (#950)

* replace channel keeper with IBC keeper in AnteDecorator and pass message to rpc handler

* fix error checking condition

* fix for proper way of getting go context

* refactor tests for ante handler

* review comment

* review comments and some fixes

* review comments

* execute message for update client as well

* add migration

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* add backport rules for v1.4.x and v2.2.x (#1085)

* ibctesting: custom voting power reduction for testing (#939)

* ibctesting: custom voting power reduction for testing

* changelog

* fix

* make T public

* fix

* revert changes

* fix test

* build(deps): bump github.com/spf13/cobra from 1.3.0 to 1.4.0 (#1105)

* build(deps): bump google.golang.org/grpc from 1.44.0 to 1.45.0 (#1098)

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.44.0 to 1.45.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.44.0...v1.45.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: adjust InitModule to account for empty controller and host keepers (#1120)

## Description



closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [x] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [x] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [x] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [x] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [x] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [x] Review `Codecov Report` in the comment section below once CI passes

* Merge pull request from GHSA-j658-c98j-fww4

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* fixes for the documentation about handling ack for SDK <= 0.45 (#1122)

* fixes for documentation

* review comment

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* Allow testing to update ValidatorSet (#1003)

* testing: adding multiple sender accounts for testing puproses

* fix genesis setup (#936)

* Update testing/chain.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* refactor: code hygiene

* Update testing/chain.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* multi validator commit taken from @saione

* add function to pass custom valset

* create simplest failing test

* progress

* fix changevalset test

* fix errors in tendermint package

* fix client types test

* fix client keeper

* fix cap functions

* fix genesis core tests

* fix ica tests

* fix doc

* CHANGELOG

* replace signer array with signer map

* add documentation

* fix merge

* documentation

* ordered signer array doc

* add new delegation and comment to change valset test

Co-authored-by: Sean King <sean@seking.dev>
Co-authored-by: Sean King <seantking@users.noreply.github.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* imp: create codeql-analysis action (#1128)

## Description



Noticed that [CodeQL](https://codeql.github.com/) wasn't enabled on the IBC-go repo

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* update changelog (#1131)

* update changelog

* fix typo

* build(deps): bump github.com/stretchr/testify from 1.7.0 to 1.7.1 (#1134)

Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.7.0 to 1.7.1.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.7.0...v1.7.1)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* call packet.GetSequence() rather than passing the func as argument (#1130)

* call packet.GetSequence() rather than passing the func as argument

* add changelog entry

* fix: prefix ResponseResultType enum for proto linting (#1143)

* build(deps): bump actions/cache from 2.1.7 to 3 (#1150)

Bumps [actions/cache](https://github.com/actions/cache) from 2.1.7 to 3.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v2.1.7...v3)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fixes for go-releaser configuration (#1148)

* set the pre-release status if the tag contains alpha, beta or rc

* add separate filter for final releases

* add banner image (#1158)

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* Add alpha, beta, and rc release definitions (#1151)

## Description

The proposed definitions for each phase of our release cycle. Please feel free to adjust my wording

closes: #881 


---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* build(deps): bump google.golang.org/protobuf from 1.27.1 to 1.28.0 (#1164)

Bumps [google.golang.org/protobuf](https://github.com/protocolbuffers/protobuf-go) from 1.27.1 to 1.28.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/protocolbuffers/protobuf-go/releases">google.golang.org/protobuf's releases</a>.</em></p>
<blockquote>
<h2>v1.28.0</h2>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-overview">Overview</a></li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-notable-changes">Notable changes</a>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-recursion-limit">UnmarshalOption RecursionLimit</a></li>
</ul>
</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-breaking-changes">Upcoming breakage changes</a></li>
</ul>
<h2>Overview </h2>
<p>The release provides a new unmarshal option for limiting the recursion depth when unmarshalling nested messages to prevent stack overflows. (<a href="https://pkg.go.dev/google.golang.org/protobuf/proto#UnmarshalOptions.RecursionLimit"><code>UnmarshalOptions.RecursionLimit</code></a>).</p>
<h2>Notable changes </h2>
<p><strong>New features:</strong></p>
<ul>
<li><a href="https://go.dev/cl/340489">CL/340489</a>: testing/protocmp: add Message.Unwrap</li>
</ul>
<p><strong>Documentation improvements:</strong></p>
<ul>
<li><a href="https://go.dev/cl/339569">CL/339569</a>: reflect/protoreflect: add more docs on Value aliasing</li>
</ul>
<p><strong>Updated supported versions:</strong></p>
<ul>
<li><a href="https://go.dev/cl/370055">CL/370055</a>: all: update supported versions</li>
</ul>
<h3>UnmarshalOption RecursionLimit </h3>
<ul>
<li><a href="https://golang.org/cl/385854">CL/385854</a>: all: implement depth limit for unmarshalling</li>
</ul>
<p>The new <a href="https://pkg.go.dev/google.golang.org/protobuf/proto#UnmarshalOptions.RecursionLimit"><code>UnmarshalOptions.RecursionLimit</code></a> limits the maximum recursion depth when unmarshalling messages. The limit is applied for nested messages. When messages are nested deeper than the specified limit the unmarshalling will fail. If unspecified, a default limit of 10,000 is applied.</p>
<p>In addition to the configurable limit for message nesting a non-configurable recursion limit for <a href="https://developers.google.com/protocol-buffers/docs/proto#groups">group</a> nesting of 10,000 was introduced.</p>
<h2>Upcoming breakage changes </h2>
<p>The default recursion limit of 10,000 introduced in the release is subject to change. We want to align this limit with implementations for other languages in the long term. C++ and Java use a limit of 100 which is also the target for the Go implementation.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/32051b4f86e54c2142c7c05362c6e96ae3454a1c"><code>32051b4</code></a> all: release v1.28.0</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/3992ea83a23c00882339f33511074d251e19822c"><code>3992ea8</code></a> all: implement depth limit for unmarshaling</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/e5db2960ed1380681b571cdf4648230beefaf58b"><code>e5db296</code></a> all: update supported versions</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/3a9e1dc314e2cb57d6cb054df513f17586295fc7"><code>3a9e1dc</code></a> all: gofmt all</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/26e8bcb3c743193558d1a0ff540c9e05f999267d"><code>26e8bcb</code></a> all: remove unnecessary string([]byte) conversion in fmt.Sprintf with %s</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/5aec41b4809b9822a34e17acd06ae9ae9f41c13d"><code>5aec41b</code></a> testing/protocmp: add Message.Unwrap</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/05be61fde35dcaa3502f4430edee444a294d41c3"><code>05be61f</code></a> reflect/protoreflect: add more docs on Value aliasing</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/b03064a95cacfede187231741d9918a75653057d"><code>b03064a</code></a> all: start v1.27.1-devel</li>
<li>See full diff in <a href="https://github.com/protocolbuffers/protobuf-go/compare/v1.27.1...v1.28.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/protobuf&package-manager=go_modules&previous-version=1.27.1&new-version=1.28.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

* fix typos in the controller params (#1172)

## Description



closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* add versions for new releases (#1175)

## Description



closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* fix: link checker reporting broken milestone link (#1200)

* update roadmap for q2 2022 and deleted history roadmap (don't think we'll need it)

* requirements document for ICA (#1173)

* add requirements document for interchain accounts

* fix branch

* added number in tittle.

* apply suggestions from review

Co-authored-by: Aditya <adityasripal@gmail.com>

* review comment

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>
Co-authored-by: Aditya <adityasripal@gmail.com>

* imp: improve Logger performance (#1160)

* fix: Logger marshal errors

* changelog

* update

* ICS 29: Fee Middleware (#276)

* scaffolding for 29-fee (#274)

* scaffolding for 29-fee

* fix build

* update keeper test

* remove module test

* feat: adding proto files for fee payment middleware (#272)

* feat: adding proto files for fee payment middleware

* grammar

* fix: remove generated .pb files

* fix: comment

* feat: adding PacketId type

* refactor: fee / genesis

* refactor: escrowed fees map

* Apply suggestions from code review

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update proto/ibc/applications/middleware/fee/v1/tx.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update proto/ibc/applications/middleware/fee/v1/tx.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update proto/ibc/applications/middleware/fee/v1/tx.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* refactor: use packetID + minor changes

* feat: adding query for all incentivized packets + some fixes

* feat: adding pagination to incentivized query

* fix: removing generated ibc directory + adding import/yaml

* fix: naming

* increase max depth for proto file searching and make proto all

* Update proto/ibc/applications/middleware/fee/v1/fee.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* refactor: remove file imports/add yaml/add argument for requests

* refactor: updating IdentifiedPacketFee

* fix: remove hidden file

* removing middleware dir & adding query

* remove junk file and update query rpcs

* Apply suggestions from code review

* Apply suggestions from code review

* remove query yaml, make proto-all

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Aditya Sripal <adityasripal@gmail.com>

* fix: removing unncessary fields MsgEscrow & adding query params (#300)

* fix: removing unncessary fields MsgEscrow & adding query params

* fix: grammar

* fix: add yaml

* feat: #258 Register Counterparty Address (#376)

* feat: adding MsgServer for RegisterCounterPartyAddress &
EscrowPacketFree

* test: adding test for ValidateBasic

* fix: removing validate basic check

* fix: removing empty file

* Update modules/apps/29-fee/keeper/msg_server.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/types/msgs.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/types/keys.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/keeper/keeper.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* fix: fixing typos, variable names, comments

* fix: updating import comments

* test: adding test for KeyRelayerAddress

* update: comments & key_test

* Update modules/apps/29-fee/keeper/msg_server.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: error message

* docs: updating RegisterCounterpartyAddress fn description

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Aditya <adityasripal@gmail.com>

* fix: remove comments for imports (#385)

* feat: Add handshake logic to ics29 (#307)

* do handshake logic, create test file

* do cap logic and fix build

* open handshake implementation and tests

* remove prints

* Update modules/apps/29-fee/module.go

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* debugging progress

* fee enabled flag

* cleanup handshake logic

* fix tests

* much cleaner simapp

* split module.go file

* cleanup and docs

* assert IBC interfaces are fulfilled in middleware

* Update modules/apps/transfer/module.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix unnecessary crossing hello logic

* fix version negotiation bugs and improve tests

* cleanup tests

* Apply suggestions from code review

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* address rest of colin comments

Co-authored-by: Sean King <seantking@users.noreply.github.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Fee Middleware: Escrow logic (#465)

* fix: adding second endpoint for async pay fee + renaming types

* feat: adding escrow logic

* feat: updating proto types & escrow logic

* fix: stub fn & proto comment

* feat: adding PayFee & PayFeeTimeout & escrow_test

* test: adding happy path for EscrowPacketFee

* fix: comments, error handling

* fix: comments & grammar

* test: adding unhappy path for escrow

* tests(escrow): adding hasBalance check for module acc

* test(PayFee): adding happy path for PayFee tests

* tests(PayFee, PayFeeTimeout): adding tests

* fix: adding relayers back to IdentifiedPacket

* fix: removing refund acc from key

* fix: storing IdentifiedPacketFee in state instead of Fee

* feat: adding msg_server test for registerCPAddr, wiring for codec + stubs for sdk.Msg interface

* test: adding msg_server test for PayPacketFee

* test: adding PayPacketFeeAsync msg_server test

* chore: updating PayFee -> DistributeFee & minor nits

* nit: removing unnecessary nil check

* refactor: add portId to store key & use packetId as param

* fix: add DeleteFeeInEscrow & remove fee on successful distribution

* tests: adding validation & signer tests for PayFee/Async & updating proto to use Signer sdk standard

* chore: adding NewIdentifiedPacketFee fn

* fix: getter/setter for counterparty address + fix NewIdentifiedPacketFee

* fix: updating EscrowPacketFee with correct usage of coins api

* test: adding balance check for refund acc after escrow

* fix: remove unncessary errors

* test: updating escrow tests + miscellaneous fixes

* nit: updating var names

* docs: godoc

* refactor: IdentifiedPacketFee & Fee no longer pointers

* fixes: small fixes

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/keeper/keeper.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/keeper/msg_server.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/keeper/msg_server.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update modules/apps/29-fee/types/msgs.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* nit: proto doc & error fix

* fix: escrow test

* test: updating distribute fee tests

* test: adding validation check for fee and updating tests

* test: allow counterparty address to be arbitrary string

* fix: message validation should pass if one fee is valid

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: nits

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* test: adding isZero check for msgs

Co-authored-by: Aditya <adityasripal@gmail.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* feat: update protos, grpc queries (#488)

* store refund address in IdentifiedPacketFee (#546)

* 29-Fee: Genesis (#557)

* proto: adding genesis state

* feat: add GetAllIdentifiedPacketFees

* feat: adding genesis.go & updating proto + app.go

* fix: removing PortId from genesis

* feat: adding GetAll for relayer addr/fee enabled chan + update genesis

* test: TestExportGenesis

* feat: update type + hook up to module.go

* fix: remove PortKey

* fix: imports + remove scoped keeper

* nit: using NewPacketId helper and updating helper def to have correct params

* feat: adding genesis validation + tests (#561)

* feat: adding genesis validation + tests

* fix: imports

* Update modules/apps/29-fee/types/genesis.go

* fix: nit

* Update modules/apps/29-fee/types/genesis_test.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* nit: imporve default gen val test

* chore: move packetId + val to channeltypes and use validate fn

Co-authored-by: Aditya <adityasripal@gmail.com>

* feat: add incentivised ack proto (#564)

* proto file

* incentivized ack proto

* Fee Closing Handshake (#551)

* add iterate logic

* add closing logic with tests

* add comments for panic

* change invariant breaking recovery to disabling middleware rather than panicing

* docs, tests, minor refactor

* Fee Middleware: Add ICS4 wrapper (#562)

* chore: add ICS4 wrapper

* fix: remove channelKeeper sender packet

* chore: add WriteAck

* feat: ics 29 packet callbacks (#357)

* update imports to v3

* regenerate proto files

* fix build

* fix: event caching for fee distribution (#661)

* proto file

* initial impl

* apply self review suggestions

Deduplicate fee distribution code.
Rename DistributeFee to DistributePacketFees.
Rename DistributeFeeTimeout to DistributePacketFeesOnTimeout

* fixup tests

rename validCoins.
DistributePacketFeesOnTimeout no longer has a valid error case
Add test case for invalid forward relayer address on DistributePacketFees.

* partially fix tests

timeout fee is still being distributed depsite WriteFn() not being called

* fix tests

* address code nit

Co-authored-by: Colin Axnér <25233464+colin-axner@users.noreply.github.com>

* ics4 callbacks fee middleware (#580)

* feat: adding WriteAcknowledgement

* updating genesis & relayer prefix

* fix: comment

* fix: comments

* Update modules/apps/29-fee/keeper/relay.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* feat: add DeleteForwardRelayerAddr helper + use Set in ack

* fix: SetForwardAddr

* chore: add panic

* fix: remove fmt

* test: add WriteAcknowledgement test

* Update modules/apps/29-fee/ibc_module.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* fix: remove print

* fix: WriteAck

* fix: use constructor

* Update modules/apps/29-fee/keeper/keeper.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: nits

* fix: remove found var not used

* test: adding check that forward relayer address is successfully deleted if set

* fix: merge issues

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Aditya <adityasripal@gmail.com>

* chore: making PacketId non nullable (#737)

* nits: proto spacing + naming (#739)

* nits: proto spacing + naming

* nit: update comment

* fix: go.mod

* nit: option above import proto

* fix: spacing

* sean/fix-proto-identified-fee-not-null (#746)

* nits: more ics29 nits (#741)

* nits: remove capital from error + add godoc

* nit: add Wrapf

* nit: use strings.TrimSpace

* nit: add err type for MsgPayPacketFee

* refactor: app version + add comment (#750)

* chore: remove error

* test: add test for whitespaced empty string

* nit: update err syntax (#747)

* nit: update err syntax

* nit: more

* nit: err syntax

* feat: adding Route, Type, GetSignBytes for all messages (#743)

* feat: adding Route, Type, GetSignBytes for all messages

* tests: adding tests for Route/Type/GetSignBytes

* hygiene: add validate fn for Fee (#748)

* hygiene: add validate fn for Fee

* Update modules/apps/29-fee/types/msgs.go

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* fix: error message

* test: move Validate to fee.go & abstract out test

* chore: remove test cases

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* fix: app.go (#789)

* refactor: ics29 json encoded version metadata (#883)

* adding metadata type to ics29 protos

* updating ics29 handshake handlers to support json encoded metadata

* updating tests to support json encoded metadata

* Update modules/apps/29-fee/ibc_module.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/ibc_module.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* renaming metadata version to fee_version

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: return nil on OnRecvPacket for async pay (#911)

* nit: ics29 comments (#910)

* fix: comments

* Update modules/apps/29-fee/keeper/escrow.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* chore: Add transfer test for ics29 (#901)

* begin writing transfer test for ics29

* finish writing transfer test

* refactor: ics29 OnChanOpenInit callback tests now use mock module (#924)

* refactor: OnChanOpenInit callback tests now use mock module

* Update modules/apps/29-fee/fee_test.go

* feat: allow multiple addrs to incentivize packets (#915)

* [WIP] allow multiple addresses to incentivize a packet

* distribute multiple fees, fix broken tests

* use NewIdentifiedPacketFees in EscrowPacketFee

* cleanup var naming

* removing commented out code and adding test case

* Update modules/apps/29-fee/ibc_module.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* fix: refund RecvFee if ForwardAddr is invalid

* test: update tests to distribute multiple identified fees

* refactor: clean up DistrPacketFees

* refactor: using .Empty() helper func for code hygiene

Co-authored-by: Aditya <adityasripal@gmail.com>
Co-authored-by: Sean King <sean@seking.dev>
Co-authored-by: Sean King <seantking@users.noreply.github.com>

* chore: remove spec directory from ics29 (#934)

* refactor: use mock module for ics29 closing handshakes (#926)

* refactor: use mock module for closing handshakes in ics29

* self-review fix

* refactor: use mock module for ics29 grpc_query_test.go (#933)

* refactor: readjust keeper_test.go to use mock module (#930)

* fix: fields for genesis should be non nullable (#938)

* refactor: use mock module for ics29 escrow_test.go (#932)

* refactor: use mock module for ics29 genesis_test.go (#931)

* ics29:feat: emit event escrow (#914)

* feat: emit EventTypeSendIncentivizedPacket event on EscrowPacket

* fix: string conversion

* refactor: add helper fn for emit event

* chore: godoc

* nit: use .String())

* refactor: OnRecvPacket to use mock module (#927)

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* refactor: ics29 OnChanOpenTry/Ack use mock module for testing instead of ics20 (#925)

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* refactor: use mock module for OnAcknowledgePacket callback testing (#929)

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* refactor: OnTimeoutPacket to use mock module (#928)

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* chore: add packet id arg to EscrowPacketFee (#951)

* adding packet id arg to EscrowPacketFee

* updating tests

* review adaptations

* chore: remove legacy testing functions (#954)

* fix:ics29: WriteAck update + adding success bool to IncentivizedAck (#952)

* fix: updating WriteAck & adding Success boolean to IncentivizedAcknowledgement

* feat: adding check of is fee enabled

* nit: change successful to underlying_application_success

* test: adding seperate test for fee disabled write async

* Update modules/apps/29-fee/ibc_module_test.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* test: adding check to compare hash of acks

* fix: var name

Co-authored-by: Aditya <adityasripal@gmail.com>

* chore: add cli cmd to incentivize existing packet (async) (#965)

* chore: add cli to incentivize existing packets

* Update modules/apps/29-fee/client/cli/cli.go

* Update modules/apps/29-fee/client/cli/cli.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* chore: update cli example

Co-authored-by: Aditya <adityasripal@gmail.com>

* ics29:fix: counterparty addr must contain channelID (#937)

* fix: counterparty address must chain channelID

* nit: updating var name

* test: adding validation check for channelID

* nit: fn names

* chore: fix err msg (#971)

* ics29:fix: store source address for query later on WriteAck (#912)

* fix: for async WriteAck store source address for query later

* ics29:fix: update genesis type (#913)

* fix: adding ForwardRelayerAddresses to genesis

* fix: trimspace on string check

* nit: err + trimspace error case

* refactor: updating WriteAck + keeper fn name

* Update modules/apps/29-fee/keeper/relay.go

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* chore: remove legacy testing functions (#954)

* fix:ics29: WriteAck update + adding success bool to IncentivizedAck (#952)

* fix: updating WriteAck & adding Success boolean to IncentivizedAcknowledgement

* feat: adding check of is fee enabled

* nit: change successful to underlying_application_success

* test: adding seperate test for fee disabled write async

* Update modules/apps/29-fee/ibc_module_test.go

Co-authored-by: Aditya <adityasripal@gmail.com>

* test: adding check to compare hash of acks

* fix: var name

Co-authored-by: Aditya <adityasripal@gmail.com>

Co-authored-by: Damian Nolan <damiannolan@gmail.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Aditya <adityasripal@gmail.com>

* refactor: make fee storage more efficient (#956)

* adding new proto types and codegen

* refactoring ics29 fees for more efficient storage

* updating tests

* fixing typo in protodoc comments

* chore: update ics29 genesis state to support multiple packet fees (#957)

* adding new proto types and codegen

* refactoring ics29 fees for more efficient storage

* updating tests

* updating genesis protos to use IdentifiedPacketFees

* updating init/export genesis state functionality and tests

* chore: update MsgPayPacketFeeAsync fields (#979)

* adding new proto types and codegen

* refactoring ics29 fees for more efficient storage

* updating tests

* fixing typo in protodoc comments

* updating protos and codegen

* updating MsgPayPacketFeeAsync handler and tests

* chore: add ParseKeyFeesInEscrow helper function (#998)

* chore: update grpc queries to handle multiple fees (#967)

* adding new proto types and codegen

* refactoring ics29 fees for more efficient storage

* updating tests

* updating protos and existing queries

* updating grpc queries and refactoring tests

* format error correct in favour of proto string() method

* leveraging ParseKeyFeesInEscrow to obtain  packet id in query

* feat: CLI cmd for MsgRegisterCounterpartyAddress (#987)

* feat: CLI cmd for MsgRegisterCounterpartyAddress

* fix: examples

* Update modules/apps/29-fee/client/cli/tx.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* Update modules/apps/29-fee/client/cli/tx.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* chore: remove print

* nit: update address for counterparty

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* fix: ics29: switch source with destintion for chan/port IDs (#961)

* fix: switch source with destintion for chan/port IDs

* fix: blunder

* test: adding tests in case of incorrect channel/port id

* test: moving check to WriteAcknowledgement

* add test case for Get/Set counterparty address

* nit: path name

* Update modules/apps/29-fee/keeper/msg_server_test.go

* test: cleanup 29-fee/types tests (#1006)

* feat: grpc query total recv packet fees (#1015)

* adding query for total packet recv fees to proto query server

* adding total packet recv fee query impl and tests

* updating doc comments

* chore: switch code ordering (#1025)

* feat: Add ParseKeyFeeEnabled and rename FeeEnabledKey -> KeyFeeEnabled (#1023)

* chore: add ParseKeyFeesInEscrow helper function

* feat: add ParseKeyFeeEnabled function and rename FeeEnabledKey to KeyFeeEnabled

* feat: ics29 cli for query total recv fees (#1035)

* feat: grpc query total ack fees (#1032)

* adding query for total packet recv fees to proto query server

* adding total packet recv fee query impl and tests

* updating doc comments

* adding protos and codegen

* adding total ack fees query and tests

* fixing protodoc comment

* feat: grpc query total timeout fees (#1033)

* adding query for total packet recv fees to proto query server

* adding total packet recv fee query impl and tests

* updating doc comments

* adding protos and codegen

* adding total ack fees query and tests

* adding protos and codegen

* adding query total timeout fees and tests

* fixing protodoc comment

* fixing protodoc comment

* feat: adding clis for total ack and timeout queries (#1043)

* add ParseKeyForwardRelayerAddress function + test (#1046)

* chore: remove unused ics29 keeper funcs (#1044)

* removing keys, adding additional test, moving event attribute keys

* removing unused code and updating tests

* removing unused IdentifiedPacketFee type

* chore: add gRPC for querying incentivized packets for a specific channel (#983)

* generate proto files

* feat: add gRPC for querying incentivized packets for a specific channel

* test: add gRPC test for incentivized packets for channel query

* fix build

* partially fix tests

* chore: fix tests

* deduplicate code

* chore: code cleanup

* fix build

* remove changes from merge conflict

* nit: rename c to goCtx

* add function EscrowAccountHasBalance (#1042)

* add function EscrowAccountHasBalance

* change API to use sdk.Coins

* feat: ParseKeyCounterpartyRelayer function (#1047)

* chore: adding queries to cmd builder (#1057)

* chore: update ics29 protodocs (#1055)

* updating protodocs comments and regen code/docs

* Update proto/ibc/applications/fee/v1/tx.proto

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* updating incentivized ack doc

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* add counter party channel ID to argument list of on channel open ack (#1159)

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* ADR 004: Fee module locking in the presence of severe bugs (#1060)

* add adr 004

* add to README

* Update docs/architecture/adr-004-ics29-lock-fee-module.md

Co-authored-by: Aditya <adityasripal@gmail.com>

* Update docs/architecture/adr-004-ics29-lock-fee-module.md

Co-authored-by: Aditya <adityasripal@gmail.com>

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>
Co-authored-by: Aditya <adityasripal@gmail.com>

* nit: packetID var name (#1214)

* ics29: update with changes from main (#1221)

* add banner image (#1158)

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* Add alpha, beta, and rc release definitions (#1151)

## Description

The proposed definitions for each phase of our release cycle. Please feel free to adjust my wording

closes: #881 


---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* build(deps): bump google.golang.org/protobuf from 1.27.1 to 1.28.0 (#1164)

Bumps [google.golang.org/protobuf](https://github.com/protocolbuffers/protobuf-go) from 1.27.1 to 1.28.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/protocolbuffers/protobuf-go/releases">google.golang.org/protobuf's releases</a>.</em></p>
<blockquote>
<h2>v1.28.0</h2>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-overview">Overview</a></li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-notable-changes">Notable changes</a>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-recursion-limit">UnmarshalOption RecursionLimit</a></li>
</ul>
</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.28-breaking-changes">Upcoming breakage changes</a></li>
</ul>
<h2>Overview </h2>
<p>The release provides a new unmarshal option for limiting the recursion depth when unmarshalling nested messages to prevent stack overflows. (<a href="https://pkg.go.dev/google.golang.org/protobuf/proto#UnmarshalOptions.RecursionLimit"><code>UnmarshalOptions.RecursionLimit</code></a>).</p>
<h2>Notable changes </h2>
<p><strong>New features:</strong></p>
<ul>
<li><a href="https://go.dev/cl/340489">CL/340489</a>: testing/protocmp: add Message.Unwrap</li>
</ul>
<p><strong>Documentation improvements:</strong></p>
<ul>
<li><a href="https://go.dev/cl/339569">CL/339569</a>: reflect/protoreflect: add more docs on Value aliasing</li>
</ul>
<p><strong>Updated supported versions:</strong></p>
<ul>
<li><a href="https://go.dev/cl/370055">CL/370055</a>: all: update supported versions</li>
</ul>
<h3>UnmarshalOption RecursionLimit </h3>
<ul>
<li><a href="https://golang.org/cl/385854">CL/385854</a>: all: implement depth limit for unmarshalling</li>
</ul>
<p>The new <a href="https://pkg.go.dev/google.golang.org/protobuf/proto#UnmarshalOptions.RecursionLimit"><code>UnmarshalOptions.RecursionLimit</code></a> limits the maximum recursion depth when unmarshalling messages. The limit is applied for nested messages. When messages are nested deeper than the specified limit the unmarshalling will fail. If unspecified, a default limit of 10,000 is applied.</p>
<p>In addition to the configurable limit for message nesting a non-configurable recursion limit for <a href="https://developers.google.com/protocol-buffers/docs/proto#groups">group</a> nesting of 10,000 was introduced.</p>
<h2>Upcoming breakage changes </h2>
<p>The default recursion limit of 10,000 introduced in the release is subject to change. We want to align this limit with implementations for other languages in the long term. C++ and Java use a limit of 100 which is also the target for the Go implementation.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/32051b4f86e54c2142c7c05362c6e96ae3454a1c"><code>32051b4</code></a> all: release v1.28.0</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/3992ea83a23c00882339f33511074d251e19822c"><code>3992ea8</code></a> all: implement depth limit for unmarshaling</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/e5db2960ed1380681b571cdf4648230beefaf58b"><code>e5db296</code></a> all: update supported versions</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/3a9e1dc314e2cb57d6cb054df513f17586295fc7"><code>3a9e1dc</code></a> all: gofmt all</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/26e8bcb3c743193558d1a0ff540c9e05f999267d"><code>26e8bcb</code></a> all: remove unnecessary string([]byte) conversion in fmt.Sprintf with %s</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/5aec41b4809b9822a34e17acd06ae9ae9f41c13d"><code>5aec41b</code></a> testing/protocmp: add Message.Unwrap</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/05be61fde35dcaa3502f4430edee444a294d41c3"><code>05be61f</code></a> reflect/protoreflect: add more docs on Value aliasing</li>
<li><a href="https://github.com/protocolbuffers/protobuf-go/commit/b03064a95cacfede187231741d9918a75653057d"><code>b03064a</code></a> all: start v1.27.1-devel</li>
<li>See full diff in <a href="https://github.com/protocolbuffers/protobuf-go/compare/v1.27.1...v1.28.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/protobuf&package-manager=go_modules&previous-version=1.27.1&new-version=1.28.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

* fix typos in the controller params (#1172)

## Description



closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* add versions for new releases (#1175)

## Description



closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* fix: link checker reporting broken milestone link (#1200)

* update roadmap for q2 2022 and deleted history roadmap (don't think we'll need it)

* requirements document for ICA (#1173)

* add requirements document for interchain accounts

* fix branch

* added number in tittle.

* apply suggestions from review

Co-authored-by: Aditya <adityasripal@gmail.com>

* review comment

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>
Co-authored-by: Aditya <adityasripal@gmail.com>

* imp: improve Logger performance (#1160)

* fix: Logger marshal errors

* changelog

* update

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>
Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Damian Nolan <damiannolan@gmail.com>
Co-authored-by: Aditya <adityasripal@gmail.com>
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Sean King <seantking@users.noreply.github.com>
Co-authored-by: Charly <charly@interchain.berlin>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Carlos Rodriguez <crodveg@yahoo.es>
Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>
Co-authored-by: Luke Rhoads <51463884+lukerhoads@users.noreply.github.com>
Co-authored-by: Damian Nolan <damiannolan@gmail.com>
Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
Co-authored-by: Jack Zampolin <jack.zampolin@gmail.com>
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: Leo Pang <34628052+allthatjazzleo@users.noreply.github.com>
Co-authored-by: Barrie Byron <barrie.byron@tendermint.com>
Co-authored-by: Tyler <48813565+technicallyty@users.noreply.github.com>
Co-authored-by: technicallyty <48813565+tytech3@users.noreply.github.com>
Co-authored-by: Barrie Byron <barriebyron.barriebyron@gmail.com>
Co-authored-by: Marko <marbar3778@yahoo.com>
Co-authored-by: Marko Baricevic <markobaricevic3778@gmail.com>
Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: nir1218 <nir1218@users.noreply.github.com>
Co-authored-by: Carlos Rodriguez <carlos@interchain.io>
Co-authored-by: Assaf Morami <assaf.morami@gmail.com>
Co-authored-by: Dan McCandless <dkmccandless@users.noreply.github.com>
Co-authored-by: Ramiro Carlucho <ramirocarlucho@gmail.com>
Co-authored-by: frog power 4000 <rigel.rozanski@gmail.com>
Co-authored-by: Sean King <sean@seking.dev>

* build(deps): bump codecov/codecov-action from 2.1.0 to 3 (#1222)

Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.1.0 to 3.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v2.1.0...v3)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

* ics29: feat: CLI query commands for packets (#1229)

* feat: adding query for getting incentivized packet by packet-id

* feat: add cli for getting all incentivized packets across all channels

* nits: suggestions

* Update modules/apps/29-fee/client/cli/query.go

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* chore: changelog

* nits: comments

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* add check for blocked addr for forward relayer distribution (#1231)

* feat: ics29 counterparty address grpc query and CLI  (#1224)

* generating codegen protobufs for query counterparty address

* adding grpc query, tests and cli

* Update modules/apps/29-fee/keeper/grpc_query_test.go

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* Update modules/apps/29-fee/keeper/grpc_query_test.go

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* updating godoc

* adding changelog

* updating cli descriptions for ics29

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* chore: fix go ctx arg naming in ics29 grpc queries (#1226)

* chore: ics29 module housekeeping cleanup (#1227)

* feat: ics29 fee enabled channel queries (#1225)

* adding protobuf codegen

* adding grpc queries and tests

* adding clis for queries

* adding changelog

* resolving nits from pr review

* updating grpc gateway options

* chore: cleanup OnAcknowledgement and OnTimeout code ics29 (#1228)

* add changelog entry for #276 (#1233)

* feat: adding CLI for getting incentivized packets on a specific channel (#1230)

* feat: adding CLI for getting incentivized packets on a specific channel

* chore: changelog

* refactor: usage

* chore: ics29 cleanup, addressing nits (#1236)

* refactor: moving fn definition to bottom of file and switching params (#1232)

## Description

closes: #868 #997 

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* feat: allow ability to lock fee module in presence of severe bug  (#1239)

* apply code changes from pr #1031

* update comments

* chore: update fee module is locked error string

* update godoc to reference ADR 004

* add more references to ADR 004

* build(deps): bump actions/download-artifact from 2 to 3 (#1241)

Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 2 to 3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/actions/download-artifact/releases">actions/download-artifact's releases</a>.</em></p>
<blockquote>
<h2>v3.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update default runtime to node16 (<a href="https://github-redirect.dependabot.com/actions/download-artifact/pull/134">actions/download-artifact#134</a>)</li>
<li>Update package-lock.json file version to 2 (<a href="https://github-redirect.dependabot.com/actions/download-artifact/pull/136">actions/download-artifact#136</a>)</li>
</ul>
<h3>Breaking Changes</h3>
<p>With the update to Node 16, all scripts will now be run with Node 16 rather than Node 12.</p>
<h2>v2.1.0 Download Artifact</h2>
<ul>
<li>Improved output &amp; logging</li>
<li>Fixed issue where downloading all artifacts could cause display percentages to be over 100%</li>
<li>Various small bug fixes &amp; improvements</li>
</ul>
<h2>v2.0.10</h2>
<ul>
<li>Retry on HTTP 500 responses from the service</li>
</ul>
<h2>v2.0.9</h2>
<ul>
<li>Fixes to proxy related issues</li>
</ul>
<h2>v2.0.8</h2>
<ul>
<li>Improvements to retryability if an error is encountered during artifact download</li>
</ul>
<h2>v2.0.7 download-artifact</h2>
<ul>
<li>Improved download retry-ability if a partial download is encountered</li>
</ul>
<h2>v2.0.6</h2>
<p>Update actions/core NPM package that is used internally</p>
<h2>v2.0.5</h2>
<ul>
<li>Add Third Party License Information</li>
</ul>
<h2>v2.0.4</h2>
<ul>
<li>Use the latest version of the <code>@actions/artifact</code> NPM package</li>
</ul>
<h2>v2.0.3</h2>
<ul>
<li>Misc improvements</li>
</ul>
<h2>v2.0.2</h2>
<ul>
<li>Support for tilde expansion</li>
</ul>
<h2>v2.0.1</h2>
<ul>
<li>Download path output</li>
<li>Improved logging</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/actions/download-artifact/commit/fb598a63ae348fa914e94cd0ff38f362e927b741"><code>fb598a6</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/actions/download-artifact/issues/136">#136</a> from actions/jtamsut/update-lockfile-version</li>
<li><a href="https://github.com/actions/download-artifact/commit/a4a09c5d7eb5932e0e6c4e77a434738189a24f1b"><code>a4a09c5</code></a> regenerate index.js</li>
<li><a href="https://github.com/actions/download-artifact/commit/9acf51df7946118a04918663acc5d955f49de177"><code>9acf51d</code></a> regenerate package lock</li>
<li><a href="https://github.com/actions/download-artifact/commit/882107232564f8bc8c5083706e009246f11aa871"><code>8821072</code></a> upgrade artifact version</li>
<li><a href="https://github.com/actions/download-artifact/commit/b8bbd3b64f298f12cfabf7d85ee4e716714eae3b"><code>b8bbd3b</code></a> regenerate lockfile</li>
<li><a href="https://github.com/actions/download-artifact/commit/6ee3d963e5a7ed7dac02925e126c37e459c36aa6"><code>6ee3d96</code></a> revert artifact version</li>
<li><a href="https://github.com/actions/download-artifact/commit/d4793f4e27ec52069836c96d310f815ffa48176c"><code>d4793f4</code></a> update docs for v3</li>
<li><a href="https://github.com/actions/download-artifact/commit/2d338d2145c33c497f1f4f574ca1eb88e1061a8e"><code>2d338d2</code></a> upgrade package to v3</li>
<li><a href="https://github.com/actions/download-artifact/commit/360d0830b5796c983178d8073e39063e8d32bc46"><code>360d083</code></a> update dependency on artifact lib</li>
<li><a href="https://github.com/actions/download-artifact/commit/d9b73cccacd09ac21cc34b82578e6cbb1b4e2539"><code>d9b73cc</code></a> update lock file</li>
<li>Additional commits viewable in <a href="https://github.com/actions/download-artifact/compare/v2...v3">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/download-artifact&package-manager=github_actions&previous-version=2&new-version=3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

* build(deps): bump actions/upload-artifact from 2 to 3 (#1240)

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/actions/upload-artifact/releases">actions/upload-artifact's releases</a>.</em></p>
<blockquote>
<h2>v3.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update default runtime to node16 (<a href="https://github-redirect.dependabot.com/actions/upload-artifact/issues/293">#293</a>)</li>
<li>Update package-lock.json file version to 2 (<a href="https://github-redirect.dependabot.com/actions/upload-artifact/issues/302">#302</a>)</li>
</ul>
<h3>Breaking Changes</h3>
<p>With the update to Node 16, all scripts will now be run with Node 16 rather than Node 12.</p>
<h2>v2.3.1</h2>
<p>Fix for empty fails on Windows failing on upload <a href="https://github-redirect.dependabot.com/actions/upload-artifact/issues/281">#281</a></p>
<h2>v2.3.0 Upload Artifact</h2>
<ul>
<li>Optimizations for faster uploads of larger files that are already compressed</li>
…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants