Skip to content

Commit

Permalink
query signing request by tx hash
Browse files Browse the repository at this point in the history
  • Loading branch information
keithsue committed Jul 1, 2024
1 parent 034eeb8 commit 798758c
Show file tree
Hide file tree
Showing 5 changed files with 600 additions and 70 deletions.
14 changes: 14 additions & 0 deletions proto/side/btcbridge/query.proto
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ service Query {
rpc QuerySigningRequestByAddress(QuerySigningRequestByAddressRequest) returns (QuerySigningRequestByAddressResponse) {
option (google.api.http).get = "/sideprotocol/side/btcbridge/signing/request/{address}";
}
// QuerySigningRequestByTxHash queries the signing request by the given tx hash.
rpc QuerySigningRequestByTxHash(QuerySigningRequestByTxHashRequest) returns (QuerySigningRequestByTxHashResponse) {
option (google.api.http).get = "/sideprotocol/side/btcbridge/signing/request/{txid}";
}
// UTXOs queries all utxos.
rpc QueryUTXOs(QueryUTXOsRequest) returns (QueryUTXOsResponse) {
option (google.api.http).get = "/sideprotocol/side/btcbridge/utxos";
Expand Down Expand Up @@ -69,6 +73,16 @@ message QuerySigningRequestByAddressResponse {
cosmos.base.query.v1beta1.PageResponse pagination = 2;
}

// QuerySigningRequestByTxHashRequest is request type for the Query/SigningRequestByTxHash RPC method.
message QuerySigningRequestByTxHashRequest {
string txid = 1;
}

// QuerySigningRequestByTxHashResponse is response type for the Query/SigningRequestByTxHash RPC method.
message QuerySigningRequestByTxHashResponse {
BitcoinSigningRequest request = 1;
}

// QueryParamsRequest is request type for the Query/Params RPC method.
message QueryParamsRequest {}

Expand Down
17 changes: 14 additions & 3 deletions x/btcbridge/client/cli/query.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (

// "strings"

"github.com/btcsuite/btcd/chaincfg/chainhash"
"github.com/sideprotocol/side/x/btcbridge/types"
"github.com/spf13/cobra"

Expand Down Expand Up @@ -132,8 +133,8 @@ func CmdQueryBlock() *cobra.Command {
// CmdQuerySigningRequest returns the command to query signing request
func CmdQuerySigningRequest() *cobra.Command {
cmd := &cobra.Command{
Use: "signing-request [status or address]",
Short: "Query signing requests by status or address",
Use: "signing-request [status | address | tx hash]",
Short: "Query signing requests by status, address or tx hash",
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
clientCtx, err := client.GetClientQueryContext(cmd)
Expand All @@ -147,7 +148,17 @@ func CmdQuerySigningRequest() *cobra.Command {
if err != nil {
_, err = sdk.AccAddressFromBech32(args[0])
if err != nil {
return err
_, err := chainhash.NewHashFromStr(args[0])
if err != nil {
return fmt.Errorf("invalid arg, neither status, address nor tx hash: %s", args[0])
}

res, err := queryClient.QuerySigningRequestByTxHash(cmd.Context(), &types.QuerySigningRequestByTxHashRequest{Txid: args[0]})
if err != nil {
return err
}

return clientCtx.PrintProto(res)
}

res, err := queryClient.QuerySigningRequestByAddress(cmd.Context(), &types.QuerySigningRequestByAddressRequest{Address: args[0]})
Expand Down
12 changes: 11 additions & 1 deletion x/btcbridge/keeper/queries.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,6 @@ func (k Keeper) QuerySigningRequest(goCtx context.Context, req *types.QuerySigni
requests := k.FilterSigningRequestsByStatus(ctx, req)

return &types.QuerySigningRequestResponse{Requests: requests}, nil

}

func (k Keeper) QuerySigningRequestByAddress(goCtx context.Context, req *types.QuerySigningRequestByAddressRequest) (*types.QuerySigningRequestByAddressResponse, error) {
Expand All @@ -89,7 +88,18 @@ func (k Keeper) QuerySigningRequestByAddress(goCtx context.Context, req *types.Q
requests := k.FilterSigningRequestsByAddr(ctx, req)

return &types.QuerySigningRequestByAddressResponse{Requests: requests}, nil
}

func (k Keeper) QuerySigningRequestByTxHash(goCtx context.Context, req *types.QuerySigningRequestByTxHashRequest) (*types.QuerySigningRequestByTxHashResponse, error) {
if req == nil {
return nil, status.Error(codes.InvalidArgument, "invalid request")
}

ctx := sdk.UnwrapSDKContext(goCtx)

request := k.GetSigningRequest(ctx, req.Txid)

return &types.QuerySigningRequestByTxHashResponse{Request: request}, nil
}

func (k Keeper) QueryUTXOs(goCtx context.Context, req *types.QueryUTXOsRequest) (*types.QueryUTXOsResponse, error) {
Expand Down
Loading

0 comments on commit 798758c

Please sign in to comment.