0g-chain/client/grpc/README.md
0g-wh 206c3dcad6 rebase to kava cosmos 0.47 upgrade
rename

rename

tidy

clean code
2024-08-03 14:25:51 +08:00

1.8 KiB

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/0glabs/0g-chain/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/0glabs/0g-chain/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.