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

Separate event creation from event emission. #4079

Closed
Closed
Show file tree
Hide file tree
Changes from all 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
91 changes: 63 additions & 28 deletions modules/core/04-channel/keeper/events.go
Original file line number Diff line number Diff line change
Expand Up @@ -272,9 +272,9 @@ func emitChannelClosedEvent(ctx sdk.Context, packet exported.PacketI, channel ty
})
}

// emitChannelUpgradeInitEvent emits a channel upgrade init event
func emitChannelUpgradeInitEvent(ctx sdk.Context, portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade) {
ctx.EventManager().EmitEvents(sdk.Events{
// createChannelUpgradeInitEvent creates a channel upgrade init event
func createChannelUpgradeInitEvent(portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade) sdk.Events {
return sdk.Events{
sdk.NewEvent(
types.EventTypeChannelUpgradeInit,
sdk.NewAttribute(types.AttributeKeyPortID, portID),
Expand All @@ -291,12 +291,17 @@ func emitChannelUpgradeInitEvent(ctx sdk.Context, portID string, channelID strin
sdk.EventTypeMessage,
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
),
})
}
}

// emitChannelUpgradeTryEvent emits a channel upgrade try event
func emitChannelUpgradeTryEvent(ctx sdk.Context, portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade) {
ctx.EventManager().EmitEvents(sdk.Events{
// emitChannelUpgradeInitEvent emits a channel upgrade init event
func emitChannelUpgradeInitEvent(ctx sdk.Context, portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade) {
ctx.EventManager().EmitEvents(createChannelUpgradeInitEvent(portID, channelID, currentChannel, upgrade))
}

// createChannelUpgradeTryEvent creates a channel upgrade try event
func createChannelUpgradeTryEvent(portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade) sdk.Events {
return sdk.Events{
sdk.NewEvent(
types.EventTypeChannelUpgradeTry,
sdk.NewAttribute(types.AttributeKeyPortID, portID),
Expand All @@ -313,12 +318,17 @@ func emitChannelUpgradeTryEvent(ctx sdk.Context, portID string, channelID string
sdk.EventTypeMessage,
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
),
})
}
}

// emitChannelUpgradeAckEvent emits a channel upgrade ack event
func emitChannelUpgradeAckEvent(ctx sdk.Context, portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade) {
ctx.EventManager().EmitEvents(sdk.Events{
// emitChannelUpgradeTryEvent emits a channel upgrade try event
func emitChannelUpgradeTryEvent(ctx sdk.Context, portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade) {
ctx.EventManager().EmitEvents(createChannelUpgradeTryEvent(portID, channelID, currentChannel, upgrade))
}

// createChannelUpgradeAckEvent creates a channel upgrade ack event
func createChannelUpgradeAckEvent(portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade) sdk.Events {
return sdk.Events{
sdk.NewEvent(
types.EventTypeChannelUpgradeAck,
sdk.NewAttribute(types.AttributeKeyPortID, portID),
Expand All @@ -335,12 +345,17 @@ func emitChannelUpgradeAckEvent(ctx sdk.Context, portID string, channelID string
sdk.EventTypeMessage,
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
),
})
}
}

// emitChannelUpgradeOpenEvent emits a channel upgrade open event
func emitChannelUpgradeOpenEvent(ctx sdk.Context, portID string, channelID string, currentChannel types.Channel) {
ctx.EventManager().EmitEvents(sdk.Events{
// emitChannelUpgradeAckEvent emits a channel upgrade ack event
func emitChannelUpgradeAckEvent(ctx sdk.Context, portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade) {
ctx.EventManager().EmitEvents(createChannelUpgradeAckEvent(portID, channelID, currentChannel, upgrade))
}

// createChannelUpgradeOpenEvent creates a channel upgrade open event
func createChannelUpgradeOpenEvent(portID string, channelID string, currentChannel types.Channel) sdk.Events {
return sdk.Events{
sdk.NewEvent(
types.EventTypeChannelUpgradeOpen,
sdk.NewAttribute(types.AttributeKeyPortID, portID),
Expand All @@ -358,12 +373,17 @@ func emitChannelUpgradeOpenEvent(ctx sdk.Context, portID string, channelID strin
sdk.EventTypeMessage,
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
),
})
}
}

// emitChannelUpgradeTimeoutEvent emits an upgrade timeout event.
func emitChannelUpgradeTimeoutEvent(ctx sdk.Context, portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade) {
ctx.EventManager().EmitEvents(sdk.Events{
// emitChannelUpgradeOpenEvent emits a channel upgrade open event
func emitChannelUpgradeOpenEvent(ctx sdk.Context, portID string, channelID string, currentChannel types.Channel) {
ctx.EventManager().EmitEvents(createChannelUpgradeOpenEvent(portID, channelID, currentChannel))
}

// createChannelUpgradeTimeoutEvent creates an upgrade timeout event.
func createChannelUpgradeTimeoutEvent(portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade) sdk.Events {
return sdk.Events{
sdk.NewEvent(
types.EventTypeChannelUpgradeTimeout,
sdk.NewAttribute(types.AttributeKeyPortID, portID),
Expand All @@ -380,12 +400,17 @@ func emitChannelUpgradeTimeoutEvent(ctx sdk.Context, portID string, channelID st
sdk.EventTypeMessage,
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
),
})
}
}

// emitErrorReceiptEvent emits an error receipt event
func emitErrorReceiptEvent(ctx sdk.Context, portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade, err error) {
ctx.EventManager().EmitEvents(sdk.Events{
// emitChannelUpgradeTimeoutEvent emits an upgrade timeout event.
func emitChannelUpgradeTimeoutEvent(ctx sdk.Context, portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade) {
Copy link
Contributor

Choose a reason for hiding this comment

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

It seems like all these emitEvent functions take the same params and just call a different event creation "type". maybe we can just have these as one util function that takes a param from an enum listing all the different channel event types?

ctx.EventManager().EmitEvents(createChannelUpgradeTimeoutEvent(portID, channelID, currentChannel, upgrade))
}

// createErrorReceiptEvent creates an error receipt event
func createErrorReceiptEvent(portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade, err error) sdk.Events {
return sdk.Events{
sdk.NewEvent(
types.EventTypeChannelUpgradeInit,
sdk.NewAttribute(types.AttributeKeyPortID, portID),
Expand All @@ -402,12 +427,17 @@ func emitErrorReceiptEvent(ctx sdk.Context, portID string, channelID string, cur
sdk.EventTypeMessage,
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
),
})
}
}

// emitChannelUpgradeCancelEvent emits an upgraded cancelled event.
func emitChannelUpgradeCancelEvent(ctx sdk.Context, portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade) {
ctx.EventManager().EmitEvents(sdk.Events{
// emitErrorReceiptEvent emits an error receipt event
func emitErrorReceiptEvent(ctx sdk.Context, portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade, err error) {
ctx.EventManager().EmitEvents(createErrorReceiptEvent(portID, channelID, currentChannel, upgrade, err))
}

// createChannelUpgradeCancelEvent creates an upgraded cancelled event.
func createChannelUpgradeCancelEvent(portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade) sdk.Events {
return sdk.Events{
sdk.NewEvent(
types.EventTypeChannelUpgradeCancel,
sdk.NewAttribute(types.AttributeKeyPortID, portID),
Expand All @@ -423,5 +453,10 @@ func emitChannelUpgradeCancelEvent(ctx sdk.Context, portID string, channelID str
sdk.EventTypeMessage,
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
),
})
}
}

// emitChannelUpgradeCancelEvent emits an upgraded cancelled event.
func emitChannelUpgradeCancelEvent(ctx sdk.Context, portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade) {
ctx.EventManager().EmitEvents(createChannelUpgradeCancelEvent(portID, channelID, currentChannel, upgrade))
}
35 changes: 35 additions & 0 deletions modules/core/04-channel/keeper/export_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,38 @@ func (k Keeper) StartFlushUpgradeHandshake(
func (k Keeper) ValidateSelfUpgradeFields(ctx sdk.Context, proposedUpgrade types.UpgradeFields, currentChannel types.Channel) error {
return k.validateSelfUpgradeFields(ctx, proposedUpgrade, currentChannel)
}

// CreateChannelUpgradeInitEvent is a wrapper around createChannelUpgradeInitEvent to allow the function to be directly called in tests.
func CreateChannelUpgradeInitEvent(portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade) sdk.Events {
return createChannelUpgradeInitEvent(portID, channelID, currentChannel, upgrade)
}

// CreateChannelUpgradeTryEvent is a wrapper around createChannelUpgradeTryEvent to allow the function to be directly called in tests.
func CreateChannelUpgradeTryEvent(portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade) sdk.Events {
return createChannelUpgradeTryEvent(portID, channelID, currentChannel, upgrade)
}

// CreateChannelUpgradeAckEvent is a wrapper around createChannelUpgradeAckEvent to allow the function to be directly called in tests.
func CreateChannelUpgradeAckEvent(portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade) sdk.Events {
return createChannelUpgradeAckEvent(portID, channelID, currentChannel, upgrade)
}

// CreateChannelUpgradeOpenEvent is a wrapper around createChannelUpgradeOpenEvent to allow the function to be directly called in tests.
func CreateChannelUpgradeOpenEvent(portID string, channelID string, currentChannel types.Channel) sdk.Events {
return createChannelUpgradeOpenEvent(portID, channelID, currentChannel)
}

// CreateChannelUpgradeTimeoutEvent is a wrapper around createChannelUpgradeTimeoutEvent to allow the function to be directly called in tests.
func CreateChannelUpgradeTimeoutEvent(portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade) sdk.Events {
return createChannelUpgradeTimeoutEvent(portID, channelID, currentChannel, upgrade)
}

// CreateErrorReceiptEvent is a wrapper around createErrorReceiptEvent to allow the function to be directly called in tests.
func CreateErrorReceiptEvent(portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade, err error) sdk.Events {
return createErrorReceiptEvent(portID, channelID, currentChannel, upgrade, err)
}

// CreateChannelUpgradeCancelEvent is a wrapper around createChannelUpgradeCancelEvent to allow the function to be directly called in tests.
func CreateChannelUpgradeCancelEvent(portID string, channelID string, currentChannel types.Channel, upgrade types.Upgrade) sdk.Events {
return createChannelUpgradeCancelEvent(portID, channelID, currentChannel, upgrade)
}
Loading