Skip to content

Commit

Permalink
fix(x/auth/tx): add missing CacheWithValue for ExtensionOptions (#23144)
Browse files Browse the repository at this point in the history
  • Loading branch information
mmsqe authored Jan 6, 2025
1 parent 58d71c0 commit 6f2bab5
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 7 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ Every module contains its own CHANGELOG.md. Please refer to the module you are i
### Bug Fixes

* (query) [23002](https://github.com/cosmos/cosmos-sdk/pull/23002) Fix collection filtered pagination.
* (x/auth/tx) [23144](https://github.com/cosmos/cosmos-sdk/pull/23144) Add missing CacheWithValue for ExtensionOptions.
* (x/auth/tx) [#23148](https://github.com/cosmos/cosmos-sdk/pull/23148) Avoid panic from intoAnyV2 when v1.PublicKey is optional.

### API Breaking Changes
Expand Down
2 changes: 1 addition & 1 deletion x/auth/tx/builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ func newBuilderFromDecodedTx(
modeInfoV1 := new(tx.ModeInfo)
fromV2ModeInfo(sigInfo.ModeInfo, modeInfoV1)
sigInfos[i] = &tx.SignerInfo{
PublicKey: intoAnyV1([]*anypb.Any{sigInfo.PublicKey})[0],
PublicKey: intoAnyV1(codec, []*anypb.Any{sigInfo.PublicKey})[0],
ModeInfo: modeInfoV1,
Sequence: sigInfo.Sequence,
}
Expand Down
20 changes: 14 additions & 6 deletions x/auth/tx/gogotx.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"time"

"github.com/cosmos/gogoproto/proto"
gogoproto "github.com/cosmos/gogoproto/types/any"
"google.golang.org/protobuf/reflect/protoreflect"
"google.golang.org/protobuf/types/known/anypb"

Expand Down Expand Up @@ -236,11 +237,11 @@ func (w *gogoTxWrapper) GetSigningTxData() txsigning.TxData {
}

func (w *gogoTxWrapper) GetExtensionOptions() []*codectypes.Any {
return intoAnyV1(w.Tx.Body.ExtensionOptions)
return intoAnyV1(w.cdc, w.Tx.Body.ExtensionOptions)
}

func (w *gogoTxWrapper) GetNonCriticalExtensionOptions() []*codectypes.Any {
return intoAnyV1(w.Tx.Body.NonCriticalExtensionOptions)
return intoAnyV1(w.cdc, w.Tx.Body.NonCriticalExtensionOptions)
}

func (w *gogoTxWrapper) AsTx() (*txtypes.Tx, error) {
Expand Down Expand Up @@ -270,13 +271,20 @@ func (w *gogoTxWrapper) AsTxRaw() (*txtypes.TxRaw, error) {
}, nil
}

func intoAnyV1(v2s []*anypb.Any) []*codectypes.Any {
func intoAnyV1(cdc codec.BinaryCodec, v2s []*anypb.Any) []*codectypes.Any {
v1s := make([]*codectypes.Any, len(v2s))
for i, v2 := range v2s {
v1s[i] = &codectypes.Any{
TypeUrl: v2.TypeUrl,
Value: v2.Value,
var value *gogoproto.Any
if msg, err := decodeFromAny(cdc, v2); err == nil {
value, _ = gogoproto.NewAnyWithCacheWithValue(msg)
}
if value == nil {
value = &codectypes.Any{
TypeUrl: v2.TypeUrl,
Value: v2.Value,
}
}
v1s[i] = value
}
return v1s
}
Expand Down

0 comments on commit 6f2bab5

Please sign in to comment.