Skip to content

Instantly share code, notes, and snippets.

@nnkken
Created August 3, 2019 13:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nnkken/150d9b5e20ac0212f5dec336d5c949a4 to your computer and use it in GitHub Desktop.
Save nnkken/150d9b5e20ac0212f5dec336d5c949a4 to your computer and use it in GitHub Desktop.
Cosmos decode tx
package main
import (
"fmt"
"encoding/base64"
"github.com/cosmos/cosmos-sdk/codec"
sdk "github.com/cosmos/cosmos-sdk/types"
authTypes "github.com/cosmos/cosmos-sdk/x/auth/types"
nameTypes "github.com/cosmos/sdk-application-tutorial/x/nameservice/types"
)
func main() {
cdc := codec.New()
sdk.RegisterCodec(cdc)
authTypes.RegisterCodec(cdc)
nameTypes.RegisterCodec(cdc)
codec.RegisterCrypto(cdc)
decoder := authTypes.DefaultTxDecoder(cdc)
base64Str := "rgEoKBapCjZS59jqCgpnb29nbGUuY29tEg4KCW5hbWV0b2tlbhIBNRoUr67sqicZ8wXbWkNLD8E6c0TGM/YSBBDAmgwaagom61rphyEC6ICqudQCIugpL8NEvi6Fblxk+ZB+51T+NUDg0WdMQCUSQG0z4HhxINONIjPcQc/GDyVOjU9CRovZaT3GxcekSvN6SBQx94xgwMkq7EqivCxSqYB/TDC0Gp5Z/6z2+Z4Km3k="
bz, err := base64.StdEncoding.DecodeString(base64Str)
if err != nil {
panic(err)
}
tx, err := decoder(bz)
if err != nil {
panic(err)
}
msgs := tx.GetMsgs()
msg := msgs[0]
fmt.Printf("Msg Type: %s\n", msg.Type())
buyNameMsg := msg.(nameTypes.MsgBuyName)
fmt.Println(buyNameMsg)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment