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

[fix] Fix CreateGauge CLI and add gas cost to create gauge #5511

Merged
merged 4 commits into from
Jun 17, 2023
Merged
Show file tree
Hide file tree
Changes from 2 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
8 changes: 7 additions & 1 deletion x/incentives/client/cli/tx.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ func GetTxCmd() *cobra.Command {
// NewCreateGaugeCmd broadcasts a CreateGauge message.
func NewCreateGaugeCmd() *cobra.Command {
cmd := &cobra.Command{
Use: "create-gauge [lockup_denom] [reward] [flags]",
Use: "create-gauge [lockup_denom] [reward] [poolId] [flags]",
Short: "create a gauge to distribute rewards to users",
Args: cobra.ExactArgs(2),
RunE: func(cmd *cobra.Command, args []string) error {
Expand Down Expand Up @@ -82,6 +82,11 @@ func NewCreateGaugeCmd() *cobra.Command {
return err
}

poolId, err := strconv.ParseUint(args[2], 10, 64)
if err != nil {
return err
}

distributeTo := lockuptypes.QueryCondition{
LockQueryType: lockuptypes.ByDuration,
Denom: denom,
Expand All @@ -96,6 +101,7 @@ func NewCreateGaugeCmd() *cobra.Command {
coins,
startTime,
epochs,
poolId,
)

return tx.GenerateOrBroadcastTxWithFactory(clientCtx, txf, msg)
Expand Down
3 changes: 3 additions & 0 deletions x/incentives/keeper/gauge.go
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,9 @@ func (k Keeper) CreateGauge(ctx sdk.Context, isPerpetual bool, owner sdk.AccAddr
NumEpochsPaidOver: numEpochsPaidOver,
}

// Fixed gas consumption create gauge based on the number of coins to add
ctx.GasMeter().ConsumeGas(uint64(types.BaseGasFeeForCreateGauge*(len(coins)+len(gauge.Coins))), "scaling gas cost for creating gauge rewards")

if err := k.bk.SendCoinsFromAccountToModule(ctx, owner, types.ModuleName, gauge.Coins); err != nil {
return 0, err
}
Expand Down
1 change: 1 addition & 0 deletions x/incentives/types/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package types
import time "time"

var (
BaseGasFeeForCreateGauge = 10_000
BaseGasFeeForAddRewardToGauge = 10_000
// We set the default value to 1ns, as this is the only uptime we support as long as charging is disabled (or
// until more supported uptimes are authorized by governance).
Expand Down
3 changes: 2 additions & 1 deletion x/incentives/types/msgs.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,15 @@ const (
var _ sdk.Msg = &MsgCreateGauge{}

// NewMsgCreateGauge creates a message to create a gauge with the provided parameters.
func NewMsgCreateGauge(isPerpetual bool, owner sdk.AccAddress, distributeTo lockuptypes.QueryCondition, coins sdk.Coins, startTime time.Time, numEpochsPaidOver uint64) *MsgCreateGauge {
func NewMsgCreateGauge(isPerpetual bool, owner sdk.AccAddress, distributeTo lockuptypes.QueryCondition, coins sdk.Coins, startTime time.Time, numEpochsPaidOver uint64, poolId uint64) *MsgCreateGauge {
return &MsgCreateGauge{
IsPerpetual: isPerpetual,
Owner: owner.String(),
DistributeTo: distributeTo,
Coins: coins,
StartTime: startTime,
NumEpochsPaidOver: numEpochsPaidOver,
PoolId: poolId,
}
}

Expand Down
1 change: 1 addition & 0 deletions x/incentives/types/msgs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ func TestMsgCreateGauge(t *testing.T) {
sdk.Coins{},
time.Now(),
2,
0,
)

return after(properMsg)
Expand Down