From 255a456a6c1b23ec93cf29c9c06990d633b4d50e Mon Sep 17 00:00:00 2001 From: Kien Date: Mon, 25 Mar 2024 22:55:39 +0700 Subject: [PATCH] feat(x/gov): emit depositor in `proposal_deposit` event (#19853) (cherry picked from commit d1c3547d8ee5a7ac506247e8b10c0a12fcbf741d) # Conflicts: # x/gov/CHANGELOG.md # x/gov/keeper/deposit.go # x/gov/keeper/proposal.go # x/gov/types/events.go --- x/gov/CHANGELOG.md | 76 ++++++++++++++++++++++++++++++++++++++++ x/gov/keeper/deposit.go | 11 ++++++ x/gov/keeper/proposal.go | 12 +++++++ x/gov/types/events.go | 21 +++++++++++ 4 files changed, 120 insertions(+) create mode 100644 x/gov/CHANGELOG.md diff --git a/x/gov/CHANGELOG.md b/x/gov/CHANGELOG.md new file mode 100644 index 000000000000..4859161e7758 --- /dev/null +++ b/x/gov/CHANGELOG.md @@ -0,0 +1,76 @@ + + +# Changelog + +## [Unreleased] + +### Features + +* [#19592](https://github.com/cosmos/cosmos-sdk/pull/19592) Add custom tally function. +* [#19304](https://github.com/cosmos/cosmos-sdk/pull/19304) Add `MsgSudoExec` for allowing executing any message as a sudo. +* [#19101](https://github.com/cosmos/cosmos-sdk/pull/19101) Add message based params configuration. +* [#18532](https://github.com/cosmos/cosmos-sdk/pull/18532) Add SPAM vote to proposals. +* [#18532](https://github.com/cosmos/cosmos-sdk/pull/18532) Add proposal types to proposals. +* [#18620](https://github.com/cosmos/cosmos-sdk/pull/18620) Add optimistic proposals. +* [#18762](https://github.com/cosmos/cosmos-sdk/pull/18762) Add multiple choice proposals. +* [#19853](https://github.com/cosmos/cosmos-sdk/pull/19853) Emit `depositor` in `EventTypeProposalDeposit` and `proposal_type` in `EventTypeSubmitProposal` + +### Improvements + +* [#19741](https://github.com/cosmos/cosmos-sdk/pull/19741) Add `ExpeditedQuorum` parameter specifying a minimum quorum for expedited proposals, that can differ from the regular quorum. +* [#19352](https://github.com/cosmos/cosmos-sdk/pull/19352) `TallyResult` include vote options counts. Those counts replicates the now deprecated (but not removed) yes, no, abstain and veto count fields. +* [#18976](https://github.com/cosmos/cosmos-sdk/pull/18976) Log and send an event when a proposal deposit refund or burn has failed. +* [#18856](https://github.com/cosmos/cosmos-sdk/pull/18856) Add `ProposalCancelMaxPeriod` parameter for modifying how long a proposal can be cancelled after it has been submitted. +* [#19167](https://github.com/cosmos/cosmos-sdk/pull/19167) Add `YesQuorum` parameter specifying a minimum of yes vote in the total proposal voting power for the proposal to pass. +* [#18445](https://github.com/cosmos/cosmos-sdk/pull/18445) Extend gov config. +* [#18532](https://github.com/cosmos/cosmos-sdk/pull/18532) Repurpose `govcliutils.NormalizeProposalType` to work for gov v1 proposal types. + +### State Machine Breaking + +* [#19101](https://github.com/cosmos/cosmos-sdk/pull/19101) Add message based params configuration. +* [#18532](https://github.com/cosmos/cosmos-sdk/pull/18532) Add SPAM vote to proposals. +* [#18532](https://github.com/cosmos/cosmos-sdk/pull/18532) Add proposal types to proposals. +* [#18620](https://github.com/cosmos/cosmos-sdk/pull/18620) Add optimistic proposals. +* [#18762](https://github.com/cosmos/cosmos-sdk/pull/18762) Add multiple choice proposals. +* [#18856](https://github.com/cosmos/cosmos-sdk/pull/18856) Add `ProposalCancelMaxPeriod` parameters. +* [#19167](https://github.com/cosmos/cosmos-sdk/pull/19167) Add `YesQuorum` parameter. + +### Client Breaking Changes + +* [#19101](https://github.com/cosmos/cosmos-sdk/pull/19101) Querying specific params types was deprecated in gov/v1 and has been removed. gov/v1beta1 rest unchanged. + +### API Breaking Changes + +* [#19481](https://github.com/cosmos/cosmos-sdk/pull/19481) Migrate module to use `appmodule.Environment`; `NewKeeper` now takes `appmodule.Environment` instead of a store service and no `baseapp.MessageRouter` anymore. +* [#19481](https://github.com/cosmos/cosmos-sdk/pull/19481) v1beta1 proposal handlers now take a `context.Context` instead of an `sdk.Context`. +* [#19592](https://github.com/cosmos/cosmos-sdk/pull/19592) `types.Config` and `types.DefaultConfig` have been moved to the keeper package in order to support the custom tallying function. +* [#19349](https://github.com/cosmos/cosmos-sdk/pull/19349) Simplify state management in `x/gov`. Note `k.VotingPeriodProposals` and `k.SetProposal` are no longer needed and have been removed. +* [#18532](https://github.com/cosmos/cosmos-sdk/pull/18532) All functions that were taking an expedited bool parameter now take a `ProposalType` parameter instead. +* [#17496](https://github.com/cosmos/cosmos-sdk/pull/17496) in `x/gov/types/v1beta1/vote.go` `NewVote` was removed, constructing the struct is required for this type. +* [#19101](https://github.com/cosmos/cosmos-sdk/pull/19101) Move `QueryProposalVotesParams` and `QueryVoteParams` from the `types/v1` package to `utils` and remove unused `querier.go` file. +* [#19740](https://github.com/cosmos/cosmos-sdk/pull/19740) Verify `InitGenesis` and `ExportGenesis` module code and keeper code do not panic. + +### Deprecated + +* [#18532](https://github.com/cosmos/cosmos-sdk/pull/18532) The field `v1.Proposal.Expedited` is deprecated and will be removed in the next release. diff --git a/x/gov/keeper/deposit.go b/x/gov/keeper/deposit.go index 9693c5168e48..915d6b1b64c5 100644 --- a/x/gov/keeper/deposit.go +++ b/x/gov/keeper/deposit.go @@ -164,6 +164,7 @@ func (keeper Keeper) AddDeposit(ctx context.Context, proposalID uint64, deposito return false, err } +<<<<<<< HEAD sdkCtx := sdk.UnwrapSDKContext(ctx) sdkCtx.EventManager().EmitEvent( sdk.NewEvent( @@ -172,6 +173,16 @@ func (keeper Keeper) AddDeposit(ctx context.Context, proposalID uint64, deposito sdk.NewAttribute(types.AttributeKeyProposalID, fmt.Sprintf("%d", proposalID)), ), ) +======= + if err := k.environment.EventService.EventManager(ctx).EmitKV( + types.EventTypeProposalDeposit, + event.NewAttribute(types.AttributeKeyDepositor, depositorAddr.String()), + event.NewAttribute(sdk.AttributeKeyAmount, depositAmount.String()), + event.NewAttribute(types.AttributeKeyProposalID, fmt.Sprintf("%d", proposalID)), + ); err != nil { + return false, err + } +>>>>>>> d1c3547d8 (feat(x/gov): emit depositor in `proposal_deposit` event (#19853)) err = keeper.SetDeposit(ctx, deposit) if err != nil { diff --git a/x/gov/keeper/proposal.go b/x/gov/keeper/proposal.go index a461c369ea05..5469a7b502a7 100644 --- a/x/gov/keeper/proposal.go +++ b/x/gov/keeper/proposal.go @@ -119,6 +119,7 @@ func (keeper Keeper) SubmitProposal(ctx context.Context, messages []sdk.Msg, met return v1.Proposal{}, err } +<<<<<<< HEAD sdkCtx.EventManager().EmitEvent( sdk.NewEvent( types.EventTypeSubmitProposal, @@ -127,6 +128,17 @@ func (keeper Keeper) SubmitProposal(ctx context.Context, messages []sdk.Msg, met sdk.NewAttribute(types.AttributeKeyProposalMessages, msgsStr), ), ) +======= + if err := k.environment.EventService.EventManager(ctx).EmitKV( + types.EventTypeSubmitProposal, + event.NewAttribute(types.AttributeKeyProposalType, proposalType.String()), + event.NewAttribute(types.AttributeKeyProposalID, fmt.Sprintf("%d", proposalID)), + event.NewAttribute(types.AttributeKeyProposalProposer, proposer.String()), + event.NewAttribute(types.AttributeKeyProposalMessages, strings.Join(msgs, ",")), + ); err != nil { + return v1.Proposal{}, fmt.Errorf("failed to emit event: %w", err) + } +>>>>>>> d1c3547d8 (feat(x/gov): emit depositor in `proposal_deposit` event (#19853)) return proposal, nil } diff --git a/x/gov/types/events.go b/x/gov/types/events.go index e91d9d7f4a89..98e29fa2673e 100644 --- a/x/gov/types/events.go +++ b/x/gov/types/events.go @@ -9,6 +9,7 @@ const ( EventTypeActiveProposal = "active_proposal" EventTypeCancelProposal = "cancel_proposal" +<<<<<<< HEAD AttributeKeyProposalResult = "proposal_result" AttributeKeyVoter = "voter" AttributeKeyOption = "option" @@ -23,6 +24,26 @@ const ( AttributeValueProposalFailed = "proposal_failed" // error on proposal handler AttributeValueProposalCanceled = "proposal_canceled" // error on proposal handler AttributeKeyProposalProposer = "proposal_proposer" // account address of the proposer +======= + AttributeKeyProposalResult = "proposal_result" + AttributeKeyVoter = "voter" + AttributeKeyOption = "option" + AttributeKeyProposalID = "proposal_id" + AttributeKeyDepositor = "depositor" + AttributeKeyProposalMessages = "proposal_messages" // Msg type_urls in the proposal + AttributeKeyVotingPeriodStart = "voting_period_start" + AttributeKeyProposalLog = "proposal_log" // log of proposal execution + AttributeKeyProposalDepositError = "proposal_deposit_error" // error on proposal deposit refund/burn + AttributeKeyProposalProposer = "proposal_proposer" // account address of the proposer + + AttributeValueProposalDropped = "proposal_dropped" // didn't meet min deposit + AttributeValueProposalPassed = "proposal_passed" // met vote quorum + AttributeValueProposalRejected = "proposal_rejected" // didn't meet vote quorum + AttributeValueExpeditedProposalRejected = "expedited_proposal_rejected" // didn't meet expedited vote quorum + AttributeValueOptimisticProposalRejected = "optimistic_proposal_rejected" // didn't meet optimistic vote quorum + AttributeValueProposalFailed = "proposal_failed" // error on proposal handler + AttributeValueProposalCanceled = "proposal_canceled" // error on proposal handler +>>>>>>> d1c3547d8 (feat(x/gov): emit depositor in `proposal_deposit` event (#19853)) AttributeKeyProposalType = "proposal_type" AttributeSignalTitle = "signal_title"