From 67964b1df47c0953dad3046dbffb8e04d526f3fa Mon Sep 17 00:00:00 2001 From: Akhil Kumar P <36399231+akhilkumarpilli@users.noreply.github.com> Date: Fri, 5 Mar 2021 18:03:41 +0530 Subject: [PATCH] fix multisig account pubkeys migration (#8794) closes: #8776 --- x/auth/legacy/v040/migrate.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/x/auth/legacy/v040/migrate.go b/x/auth/legacy/v040/migrate.go index 363ec7ba8..f819a1a33 100644 --- a/x/auth/legacy/v040/migrate.go +++ b/x/auth/legacy/v040/migrate.go @@ -2,6 +2,7 @@ package v040 import ( codectypes "github.com/cosmos/cosmos-sdk/codec/types" + multisigtypes "github.com/cosmos/cosmos-sdk/crypto/keys/multisig" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" v039auth "github.com/cosmos/cosmos-sdk/x/auth/legacy/v039" v040auth "github.com/cosmos/cosmos-sdk/x/auth/types" @@ -11,9 +12,16 @@ import ( // convertBaseAccount converts a 0.39 BaseAccount to a 0.40 BaseAccount. func convertBaseAccount(old *v039auth.BaseAccount) *v040auth.BaseAccount { var any *codectypes.Any - // If the old genesis had a pubkey, we pack it inside an Any. Or else, we - // just leave it nil. - if old.PubKey != nil { + + _, ok := old.PubKey.(*multisigtypes.LegacyAminoPubKey) + + // If pubkey is multisig type, then leave it as nil for now + // Ref: https://github.com/cosmos/cosmos-sdk/issues/8776#issuecomment-790552126 + // Else if the old genesis had a pubkey, we pack it inside an Any. + // Or else, we just leave it nil. + if ok { + // TODO migrate multisig public_keys + } else if old.PubKey != nil { var err error any, err = codectypes.NewAnyWithValue(old.PubKey) if err != nil {