mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-11-14 03:55:19 +00:00
.. | ||
query | ||
util | ||
client_test.go | ||
client.go | ||
README.md |
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.