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  }