github.com/InjectiveLabs/sdk-go@v1.53.0/examples/chain/distribution/3_WithdrawValidatorCommission/example.go (about) 1 package main 2 3 import ( 4 "encoding/json" 5 "fmt" 6 "os" 7 8 "github.com/cosmos/cosmos-sdk/x/distribution/types" 9 10 "github.com/InjectiveLabs/sdk-go/client" 11 chainclient "github.com/InjectiveLabs/sdk-go/client/chain" 12 "github.com/InjectiveLabs/sdk-go/client/common" 13 rpchttp "github.com/cometbft/cometbft/rpc/client/http" 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 "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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 43 if err != nil { 44 panic(err) 45 } 46 47 clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) 48 49 chainClient, err := chainclient.NewChainClient( 50 clientCtx, 51 network, 52 common.OptionGasPrices(client.DefaultGasPriceWithDenom), 53 ) 54 55 if err != nil { 56 panic(err) 57 } 58 59 validatorAddress := "injvaloper1ultw9r29l8nxy5u6thcgusjn95vsy2caw722q5" 60 61 msg := &types.MsgWithdrawValidatorCommission{ 62 ValidatorAddress: validatorAddress, 63 } 64 65 // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg 66 response, err := chainClient.AsyncBroadcastMsg(msg) 67 68 if err != nil { 69 panic(err) 70 } 71 72 str, _ := json.MarshalIndent(response, "", " ") 73 fmt.Print(string(str)) 74 }