Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cns 231 consumer create project scaffold txs #335

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions docs/static/openapi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54750,6 +54750,10 @@ definitions:
usedCU:
type: string
format: uint64
lavanet.lava.projects.MsgAddProjectKeysResponse:
type: object
lavanet.lava.projects.MsgSetProjectPolicyResponse:
type: object
lavanet.lava.projects.Params:
type: object
description: Params defines the parameters for the module.
Expand Down
4 changes: 0 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -783,8 +783,6 @@ github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t
github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.1 h1:I6ITHEanAwjB0FvaxmGm8pKqmCLR7QIe05ZmO4QAXMw=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.1/go.mod h1:gYC+WX4YJFarA2ie73G2epzt7TBWpo9pzcBnK1g0MSw=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2 h1:gDLXvp5S9izjldquuoAhDzccbskOL6tDC5jMSyx3zxE=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2/go.mod h1:7pdNwVWBBHGiCxa9lAszqCJMbfTISJ7oMftp8+UGV08=
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU=
Expand Down Expand Up @@ -1992,8 +1990,6 @@ google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6D
google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20230221151758-ace64dc21148 h1:muK+gVBJBfFb4SejshDBlN2/UgxCCOKH9Y34ljqEGOc=
google.golang.org/genproto v0.0.0-20230221151758-ace64dc21148/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw=
google.golang.org/genproto v0.0.0-20230223222841-637eb2293923 h1:znp6mq/drrY+6khTAlJUDNFFcDGV2ENLYKpMq8SyCds=
google.golang.org/genproto v0.0.0-20230223222841-637eb2293923/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw=
google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
Expand Down
30 changes: 28 additions & 2 deletions proto/projects/query.proto
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ package lavanet.lava.projects;

import "gogoproto/gogo.proto";
import "google/api/annotations.proto";
import "cosmos/base/query/v1beta1/pagination.proto";
import "projects/params.proto";
import "projects/project.proto";
// this line is used by starport scaffolding # 1

option go_package = "github.com/lavanet/lava/x/projects/types";
Expand All @@ -15,7 +15,17 @@ service Query {
rpc Params(QueryParamsRequest) returns (QueryParamsResponse) {
option (google.api.http).get = "/lavanet/lava/projects/params";
}
// this line is used by starport scaffolding # 2
// Queries a list of ShowProject items.
rpc ShowProject(QueryShowProjectRequest) returns (QueryShowProjectResponse) {
option (google.api.http).get = "/lavanet/lava/projects/show_project/{project}";
}

// Queries a list of ShowDevelopersProject items.
rpc ShowDevelopersProject(QueryShowDevelopersProjectRequest) returns (QueryShowDevelopersProjectResponse) {
option (google.api.http).get = "/lavanet/lava/projects/show_developers_project/{developer}";
}

// this line is used by starport scaffolding # 2
}

// QueryParamsRequest is request type for the Query/Params RPC method.
Expand All @@ -27,4 +37,20 @@ message QueryParamsResponse {
Params params = 1 [(gogoproto.nullable) = false];
}

message QueryShowProjectRequest {
string project = 1;
}

message QueryShowProjectResponse {
Project project = 1;
}

message QueryShowDevelopersProjectRequest {
string developer = 1;
}

message QueryShowDevelopersProjectResponse {
Project project = 1;
}

// this line is used by starport scaffolding # 3
25 changes: 24 additions & 1 deletion proto/projects/tx.proto
Original file line number Diff line number Diff line change
@@ -1,13 +1,36 @@
syntax = "proto3";
package lavanet.lava.projects;

import "projects/project.proto";
import "gogoproto/gogo.proto";

// this line is used by starport scaffolding # proto/tx/import

option go_package = "github.com/lavanet/lava/x/projects/types";

// Msg defines the Msg service.
service Msg {
// this line is used by starport scaffolding # proto/tx/rpc
rpc AddProjectKeys(MsgAddProjectKeys) returns (MsgAddProjectKeysResponse);
rpc SetProjectPolicy(MsgSetProjectPolicy) returns (MsgSetProjectPolicyResponse);
// this line is used by starport scaffolding # proto/tx/rpc
}

message MsgAddProjectKeys {
string creator = 1;
string project = 2;
repeated ProjectKey project_keys = 3 [(gogoproto.nullable) = false];
}

message MsgAddProjectKeysResponse {
}

message MsgSetProjectPolicy {
string creator = 1;
string project = 2;
Policy policy = 3;
}

message MsgSetProjectPolicyResponse {
}

// this line is used by starport scaffolding # proto/tx/message
4 changes: 4 additions & 0 deletions x/projects/client/cli/query.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@ func GetQueryCmd(queryRoute string) *cobra.Command {
}

cmd.AddCommand(CmdQueryParams())
cmd.AddCommand(CmdShowProject())

cmd.AddCommand(CmdShowDevelopersProject())

// this line is used by starport scaffolding # 1

return cmd
Expand Down
41 changes: 41 additions & 0 deletions x/projects/client/cli/query_show_developers_project.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package cli

import (
"strconv"

"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/flags"
"github.com/lavanet/lava/x/projects/types"
"github.com/spf13/cobra"
)

var _ = strconv.Itoa(0)

