wrap typed data for record attributes #70

Merged
0xmuralik merged 9 commits from murali/record-attributes into main 2023-01-09 06:49:12 +00:00
2 changed files with 39 additions and 0 deletions
Showing only changes of commit 82b2c32575 - Show all commits

View File

@ -11,6 +11,8 @@ import (
// RegisterLegacyAminoCodec registers the necessary x/bond interfaces and concrete types
// on the provided LegacyAmino codec. These types are used for Amino JSON serialization.
func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
// legacy.RegisterAminoMsg(cdc, &MsgSetRecord{}, "registry/SetRecord")
cdc.RegisterConcrete(&MsgSetName{}, "registry/SetName", nil)
cdc.RegisterConcrete(&MsgReserveAuthority{}, "registry/ReserveAuthority", nil)
cdc.RegisterConcrete(&MsgDeleteNameAuthority{}, "registry/DeleteAuthority", nil)
@ -22,6 +24,10 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
cdc.RegisterConcrete(&MsgDissociateBond{}, "registry/DissociateBond", nil)
cdc.RegisterConcrete(&MsgDissociateRecords{}, "registry/DissociateRecords", nil)
cdc.RegisterConcrete(&MsgReAssociateRecords{}, "registry/ReassociateRecords", nil)
cdc.RegisterInterface((*Attributes)(nil), nil)
cdc.RegisterConcrete(&WebsiteRegistrationRecord{}, "registry/WebsiteRegistrationRecord", nil)
cdc.RegisterConcrete(&ServiceProviderRegistration{}, "registry/ServiceProviderRegistration", nil)
}
func RegisterInterfaces(registry types.InterfaceRegistry) {

View File

@ -3,6 +3,9 @@ package types
import (
sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
cdctypes "github.com/cosmos/cosmos-sdk/codec/types"
"github.com/cosmos/cosmos-sdk/x/auth/migrations/legacytx"
)
var (
@ -12,6 +15,11 @@ var (
_ sdk.Msg = &MsgDissociateBond{}
_ sdk.Msg = &MsgDissociateRecords{}
_ sdk.Msg = &MsgReAssociateRecords{}
// // For amino support.
_ legacytx.LegacyMsg = &MsgSetRecord{}
_ cdctypes.UnpackInterfacesMessage = &MsgSetRecord{}
)
// NewMsgSetRecord is the constructor function for MsgSetRecord.
@ -57,6 +65,31 @@ func (msg MsgSetRecord) GetSignBytes() []byte {
return sdk.MustSortJSON(bz)
}
// UnpackInterfaces implements UnpackInterfacesMessage.UnpackInterfaces
func (msg MsgSetRecord) UnpackInterfaces(unpacker cdctypes.AnyUnpacker) error {
x := msg.Payload.Record.Attributes
switch x.TypeUrl {
case "/vulcanize.registry.v1beta1.WebsiteRegistrationRecord":
{
var attr WebsiteRegistrationRecord
err := unpacker.UnpackAny(x, &attr)
if err != nil {
return err
}
}
case "/vulcanize.registry.v1beta1.ServiceProviderRegistration":
{
var attr ServiceProviderRegistration
err := unpacker.UnpackAny(x, &attr)
if err != nil {
return err
}
}
}
return nil
}
// NewMsgRenewRecord is the constructor function for MsgRenewRecord.
func NewMsgRenewRecord(recordID string, signer sdk.AccAddress) MsgRenewRecord {
return MsgRenewRecord{