Agoric / agoric-sdk

monorepo for the Agoric Javascript smart contract platform
Apache License 2.0
328 stars 207 forks source link

Upgrade Interchain stack versions for agoric-sdk #9172

Open JimLarson opened 8 months ago

JimLarson commented 8 months ago

What is the Problem Being Solved?

This tracks the agoric-sdk work for #8225.

See also #9180 for considerations specific to the upgrade handler.

Description of the Design

See https://github.com/Agoric/agoric-sdk/wiki/Upgrading-the-Interchain-Stack

See Protobuf section of cosmos-sdk Upgrade Guide.

In IBC-go 6-to-7 migration:

Must also review the ibc-go changelog.

Security Considerations

Scaling Considerations

Test Plan

Upgrade Considerations

JimLarson commented 8 months ago

Note from the upgrading guide:

If you are using a app.go without dependency injection, add the following lines to your app.go in order to provide newer gRPC services:

autocliv1.RegisterQueryServer(app.GRPCQueryRouter(), runtimeservices.NewAutoCLIQueryService(app.ModuleManager.Modules))

reflectionSvc, err := runtimeservices.NewReflectionService()
if err != nil {
    panic(err)
}
reflectionv1.RegisterReflectionServiceServer(app.GRPCQueryRouter(), reflectionSvc)
JimLarson commented 7 months ago

Further note from the upgrade guide:

EventTypeMessage events, with sdk.AttributeKeyModule and sdk.AttributeKeySender are now emitted directly at message exececution (in baseapp). This means that the following boilerplate should be removed from all your custom modules:

ctx.EventManager().EmitEvent(
    sdk.NewEvent(
        sdk.EventTypeMessage,
        sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory),
        sdk.NewAttribute(sdk.AttributeKeySender, `signer/sender`),
    ),
)

The module name is assumed by baseapp to be the second element of the message route: "cosmos.bank.v1beta1.MsgSend" -> "bank". In case a module does not follow the standard message path, (e.g. IBC), it is advised to keep emitting the module name event. Baseapp only emits that event if the module has not already done so.