func CmdShowDevelopersProject() *cobra.Command {
cmd := &cobra.Command{
Use: "show-developers-project",
Short: "Query ShowDevelopersProject",
Args: cobra.ExactArgs(0),
RunE: func(cmd *cobra.Command, args []string) (err error) {
clientCtx, err := client.GetClientTxContext(cmd)
if err != nil {
return err
}

queryClient := types.NewQueryClient(clientCtx)

params := &types.QueryShowDevelopersProjectRequest{}

res, err := queryClient.ShowDevelopersProject(cmd.Context(), params)
if err != nil {
return err
}

return clientCtx.PrintProto(res)
},
}

flags.AddQueryFlagsToCmd(cmd)

return cmd
}
41 changes: 41 additions & 0 deletions x/projects/client/cli/query_show_project.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package cli

import (
"strconv"

"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/flags"
"github.com/lavanet/lava/x/projects/types"
"github.com/spf13/cobra"
)

var _ = strconv.Itoa(0)

func CmdShowProject() *cobra.Command {
cmd := &cobra.Command{
Use: "show-project",
Short: "Query ShowProject",
Args: cobra.ExactArgs(0),
RunE: func(cmd *cobra.Command, args []string) (err error) {
clientCtx, err := client.GetClientTxContext(cmd)
if err != nil {
return err
}

queryClient := types.NewQueryClient(clientCtx)

params := &types.QueryShowProjectRequest{}

res, err := queryClient.ShowProject(cmd.Context(), params)
if err != nil {
return err
}

return clientCtx.PrintProto(res)
},
}

flags.AddQueryFlagsToCmd(cmd)

return cmd
}
2 changes: 2 additions & 0 deletions x/projects/client/cli/tx.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ func GetTxCmd() *cobra.Command {
RunE: client.ValidateCmd,
}

cmd.AddCommand(CmdAddProjectKeys())
cmd.AddCommand(CmdSetProjectPolicy())
// this line is used by starport scaffolding # 1

return cmd
Expand Down
39 changes: 39 additions & 0 deletions x/projects/client/cli/tx_add_project_keys.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package cli

import (
"strconv"

"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/flags"
"github.com/cosmos/cosmos-sdk/client/tx"
"github.com/lavanet/lava/x/projects/types"
"github.com/spf13/cobra"
)

var _ = strconv.Itoa(0)

func CmdAddProjectKeys() *cobra.Command {
cmd := &cobra.Command{
Use: "add-project-keys",
Short: "Broadcast message AddProjectKeys",
Args: cobra.ExactArgs(0),
RunE: func(cmd *cobra.Command, args []string) (err error) {
clientCtx, err := client.GetClientTxContext(cmd)
if err != nil {
return err
}

msg := types.NewMsgAddProjectKeys(
clientCtx.GetFromAddress().String(),
)
if err := msg.ValidateBasic(); err != nil {
return err
}
return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg)
},
}

flags.AddTxFlagsToCmd(cmd)

return cmd
}
39 changes: 39 additions & 0 deletions x/projects/client/cli/tx_set_project_policy.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package cli

import (
"strconv"

"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/flags"
"github.com/cosmos/cosmos-sdk/client/tx"
"github.com/lavanet/lava/x/projects/types"
"github.com/spf13/cobra"
)

var _ = strconv.Itoa(0)

func CmdSetProjectPolicy() *cobra.Command {
cmd := &cobra.Command{
Use: "set-project-policy",
Short: "Broadcast message SetProjectPolicy",
Args: cobra.ExactArgs(0),
RunE: func(cmd *cobra.Command, args []string) (err error) {
clientCtx, err := client.GetClientTxContext(cmd)
if err != nil {
return err
}

msg := types.NewMsgSetProjectPolicy(
clientCtx.GetFromAddress().String(),
)
if err := msg.ValidateBasic(); err != nil {
return err
}
return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg)
},
}

flags.AddTxFlagsToCmd(cmd)

return cmd
}
10 changes: 8 additions & 2 deletions x/projects/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,19 @@ import (

// NewHandler ...
func NewHandler(k keeper.Keeper) sdk.Handler {
// this line is used by starport scaffolding # handler/msgServer
msgServer := keeper.NewMsgServerImpl(k)

return func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) {
_ = ctx.WithEventManager(sdk.NewEventManager())

switch msg := msg.(type) {
// this line is used by starport scaffolding # 1
case *types.MsgAddProjectKeys:
res, err := msgServer.AddProjectKeys(sdk.WrapSDKContext(ctx), msg)
return sdk.WrapServiceResult(ctx, res, err)
case *types.MsgSetProjectPolicy:
res, err := msgServer.SetProjectPolicy(sdk.WrapSDKContext(ctx), msg)
return sdk.WrapServiceResult(ctx, res, err)
// this line is used by starport scaffolding # 1
default:
errMsg := fmt.Sprintf("unrecognized %s message type: %T", types.ModuleName, msg)
return nil, sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, errMsg)
Expand Down
25 changes: 25 additions & 0 deletions x/projects/keeper/grpc_query_show_developers_project.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package keeper

import (
"context"

sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/lavanet/lava/x/projects/types"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)

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

ctx := sdk.UnwrapSDKContext(goCtx)

project, err := k.GetProjectForDeveloper(ctx, req.Developer, uint64(ctx.BlockHeight()))
if err != nil {
return nil, err
}

return &types.QueryShowDevelopersProjectResponse{Project: &project}, nil
}
25 changes: 25 additions & 0 deletions x/projects/keeper/grpc_query_show_project.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package keeper

import (
"context"

sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/lavanet/lava/x/projects/types"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)

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

ctx := sdk.UnwrapSDKContext(goCtx)

project, err := k.GetProjectForBlock(ctx, req.Project, uint64(ctx.BlockHeight()))
if err != nil {
return nil, err
}

return &types.QueryShowProjectResponse{Project: &project}, nil
}
Loading