mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-26 00:05:18 +00:00
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.
|