injective_test_tube/module/
gov.rs1use injective_std::types::cosmos::gov::v1::{
2 MsgSubmitProposal, MsgSubmitProposalResponse, MsgVote, MsgVoteResponse, QueryProposalRequest,
3 QueryProposalResponse,
4};
5use injective_std::types::cosmos::gov::v1beta1;
6use test_tube_inj::module::Module;
7use test_tube_inj::runner::Runner;
8use test_tube_inj::{fn_execute, fn_query};
9
10pub struct Gov<'a, R: Runner<'a>> {
11 runner: &'a R,
12}
13
14impl<'a, R: Runner<'a>> Module<'a, R> for Gov<'a, R> {
15 fn new(runner: &'a R) -> Self {
16 Self { runner }
17 }
18}
19
20impl<'a, R> Gov<'a, R>
21where
22 R: Runner<'a>,
23{
24 fn_execute! {
25 pub submit_proposal: MsgSubmitProposal => MsgSubmitProposalResponse
26 }
27
28 fn_execute! {
29 pub submit_proposal_v1beta1: v1beta1::MsgSubmitProposal => v1beta1::MsgSubmitProposalResponse
30
31 }
32
33 fn_execute! {
34 pub vote: MsgVote => MsgVoteResponse
35 }
36
37 fn_query! {
38 pub query_proposal ["/cosmos.gov.v1beta1.Query/Proposal"]: QueryProposalRequest => QueryProposalResponse
39 }
40}