Description
I'm writing evidence validation tools for GoN. In task A4&A6, I need to query IBC Denom on Omniflix, but with gRPC Client I can't get the result back.
Query with CLI
Works fine!
> omniflixhubd q onft denom ibc/B9C0497B80973FB67A3000836186317DA046574DEE98D938848C8620AEFE99DA
creator: omniflix1zcpsseay358eu0mw6gdhdpx26q87mp7mx3ksgw
data: '{"community":"Stargaze","discord_handle":"gerathdavid#9809","github_username":"sarsersirsur","irismod:creator":{"value":"6fd11c8958d06fb4f8d6a06c53fca0166f3b007c"},"irismod:description":{"value":"sarsersirsur"},"irismod:mint_restricted":{"value":true},"irismod:name":{"value":"sarsersirsur"},"irismod:schema":{"value":""},"irismod:symbol":{"value":"SSSS"},"irismod:update_restricted":{"value":true},"irismod:uri_hash":{"value":""},"team_name":"0x4S"}'
description: ""
id: ibc/B9C0497B80973FB67A3000836186317DA046574DEE98D938848C8620AEFE99DA
name: ""
preview_uri: ""
schema: ""
symbol: ""
uri: https://github.com/sarsersirsur
uri_hash: ""
Query with gRPC
With golang script, I always get the error rpc error: code = Unimplemented desc = unknown service OmniFlix.onft.v1beta1.Query
. Is that because I use the gRPC client incorrectly?
package chain
import (
"context"
"encoding/json"
"fmt"
nfttypes "github.com/OmniFlix/onft/types"
"github.com/taramakage/gon-verifier/internal/types"
"google.golang.org/grpc"
)
type Omniflix struct {
conn *grpc.ClientConn
nftClient nfttypes.QueryClient
}
func NewOmniflix() *Omniflix {
conn, err := grpc.Dial(
ChainGRPCIris,
grpc.WithInsecure(),
grpc.WithDefaultCallOptions(),
)
if err != nil {
panic(err)
}
return &Omniflix{
conn: conn,
nftClient: nfttypes.NewQueryClient(conn),
}
}
// Basiclly this method dosen't work as expection.
func (o *Omniflix) GetClass(classID string) (*Class, error) {
req := &nfttypes.QueryDenomRequest{
DenomId: classID,
}
// Here i get the error: rpc error: code = Unimplemented desc = unknown service OmniFlix.onft.v1beta1.Query
resi, err := withGrpcRetry(func() (interface{}, error) {
return o.nftClient.Denom(context.Background(), req)
})
if err != nil {
return nil, err
}
res, ok := resi.(*nfttypes.QueryDenomResponse)
if !ok {
return nil, err
}
return &Class{
ID: res.Denom.Id,
Name: res.Denom.Name,
Schema: res.Denom.Schema,
Creator: res.Denom.Creator,
Uri: res.Denom.Uri,
UriHash: res.Denom.UriHash,
Data: res.Denom.Data,
}, nil
}
Version
- onft module:
github.com/OmniFlix/onft v0.4.0-gon-rc11
- omniflix version:
0.9.0-gon-test2