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

Pass in counterparty portID, channelID when verifying channel in ChanUpgradeOpen. #4052

Merged
merged 4 commits into from
Jul 12, 2023
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions modules/core/04-channel/keeper/upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,7 @@ func (k Keeper) ChanUpgradeOpen(
portID,
channelID string,
counterpartyChannelState types.State,
proofChannel []byte,
proofCounterpartyChannel []byte,
Copy link
Member

Choose a reason for hiding this comment

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

I think I'd prefer to keep this as proofChannel as we are always verify proofs of a counterparty (its implicit)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I do think proofChannel caused my initial mis-step on this. Other handles also prefer explicit. Change later all together if we decide so?

Copy link
Member

Choose a reason for hiding this comment

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

Yeah it looks like there's a bit of inconsistency across the arg naming in the upgrade handlers. Personally I prefer the implicit approach because I find less wordy var naming easier to read, but I understand that some may argue being explicit is better.

We have implicit in the channel and connection opening handshake as well as packet handlers.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

think there's some areas where different approaches have been taken (e.g also how we do connection look-up) deviating from the old handlers, definitely would prefer to hammer those differences out and be consistent. Opened #4053 to keep track of it and not forget

proofHeight clienttypes.Height,
) error {
if k.hasInflightPackets(ctx, portID, channelID) {
Expand Down Expand Up @@ -397,8 +397,14 @@ func (k Keeper) ChanUpgradeOpen(
panic(fmt.Sprintf("counterparty channel state should be in one of [%s, %s, %s]; got %s", types.TRYUPGRADE, types.ACKUPGRADE, types.OPEN, counterpartyChannelState))
}

err = k.connectionKeeper.VerifyChannelState(ctx, connection, proofHeight, proofChannel, portID, channelID, counterpartyChannel)
if err != nil {
if err = k.connectionKeeper.VerifyChannelState(
ctx,
connection,
proofHeight, proofCounterpartyChannel,
channel.Counterparty.PortId,
channel.Counterparty.ChannelId,
counterpartyChannel,
); err != nil {
return errorsmod.Wrapf(err, "failed to verify counterparty channel, expected counterparty channel state: %s", counterpartyChannel.String())
}

Expand Down