|
7 | 7 | "time"
|
8 | 8 |
|
9 | 9 | "github.com/cosmos/gogoproto/proto"
|
| 10 | + gogoproto "github.com/cosmos/gogoproto/types/any" |
10 | 11 | "google.golang.org/protobuf/reflect/protoreflect"
|
11 | 12 | "google.golang.org/protobuf/types/known/anypb"
|
12 | 13 |
|
@@ -236,11 +237,11 @@ func (w *gogoTxWrapper) GetSigningTxData() txsigning.TxData {
|
236 | 237 | }
|
237 | 238 |
|
238 | 239 | func (w *gogoTxWrapper) GetExtensionOptions() []*codectypes.Any {
|
239 |
| - return intoAnyV1(w.Tx.Body.ExtensionOptions) |
| 240 | + return intoAnyV1(w.cdc, w.Tx.Body.ExtensionOptions) |
240 | 241 | }
|
241 | 242 |
|
242 | 243 | func (w *gogoTxWrapper) GetNonCriticalExtensionOptions() []*codectypes.Any {
|
243 |
| - return intoAnyV1(w.Tx.Body.NonCriticalExtensionOptions) |
| 244 | + return intoAnyV1(w.cdc, w.Tx.Body.NonCriticalExtensionOptions) |
244 | 245 | }
|
245 | 246 |
|
246 | 247 | func (w *gogoTxWrapper) AsTx() (*txtypes.Tx, error) {
|
@@ -270,13 +271,20 @@ func (w *gogoTxWrapper) AsTxRaw() (*txtypes.TxRaw, error) {
|
270 | 271 | }, nil
|
271 | 272 | }
|
272 | 273 |
|
273 |
| -func intoAnyV1(v2s []*anypb.Any) []*codectypes.Any { |
| 274 | +func intoAnyV1(cdc codec.BinaryCodec, v2s []*anypb.Any) []*codectypes.Any { |
274 | 275 | v1s := make([]*codectypes.Any, len(v2s))
|
275 | 276 | for i, v2 := range v2s {
|
276 |
| - v1s[i] = &codectypes.Any{ |
277 |
| - TypeUrl: v2.TypeUrl, |
278 |
| - Value: v2.Value, |
| 277 | + var value *gogoproto.Any |
| 278 | + if msg, err := decodeFromAny(cdc, v2); err == nil { |
| 279 | + value, _ = gogoproto.NewAnyWithCacheWithValue(msg) |
279 | 280 | }
|
| 281 | + if value == nil { |
| 282 | + value = &codectypes.Any{ |
| 283 | + TypeUrl: v2.TypeUrl, |
| 284 | + Value: v2.Value, |
| 285 | + } |
| 286 | + } |
| 287 | + v1s[i] = value |
280 | 288 | }
|
281 | 289 | return v1s
|
282 | 290 | }
|
|
0 commit comments