github.com/InjectiveLabs/sdk-go@v1.53.0/examples/chain/wasmx/1_MsgExecuteContractCompat/example.go (about) 1 package main 2 3 import ( 4 "encoding/json" 5 "fmt" 6 "os" 7 8 wasmxtypes "github.com/InjectiveLabs/sdk-go/chain/wasmx/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 ) 14 15 func main() { 16 network := common.LoadNetwork("testnet", "lb") 17 tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") 18 if err != nil { 19 panic(err) 20 } 21 22 senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( 23 os.Getenv("HOME")+"/.injectived", 24 "injectived", 25 "file", 26 "inj-user", 27 "12345678", 28 "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided 29 false, 30 ) 31 32 if err != nil { 33 panic(err) 34 } 35 36 clientCtx, err := chainclient.NewClientContext( 37 network.ChainId, 38 senderAddress.String(), 39 cosmosKeyring, 40 ) 41 if err != nil { 42 fmt.Println(err) 43 return 44 } 45 clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) 46 47 chainClient, err := chainclient.NewChainClient( 48 clientCtx, 49 network, 50 common.OptionGasPrices(client.DefaultGasPriceWithDenom), 51 ) 52 53 if err != nil { 54 panic(err) 55 } 56 57 firstAmount := 69 58 firstToken := "factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj12ngevx045zpvacus9s6anr258gkwpmthnz80e9" 59 secondAmount := 420 60 secondToken := "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7" 61 thirdAmount := 1 62 thirdToken := "peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5" 63 funds := fmt.Sprintf( 64 "%v%s,%v%s,%v%s", 65 firstAmount, 66 firstToken, 67 secondAmount, 68 secondToken, 69 thirdAmount, 70 thirdToken, 71 ) 72 73 message := wasmxtypes.MsgExecuteContractCompat{ 74 Sender: senderAddress.String(), 75 Contract: "inj1ady3s7whq30l4fx8sj3x6muv5mx4dfdlcpv8n7", 76 Msg: "{\"increment\": {}}", 77 Funds: funds, 78 } 79 80 // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg 81 response, err := chainClient.AsyncBroadcastMsg(&message) 82 83 if err != nil { 84 panic(err) 85 } 86 87 str, _ := json.MarshalIndent(response, "", " ") 88 fmt.Println(string(str)) 89 }