github.com/Finschia/finschia-sdk@v0.49.1/x/auth/types/codec.go (about) 1 package types 2 3 import ( 4 "github.com/Finschia/finschia-sdk/codec" 5 "github.com/Finschia/finschia-sdk/codec/types" 6 cryptocodec "github.com/Finschia/finschia-sdk/crypto/codec" 7 sdk "github.com/Finschia/finschia-sdk/types" 8 "github.com/Finschia/finschia-sdk/x/auth/legacy/legacytx" 9 authzcodec "github.com/Finschia/finschia-sdk/x/authz/codec" 10 fdncodec "github.com/Finschia/finschia-sdk/x/foundation/codec" 11 govcodec "github.com/Finschia/finschia-sdk/x/gov/codec" 12 ) 13 14 // RegisterLegacyAminoCodec registers the account interfaces and concrete types on the 15 // provided LegacyAmino codec. These types are used for Amino JSON serialization 16 func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { 17 cdc.RegisterInterface((*ModuleAccountI)(nil), nil) 18 cdc.RegisterInterface((*GenesisAccount)(nil), nil) 19 cdc.RegisterInterface((*AccountI)(nil), nil) 20 cdc.RegisterConcrete(&BaseAccount{}, "cosmos-sdk/BaseAccount", nil) 21 cdc.RegisterConcrete(&ModuleAccount{}, "cosmos-sdk/ModuleAccount", nil) 22 23 legacytx.RegisterLegacyAminoCodec(cdc) 24 } 25 26 // RegisterInterfaces associates protoName with AccountI interface 27 // and creates a registry of it's concrete implementations 28 func RegisterInterfaces(registry types.InterfaceRegistry) { 29 registry.RegisterInterface( 30 "cosmos.auth.v1beta1.AccountI", 31 (*AccountI)(nil), 32 &BaseAccount{}, 33 &ModuleAccount{}, 34 ) 35 36 registry.RegisterInterface( 37 "cosmos.auth.v1beta1.GenesisAccount", 38 (*GenesisAccount)(nil), 39 &BaseAccount{}, 40 &ModuleAccount{}, 41 ) 42 } 43 44 var ( 45 amino = codec.NewLegacyAmino() 46 ModuleCdc = codec.NewAminoCodec(amino) 47 ) 48 49 func init() { 50 RegisterLegacyAminoCodec(amino) 51 cryptocodec.RegisterCrypto(amino) 52 sdk.RegisterLegacyAminoCodec(amino) 53 54 // Register all Amino interfaces and concrete types on the authz and gov Amino codec so that this can later be 55 // used to properly serialize MsgGrant, MsgExec and MsgSubmitProposal instances 56 RegisterLegacyAminoCodec(authzcodec.Amino) 57 RegisterLegacyAminoCodec(govcodec.Amino) 58 RegisterLegacyAminoCodec(fdncodec.Amino) 59 }