Some checks failed
CodeQL / Analyze (push) Waiting to run
Docker Build & Push Simapp (main) / docker-build (push) Waiting to run
golangci-lint / lint (push) Waiting to run
Tests / Code Coverage / build (amd64) (push) Waiting to run
Tests / Code Coverage / build (arm64) (push) Waiting to run
Tests / Code Coverage / unit-tests (map[additional-args:-tags="test_e2e" name:e2e path:./e2e]) (push) Waiting to run
Tests / Code Coverage / unit-tests (map[name:08-wasm path:./modules/light-clients/08-wasm]) (push) Waiting to run
Tests / Code Coverage / unit-tests (map[name:ibc-go path:.]) (push) Waiting to run
Deploy to GitHub Pages / Deploy to GitHub Pages (push) Has been cancelled
Buf-Push / push (push) Has been cancelled
136 lines
4.6 KiB
Go
136 lines
4.6 KiB
Go
package keeper
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
"strings"
|
|
|
|
upgradetypes "cosmossdk.io/x/upgrade/types"
|
|
|
|
"github.com/cosmos/cosmos-sdk/codec"
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
|
|
"github.com/cosmos/ibc-go/v10/modules/core/02-client/types"
|
|
"github.com/cosmos/ibc-go/v10/modules/core/exported"
|
|
)
|
|
|
|
// emitCreateClientEvent emits a create client event
|
|
func emitCreateClientEvent(ctx sdk.Context, clientID, clientType string, initialHeight exported.Height) {
|
|
ctx.EventManager().EmitEvents(sdk.Events{
|
|
sdk.NewEvent(
|
|
types.EventTypeCreateClient,
|
|
sdk.NewAttribute(types.AttributeKeyClientID, clientID),
|
|
sdk.NewAttribute(types.AttributeKeyClientType, clientType),
|
|
sdk.NewAttribute(types.AttributeKeyConsensusHeight, initialHeight.String()),
|
|
),
|
|
sdk.NewEvent(
|
|
sdk.EventTypeMessage,
|
|
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
|
|
),
|
|
})
|
|
}
|
|
|
|
// emitUpdateClientEvent emits an update client event
|
|
func emitUpdateClientEvent(ctx sdk.Context, clientID string, clientType string, consensusHeights []exported.Height, _ codec.BinaryCodec, _ exported.ClientMessage) {
|
|
var consensusHeightAttr string
|
|
if len(consensusHeights) != 0 {
|
|
consensusHeightAttr = consensusHeights[0].String()
|
|
}
|
|
|
|
consensusHeightsAttr := make([]string, len(consensusHeights))
|
|
for i, height := range consensusHeights {
|
|
consensusHeightsAttr[i] = height.String()
|
|
}
|
|
|
|
ctx.EventManager().EmitEvents(sdk.Events{
|
|
sdk.NewEvent(
|
|
types.EventTypeUpdateClient,
|
|
sdk.NewAttribute(types.AttributeKeyClientID, clientID),
|
|
sdk.NewAttribute(types.AttributeKeyClientType, clientType),
|
|
// Deprecated: AttributeKeyConsensusHeight is deprecated and will be removed in a future release.
|
|
// Please use AttributeKeyConsensusHeights instead.
|
|
sdk.NewAttribute(types.AttributeKeyConsensusHeight, consensusHeightAttr),
|
|
sdk.NewAttribute(types.AttributeKeyConsensusHeights, strings.Join(consensusHeightsAttr, ",")),
|
|
),
|
|
sdk.NewEvent(
|
|
sdk.EventTypeMessage,
|
|
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
|
|
),
|
|
})
|
|
}
|
|
|
|
// emitUpgradeClientEvent emits an upgrade client event
|
|
func emitUpgradeClientEvent(ctx sdk.Context, clientID, clientType string, latestHeight exported.Height) {
|
|
ctx.EventManager().EmitEvents(sdk.Events{
|
|
sdk.NewEvent(
|
|
types.EventTypeUpgradeClient,
|
|
sdk.NewAttribute(types.AttributeKeyClientID, clientID),
|
|
sdk.NewAttribute(types.AttributeKeyClientType, clientType),
|
|
sdk.NewAttribute(types.AttributeKeyConsensusHeight, latestHeight.String()),
|
|
),
|
|
sdk.NewEvent(
|
|
sdk.EventTypeMessage,
|
|
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
|
|
),
|
|
})
|
|
}
|
|
|
|
// emitSubmitMisbehaviourEvent emits a client misbehaviour event
|
|
func emitSubmitMisbehaviourEvent(ctx sdk.Context, clientID string, clientType string) {
|
|
ctx.EventManager().EmitEvents(sdk.Events{
|
|
sdk.NewEvent(
|
|
types.EventTypeSubmitMisbehaviour,
|
|
sdk.NewAttribute(types.AttributeKeyClientID, clientID),
|
|
sdk.NewAttribute(types.AttributeKeyClientType, clientType),
|
|
),
|
|
sdk.NewEvent(
|
|
sdk.EventTypeMessage,
|
|
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
|
|
),
|
|
})
|
|
}
|
|
|
|
// emitRecoverClientEvent emits a recover client event
|
|
func emitRecoverClientEvent(ctx sdk.Context, clientID, clientType string) {
|
|
ctx.EventManager().EmitEvents(sdk.Events{
|
|
sdk.NewEvent(
|
|
types.EventTypeRecoverClient,
|
|
sdk.NewAttribute(types.AttributeKeySubjectClientID, clientID),
|
|
sdk.NewAttribute(types.AttributeKeyClientType, clientType),
|
|
),
|
|
sdk.NewEvent(
|
|
sdk.EventTypeMessage,
|
|
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
|
|
),
|
|
})
|
|
}
|
|
|
|
// emitScheduleIBCSoftwareUpgradeEvent emits a schedule IBC software upgrade event
|
|
func emitScheduleIBCSoftwareUpgradeEvent(ctx sdk.Context, title string, height int64) {
|
|
ctx.EventManager().EmitEvents(sdk.Events{
|
|
sdk.NewEvent(
|
|
types.EventTypeScheduleIBCSoftwareUpgrade,
|
|
sdk.NewAttribute(types.AttributeKeyUpgradePlanTitle, title),
|
|
sdk.NewAttribute(types.AttributeKeyUpgradePlanHeight, fmt.Sprintf("%d", height)),
|
|
),
|
|
sdk.NewEvent(
|
|
sdk.EventTypeMessage,
|
|
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
|
|
),
|
|
})
|
|
}
|
|
|
|
// EmitUpgradeChainEvent emits an upgrade chain event.
|
|
func EmitUpgradeChainEvent(ctx sdk.Context, height int64) {
|
|
ctx.EventManager().EmitEvents(sdk.Events{
|
|
sdk.NewEvent(
|
|
types.EventTypeUpgradeChain,
|
|
sdk.NewAttribute(types.AttributeKeyUpgradePlanHeight, strconv.FormatInt(height, 10)),
|
|
sdk.NewAttribute(types.AttributeKeyUpgradeStore, upgradetypes.StoreKey), // which store to query proof of consensus state from
|
|
),
|
|
sdk.NewEvent(
|
|
sdk.EventTypeMessage,
|
|
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
|
|
),
|
|
})
|
|
}
|