From 6f335143d9b53800da0c16b59bec08beb87fcdd2 Mon Sep 17 00:00:00 2001 From: atheeshp <59333759+atheeshp@users.noreply.github.com> Date: Wed, 29 Sep 2021 14:41:24 +0530 Subject: [PATCH] feat: increase gas cost for submit proposal (#9995) * increase gas cost for submit proposal * fix tests * fix tests * address review changes * fix tests * review changes * revert tests Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com> Co-authored-by: Marie Gauthier Co-authored-by: Robert Zaremba --- CHANGELOG.md | 1 + x/gov/abci_test.go | 3 +-- x/gov/keeper/msg_server.go | 12 ++++++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 449e04030..58bd34e82 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -99,6 +99,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * [\#9879](https://github.com/cosmos/cosmos-sdk/pull/9879) Modify ABCI Queries to use `abci.QueryRequest` Height field if it is non-zero, otherwise continue using context height. * [\#9594](https://github.com/cosmos/cosmos-sdk/pull/9594) Remove legacy REST API. Please see the [REST Endpoints Migration guide](https://docs.cosmos.network/master/migrations/rest.html) to migrate to the new REST endpoints. +* [\#9995](https://github.com/cosmos/cosmos-sdk/pull/9995) Increased gas cost for creating proposals. ### CLI Breaking Changes diff --git a/x/gov/abci_test.go b/x/gov/abci_test.go index c1f2b121f..99f6768f8 100644 --- a/x/gov/abci_test.go +++ b/x/gov/abci_test.go @@ -39,8 +39,7 @@ func TestTickExpiredDepositPeriod(t *testing.T) { ) require.NoError(t, err) - wrapCtx := sdk.WrapSDKContext(ctx) - res, err := govMsgSvr.SubmitProposal(wrapCtx, newProposalMsg) + res, err := govMsgSvr.SubmitProposal(sdk.WrapSDKContext(ctx), newProposalMsg) require.NoError(t, err) require.NotNil(t, res) diff --git a/x/gov/keeper/msg_server.go b/x/gov/keeper/msg_server.go index 86e6e9326..898762713 100644 --- a/x/gov/keeper/msg_server.go +++ b/x/gov/keeper/msg_server.go @@ -7,6 +7,7 @@ import ( "github.com/armon/go-metrics" + store "github.com/cosmos/cosmos-sdk/store/types" "github.com/cosmos/cosmos-sdk/telemetry" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/gov/types" @@ -31,6 +32,17 @@ func (k msgServer) SubmitProposal(goCtx context.Context, msg *types.MsgSubmitPro return nil, err } + bytes, err := proposal.Marshal() + if err != nil { + return nil, err + } + + // ref: https://github.com/cosmos/cosmos-sdk/issues/9683 + ctx.GasMeter().ConsumeGas( + 3*store.KVGasConfig().WriteCostPerByte*uint64(len(bytes)), + "submit proposal", + ) + defer telemetry.IncrCounter(1, types.ModuleName, "proposal") votingStarted, err := k.Keeper.AddDeposit(ctx, proposal.ProposalId, msg.GetProposer(), msg.GetInitialDeposit())