cosmos-sdk/docs/sdk/sdk-by-examples/simple-governance/app-codec.md

702 B

Application codec

File: app/app.go

Finally, we need to define the MakeCodec() function and register the concrete types and interface from the various modules.

func MakeCodec() *wire.Codec {
    var cdc = wire.NewCodec()
    wire.RegisterCrypto(cdc) // Register crypto.
    sdk.RegisterWire(cdc)    // Register Msgs
    bank.RegisterWire(cdc)
    simplestake.RegisterWire(cdc)
    simpleGov.RegisterWire(cdc)

    // Register AppAccount
    cdc.RegisterInterface((*auth.Account)(nil), nil)
    cdc.RegisterConcrete(&types.AppAccount{}, "simpleGov/Account", nil)
    return cdc
}