Skip to content

Commit

Permalink
Merge with main
Browse files Browse the repository at this point in the history
  • Loading branch information
Olshansk committed Oct 10, 2023
2 parents 4897ff0 + cd51e41 commit e255cf4
Show file tree
Hide file tree
Showing 10 changed files with 210 additions and 3 deletions.
4 changes: 4 additions & 0 deletions docs/static/openapi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75350,7 +75350,11 @@ definitions:
description: params holds all the parameters of this module.
type: object
description: QueryParamsResponse is response type for the Query/Params RPC method.
<<<<<<< HEAD
pocket.supplier.MsgUnstakeSupplierResponse:
=======
pocket.supplier.MsgStakeSupplierResponse:
>>>>>>> main
type: object
pocket.supplier.Params:
type: object
Expand Down
7 changes: 7 additions & 0 deletions proto/pocket/supplier/tx.proto
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,18 @@ option go_package = "pocket/x/supplier/types";

// Msg defines the Msg service.
service Msg {
rpc StakeSupplier (MsgStakeSupplier) returns (MsgStakeSupplierResponse);
rpc UnstakeSupplier (MsgUnstakeSupplier) returns (MsgUnstakeSupplierResponse);
}

message MsgUnstakeSupplier {
string address = 1;
}

message MsgStakeSupplier {
string address = 1;
}

message MsgUnstakeSupplierResponse {}

message MsgStakeSupplierResponse {}
1 change: 1 addition & 0 deletions x/supplier/client/cli/tx.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ func GetTxCmd() *cobra.Command {
RunE: client.ValidateCmd,
}

cmd.AddCommand(CmdStakeSupplier())
cmd.AddCommand(CmdUnstakeSupplier())
// this line is used by starport scaffolding # 1

Expand Down
40 changes: 40 additions & 0 deletions x/supplier/client/cli/tx_stake_supplier.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
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/spf13/cobra"
"pocket/x/supplier/types"
)

var _ = strconv.Itoa(0)

func CmdStakeSupplier() *cobra.Command {
cmd := &cobra.Command{
Use: "stake-supplier",
Short: "Broadcast message stake-supplier",
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.NewMsgStakeSupplier(
clientCtx.GetFromAddress().String(),
)
if err := msg.ValidateBasic(); err != nil {
return err
}
return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg)
},
}

flags.AddTxFlagsToCmd(cmd)

return cmd
}
17 changes: 17 additions & 0 deletions x/supplier/keeper/msg_server_stake_supplier.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package keeper

import (
"context"

sdk "github.com/cosmos/cosmos-sdk/types"
"pocket/x/supplier/types"
)

func (k msgServer) StakeSupplier(goCtx context.Context, msg *types.MsgStakeSupplier) (*types.MsgStakeSupplierResponse, error) {
ctx := sdk.UnwrapSDKContext(goCtx)

// TODO: Handling the message
_ = ctx

return &types.MsgStakeSupplierResponse{}, nil
}
28 changes: 25 additions & 3 deletions x/supplier/module_simulation.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@ package supplier
import (
"math/rand"

"pocket/testutil/sample"
suppliersimulation "pocket/x/supplier/simulation"
"pocket/x/supplier/types"

"github.com/cosmos/cosmos-sdk/baseapp"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
simtypes "github.com/cosmos/cosmos-sdk/types/simulation"
"github.com/cosmos/cosmos-sdk/x/simulation"
"pocket/testutil/sample"
suppliersimulation "pocket/x/supplier/simulation"
"pocket/x/supplier/types"
)

// avoid unused import issue
Expand All @@ -23,6 +24,10 @@ var (
)

