github.com/InjectiveLabs/sdk-go@v1.53.0/examples/chain/tokenfactory/4_MsgSetDenomMetadata/example.go (about) 1 package main 2 3 import ( 4 "encoding/json" 5 "fmt" 6 "os" 7 8 tokenfactorytypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" 9 "github.com/InjectiveLabs/sdk-go/client" 10 chainclient "github.com/InjectiveLabs/sdk-go/client/chain" 11 "github.com/InjectiveLabs/sdk-go/client/common" 12 rpchttp "github.com/cometbft/cometbft/rpc/client/http" 13 banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" 14 ) 15 16 func main() { 17 network := common.LoadNetwork("testnet", "lb") 18 tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") 19 if err != nil { 20 panic(err) 21 } 22 23 senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( 24 os.Getenv("HOME")+"/.injectived", 25 "injectived", 26 "file", 27 "inj-user", 28 "12345678", 29 "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided 30 false, 31 ) 32 33 if err != nil { 34 panic(err) 35 } 36 37 clientCtx, err := chainclient.NewClientContext( 38 network.ChainId, 39 senderAddress.String(), 40 cosmosKeyring, 41 ) 42 if err != nil { 43 fmt.Println(err) 44 return 45 } 46 clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) 47 48 chainClient, err := chainclient.NewChainClient( 49 clientCtx, 50 network, 51 common.OptionGasPrices(client.DefaultGasPriceWithDenom), 52 ) 53 54 if err != nil { 55 panic(err) 56 } 57 58 denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" 59 subdenom := "inj_test" 60 tokenDecimals := uint32(6) 61 62 microDenomUnit := banktypes.DenomUnit{ 63 Denom: denom, 64 Exponent: 0, 65 Aliases: []string{fmt.Sprintf("micro%s", subdenom)}, 66 } 67 denomUnit := banktypes.DenomUnit{ 68 Denom: subdenom, 69 Exponent: tokenDecimals, 70 Aliases: []string{subdenom}, 71 } 72 73 metadata := banktypes.Metadata{ 74 Description: "Injective Test Token", 75 DenomUnits: []*banktypes.DenomUnit{µDenomUnit, &denomUnit}, 76 Base: denom, 77 Display: subdenom, 78 Name: "Injective Test", 79 Symbol: "INJTEST", 80 URI: "http://injective-test.com/icon.jpg", 81 URIHash: "", 82 Decimals: tokenDecimals, 83 } 84 85 message := new(tokenfactorytypes.MsgSetDenomMetadata) 86 message.Sender = senderAddress.String() 87 message.Metadata = metadata 88 89 // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg 90 response, err := chainClient.AsyncBroadcastMsg(message) 91 92 if err != nil { 93 panic(err) 94 } 95 96 str, _ := json.MarshalIndent(response, "", " ") 97 fmt.Print(string(str)) 98 }