github.com/InjectiveLabs/sdk-go@v1.53.0/examples/chain/11_DecodeTx/37_decode_tx.go (about) 1 package main 2 3 import ( 4 "encoding/base64" 5 "fmt" 6 7 cosmostxpb "github.com/cosmos/cosmos-sdk/types/tx" 8 banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" 9 ) 10 11 var parserMap = map[string]interface{}{ 12 "/cosmos.bank.v1beta1.MsgSend": banktypes.MsgSend{}, 13 "/cosmos.bank.v1beta1.MsgMultiSend": banktypes.MsgMultiSend{}, 14 } 15 16 func main() { 17 // multisend := "Cr0BCroBCiEvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dNdWx0aVNlbmQSlAEKSAoqaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjEhoKA2luahITMTAwMDAwMDAwMDAwMDAwMDAwMBJICippbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMSGgoDaW5qEhMxMDAwMDAwMDAwMDAwMDAwMDAwEn8KYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohA5Bh/pUwQH5Sgsniw2eFD5lZHswzGUxzuaaH8g0xKzO2EgQKAggBGPm7CBIbChUKA2luahIONjAzMDQ1MDAwMDAwMDAQoa4HGkFuew+TP4HtsHcXFtFcg33d5QeJZCLmT3glrpgbY+NKbCQ9IGiIzMke1kql9DTEdKFqyMPXvfUQ4bUTXq2tCV7HAA==" 18 send := "CtQBCpQBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnQKKmluajFybGU4eXJ5bmx0cnVtNG1uN2VmbjBtNTJmNXFzajNobTM4eHdydxIqaW5qMWNwc3hldTNzczdyODNtM2EwYTM2YzJzM3hqdTR3NDJyM3NhMjh2GhoKA2luahITNTQ5OTAwMDAwMDAwMDAwMDAwMBjLvYwM+j81Ci8vaW5qZWN0aXZlLnR5cGVzLnYxYmV0YTEuRXh0ZW5zaW9uT3B0aW9uc1dlYjNUeBICCAESfgpeClQKLS9pbmplY3RpdmUuY3J5cHRvLnYxYmV0YTEuZXRoc2VjcDI1NmsxLlB1YktleRIjCiECAVMpGRBIgvdIfgYwsSJyaE3W1+j1FIcVtXdaNsj+qbISBAoCCH8YBBIcChYKA2luahIPMjAwMDAwMDAwMDAwMDAwEIC1GBpBSpQwr6FfXa7KWLz4Eousx1VrPuVMHgMAUHkRVeNK/UpFQztyTAeISB6vjl3Dx2sRKWkqy/hQ7G3lICoajar1HRw=" 19 bytes, _ := base64.StdEncoding.DecodeString(send) 20 rawTx := cosmostxpb.TxRaw{} 21 rawTx.Unmarshal(bytes) 22 23 txBody := cosmostxpb.TxBody{} 24 txBody.Unmarshal(rawTx.BodyBytes) 25 26 for _, msg := range txBody.Messages { 27 switch parserMap[msg.TypeUrl].(type) { 28 case banktypes.MsgSend: 29 var result banktypes.MsgSend 30 result.XXX_Unmarshal(msg.Value) 31 fmt.Println(result.FromAddress) 32 fmt.Println(result.ToAddress) 33 fmt.Println(result.Amount) 34 35 case banktypes.MsgMultiSend: 36 var result banktypes.MsgMultiSend 37 result.XXX_Unmarshal(msg.Value) 38 inputs := result.Inputs 39 outputs := result.Outputs 40 41 fmt.Println(inputs) 42 fmt.Println(outputs) 43 44 default: 45 fmt.Println("Unexpected Type:", msg.TypeUrl) 46 } 47 } 48 }