const (
opWeightMsgStakeSupplier = "op_weight_msg_stake_supplier"
// TODO: Determine the simulation weight value
defaultWeightMsgStakeSupplier int = 100

opWeightMsgUnstakeSupplier = "op_weight_msg_unstake_supplier"
// TODO: Determine the simulation weight value
defaultWeightMsgUnstakeSupplier int = 100
Expand Down Expand Up @@ -55,6 +60,17 @@ func (AppModule) ProposalContents(_ module.SimulationState) []simtypes.WeightedP
func (am AppModule) WeightedOperations(simState module.SimulationState) []simtypes.WeightedOperation {
operations := make([]simtypes.WeightedOperation, 0)

var weightMsgStakeSupplier int
simState.AppParams.GetOrGenerate(simState.Cdc, opWeightMsgStakeSupplier, &weightMsgStakeSupplier, nil,
func(_ *rand.Rand) {
weightMsgStakeSupplier = defaultWeightMsgStakeSupplier
},
)
operations = append(operations, simulation.NewWeightedOperation(
weightMsgStakeSupplier,
suppliersimulation.SimulateMsgStakeSupplier(am.accountKeeper, am.bankKeeper, am.keeper),
))

var weightMsgUnstakeSupplier int
simState.AppParams.GetOrGenerate(simState.Cdc, opWeightMsgUnstakeSupplier, &weightMsgUnstakeSupplier, nil,
func(_ *rand.Rand) {
Expand All @@ -75,6 +91,12 @@ func (am AppModule) WeightedOperations(simState module.SimulationState) []simtyp
func (am AppModule) ProposalMsgs(simState module.SimulationState) []simtypes.WeightedProposalMsg {
return []simtypes.WeightedProposalMsg{
simulation.NewWeightedProposalMsg(
opWeightMsgStakeSupplier,
defaultWeightMsgStakeSupplier,
func(r *rand.Rand, ctx sdk.Context, accs []simtypes.Account) sdk.Msg {
suppliersimulation.SimulateMsgStakeSupplier(am.accountKeeper, am.bankKeeper, am.keeper)
},

opWeightMsgUnstakeSupplier,
defaultWeightMsgUnstakeSupplier,
func(r *rand.Rand, ctx sdk.Context, accs []simtypes.Account) sdk.Msg {
Expand Down
29 changes: 29 additions & 0 deletions x/supplier/simulation/stake_supplier.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package simulation

import (
"math/rand"

"github.com/cosmos/cosmos-sdk/baseapp"
sdk "github.com/cosmos/cosmos-sdk/types"
simtypes "github.com/cosmos/cosmos-sdk/types/simulation"
"pocket/x/supplier/keeper"
"pocket/x/supplier/types"
)

func SimulateMsgStakeSupplier(
ak types.AccountKeeper,
bk types.BankKeeper,
k keeper.Keeper,
) simtypes.Operation {
return func(r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string,
) (simtypes.OperationMsg, []simtypes.FutureOperation, error) {
simAccount, _ := simtypes.RandomAcc(r, accs)
msg := &types.MsgStakeSupplier{
Address: simAccount.Address.String(),
}

// TODO: Handling the StakeSupplier simulation

return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "StakeSupplier simulation not implemented"), nil, nil
}
}
2 changes: 2 additions & 0 deletions x/supplier/types/codec.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,14 @@ import (
)

func RegisterCodec(cdc *codec.LegacyAmino) {
cdc.RegisterConcrete(&MsgStakeSupplier{}, "supplier/StakeSupplier", nil)
cdc.RegisterConcrete(&MsgUnstakeSupplier{}, "supplier/UnstakeSupplier", nil)
// this line is used by starport scaffolding # 2
}

func RegisterInterfaces(registry cdctypes.InterfaceRegistry) {
registry.RegisterImplementations((*sdk.Msg)(nil),
&MsgStakeSupplier{},
&MsgUnstakeSupplier{},
)
// this line is used by starport scaffolding # 3
Expand Down
45 changes: 45 additions & 0 deletions x/supplier/types/message_stake_supplier.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package types

import (
sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
)

const TypeMsgStakeSupplier = "stake_supplier"

var _ sdk.Msg = &MsgStakeSupplier{}

func NewMsgStakeSupplier(address string) *MsgStakeSupplier {
return &MsgStakeSupplier{
Address: address,
}
}

func (msg *MsgStakeSupplier) Route() string {
return RouterKey
}

func (msg *MsgStakeSupplier) Type() string {
return TypeMsgStakeSupplier
}

func (msg *MsgStakeSupplier) GetSigners() []sdk.AccAddress {
address, err := sdk.AccAddressFromBech32(msg.Address)
if err != nil {
panic(err)
}
return []sdk.AccAddress{address}
}

func (msg *MsgStakeSupplier) GetSignBytes() []byte {
bz := ModuleCdc.MustMarshalJSON(msg)
return sdk.MustSortJSON(bz)
}

func (msg *MsgStakeSupplier) ValidateBasic() error {
_, err := sdk.AccAddressFromBech32(msg.Address)
if err != nil {
return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid address address (%s)", err)
}
return nil
}
40 changes: 40 additions & 0 deletions x/supplier/types/message_stake_supplier_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package types

import (
"testing"

sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
"github.com/stretchr/testify/require"
"pocket/testutil/sample"
)

func TestMsgStakeSupplier_ValidateBasic(t *testing.T) {
tests := []struct {
name string
msg MsgStakeSupplier
err error
}{
{
name: "invalid address",
msg: MsgStakeSupplier{
Address: "invalid_address",
},
err: sdkerrors.ErrInvalidAddress,
}, {
name: "valid address",
msg: MsgStakeSupplier{
Address: sample.AccAddress(),
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
err := tt.msg.ValidateBasic()
if tt.err != nil {
require.ErrorIs(t, err, tt.err)
return
}
require.NoError(t, err)
})
}
}

0 comments on commit e255cf4

Please sign in to comment.