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  }