Skip to content

Commit 4628c7e

Browse files
committed
Make fields of WeightedVoteOption public
1 parent 2dabcf0 commit 4628c7e

File tree

2 files changed

+78
-2
lines changed

2 files changed

+78
-2
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@ and this project adheres to
66

77
## [Unreleased]
88

9+
### Fixed
10+
11+
- cosmwasm-std: Make fields of `WeightedVoteOption` public to allow constructing
12+
it ([#1597]).
13+
14+
[#1597]: https://github.com/CosmWasm/cosmwasm/issues/1597
15+
916
## [1.2.0] - 2023-01-24
1017

1118
### Added

packages/std/src/results/cosmos_msg.rs

Lines changed: 71 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,75 @@ pub enum WasmMsg {
203203
ClearAdmin { contract_addr: String },
204204
}
205205

206+
/// This message type allows the contract interact with the [x/gov] module in order
207+
/// to cast votes.
208+
///
209+
/// [x/gov]: https://github.com/cosmos/cosmos-sdk/tree/v0.45.12/x/gov
210+
///
211+
/// ## Examples
212+
///
213+
/// Cast a simple vote:
214+
///
215+
/// ```
216+
/// # use cosmwasm_std::{
217+
/// # HexBinary,
218+
/// # Storage, Api, Querier, DepsMut, Deps, entry_point, Env, StdError, MessageInfo,
219+
/// # Response, QueryResponse,
220+
/// # };
221+
/// # type ExecuteMsg = ();
222+
/// use cosmwasm_std::{GovMsg, VoteOption};
223+
///
224+
/// #[entry_point]
225+
/// pub fn execute(
226+
/// deps: DepsMut,
227+
/// env: Env,
228+
/// info: MessageInfo,
229+
/// msg: ExecuteMsg,
230+
/// ) -> Result<Response, StdError> {
231+
/// // ...
232+
/// Ok(Response::new().add_message(GovMsg::Vote {
233+
/// proposal_id: 4,
234+
/// vote: VoteOption::Yes,
235+
/// }))
236+
/// }
237+
/// ```
238+
///
239+
/// Cast a weighted vote:
240+
///
241+
/// ```
242+
/// # use cosmwasm_std::{
243+
/// # HexBinary,
244+
/// # Storage, Api, Querier, DepsMut, Deps, entry_point, Env, StdError, MessageInfo,
245+
/// # Response, QueryResponse,
246+
/// # };
247+
/// # type ExecuteMsg = ();
248+
/// # #[cfg(feature = "cosmwasm_1_2")]
249+
/// use cosmwasm_std::{Decimal, GovMsg, VoteOption, WeightedVoteOption};
250+
///
251+
/// # #[cfg(feature = "cosmwasm_1_2")]
252+
/// #[entry_point]
253+
/// pub fn execute(
254+
/// deps: DepsMut,
255+
/// env: Env,
256+
/// info: MessageInfo,
257+
/// msg: ExecuteMsg,
258+
/// ) -> Result<Response, StdError> {
259+
/// // ...
260+
/// Ok(Response::new().add_message(GovMsg::VoteWeighted {
261+
/// proposal_id: 4,
262+
/// options: vec![
263+
/// WeightedVoteOption {
264+
/// option: VoteOption::Yes,
265+
/// weight: Decimal::percent(65),
266+
/// },
267+
/// WeightedVoteOption {
268+
/// option: VoteOption::Abstain,
269+
/// weight: Decimal::percent(35),
270+
/// },
271+
/// ],
272+
/// }))
273+
/// }
274+
/// ```
206275
#[cfg(feature = "stargate")]
207276
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
208277
#[serde(rename_all = "snake_case")]
@@ -237,8 +306,8 @@ pub enum VoteOption {
237306
#[cfg(all(feature = "stargate", feature = "cosmwasm_1_2"))]
238307
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
239308
pub struct WeightedVoteOption {
240-
option: VoteOption,
241-
weight: Decimal,
309+
pub option: VoteOption,
310+
pub weight: Decimal,
242311
}
243312

244313
/// Shortcut helper as the construction of WasmMsg::Instantiate can be quite verbose in contract code.

0 commit comments

Comments
 (0)