0g-chain/client/grpc
drklee3 3853e276a6
feat(x/precisebank): Add query service with TotalFractionalBalances (#1970)
Add query service to precisebank, mostly for e2e test purposes in #1966
Also fix client grpc codec
2024-07-19 10:24:23 -07:00
..
query feat(x/precisebank): Add query service with TotalFractionalBalances (#1970) 2024-07-19 10:24:23 -07:00
util Kava gRPC Client (#1784) 2023-12-13 12:17:37 -05:00
client_test.go Kava gRPC Client (#1784) 2023-12-13 12:17:37 -05:00
client.go Kava gRPC Client (#1784) 2023-12-13 12:17:37 -05:00
README.md Kava gRPC Client (#1784) 2023-12-13 12:17:37 -05:00

Kava gRPC Client

The Kava gRPC client is a tool for making gRPC queries on a Kava chain.

Features

  • Easy-to-use gRPC client for the Kava chain.
  • Access all query clients for Cosmos and Kava modules using client.Query (e.g., client.Query.Bank.Balance).
  • Utilize utility functions for common queries (e.g., client.BaseAccount(str)).

Usage

Creating a new client

package main

import (
  kavaGrpc "github.com/kava-labs/kava/client/grpc"
)
grpcUrl := "https://grpc.kava.io:443"
client, err := kavaGrpc.NewClient(grpcUrl)
if err != nil {
  panic(err)
}

Making grpc queries

Query clients for both Cosmos and Kava modules are available via client.Query.

Example: Query Cosmos module x/bank for address balance

import (
  banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
)

rsp, err := client.Query.Bank.Balance(context.Background(), &banktypes.QueryBalanceRequest{
		Address: "kava19rjk5qmmwywnzfccwzyn02jywgpwjqf60afj92",
		Denom:   "ukava",
	})

Example: Query Kava module x/evmutil for params

import (
  evmutiltypes "github.com/kava-labs/kava/x/evmutil/types"
)

rsp, err := client.Query.Evmutil.Params(
  context.Background(), &evmutiltypes.QueryParamsRequest{},
)

Query Utilities

Utility functions for common queries are available directly on the client.

Example: Util query to get a base account

kavaAcc := "kava19rjk5qmmwywnzfccwzyn02jywgpwjqf60afj92"
rsp, err := client.BaseAccount(kavaAcc)
if err != nil {
  panic(err)
}
fmt.Printf("account sequence for %s: %d\n", kavaAcc, rsp.Sequence)

Query Tests

To test queries, a Kava node is required. Therefore, the e2e tests for the gRPC client queries can be found in the tests/e2e directory. Tests for new utility queries should be added as e2e tests under the test/e2e directory.