111 lines
3.4 KiB
Go
111 lines
3.4 KiB
Go
package connection
|
|
|
|
import (
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
"github.com/cosmos/cosmos-sdk/x/ibc/03-connection/keeper"
|
|
"github.com/cosmos/cosmos-sdk/x/ibc/03-connection/types"
|
|
)
|
|
|
|
// HandleMsgConnectionOpenInit defines the sdk.Handler for MsgConnectionOpenInit
|
|
func HandleMsgConnectionOpenInit(ctx sdk.Context, k keeper.Keeper, msg *types.MsgConnectionOpenInit) (*sdk.Result, error) {
|
|
if err := k.ConnOpenInit(
|
|
ctx, msg.ConnectionID, msg.ClientID, msg.Counterparty,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
ctx.EventManager().EmitEvents(sdk.Events{
|
|
sdk.NewEvent(
|
|
types.EventTypeConnectionOpenInit,
|
|
sdk.NewAttribute(types.AttributeKeyConnectionID, msg.ConnectionID),
|
|
sdk.NewAttribute(types.AttributeKeyClientID, msg.ClientID),
|
|
sdk.NewAttribute(types.AttributeKeyCounterpartyClientID, msg.Counterparty.ClientID),
|
|
),
|
|
sdk.NewEvent(
|
|
sdk.EventTypeMessage,
|
|
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
|
|
),
|
|
})
|
|
|
|
return &sdk.Result{
|
|
Events: ctx.EventManager().Events().ToABCIEvents(),
|
|
}, nil
|
|
}
|
|
|
|
// HandleMsgConnectionOpenTry defines the sdk.Handler for MsgConnectionOpenTry
|
|
func HandleMsgConnectionOpenTry(ctx sdk.Context, k keeper.Keeper, msg *types.MsgConnectionOpenTry) (*sdk.Result, error) {
|
|
if err := k.ConnOpenTry(
|
|
ctx, msg.ConnectionID, msg.Counterparty, msg.ClientID,
|
|
msg.CounterpartyVersions, msg.ProofInit, msg.ProofConsensus,
|
|
msg.ProofHeight, msg.ConsensusHeight,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
ctx.EventManager().EmitEvents(sdk.Events{
|
|
sdk.NewEvent(
|
|
types.EventTypeConnectionOpenTry,
|
|
sdk.NewAttribute(types.AttributeKeyConnectionID, msg.ConnectionID),
|
|
sdk.NewAttribute(types.AttributeKeyClientID, msg.ClientID),
|
|
sdk.NewAttribute(types.AttributeKeyCounterpartyClientID, msg.Counterparty.ClientID),
|
|
),
|
|
sdk.NewEvent(
|
|
sdk.EventTypeMessage,
|
|
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
|
|
),
|
|
})
|
|
|
|
return &sdk.Result{
|
|
Events: ctx.EventManager().Events().ToABCIEvents(),
|
|
}, nil
|
|
}
|
|
|
|
// HandleMsgConnectionOpenAck defines the sdk.Handler for MsgConnectionOpenAck
|
|
func HandleMsgConnectionOpenAck(ctx sdk.Context, k keeper.Keeper, msg *types.MsgConnectionOpenAck) (*sdk.Result, error) {
|
|
if err := k.ConnOpenAck(
|
|
ctx, msg.ConnectionID, msg.Version, msg.ProofTry, msg.ProofConsensus,
|
|
msg.ProofHeight, msg.ConsensusHeight,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
ctx.EventManager().EmitEvents(sdk.Events{
|
|
sdk.NewEvent(
|
|
types.EventTypeConnectionOpenAck,
|
|
sdk.NewAttribute(types.AttributeKeyConnectionID, msg.ConnectionID),
|
|
),
|
|
sdk.NewEvent(
|
|
sdk.EventTypeMessage,
|
|
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
|
|
),
|
|
})
|
|
|
|
return &sdk.Result{
|
|
Events: ctx.EventManager().Events().ToABCIEvents(),
|
|
}, nil
|
|
}
|
|
|
|
// HandleMsgConnectionOpenConfirm defines the sdk.Handler for MsgConnectionOpenConfirm
|
|
func HandleMsgConnectionOpenConfirm(ctx sdk.Context, k keeper.Keeper, msg *types.MsgConnectionOpenConfirm) (*sdk.Result, error) {
|
|
if err := k.ConnOpenConfirm(
|
|
ctx, msg.ConnectionID, msg.ProofAck, msg.ProofHeight,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
ctx.EventManager().EmitEvents(sdk.Events{
|
|
sdk.NewEvent(
|
|
types.EventTypeConnectionOpenConfirm,
|
|
sdk.NewAttribute(types.AttributeKeyConnectionID, msg.ConnectionID),
|
|
),
|
|
sdk.NewEvent(
|
|
sdk.EventTypeMessage,
|
|
sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
|
|
),
|
|
})
|
|
|
|
return &sdk.Result{
|
|
Events: ctx.EventManager().Events().ToABCIEvents(),
|
|
}, nil
|
|
}
|