fix(x/auth/tx): add missing CacheWithValue for ExtensionOptions (#23144)
This commit is contained in:
parent
58d71c0c23
commit
6f2bab52f1
@ -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
|
||||
|
||||
@ -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,
|
||||
}
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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) {
|
||||
@ -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
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user