Skip to content

Commit

Permalink
fix(cosmos): route x/swingset queries through GRPC
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelfig committed Aug 18, 2021
1 parent 8bc08de commit 34fc9cd
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 140 deletions.
93 changes: 56 additions & 37 deletions golang/cosmos/x/swingset/client/cli/query.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package cli

import (
"fmt"
"os"
"strings"

sdk "github.com/cosmos/cosmos-sdk/types"

"github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset/types"
"github.com/cosmos/cosmos-sdk/client"
Expand Down Expand Up @@ -34,19 +35,25 @@ func GetCmdGetEgress(queryRoute string) *cobra.Command {
Short: "get egress info for account",
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
cctx := client.GetClientContextFromCmd(cmd)
bech32 := args[0]
clientCtx, err := client.GetClientQueryContext(cmd)
if err != nil {
return err
}
queryClient := types.NewQueryClient(clientCtx)

peer, err := sdk.AccAddressFromBech32(args[0])
if err != nil {
return err
}

res, _, err := cctx.QueryWithData(fmt.Sprintf("custom/%s/egress/%s", queryRoute, bech32), nil)
res, err := queryClient.Egress(cmd.Context(), &types.QueryEgressRequest{
Peer: peer,
})
if err != nil {
// Exit while indicating failure.
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
return err
}

var out types.Egress
cctx.JSONCodec.MustUnmarshalJSON(res, &out)
return cctx.PrintObjectLegacy(&out)
return clientCtx.PrintProto(res)
},
}

Expand All @@ -61,18 +68,22 @@ func GetCmdGetStorage(queryRoute string) *cobra.Command {
Short: "get storage for path",
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
cctx := client.GetClientContextFromCmd(cmd)
path := args[0]
clientCtx, err := client.GetClientQueryContext(cmd)
if err != nil {
return err
}
queryClient := types.NewQueryClient(clientCtx)

res, _, err := cctx.QueryWithData(fmt.Sprintf("custom/%s/storage/%s", queryRoute, path), nil)
path := strings.Split(args[0], ".")

res, err := queryClient.Storage(cmd.Context(), &types.QueryStorageRequest{
Path: path,
})
if err != nil {
fmt.Fprintf(os.Stderr, "could not find storage path - %s: %s\n", path, err)
return nil
return err
}

var out types.Storage
cctx.JSONCodec.MustUnmarshalJSON(res, &out)
return cctx.PrintObjectLegacy(&out)
return clientCtx.PrintProto(res)
},
}

Expand All @@ -87,21 +98,22 @@ func GetCmdGetKeys(queryRoute string) *cobra.Command {
Short: "get storage subkeys for path",
Args: cobra.MaximumNArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
cctx := client.GetClientContextFromCmd(cmd)
var path string
if len(args) > 0 {
path = args[0]
clientCtx, err := client.GetClientQueryContext(cmd)
if err != nil {
return err
}
queryClient := types.NewQueryClient(clientCtx)

res, _, err := cctx.QueryWithData(fmt.Sprintf("custom/%s/keys/%s", queryRoute, path), nil)
path := strings.Split(args[0], ".")

res, err := queryClient.Keys(cmd.Context(), &types.QueryStorageKeysRequest{
Path: path,
})
if err != nil {
fmt.Fprintf(os.Stderr, "could not find keys path - %s: %s\n", path, err)
return nil
return err
}

var out types.Keys
cctx.JSONCodec.MustUnmarshalJSON(res, &out)
return cctx.PrintObjectLegacy(&out)
return clientCtx.PrintProto(res)
},
}

Expand All @@ -116,18 +128,25 @@ func GetCmdMailbox(queryRoute string) *cobra.Command {
Short: "get mailbox for peer",
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
cctx := client.GetClientContextFromCmd(cmd)
peer := args[0]
clientCtx, err := client.GetClientQueryContext(cmd)
if err != nil {
return err
}
queryClient := types.NewQueryClient(clientCtx)

peer, err := sdk.AccAddressFromBech32(args[0])
if err != nil {
return err
}

res, _, err := cctx.QueryWithData(fmt.Sprintf("custom/%s/mailbox/%s", queryRoute, peer), nil)
res, err := queryClient.Mailbox(cmd.Context(), &types.QueryMailboxRequest{
Peer: peer,
})
if err != nil {
fmt.Fprintf(os.Stderr, "could not find peer mailbox - %s: %s\n", peer, err)
return nil
return err
}

var out types.Storage
cctx.JSONCodec.MustUnmarshalJSON(res, &out)
return cctx.PrintObjectLegacy(&out)
return clientCtx.PrintProto(res)
},
}

Expand Down
77 changes: 0 additions & 77 deletions golang/cosmos/x/swingset/client/rest/query.go

This file was deleted.

23 changes: 0 additions & 23 deletions golang/cosmos/x/swingset/client/rest/rest.go

This file was deleted.

6 changes: 3 additions & 3 deletions golang/cosmos/x/swingset/module.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package swingset

import (
"context"
"encoding/json"
"fmt"

Expand All @@ -9,7 +10,6 @@ import (
"github.com/spf13/cobra"

"github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset/client/cli"
"github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset/client/rest"
"github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset/keeper"
"github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset/types"
"github.com/cosmos/cosmos-sdk/client"
Expand Down Expand Up @@ -63,10 +63,10 @@ func (AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, config client.TxEncod

// Register rest routes
func (AppModuleBasic) RegisterRESTRoutes(ctx client.Context, rtr *mux.Router) {
rest.RegisterRoutes(ctx, rtr, StoreKey)
}

func (AppModuleBasic) RegisterGRPCGatewayRoutes(_ client.Context, _ *runtime.ServeMux) {
func (AppModuleBasic) RegisterGRPCGatewayRoutes(clientCtx client.Context, mux *runtime.ServeMux) {
types.RegisterQueryHandlerClient(context.Background(), mux, types.NewQueryClient(clientCtx))
}

// Get the root query command of this module
Expand Down

0 comments on commit 34fc9cd

Please sign in to comment.