mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-29 17:55:19 +00:00
ffd306ef52
* add grpc client * add e2e tests for grpc client * add grpc client readme * doc update * fix more doc issues * remove util namespace & move grpc client to chain * rename GrpcClient to Grpc * add 3rd party query clients * fix invalid url in readme * update e2e tests to use grpc client (#1787)
75 lines
1.8 KiB
Markdown
75 lines
1.8 KiB
Markdown
# 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
|
|
|
|
```go
|
|
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
|
|
|
|
```go
|
|
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
|
|
|
|
```go
|
|
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
|
|
|
|
```go
|
|
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.
|