github.com/Finschia/finschia-sdk@v0.48.1/x/stakingplus/codec.go (about)

     1  package stakingplus
     2  
     3  import (
     4  	"github.com/Finschia/finschia-sdk/codec"
     5  	"github.com/Finschia/finschia-sdk/codec/types"
     6  	authzcodec "github.com/Finschia/finschia-sdk/x/authz/codec"
     7  	"github.com/Finschia/finschia-sdk/x/foundation"
     8  	fdncodec "github.com/Finschia/finschia-sdk/x/foundation/codec"
     9  	govcodec "github.com/Finschia/finschia-sdk/x/gov/codec"
    10  )
    11  
    12  // RegisterLegacyAminoCodec registers the necessary x/authz interfaces and concrete types
    13  // on the provided LegacyAmino codec. These types are used for Amino JSON serialization.
    14  func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
    15  	cdc.RegisterConcrete(&CreateValidatorAuthorization{}, "lbm-sdk/CreateValidatorAuthorization", nil)
    16  }
    17  
    18  func RegisterInterfaces(registry types.InterfaceRegistry) {
    19  	registry.RegisterImplementations(
    20  		(*foundation.Authorization)(nil),
    21  		&CreateValidatorAuthorization{},
    22  	)
    23  }
    24  
    25  func init() {
    26  	// Register all Amino interfaces and concrete types on the authz  and gov Amino codec so that this can later be
    27  	// used to properly serialize MsgGrant, MsgExec and MsgSubmitProposal instances
    28  	RegisterLegacyAminoCodec(authzcodec.Amino)
    29  	RegisterLegacyAminoCodec(govcodec.Amino)
    30  	RegisterLegacyAminoCodec(fdncodec.Amino)
    31  }