fix(x/auth/tx): avoid panic from intoAnyV2 when v1.PublicKey is optional (backport #23148) (#23187)

Co-authored-by: mmsqe <mavis@crypto.com>
Co-authored-by: Julien Robert <julien@rbrt.fr>
This commit is contained in:
mergify[bot]
2025-01-06 09:07:02 +01:00
committed by GitHub
co-authored by mmsqe Julien Robert
parent 54259e6d10
commit b9573767d2
3 changed files with 24 additions and 3 deletions
+4
View File
@@ -40,6 +40,10 @@ Ref: https://keepachangelog.com/en/1.0.0/
Every module contains its own CHANGELOG.md. Please refer to the module you are interested in.
### Bug Fixes
* (x/auth/tx) [#23148](https://github.com/cosmos/cosmos-sdk/pull/23148) Avoid panic from intoAnyV2 when v1.PublicKey is optional.
### Deprecated
* (modules) [#22994](https://github.com/cosmos/cosmos-sdk/pull/22994) Deprecate `Invariants` and associated methods.
+5 -3
View File
@@ -293,9 +293,11 @@ func intoV2SignerInfo(v1s []*tx.SignerInfo) []*txv1beta1.SignerInfo {
modeInfoV2 := new(txv1beta1.ModeInfo)
intoV2ModeInfo(v1.ModeInfo, modeInfoV2)
v2 := &txv1beta1.SignerInfo{
PublicKey: intoAnyV2([]*codectypes.Any{v1.PublicKey})[0],
ModeInfo: modeInfoV2,
Sequence: v1.Sequence,
ModeInfo: modeInfoV2,
Sequence: v1.Sequence,
}
if v1.PublicKey != nil {
v2.PublicKey = intoAnyV2([]*codectypes.Any{v1.PublicKey})[0]
}
v2s[i] = v2
}
+15
View File
@@ -0,0 +1,15 @@
package tx
import (
"testing"
any "github.com/cosmos/gogoproto/types/any"
"github.com/stretchr/testify/require"
"github.com/cosmos/cosmos-sdk/types/tx"
)
func TestIntoV2SignerInfo(t *testing.T) {
require.NotNil(t, intoV2SignerInfo([]*tx.SignerInfo{{}}))
require.NotNil(t, intoV2SignerInfo([]*tx.SignerInfo{{PublicKey: &any.Any{}}}))
}