github.com/InjectiveLabs/sdk-go@v1.53.0/examples/chain/peggy/1_MsgSendToEth/example.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "os" 6 "time" 7 8 "cosmossdk.io/math" 9 10 "github.com/InjectiveLabs/sdk-go/client" 11 "github.com/InjectiveLabs/sdk-go/client/common" 12 13 peggytypes "github.com/InjectiveLabs/sdk-go/chain/peggy/types" 14 chainclient "github.com/InjectiveLabs/sdk-go/client/chain" 15 rpchttp "github.com/cometbft/cometbft/rpc/client/http" 16 sdktypes "github.com/cosmos/cosmos-sdk/types" 17 ) 18 19 func main() { 20 network := common.LoadNetwork("testnet", "lb") 21 tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") 22 if err != nil { 23 panic(err) 24 } 25 26 senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( 27 os.Getenv("HOME")+"/.injectived", 28 "injectived", 29 "file", 30 "inj-user", 31 "12345678", 32 "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided 33 false, 34 ) 35 36 if err != nil { 37 panic(err) 38 } 39 40 clientCtx, err := chainclient.NewClientContext( 41 network.ChainId, 42 senderAddress.String(), 43 cosmosKeyring, 44 ) 45 46 if err != nil { 47 panic(err) 48 } 49 50 clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) 51 52 chainClient, err := chainclient.NewChainClient( 53 clientCtx, 54 network, 55 common.OptionGasPrices(client.DefaultGasPriceWithDenom), 56 ) 57 58 if err != nil { 59 panic(err) 60 } 61 62 ethDest := "0xaf79152ac5df276d9a8e1e2e22822f9713474902" 63 64 amount := sdktypes.Coin{ 65 Denom: "inj", Amount: math.NewInt(5000000000000000000), // 5 INJ 66 } 67 bridgeFee := sdktypes.Coin{ 68 Denom: "inj", Amount: math.NewInt(2000000000000000000), // 2 INJ 69 } 70 71 msg := &peggytypes.MsgSendToEth{ 72 Sender: senderAddress.String(), 73 Amount: amount, 74 EthDest: ethDest, 75 BridgeFee: bridgeFee, 76 } 77 78 // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg 79 err = chainClient.QueueBroadcastMsg(msg) 80 81 if err != nil { 82 fmt.Println(err) 83 } 84 85 time.Sleep(time.Second * 5) 86 87 gasFee, err := chainClient.GetGasFee() 88 89 if err != nil { 90 fmt.Println(err) 91 return 92 } 93 94 fmt.Println("gas fee:", gasFee, "INJ") 95 }