Parameters
chain_id
integer
Loading...
signer_address
string
Loading...
sequence
integer
Loading...
memo
string
Loading...
timeout_height
integer
Loading...
fee
object
Loading...
price
array
Loading...
denom
string
Loading...
amount
string
Loading...
gas
integer
Loading...
delegate_fee
boolean
Loading...
msgs
array
Loading...
eip712_wrapper
string
Loading...
Returns
data
string
Loading...
sequence
string
Loading...
sign_mode
string
Loading...
pub_key_type
string
Loading...
fee_payer
string
Loading...
fee_payer_sig
string
Loading...
Request
1package main23import (4"context"5"crypto/tls"6"encoding/base64"7"fmt"8"log"9"time"1011"google.golang.org/grpc"12"google.golang.org/grpc/credentials"13"google.golang.org/grpc/metadata"14"google.golang.org/protobuf/encoding/protojson"1516pb "injective-indexer-grpc/pb/exchange"17)1819const grpcEndpoint = "YOUR_ENDPOINT_NAME.injective-mainnet.quiknode.pro:443"20const authToken = "YOUR_TOKEN"2122func main() {23creds := credentials.NewTLS(&tls.Config{MinVersion: tls.VersionTLS12})24conn, err := grpc.Dial(grpcEndpoint, grpc.WithTransportCredentials(creds))25if err != nil {26log.Fatal(err)27}28defer conn.Close()2930ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second)31defer cancel()32ctx = metadata.AppendToOutgoingContext(ctx, "x-token", authToken)3334client := pb.NewInjectiveExchangeRPCClient(conn)35request := &pb.PrepareTxRequest{}36messageJSON := `{"@type":"/cosmos.bank.v1beta1.MsgSend","from_address":"inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z","to_address":"inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z","amount":[{"denom":"inj","amount":"1"}]}`37message := base64.StdEncoding.EncodeToString([]byte(messageJSON))38requestJSON := fmt.Sprintf(`{"chain_id":"1","signer_address":"0xf22dccace9d0610334f32637100cad2934528f81","fee":{"price":[{"denom":"inj","amount":"500000000000000"}]},"msgs":[%q],"eip712_wrapper":"v2"}`, message)39if err := protojson.Unmarshal([]byte(requestJSON), request); err != nil {40log.Fatal(err)41}4243response, err := client.PrepareTx(ctx, request)44if err != nil {45log.Fatal(err)46}4748data, err := protojson.MarshalOptions{UseProtoNames: true, Indent: " "}.Marshal(response)49if err != nil {50log.Fatal(err)51}52data = append(data, '\n')53fmt.Print(string(data))54}55
1package main23import (4"context"5"crypto/tls"6"encoding/base64"7"fmt"8"log"9"time"1011"google.golang.org/grpc"12"google.golang.org/grpc/credentials"13"google.golang.org/grpc/metadata"14"google.golang.org/protobuf/encoding/protojson"1516pb "injective-indexer-grpc/pb/exchange"17)1819const grpcEndpoint = "YOUR_ENDPOINT_NAME.injective-mainnet.quiknode.pro:443"20const authToken = "YOUR_TOKEN"2122func main() {23creds := credentials.NewTLS(&tls.Config{MinVersion: tls.VersionTLS12})24conn, err := grpc.Dial(grpcEndpoint, grpc.WithTransportCredentials(creds))25if err != nil {26log.Fatal(err)27}28defer conn.Close()2930ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second)31defer cancel()32ctx = metadata.AppendToOutgoingContext(ctx, "x-token", authToken)3334client := pb.NewInjectiveExchangeRPCClient(conn)35request := &pb.PrepareTxRequest{}36messageJSON := `{"@type":"/cosmos.bank.v1beta1.MsgSend","from_address":"inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z","to_address":"inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z","amount":[{"denom":"inj","amount":"1"}]}`37message := base64.StdEncoding.EncodeToString([]byte(messageJSON))38requestJSON := fmt.Sprintf(`{"chain_id":"1","signer_address":"0xf22dccace9d0610334f32637100cad2934528f81","fee":{"price":[{"denom":"inj","amount":"500000000000000"}]},"msgs":[%q],"eip712_wrapper":"v2"}`, message)39if err := protojson.Unmarshal([]byte(requestJSON), request); err != nil {40log.Fatal(err)41}4243response, err := client.PrepareTx(ctx, request)44if err != nil {45log.Fatal(err)46}4748data, err := protojson.MarshalOptions{UseProtoNames: true, Indent: " "}.Marshal(response)49if err != nil {50log.Fatal(err)51}52data = append(data, '\n')53fmt.Print(string(data))54}55
1const grpc = require('@grpc/grpc-js')2const protoLoader = require('@grpc/proto-loader')3const path = require('path')45const GRPC_ENDPOINT = 'YOUR_ENDPOINT_NAME.injective-mainnet.quiknode.pro:443'6const AUTH_TOKEN = 'YOUR_TOKEN'78const definition = protoLoader.loadSync(9path.join(__dirname, 'proto/exchange/injective_exchange_rpc.proto'),10{11keepCase: true,12longs: String,13enums: String,14bytes: String,15defaults: true,16oneofs: true,17}18)1920const proto = grpc.loadPackageDefinition(definition).injective_exchange_rpc21const client = new proto.InjectiveExchangeRPC(22GRPC_ENDPOINT,23grpc.credentials.createSsl()24)2526const metadata = new grpc.Metadata()27metadata.add('x-token', AUTH_TOKEN)2829const message = {30'@type': '/cosmos.bank.v1beta1.MsgSend',31from_address: 'inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z',32to_address: 'inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z',33amount: [{ denom: 'inj', amount: '1' }],34}3536const request = {37chain_id: '1',38signer_address: '0xf22dccace9d0610334f32637100cad2934528f81',39fee: {40price: [41{42denom: 'inj',43amount: '500000000000000',44},45],46},47msgs: [Buffer.from(JSON.stringify(message))],48eip712_wrapper: 'v2',49}5051client.PrepareTx(52request,53metadata,54{ deadline: Date.now() + 20000 },55(error, response) => {56if (error) {57console.error(error)58process.exitCode = 159return60}6162console.log(JSON.stringify(response, null, 2))63client.close()64}65)66
1const grpc = require('@grpc/grpc-js')2const protoLoader = require('@grpc/proto-loader')3const path = require('path')45const GRPC_ENDPOINT = 'YOUR_ENDPOINT_NAME.injective-mainnet.quiknode.pro:443'6const AUTH_TOKEN = 'YOUR_TOKEN'78const definition = protoLoader.loadSync(9path.join(__dirname, 'proto/exchange/injective_exchange_rpc.proto'),10{11keepCase: true,12longs: String,13enums: String,14bytes: String,15defaults: true,16oneofs: true,17}18)1920const proto = grpc.loadPackageDefinition(definition).injective_exchange_rpc21const client = new proto.InjectiveExchangeRPC(22GRPC_ENDPOINT,23grpc.credentials.createSsl()24)2526const metadata = new grpc.Metadata()27metadata.add('x-token', AUTH_TOKEN)2829const message = {30'@type': '/cosmos.bank.v1beta1.MsgSend',31from_address: 'inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z',32to_address: 'inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z',33amount: [{ denom: 'inj', amount: '1' }],34}3536const request = {37chain_id: '1',38signer_address: '0xf22dccace9d0610334f32637100cad2934528f81',39fee: {40price: [41{42denom: 'inj',43amount: '500000000000000',44},45],46},47msgs: [Buffer.from(JSON.stringify(message))],48eip712_wrapper: 'v2',49}5051client.PrepareTx(52request,53metadata,54{ deadline: Date.now() + 20000 },55(error, response) => {56if (error) {57console.error(error)58process.exitCode = 159return60}6162console.log(JSON.stringify(response, null, 2))63client.close()64}65)66
1import base642import json3import grpc4from google.protobuf.json_format import MessageToJson, ParseDict5from exchange import injective_exchange_rpc_pb26from exchange import injective_exchange_rpc_pb2_grpc78GRPC_ENDPOINT = "YOUR_ENDPOINT_NAME.injective-mainnet.quiknode.pro:443"9AUTH_TOKEN = "YOUR_TOKEN"1011channel = grpc.secure_channel(GRPC_ENDPOINT, grpc.ssl_channel_credentials())12client = injective_exchange_rpc_pb2_grpc.InjectiveExchangeRPCStub(channel)13metadata = (("x-token", AUTH_TOKEN),)1415message = {16"@type": "/cosmos.bank.v1beta1.MsgSend",17"from_address": "inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z",18"to_address": "inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z",19"amount": [{"denom": "inj", "amount": "1"}]20}21encoded_message = base64.b64encode(json.dumps(message, separators=(",", ":")).encode()).decode()2223request_data = {24"chain_id": "1",25"signer_address": "0xf22dccace9d0610334f32637100cad2934528f81",26"fee": {27"price": [28{29"denom": "inj",30"amount": "500000000000000"31}32]33},34"msgs": [35encoded_message36],37"eip712_wrapper": "v2"38}39request = ParseDict(request_data, injective_exchange_rpc_pb2.PrepareTxRequest())4041try:42response = client.PrepareTx(request, metadata=metadata, timeout=20)43print(MessageToJson(response, preserving_proto_field_name=True, indent=2))44except grpc.RpcError as error:45print(f"gRPC error {error.code().name}: {error.details()}")46raise47finally:48channel.close()49
1import base642import json3import grpc4from google.protobuf.json_format import MessageToJson, ParseDict5from exchange import injective_exchange_rpc_pb26from exchange import injective_exchange_rpc_pb2_grpc78GRPC_ENDPOINT = "YOUR_ENDPOINT_NAME.injective-mainnet.quiknode.pro:443"9AUTH_TOKEN = "YOUR_TOKEN"1011channel = grpc.secure_channel(GRPC_ENDPOINT, grpc.ssl_channel_credentials())12client = injective_exchange_rpc_pb2_grpc.InjectiveExchangeRPCStub(channel)13metadata = (("x-token", AUTH_TOKEN),)1415message = {16"@type": "/cosmos.bank.v1beta1.MsgSend",17"from_address": "inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z",18"to_address": "inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z",19"amount": [{"denom": "inj", "amount": "1"}]20}21encoded_message = base64.b64encode(json.dumps(message, separators=(",", ":")).encode()).decode()2223request_data = {24"chain_id": "1",25"signer_address": "0xf22dccace9d0610334f32637100cad2934528f81",26"fee": {27"price": [28{29"denom": "inj",30"amount": "500000000000000"31}32]33},34"msgs": [35encoded_message36],37"eip712_wrapper": "v2"38}39request = ParseDict(request_data, injective_exchange_rpc_pb2.PrepareTxRequest())4041try:42response = client.PrepareTx(request, metadata=metadata, timeout=20)43print(MessageToJson(response, preserving_proto_field_name=True, indent=2))44except grpc.RpcError as error:45print(f"gRPC error {error.code().name}: {error.details()}")46raise47finally:48channel.close()49
Don't have an account yet?
Create your Quicknode endpoint in seconds and start building
Get started for free