import ( "context" "fmt" "google.golang.org/grpc" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/tx" ) func queryState() error { myAddress, err := sdk.AccAddressFromBech32("inj...") if err != nil { return err } // gRPCサーバーへの接続を作成します。 grpcConn := grpc.Dial( "127.0.0.1:9090", // gRPCサーバーのアドレス grpc.WithInsecure(), // SDKはトランスポートセキュリティメカニズムをサポートしていません。 ) defer grpcConn.Close() // x/bankサービスをクエリするためのgRPCクライアントを作成します。 bankClient := banktypes.NewQueryClient(grpcConn) bankRes, err := bankClient.Balance( context.Background(), &banktypes.QueryBalanceRequest{Address: myAddress, Denom: "inj"}, ) if err != nil { return err } fmt.Println(bankRes.GetBalance()) // アカウント残高を出力 return nil }
import ( "context" "fmt" "google.golang.org/grpc" "google.golang.org/grpc/metadata" grpctypes "github.com/cosmos/cosmos-sdk/types/grpc" "github.com/cosmos/cosmos-sdk/types/tx" ) func queryState() error { // --省略-- var header metadata.MD bankRes, err = bankClient.Balance( metadata.AppendToOutgoingContext(context.Background(), grpctypes.GRPCBlockHeightHeader, "12"), // リクエストにメタデータを追加 &banktypes.QueryBalanceRequest{Address: myAddress, Denom: denom}, grpc.Header(&header), // レスポンスからヘッダーを取得 ) if err != nil { return err } blockHeight = header.Get(grpctypes.GRPCBlockHeightHeader) fmt.Println(blockHeight) // ブロック高を出力(12) return nil }