@@ -220,8 +220,13 @@ If the controller chain is connected to a host chain using the host module on ib
220
220
221
221
Begin by unmarshaling the acknowledgement into sdk.TxMsgData:
222
222
``` go
223
+ var ack channeltypes.Acknowledgement
224
+ if err := channeltypes.SubModuleCdc .UnmarshalJSON (acknowledgement, &ack); err != nil {
225
+ return err
226
+ }
227
+
223
228
txMsgData := &sdk.TxMsgData {}
224
- if err := proto.Unmarshal (ack.Acknowledgement (), txMsgData); err != nil {
229
+ if err := proto.Unmarshal (ack.GetResult (), txMsgData); err != nil {
225
230
return err
226
231
}
227
232
```
@@ -232,6 +237,8 @@ The auth module should interpret the txMsgData.Data as follows:
232
237
``` go
233
238
switch len (txMsgData.Data ) {
234
239
case 0 :
240
+ // see documentation below for SDK 0.46.x or greater
241
+ default :
235
242
for _ , msgData := range txMsgData.Data {
236
243
if err := handler (msgData); err != nil {
237
244
return err
@@ -246,24 +253,24 @@ A router could be used, or more simply a switch statement.
246
253
247
254
``` go
248
255
func handler (msgData sdk .MsgData ) error {
249
- switch msgData.TypeURL {
250
- case banktypes.MsgSend :
256
+ switch msgData.MsgType {
257
+ case sdk. MsgTypeURL (& banktypes.MsgSend {}) :
251
258
msgResponse := &banktypes.MsgSendResponse {}
252
259
if err := proto.Unmarshal (msgData.Data , msgResponse}; err != nil {
253
260
return err
254
261
}
255
262
256
263
handleBankSendMsg (msgResponse)
257
264
258
- case stakingtypes.MsgDelegate :
265
+ case sdk. MsgTypeURL (& stakingtypes.MsgDelegate {}) :
259
266
msgResponse := &stakingtypes.MsgDelegateResponse {}
260
267
if err := proto.Unmarshal (msgData.Data , msgResponse}; err != nil {
261
268
return err
262
269
}
263
270
264
271
handleStakingDelegateMsg (msgResponse)
265
272
266
- case transfertypes.MsgTransfer :
273
+ case sdk. MsgTypeURL (& transfertypes.MsgTransfer {}) :
267
274
msgResponse := &transfertypes.MsgTransferResponse {}
268
275
if err := proto.Unmarshal (msgData.Data , msgResponse}; err != nil {
269
276
return err
@@ -281,8 +288,8 @@ The auth module should interpret the txMsgData.Responses as follows:
281
288
282
289
``` go
283
290
...
284
- // switch statement from above continued
285
- default :
291
+ // switch statement from above
292
+ case 0 :
286
293
for _ , any := range txMsgData.MsgResponses {
287
294
if err := handleAny (any); err != nil {
288
295
return err
0 commit comments