persistence_std/types/cosmwasm/wasm/
v1.rs

1use persistence_std_derive::CosmwasmExt;
2/// ContractExecutionAuthorization defines authorization for wasm execute.
3/// Since: wasmd 0.30
4#[allow(clippy::derive_partial_eq_without_eq)]
5#[derive(
6    Clone,
7    PartialEq,
8    Eq,
9    ::prost::Message,
10    ::serde::Serialize,
11    ::serde::Deserialize,
12    ::schemars::JsonSchema,
13    CosmwasmExt,
14)]
15#[proto_message(type_url = "/cosmwasm.wasm.v1.ContractExecutionAuthorization")]
16pub struct ContractExecutionAuthorization {
17    /// Grants for contract executions
18    #[prost(message, repeated, tag = "1")]
19    pub grants: ::prost::alloc::vec::Vec<ContractGrant>,
20}
21/// ContractMigrationAuthorization defines authorization for wasm contract
22/// migration. Since: wasmd 0.30
23#[allow(clippy::derive_partial_eq_without_eq)]
24#[derive(
25    Clone,
26    PartialEq,
27    Eq,
28    ::prost::Message,
29    ::serde::Serialize,
30    ::serde::Deserialize,
31    ::schemars::JsonSchema,
32    CosmwasmExt,
33)]
34#[proto_message(type_url = "/cosmwasm.wasm.v1.ContractMigrationAuthorization")]
35pub struct ContractMigrationAuthorization {
36    /// Grants for contract migrations
37    #[prost(message, repeated, tag = "1")]
38    pub grants: ::prost::alloc::vec::Vec<ContractGrant>,
39}
40/// ContractGrant a granted permission for a single contract
41/// Since: wasmd 0.30
42#[allow(clippy::derive_partial_eq_without_eq)]
43#[derive(
44    Clone,
45    PartialEq,
46    Eq,
47    ::prost::Message,
48    ::serde::Serialize,
49    ::serde::Deserialize,
50    ::schemars::JsonSchema,
51    CosmwasmExt,
52)]
53#[proto_message(type_url = "/cosmwasm.wasm.v1.ContractGrant")]
54pub struct ContractGrant {
55    /// Contract is the bech32 address of the smart contract
56    #[prost(string, tag = "1")]
57    pub contract: ::prost::alloc::string::String,
58    /// Limit defines execution limits that are enforced and updated when the grant
59    /// is applied. When the limit lapsed the grant is removed.
60    #[prost(message, optional, tag = "2")]
61    pub limit: ::core::option::Option<crate::shim::Any>,
62    /// Filter define more fine-grained control on the message payload passed
63    /// to the contract in the operation. When no filter applies on execution, the
64    /// operation is prohibited.
65    #[prost(message, optional, tag = "3")]
66    pub filter: ::core::option::Option<crate::shim::Any>,
67}
68/// MaxCallsLimit limited number of calls to the contract. No funds transferable.
69/// Since: wasmd 0.30
70#[allow(clippy::derive_partial_eq_without_eq)]
71#[derive(
72    Clone,
73    PartialEq,
74    Eq,
75    ::prost::Message,
76    ::serde::Serialize,
77    ::serde::Deserialize,
78    ::schemars::JsonSchema,
79    CosmwasmExt,
80)]
81#[proto_message(type_url = "/cosmwasm.wasm.v1.MaxCallsLimit")]
82pub struct MaxCallsLimit {
83    /// Remaining number that is decremented on each execution
84    #[prost(uint64, tag = "1")]
85    #[serde(
86        serialize_with = "crate::serde::as_str::serialize",
87        deserialize_with = "crate::serde::as_str::deserialize"
88    )]
89    pub remaining: u64,
90}
91/// MaxFundsLimit defines the maximal amounts that can be sent to the contract.
92/// Since: wasmd 0.30
93#[allow(clippy::derive_partial_eq_without_eq)]
94#[derive(
95    Clone,
96    PartialEq,
97    Eq,
98    ::prost::Message,
99    ::serde::Serialize,
100    ::serde::Deserialize,
101    ::schemars::JsonSchema,
102    CosmwasmExt,
103)]
104#[proto_message(type_url = "/cosmwasm.wasm.v1.MaxFundsLimit")]
105pub struct MaxFundsLimit {
106    /// Amounts is the maximal amount of tokens transferable to the contract.
107    #[prost(message, repeated, tag = "1")]
108    pub amounts: ::prost::alloc::vec::Vec<super::super::super::cosmos::base::v1beta1::Coin>,
109}
110/// CombinedLimit defines the maximal amounts that can be sent to a contract and
111/// the maximal number of calls executable. Both need to remain >0 to be valid.
112/// Since: wasmd 0.30
113#[allow(clippy::derive_partial_eq_without_eq)]
114#[derive(
115    Clone,
116    PartialEq,
117    Eq,
118    ::prost::Message,
119    ::serde::Serialize,
120    ::serde::Deserialize,
121    ::schemars::JsonSchema,
122    CosmwasmExt,
123)]
124#[proto_message(type_url = "/cosmwasm.wasm.v1.CombinedLimit")]
125pub struct CombinedLimit {
126    /// Remaining number that is decremented on each execution
127    #[prost(uint64, tag = "1")]
128    #[serde(
129        serialize_with = "crate::serde::as_str::serialize",
130        deserialize_with = "crate::serde::as_str::deserialize"
131    )]
132    pub calls_remaining: u64,
133    /// Amounts is the maximal amount of tokens transferable to the contract.
134    #[prost(message, repeated, tag = "2")]
135    pub amounts: ::prost::alloc::vec::Vec<super::super::super::cosmos::base::v1beta1::Coin>,
136}
137/// AllowAllMessagesFilter is a wildcard to allow any type of contract payload
138/// message.
139/// Since: wasmd 0.30
140#[allow(clippy::derive_partial_eq_without_eq)]
141#[derive(
142    Clone,
143    PartialEq,
144    Eq,
145    ::prost::Message,
146    ::serde::Serialize,
147    ::serde::Deserialize,
148    ::schemars::JsonSchema,
149    CosmwasmExt,
150)]
151#[proto_message(type_url = "/cosmwasm.wasm.v1.AllowAllMessagesFilter")]
152pub struct AllowAllMessagesFilter {}
153/// AcceptedMessageKeysFilter accept only the specific contract message keys in
154/// the json object to be executed.
155/// Since: wasmd 0.30
156#[allow(clippy::derive_partial_eq_without_eq)]
157#[derive(
158    Clone,
159    PartialEq,
160    Eq,
161    ::prost::Message,
162    ::serde::Serialize,
163    ::serde::Deserialize,
164    ::schemars::JsonSchema,
165    CosmwasmExt,
166)]
167#[proto_message(type_url = "/cosmwasm.wasm.v1.AcceptedMessageKeysFilter")]
168pub struct AcceptedMessageKeysFilter {
169    /// Messages is the list of unique keys
170    #[prost(string, repeated, tag = "1")]
171    pub keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
172}
173/// AcceptedMessagesFilter accept only the specific raw contract messages to be
174/// executed.
175/// Since: wasmd 0.30
176#[allow(clippy::derive_partial_eq_without_eq)]
177#[derive(
178    Clone,
179    PartialEq,
180    Eq,
181    ::prost::Message,
182    ::serde::Serialize,
183    ::serde::Deserialize,
184    ::schemars::JsonSchema,
185    CosmwasmExt,
186)]
187#[proto_message(type_url = "/cosmwasm.wasm.v1.AcceptedMessagesFilter")]
188pub struct AcceptedMessagesFilter {
189    /// Messages is the list of raw contract messages
190    #[prost(bytes = "vec", repeated, tag = "1")]
191    pub messages: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
192}
193/// AccessTypeParam
194#[allow(clippy::derive_partial_eq_without_eq)]
195#[derive(
196    Clone,
197    PartialEq,
198    Eq,
199    ::prost::Message,
200    ::serde::Serialize,
201    ::serde::Deserialize,
202    ::schemars::JsonSchema,
203    CosmwasmExt,
204)]
205#[proto_message(type_url = "/cosmwasm.wasm.v1.AccessTypeParam")]
206pub struct AccessTypeParam {
207    #[prost(enumeration = "AccessType", tag = "1")]
208    #[serde(
209        serialize_with = "access_type_serde::serialize",
210        deserialize_with = "access_type_serde::deserialize"
211    )]
212    pub value: i32,
213}
214/// AccessConfig access control type.
215#[allow(clippy::derive_partial_eq_without_eq)]
216#[derive(
217    Clone,
218    PartialEq,
219    Eq,
220    ::prost::Message,
221    ::serde::Serialize,
222    ::serde::Deserialize,
223    ::schemars::JsonSchema,
224    CosmwasmExt,
225)]
226#[proto_message(type_url = "/cosmwasm.wasm.v1.AccessConfig")]
227pub struct AccessConfig {
228    #[prost(enumeration = "AccessType", tag = "1")]
229    #[serde(
230        serialize_with = "access_type_serde::serialize",
231        deserialize_with = "access_type_serde::deserialize"
232    )]
233    pub permission: i32,
234    #[prost(string, repeated, tag = "3")]
235    pub addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
236}
237/// Params defines the set of wasm parameters.
238#[allow(clippy::derive_partial_eq_without_eq)]
239#[derive(
240    Clone,
241    PartialEq,
242    Eq,
243    ::prost::Message,
244    ::serde::Serialize,
245    ::serde::Deserialize,
246    ::schemars::JsonSchema,
247    CosmwasmExt,
248)]
249#[proto_message(type_url = "/cosmwasm.wasm.v1.Params")]
250pub struct Params {
251    #[prost(message, optional, tag = "1")]
252    pub code_upload_access: ::core::option::Option<AccessConfig>,
253    #[prost(enumeration = "AccessType", tag = "2")]
254    #[serde(
255        serialize_with = "access_type_serde::serialize",
256        deserialize_with = "access_type_serde::deserialize"
257    )]
258    pub instantiate_default_permission: i32,
259}
260/// CodeInfo is data for the uploaded contract WASM code
261#[allow(clippy::derive_partial_eq_without_eq)]
262#[derive(
263    Clone,
264    PartialEq,
265    Eq,
266    ::prost::Message,
267    ::serde::Serialize,
268    ::serde::Deserialize,
269    ::schemars::JsonSchema,
270    CosmwasmExt,
271)]
272#[proto_message(type_url = "/cosmwasm.wasm.v1.CodeInfo")]
273pub struct CodeInfo {
274    /// CodeHash is the unique identifier created by wasmvm
275    #[prost(bytes = "vec", tag = "1")]
276    pub code_hash: ::prost::alloc::vec::Vec<u8>,
277    /// Creator address who initially stored the code
278    #[prost(string, tag = "2")]
279    pub creator: ::prost::alloc::string::String,
280    /// InstantiateConfig access control to apply on contract creation, optional
281    #[prost(message, optional, tag = "5")]
282    pub instantiate_config: ::core::option::Option<AccessConfig>,
283}
284/// ContractInfo stores a WASM contract instance
285#[allow(clippy::derive_partial_eq_without_eq)]
286#[derive(
287    Clone,
288    PartialEq,
289    Eq,
290    ::prost::Message,
291    ::serde::Serialize,
292    ::serde::Deserialize,
293    ::schemars::JsonSchema,
294    CosmwasmExt,
295)]
296#[proto_message(type_url = "/cosmwasm.wasm.v1.ContractInfo")]
297pub struct ContractInfo {
298    /// CodeID is the reference to the stored Wasm code
299    #[prost(uint64, tag = "1")]
300    #[serde(alias = "codeID")]
301    #[serde(
302        serialize_with = "crate::serde::as_str::serialize",
303        deserialize_with = "crate::serde::as_str::deserialize"
304    )]
305    pub code_id: u64,
306    /// Creator address who initially instantiated the contract
307    #[prost(string, tag = "2")]
308    pub creator: ::prost::alloc::string::String,
309    /// Admin is an optional address that can execute migrations
310    #[prost(string, tag = "3")]
311    pub admin: ::prost::alloc::string::String,
312    /// Label is optional metadata to be stored with a contract instance.
313    #[prost(string, tag = "4")]
314    pub label: ::prost::alloc::string::String,
315    /// Created Tx position when the contract was instantiated.
316    #[prost(message, optional, tag = "5")]
317    pub created: ::core::option::Option<AbsoluteTxPosition>,
318    #[prost(string, tag = "6")]
319    #[serde(alias = "ibc_portID")]
320    pub ibc_port_id: ::prost::alloc::string::String,
321    /// Extension is an extension point to store custom metadata within the
322    /// persistence model.
323    #[prost(message, optional, tag = "7")]
324    pub extension: ::core::option::Option<crate::shim::Any>,
325}
326/// ContractCodeHistoryEntry metadata to a contract.
327#[allow(clippy::derive_partial_eq_without_eq)]
328#[derive(
329    Clone,
330    PartialEq,
331    Eq,
332    ::prost::Message,
333    ::serde::Serialize,
334    ::serde::Deserialize,
335    ::schemars::JsonSchema,
336    CosmwasmExt,
337)]
338#[proto_message(type_url = "/cosmwasm.wasm.v1.ContractCodeHistoryEntry")]
339pub struct ContractCodeHistoryEntry {
340    #[prost(enumeration = "ContractCodeHistoryOperationType", tag = "1")]
341    #[serde(
342        serialize_with = "contract_code_history_operation_type_serde::serialize",
343        deserialize_with = "contract_code_history_operation_type_serde::deserialize"
344    )]
345    pub operation: i32,
346    /// CodeID is the reference to the stored WASM code
347    #[prost(uint64, tag = "2")]
348    #[serde(alias = "codeID")]
349    #[serde(
350        serialize_with = "crate::serde::as_str::serialize",
351        deserialize_with = "crate::serde::as_str::deserialize"
352    )]
353    pub code_id: u64,
354    /// Updated Tx position when the operation was executed.
355    #[prost(message, optional, tag = "3")]
356    pub updated: ::core::option::Option<AbsoluteTxPosition>,
357    #[prost(bytes = "vec", tag = "4")]
358    pub msg: ::prost::alloc::vec::Vec<u8>,
359}
360/// AbsoluteTxPosition is a unique transaction position that allows for global
361/// ordering of transactions.
362#[allow(clippy::derive_partial_eq_without_eq)]
363#[derive(
364    Clone,
365    PartialEq,
366    Eq,
367    ::prost::Message,
368    ::serde::Serialize,
369    ::serde::Deserialize,
370    ::schemars::JsonSchema,
371    CosmwasmExt,
372)]
373#[proto_message(type_url = "/cosmwasm.wasm.v1.AbsoluteTxPosition")]
374pub struct AbsoluteTxPosition {
375    /// BlockHeight is the block the contract was created at
376    #[prost(uint64, tag = "1")]
377    #[serde(
378        serialize_with = "crate::serde::as_str::serialize",
379        deserialize_with = "crate::serde::as_str::deserialize"
380    )]
381    pub block_height: u64,
382    /// TxIndex is a monotonic counter within the block (actual transaction index,
383    /// or gas consumed)
384    #[prost(uint64, tag = "2")]
385    #[serde(
386        serialize_with = "crate::serde::as_str::serialize",
387        deserialize_with = "crate::serde::as_str::deserialize"
388    )]
389    pub tx_index: u64,
390}
391/// Model is a struct that holds a KV pair
392#[allow(clippy::derive_partial_eq_without_eq)]
393#[derive(
394    Clone,
395    PartialEq,
396    Eq,
397    ::prost::Message,
398    ::serde::Serialize,
399    ::serde::Deserialize,
400    ::schemars::JsonSchema,
401    CosmwasmExt,
402)]
403#[proto_message(type_url = "/cosmwasm.wasm.v1.Model")]
404pub struct Model {
405    /// hex-encode key to read it better (this is often ascii)
406    #[prost(bytes = "vec", tag = "1")]
407    pub key: ::prost::alloc::vec::Vec<u8>,
408    /// base64-encode raw value
409    #[prost(bytes = "vec", tag = "2")]
410    pub value: ::prost::alloc::vec::Vec<u8>,
411}
412/// AccessType permission types
413#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
414#[repr(i32)]
415#[derive(::schemars::JsonSchema)]
416pub enum AccessType {
417    /// AccessTypeUnspecified placeholder for empty value
418    Unspecified = 0,
419    /// AccessTypeNobody forbidden
420    Nobody = 1,
421    /// AccessTypeEverybody unrestricted
422    Everybody = 3,
423    /// AccessTypeAnyOfAddresses allow any of the addresses
424    AnyOfAddresses = 4,
425}
426pub mod access_type_serde {
427    use super::AccessType;
428    use serde::{Deserialize, Deserializer, Serializer};
429    pub fn deserialize<'de, T, D>(deserializer: D) -> std::result::Result<T, D::Error>
430    where
431        T: From<AccessType>,
432        D: Deserializer<'de>,
433    {
434        let s = String::deserialize(deserializer)?;
435        let enum_value = AccessType::from_str_name(&s).unwrap();
436        let int_value: T = enum_value.into();
437        return Ok(int_value);
438    }
439    pub fn serialize<S>(value: &i32, serializer: S) -> std::result::Result<S::Ok, S::Error>
440    where
441        S: Serializer,
442    {
443        let s: AccessType = AccessType::from_i32(*value).unwrap();
444        serializer.serialize_str(s.as_str_name())
445    }
446}
447impl AccessType {
448    /// String value of the enum field names used in the ProtoBuf definition.
449    ///
450    /// The values are not transformed in any way and thus are considered stable
451    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
452    pub fn as_str_name(&self) -> &'static str {
453        match self {
454            AccessType::Unspecified => "ACCESS_TYPE_UNSPECIFIED",
455            AccessType::Nobody => "ACCESS_TYPE_NOBODY",
456            AccessType::Everybody => "ACCESS_TYPE_EVERYBODY",
457            AccessType::AnyOfAddresses => "ACCESS_TYPE_ANY_OF_ADDRESSES",
458        }
459    }
460    /// Creates an enum from field names used in the ProtoBuf definition.
461    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
462        match value {
463            "ACCESS_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
464            "ACCESS_TYPE_NOBODY" => Some(Self::Nobody),
465            "ACCESS_TYPE_EVERYBODY" => Some(Self::Everybody),
466            "ACCESS_TYPE_ANY_OF_ADDRESSES" => Some(Self::AnyOfAddresses),
467            _ => None,
468        }
469    }
470}
471/// ContractCodeHistoryOperationType actions that caused a code change
472#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
473#[repr(i32)]
474#[derive(::schemars::JsonSchema)]
475pub enum ContractCodeHistoryOperationType {
476    /// ContractCodeHistoryOperationTypeUnspecified placeholder for empty value
477    Unspecified = 0,
478    /// ContractCodeHistoryOperationTypeInit on chain contract instantiation
479    Init = 1,
480    /// ContractCodeHistoryOperationTypeMigrate code migration
481    Migrate = 2,
482    /// ContractCodeHistoryOperationTypeGenesis based on genesis data
483    Genesis = 3,
484}
485pub mod contract_code_history_operation_type_serde {
486    use super::ContractCodeHistoryOperationType;
487    use serde::{Deserialize, Deserializer, Serializer};
488    pub fn deserialize<'de, T, D>(deserializer: D) -> std::result::Result<T, D::Error>
489    where
490        T: From<ContractCodeHistoryOperationType>,
491        D: Deserializer<'de>,
492    {
493        let s = String::deserialize(deserializer)?;
494        let enum_value = ContractCodeHistoryOperationType::from_str_name(&s).unwrap();
495        let int_value: T = enum_value.into();
496        return Ok(int_value);
497    }
498    pub fn serialize<S>(value: &i32, serializer: S) -> std::result::Result<S::Ok, S::Error>
499    where
500        S: Serializer,
501    {
502        let s: ContractCodeHistoryOperationType =
503            ContractCodeHistoryOperationType::from_i32(*value).unwrap();
504        serializer.serialize_str(s.as_str_name())
505    }
506}
507impl ContractCodeHistoryOperationType {
508    /// String value of the enum field names used in the ProtoBuf definition.
509    ///
510    /// The values are not transformed in any way and thus are considered stable
511    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
512    pub fn as_str_name(&self) -> &'static str {
513        match self {
514            ContractCodeHistoryOperationType::Unspecified => {
515                "CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED"
516            }
517            ContractCodeHistoryOperationType::Init => "CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT",
518            ContractCodeHistoryOperationType::Migrate => {
519                "CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE"
520            }
521            ContractCodeHistoryOperationType::Genesis => {
522                "CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS"
523            }
524        }
525    }
526    /// Creates an enum from field names used in the ProtoBuf definition.
527    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
528        match value {
529            "CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
530            "CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT" => Some(Self::Init),
531            "CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE" => Some(Self::Migrate),
532            "CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS" => Some(Self::Genesis),
533            _ => None,
534        }
535    }
536}
537/// GenesisState - genesis state of x/wasm
538#[allow(clippy::derive_partial_eq_without_eq)]
539#[derive(
540    Clone,
541    PartialEq,
542    Eq,
543    ::prost::Message,
544    ::serde::Serialize,
545    ::serde::Deserialize,
546    ::schemars::JsonSchema,
547    CosmwasmExt,
548)]
549#[proto_message(type_url = "/cosmwasm.wasm.v1.GenesisState")]
550pub struct GenesisState {
551    #[prost(message, optional, tag = "1")]
552    pub params: ::core::option::Option<Params>,
553    #[prost(message, repeated, tag = "2")]
554    pub codes: ::prost::alloc::vec::Vec<Code>,
555    #[prost(message, repeated, tag = "3")]
556    pub contracts: ::prost::alloc::vec::Vec<Contract>,
557    #[prost(message, repeated, tag = "4")]
558    pub sequences: ::prost::alloc::vec::Vec<Sequence>,
559}
560/// Code struct encompasses CodeInfo and CodeBytes
561#[allow(clippy::derive_partial_eq_without_eq)]
562#[derive(
563    Clone,
564    PartialEq,
565    Eq,
566    ::prost::Message,
567    ::serde::Serialize,
568    ::serde::Deserialize,
569    ::schemars::JsonSchema,
570    CosmwasmExt,
571)]
572#[proto_message(type_url = "/cosmwasm.wasm.v1.Code")]
573pub struct Code {
574    #[prost(uint64, tag = "1")]
575    #[serde(alias = "codeID")]
576    #[serde(
577        serialize_with = "crate::serde::as_str::serialize",
578        deserialize_with = "crate::serde::as_str::deserialize"
579    )]
580    pub code_id: u64,
581    #[prost(message, optional, tag = "2")]
582    pub code_info: ::core::option::Option<CodeInfo>,
583    #[prost(bytes = "vec", tag = "3")]
584    pub code_bytes: ::prost::alloc::vec::Vec<u8>,
585    /// Pinned to wasmvm cache
586    #[prost(bool, tag = "4")]
587    pub pinned: bool,
588}
589/// Contract struct encompasses ContractAddress, ContractInfo, and ContractState
590#[allow(clippy::derive_partial_eq_without_eq)]
591#[derive(
592    Clone,
593    PartialEq,
594    Eq,
595    ::prost::Message,
596    ::serde::Serialize,
597    ::serde::Deserialize,
598    ::schemars::JsonSchema,
599    CosmwasmExt,
600)]
601#[proto_message(type_url = "/cosmwasm.wasm.v1.Contract")]
602pub struct Contract {
603    #[prost(string, tag = "1")]
604    pub contract_address: ::prost::alloc::string::String,
605    #[prost(message, optional, tag = "2")]
606    pub contract_info: ::core::option::Option<ContractInfo>,
607    #[prost(message, repeated, tag = "3")]
608    pub contract_state: ::prost::alloc::vec::Vec<Model>,
609    #[prost(message, repeated, tag = "4")]
610    pub contract_code_history: ::prost::alloc::vec::Vec<ContractCodeHistoryEntry>,
611}
612/// Sequence key and value of an id generation counter
613#[allow(clippy::derive_partial_eq_without_eq)]
614#[derive(
615    Clone,
616    PartialEq,
617    Eq,
618    ::prost::Message,
619    ::serde::Serialize,
620    ::serde::Deserialize,
621    ::schemars::JsonSchema,
622    CosmwasmExt,
623)]
624#[proto_message(type_url = "/cosmwasm.wasm.v1.Sequence")]
625pub struct Sequence {
626    #[prost(bytes = "vec", tag = "1")]
627    pub id_key: ::prost::alloc::vec::Vec<u8>,
628    #[prost(uint64, tag = "2")]
629    #[serde(
630        serialize_with = "crate::serde::as_str::serialize",
631        deserialize_with = "crate::serde::as_str::deserialize"
632    )]
633    pub value: u64,
634}
635/// MsgIBCSend
636#[allow(clippy::derive_partial_eq_without_eq)]
637#[derive(
638    Clone,
639    PartialEq,
640    Eq,
641    ::prost::Message,
642    ::serde::Serialize,
643    ::serde::Deserialize,
644    ::schemars::JsonSchema,
645    CosmwasmExt,
646)]
647#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgIBCSend")]
648pub struct MsgIbcSend {
649    /// the channel by which the packet will be sent
650    #[prost(string, tag = "2")]
651    pub channel: ::prost::alloc::string::String,
652    /// Timeout height relative to the current block height.
653    /// The timeout is disabled when set to 0.
654    #[prost(uint64, tag = "4")]
655    #[serde(
656        serialize_with = "crate::serde::as_str::serialize",
657        deserialize_with = "crate::serde::as_str::deserialize"
658    )]
659    pub timeout_height: u64,
660    /// Timeout timestamp (in nanoseconds) relative to the current block timestamp.
661    /// The timeout is disabled when set to 0.
662    #[prost(uint64, tag = "5")]
663    #[serde(
664        serialize_with = "crate::serde::as_str::serialize",
665        deserialize_with = "crate::serde::as_str::deserialize"
666    )]
667    pub timeout_timestamp: u64,
668    /// Data is the payload to transfer. We must not make assumption what format or
669    /// content is in here.
670    #[prost(bytes = "vec", tag = "6")]
671    pub data: ::prost::alloc::vec::Vec<u8>,
672}
673/// MsgIBCSendResponse
674#[allow(clippy::derive_partial_eq_without_eq)]
675#[derive(
676    Clone,
677    PartialEq,
678    Eq,
679    ::prost::Message,
680    ::serde::Serialize,
681    ::serde::Deserialize,
682    ::schemars::JsonSchema,
683    CosmwasmExt,
684)]
685#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgIBCSendResponse")]
686pub struct MsgIbcSendResponse {
687    /// Sequence number of the IBC packet sent
688    #[prost(uint64, tag = "1")]
689    #[serde(
690        serialize_with = "crate::serde::as_str::serialize",
691        deserialize_with = "crate::serde::as_str::deserialize"
692    )]
693    pub sequence: u64,
694}
695/// MsgIBCCloseChannel port and channel need to be owned by the contract
696#[allow(clippy::derive_partial_eq_without_eq)]
697#[derive(
698    Clone,
699    PartialEq,
700    Eq,
701    ::prost::Message,
702    ::serde::Serialize,
703    ::serde::Deserialize,
704    ::schemars::JsonSchema,
705    CosmwasmExt,
706)]
707#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgIBCCloseChannel")]
708pub struct MsgIbcCloseChannel {
709    #[prost(string, tag = "2")]
710    pub channel: ::prost::alloc::string::String,
711}
712/// Deprecated: Do not use. Since wasmd v0.40, there is no longer a need for
713/// an explicit StoreCodeProposal. To submit WASM code to the system,
714/// a simple MsgStoreCode can be invoked from the x/gov module via
715/// a v1 governance proposal.
716#[allow(clippy::derive_partial_eq_without_eq)]
717#[derive(
718    Clone,
719    PartialEq,
720    Eq,
721    ::prost::Message,
722    ::serde::Serialize,
723    ::serde::Deserialize,
724    ::schemars::JsonSchema,
725    CosmwasmExt,
726)]
727#[proto_message(type_url = "/cosmwasm.wasm.v1.StoreCodeProposal")]
728#[deprecated]
729pub struct StoreCodeProposal {
730    /// Title is a short summary
731    #[prost(string, tag = "1")]
732    pub title: ::prost::alloc::string::String,
733    /// Description is a human readable text
734    #[prost(string, tag = "2")]
735    pub description: ::prost::alloc::string::String,
736    /// RunAs is the address that is passed to the contract's environment as sender
737    #[prost(string, tag = "3")]
738    pub run_as: ::prost::alloc::string::String,
739    /// WASMByteCode can be raw or gzip compressed
740    #[prost(bytes = "vec", tag = "4")]
741    pub wasm_byte_code: ::prost::alloc::vec::Vec<u8>,
742    /// InstantiatePermission to apply on contract creation, optional
743    #[prost(message, optional, tag = "7")]
744    pub instantiate_permission: ::core::option::Option<AccessConfig>,
745    /// UnpinCode code on upload, optional
746    #[prost(bool, tag = "8")]
747    pub unpin_code: bool,
748    /// Source is the URL where the code is hosted
749    #[prost(string, tag = "9")]
750    pub source: ::prost::alloc::string::String,
751    /// Builder is the docker image used to build the code deterministically, used
752    /// for smart contract verification
753    #[prost(string, tag = "10")]
754    pub builder: ::prost::alloc::string::String,
755    /// CodeHash is the SHA256 sum of the code outputted by builder, used for smart
756    /// contract verification
757    #[prost(bytes = "vec", tag = "11")]
758    pub code_hash: ::prost::alloc::vec::Vec<u8>,
759}
760/// Deprecated: Do not use. Since wasmd v0.40, there is no longer a need for
761/// an explicit InstantiateContractProposal. To instantiate a contract,
762/// a simple MsgInstantiateContract can be invoked from the x/gov module via
763/// a v1 governance proposal.
764#[allow(clippy::derive_partial_eq_without_eq)]
765#[derive(
766    Clone,
767    PartialEq,
768    Eq,
769    ::prost::Message,
770    ::serde::Serialize,
771    ::serde::Deserialize,
772    ::schemars::JsonSchema,
773    CosmwasmExt,
774)]
775#[proto_message(type_url = "/cosmwasm.wasm.v1.InstantiateContractProposal")]
776#[deprecated]
777pub struct InstantiateContractProposal {
778    /// Title is a short summary
779    #[prost(string, tag = "1")]
780    pub title: ::prost::alloc::string::String,
781    /// Description is a human readable text
782    #[prost(string, tag = "2")]
783    pub description: ::prost::alloc::string::String,
784    /// RunAs is the address that is passed to the contract's environment as sender
785    #[prost(string, tag = "3")]
786    pub run_as: ::prost::alloc::string::String,
787    /// Admin is an optional address that can execute migrations
788    #[prost(string, tag = "4")]
789    pub admin: ::prost::alloc::string::String,
790    /// CodeID is the reference to the stored WASM code
791    #[prost(uint64, tag = "5")]
792    #[serde(alias = "codeID")]
793    #[serde(
794        serialize_with = "crate::serde::as_str::serialize",
795        deserialize_with = "crate::serde::as_str::deserialize"
796    )]
797    pub code_id: u64,
798    /// Label is optional metadata to be stored with a constract instance.
799    #[prost(string, tag = "6")]
800    pub label: ::prost::alloc::string::String,
801    /// Msg json encoded message to be passed to the contract on instantiation
802    #[prost(bytes = "vec", tag = "7")]
803    pub msg: ::prost::alloc::vec::Vec<u8>,
804    /// Funds coins that are transferred to the contract on instantiation
805    #[prost(message, repeated, tag = "8")]
806    pub funds: ::prost::alloc::vec::Vec<super::super::super::cosmos::base::v1beta1::Coin>,
807}
808/// Deprecated: Do not use. Since wasmd v0.40, there is no longer a need for
809/// an explicit InstantiateContract2Proposal. To instantiate contract 2,
810/// a simple MsgInstantiateContract2 can be invoked from the x/gov module via
811/// a v1 governance proposal.
812#[allow(clippy::derive_partial_eq_without_eq)]
813#[derive(
814    Clone,
815    PartialEq,
816    Eq,
817    ::prost::Message,
818    ::serde::Serialize,
819    ::serde::Deserialize,
820    ::schemars::JsonSchema,
821    CosmwasmExt,
822)]
823#[proto_message(type_url = "/cosmwasm.wasm.v1.InstantiateContract2Proposal")]
824#[deprecated]
825pub struct InstantiateContract2Proposal {
826    /// Title is a short summary
827    #[prost(string, tag = "1")]
828    pub title: ::prost::alloc::string::String,
829    /// Description is a human readable text
830    #[prost(string, tag = "2")]
831    pub description: ::prost::alloc::string::String,
832    /// RunAs is the address that is passed to the contract's enviroment as sender
833    #[prost(string, tag = "3")]
834    pub run_as: ::prost::alloc::string::String,
835    /// Admin is an optional address that can execute migrations
836    #[prost(string, tag = "4")]
837    pub admin: ::prost::alloc::string::String,
838    /// CodeID is the reference to the stored WASM code
839    #[prost(uint64, tag = "5")]
840    #[serde(alias = "codeID")]
841    #[serde(
842        serialize_with = "crate::serde::as_str::serialize",
843        deserialize_with = "crate::serde::as_str::deserialize"
844    )]
845    pub code_id: u64,
846    /// Label is optional metadata to be stored with a constract instance.
847    #[prost(string, tag = "6")]
848    pub label: ::prost::alloc::string::String,
849    /// Msg json encode message to be passed to the contract on instantiation
850    #[prost(bytes = "vec", tag = "7")]
851    pub msg: ::prost::alloc::vec::Vec<u8>,
852    /// Funds coins that are transferred to the contract on instantiation
853    #[prost(message, repeated, tag = "8")]
854    pub funds: ::prost::alloc::vec::Vec<super::super::super::cosmos::base::v1beta1::Coin>,
855    /// Salt is an arbitrary value provided by the sender. Size can be 1 to 64.
856    #[prost(bytes = "vec", tag = "9")]
857    pub salt: ::prost::alloc::vec::Vec<u8>,
858    /// FixMsg include the msg value into the hash for the predictable address.
859    /// Default is false
860    #[prost(bool, tag = "10")]
861    pub fix_msg: bool,
862}
863/// Deprecated: Do not use. Since wasmd v0.40, there is no longer a need for
864/// an explicit MigrateContractProposal. To migrate a contract,
865/// a simple MsgMigrateContract can be invoked from the x/gov module via
866/// a v1 governance proposal.
867#[allow(clippy::derive_partial_eq_without_eq)]
868#[derive(
869    Clone,
870    PartialEq,
871    Eq,
872    ::prost::Message,
873    ::serde::Serialize,
874    ::serde::Deserialize,
875    ::schemars::JsonSchema,
876    CosmwasmExt,
877)]
878#[proto_message(type_url = "/cosmwasm.wasm.v1.MigrateContractProposal")]
879#[deprecated]
880pub struct MigrateContractProposal {
881    /// Title is a short summary
882    #[prost(string, tag = "1")]
883    pub title: ::prost::alloc::string::String,
884    /// Description is a human readable text
885    ///
886    /// Note: skipping 3 as this was previously used for unneeded run_as
887    #[prost(string, tag = "2")]
888    pub description: ::prost::alloc::string::String,
889    /// Contract is the address of the smart contract
890    #[prost(string, tag = "4")]
891    pub contract: ::prost::alloc::string::String,
892    /// CodeID references the new WASM code
893    #[prost(uint64, tag = "5")]
894    #[serde(alias = "codeID")]
895    #[serde(
896        serialize_with = "crate::serde::as_str::serialize",
897        deserialize_with = "crate::serde::as_str::deserialize"
898    )]
899    pub code_id: u64,
900    /// Msg json encoded message to be passed to the contract on migration
901    #[prost(bytes = "vec", tag = "6")]
902    pub msg: ::prost::alloc::vec::Vec<u8>,
903}
904/// Deprecated: Do not use. Since wasmd v0.40, there is no longer a need for
905/// an explicit SudoContractProposal. To call sudo on a contract,
906/// a simple MsgSudoContract can be invoked from the x/gov module via
907/// a v1 governance proposal.
908#[allow(clippy::derive_partial_eq_without_eq)]
909#[derive(
910    Clone,
911    PartialEq,
912    Eq,
913    ::prost::Message,
914    ::serde::Serialize,
915    ::serde::Deserialize,
916    ::schemars::JsonSchema,
917    CosmwasmExt,
918)]
919#[proto_message(type_url = "/cosmwasm.wasm.v1.SudoContractProposal")]
920#[deprecated]
921pub struct SudoContractProposal {
922    /// Title is a short summary
923    #[prost(string, tag = "1")]
924    pub title: ::prost::alloc::string::String,
925    /// Description is a human readable text
926    #[prost(string, tag = "2")]
927    pub description: ::prost::alloc::string::String,
928    /// Contract is the address of the smart contract
929    #[prost(string, tag = "3")]
930    pub contract: ::prost::alloc::string::String,
931    /// Msg json encoded message to be passed to the contract as sudo
932    #[prost(bytes = "vec", tag = "4")]
933    pub msg: ::prost::alloc::vec::Vec<u8>,
934}
935/// Deprecated: Do not use. Since wasmd v0.40, there is no longer a need for
936/// an explicit ExecuteContractProposal. To call execute on a contract,
937/// a simple MsgExecuteContract can be invoked from the x/gov module via
938/// a v1 governance proposal.
939#[allow(clippy::derive_partial_eq_without_eq)]
940#[derive(
941    Clone,
942    PartialEq,
943    Eq,
944    ::prost::Message,
945    ::serde::Serialize,
946    ::serde::Deserialize,
947    ::schemars::JsonSchema,
948    CosmwasmExt,
949)]
950#[proto_message(type_url = "/cosmwasm.wasm.v1.ExecuteContractProposal")]
951#[deprecated]
952pub struct ExecuteContractProposal {
953    /// Title is a short summary
954    #[prost(string, tag = "1")]
955    pub title: ::prost::alloc::string::String,
956    /// Description is a human readable text
957    #[prost(string, tag = "2")]
958    pub description: ::prost::alloc::string::String,
959    /// RunAs is the address that is passed to the contract's environment as sender
960    #[prost(string, tag = "3")]
961    pub run_as: ::prost::alloc::string::String,
962    /// Contract is the address of the smart contract
963    #[prost(string, tag = "4")]
964    pub contract: ::prost::alloc::string::String,
965    /// Msg json encoded message to be passed to the contract as execute
966    #[prost(bytes = "vec", tag = "5")]
967    pub msg: ::prost::alloc::vec::Vec<u8>,
968    /// Funds coins that are transferred to the contract on instantiation
969    #[prost(message, repeated, tag = "6")]
970    pub funds: ::prost::alloc::vec::Vec<super::super::super::cosmos::base::v1beta1::Coin>,
971}
972/// Deprecated: Do not use. Since wasmd v0.40, there is no longer a need for
973/// an explicit UpdateAdminProposal. To set an admin for a contract,
974/// a simple MsgUpdateAdmin can be invoked from the x/gov module via
975/// a v1 governance proposal.
976#[allow(clippy::derive_partial_eq_without_eq)]
977#[derive(
978    Clone,
979    PartialEq,
980    Eq,
981    ::prost::Message,
982    ::serde::Serialize,
983    ::serde::Deserialize,
984    ::schemars::JsonSchema,
985    CosmwasmExt,
986)]
987#[proto_message(type_url = "/cosmwasm.wasm.v1.UpdateAdminProposal")]
988#[deprecated]
989pub struct UpdateAdminProposal {
990    /// Title is a short summary
991    #[prost(string, tag = "1")]
992    pub title: ::prost::alloc::string::String,
993    /// Description is a human readable text
994    #[prost(string, tag = "2")]
995    pub description: ::prost::alloc::string::String,
996    /// NewAdmin address to be set
997    #[prost(string, tag = "3")]
998    pub new_admin: ::prost::alloc::string::String,
999    /// Contract is the address of the smart contract
1000    #[prost(string, tag = "4")]
1001    pub contract: ::prost::alloc::string::String,
1002}
1003/// Deprecated: Do not use. Since wasmd v0.40, there is no longer a need for
1004/// an explicit ClearAdminProposal. To clear the admin of a contract,
1005/// a simple MsgClearAdmin can be invoked from the x/gov module via
1006/// a v1 governance proposal.
1007#[allow(clippy::derive_partial_eq_without_eq)]
1008#[derive(
1009    Clone,
1010    PartialEq,
1011    Eq,
1012    ::prost::Message,
1013    ::serde::Serialize,
1014    ::serde::Deserialize,
1015    ::schemars::JsonSchema,
1016    CosmwasmExt,
1017)]
1018#[proto_message(type_url = "/cosmwasm.wasm.v1.ClearAdminProposal")]
1019#[deprecated]
1020pub struct ClearAdminProposal {
1021    /// Title is a short summary
1022    #[prost(string, tag = "1")]
1023    pub title: ::prost::alloc::string::String,
1024    /// Description is a human readable text
1025    #[prost(string, tag = "2")]
1026    pub description: ::prost::alloc::string::String,
1027    /// Contract is the address of the smart contract
1028    #[prost(string, tag = "3")]
1029    pub contract: ::prost::alloc::string::String,
1030}
1031/// Deprecated: Do not use. Since wasmd v0.40, there is no longer a need for
1032/// an explicit PinCodesProposal. To pin a set of code ids in the wasmvm
1033/// cache, a simple MsgPinCodes can be invoked from the x/gov module via
1034/// a v1 governance proposal.
1035#[allow(clippy::derive_partial_eq_without_eq)]
1036#[derive(
1037    Clone,
1038    PartialEq,
1039    Eq,
1040    ::prost::Message,
1041    ::serde::Serialize,
1042    ::serde::Deserialize,
1043    ::schemars::JsonSchema,
1044    CosmwasmExt,
1045)]
1046#[proto_message(type_url = "/cosmwasm.wasm.v1.PinCodesProposal")]
1047#[deprecated]
1048pub struct PinCodesProposal {
1049    /// Title is a short summary
1050    #[prost(string, tag = "1")]
1051    pub title: ::prost::alloc::string::String,
1052    /// Description is a human readable text
1053    #[prost(string, tag = "2")]
1054    pub description: ::prost::alloc::string::String,
1055    /// CodeIDs references the new WASM codes
1056    #[prost(uint64, repeated, packed = "false", tag = "3")]
1057    #[serde(alias = "codeIDs")]
1058    pub code_ids: ::prost::alloc::vec::Vec<u64>,
1059}
1060/// Deprecated: Do not use. Since wasmd v0.40, there is no longer a need for
1061/// an explicit UnpinCodesProposal. To unpin a set of code ids in the wasmvm
1062/// cache, a simple MsgUnpinCodes can be invoked from the x/gov module via
1063/// a v1 governance proposal.
1064#[allow(clippy::derive_partial_eq_without_eq)]
1065#[derive(
1066    Clone,
1067    PartialEq,
1068    Eq,
1069    ::prost::Message,
1070    ::serde::Serialize,
1071    ::serde::Deserialize,
1072    ::schemars::JsonSchema,
1073    CosmwasmExt,
1074)]
1075#[proto_message(type_url = "/cosmwasm.wasm.v1.UnpinCodesProposal")]
1076#[deprecated]
1077pub struct UnpinCodesProposal {
1078    /// Title is a short summary
1079    #[prost(string, tag = "1")]
1080    pub title: ::prost::alloc::string::String,
1081    /// Description is a human readable text
1082    #[prost(string, tag = "2")]
1083    pub description: ::prost::alloc::string::String,
1084    /// CodeIDs references the WASM codes
1085    #[prost(uint64, repeated, packed = "false", tag = "3")]
1086    #[serde(alias = "codeIDs")]
1087    pub code_ids: ::prost::alloc::vec::Vec<u64>,
1088}
1089/// AccessConfigUpdate contains the code id and the access config to be
1090/// applied.
1091#[allow(clippy::derive_partial_eq_without_eq)]
1092#[derive(
1093    Clone,
1094    PartialEq,
1095    Eq,
1096    ::prost::Message,
1097    ::serde::Serialize,
1098    ::serde::Deserialize,
1099    ::schemars::JsonSchema,
1100    CosmwasmExt,
1101)]
1102#[proto_message(type_url = "/cosmwasm.wasm.v1.AccessConfigUpdate")]
1103pub struct AccessConfigUpdate {
1104    /// CodeID is the reference to the stored WASM code to be updated
1105    #[prost(uint64, tag = "1")]
1106    #[serde(alias = "codeID")]
1107    #[serde(
1108        serialize_with = "crate::serde::as_str::serialize",
1109        deserialize_with = "crate::serde::as_str::deserialize"
1110    )]
1111    pub code_id: u64,
1112    /// InstantiatePermission to apply to the set of code ids
1113    #[prost(message, optional, tag = "2")]
1114    pub instantiate_permission: ::core::option::Option<AccessConfig>,
1115}
1116/// Deprecated: Do not use. Since wasmd v0.40, there is no longer a need for
1117/// an explicit UpdateInstantiateConfigProposal. To update instantiate config
1118/// to a set of code ids, a simple MsgUpdateInstantiateConfig can be invoked from
1119/// the x/gov module via a v1 governance proposal.
1120#[allow(clippy::derive_partial_eq_without_eq)]
1121#[derive(
1122    Clone,
1123    PartialEq,
1124    Eq,
1125    ::prost::Message,
1126    ::serde::Serialize,
1127    ::serde::Deserialize,
1128    ::schemars::JsonSchema,
1129    CosmwasmExt,
1130)]
1131#[proto_message(type_url = "/cosmwasm.wasm.v1.UpdateInstantiateConfigProposal")]
1132#[deprecated]
1133pub struct UpdateInstantiateConfigProposal {
1134    /// Title is a short summary
1135    #[prost(string, tag = "1")]
1136    pub title: ::prost::alloc::string::String,
1137    /// Description is a human readable text
1138    #[prost(string, tag = "2")]
1139    pub description: ::prost::alloc::string::String,
1140    /// AccessConfigUpdate contains the list of code ids and the access config
1141    /// to be applied.
1142    #[prost(message, repeated, tag = "3")]
1143    pub access_config_updates: ::prost::alloc::vec::Vec<AccessConfigUpdate>,
1144}
1145/// Deprecated: Do not use. Since wasmd v0.40, there is no longer a need for
1146/// an explicit StoreAndInstantiateContractProposal. To store and instantiate
1147/// the contract, a simple MsgStoreAndInstantiateContract can be invoked from
1148/// the x/gov module via a v1 governance proposal.
1149#[allow(clippy::derive_partial_eq_without_eq)]
1150#[derive(
1151    Clone,
1152    PartialEq,
1153    Eq,
1154    ::prost::Message,
1155    ::serde::Serialize,
1156    ::serde::Deserialize,
1157    ::schemars::JsonSchema,
1158    CosmwasmExt,
1159)]
1160#[proto_message(type_url = "/cosmwasm.wasm.v1.StoreAndInstantiateContractProposal")]
1161#[deprecated]
1162pub struct StoreAndInstantiateContractProposal {
1163    /// Title is a short summary
1164    #[prost(string, tag = "1")]
1165    pub title: ::prost::alloc::string::String,
1166    /// Description is a human readable text
1167    #[prost(string, tag = "2")]
1168    pub description: ::prost::alloc::string::String,
1169    /// RunAs is the address that is passed to the contract's environment as sender
1170    #[prost(string, tag = "3")]
1171    pub run_as: ::prost::alloc::string::String,
1172    /// WASMByteCode can be raw or gzip compressed
1173    #[prost(bytes = "vec", tag = "4")]
1174    pub wasm_byte_code: ::prost::alloc::vec::Vec<u8>,
1175    /// InstantiatePermission to apply on contract creation, optional
1176    #[prost(message, optional, tag = "5")]
1177    pub instantiate_permission: ::core::option::Option<AccessConfig>,
1178    /// UnpinCode code on upload, optional
1179    #[prost(bool, tag = "6")]
1180    pub unpin_code: bool,
1181    /// Admin is an optional address that can execute migrations
1182    #[prost(string, tag = "7")]
1183    pub admin: ::prost::alloc::string::String,
1184    /// Label is optional metadata to be stored with a constract instance.
1185    #[prost(string, tag = "8")]
1186    pub label: ::prost::alloc::string::String,
1187    /// Msg json encoded message to be passed to the contract on instantiation
1188    #[prost(bytes = "vec", tag = "9")]
1189    pub msg: ::prost::alloc::vec::Vec<u8>,
1190    /// Funds coins that are transferred to the contract on instantiation
1191    #[prost(message, repeated, tag = "10")]
1192    pub funds: ::prost::alloc::vec::Vec<super::super::super::cosmos::base::v1beta1::Coin>,
1193    /// Source is the URL where the code is hosted
1194    #[prost(string, tag = "11")]
1195    pub source: ::prost::alloc::string::String,
1196    /// Builder is the docker image used to build the code deterministically, used
1197    /// for smart contract verification
1198    #[prost(string, tag = "12")]
1199    pub builder: ::prost::alloc::string::String,
1200    /// CodeHash is the SHA256 sum of the code outputted by builder, used for smart
1201    /// contract verification
1202    #[prost(bytes = "vec", tag = "13")]
1203    pub code_hash: ::prost::alloc::vec::Vec<u8>,
1204}
1205/// QueryContractInfoRequest is the request type for the Query/ContractInfo RPC
1206/// method
1207#[allow(clippy::derive_partial_eq_without_eq)]
1208#[derive(
1209    Clone,
1210    PartialEq,
1211    Eq,
1212    ::prost::Message,
1213    ::serde::Serialize,
1214    ::serde::Deserialize,
1215    ::schemars::JsonSchema,
1216    CosmwasmExt,
1217)]
1218#[proto_message(type_url = "/cosmwasm.wasm.v1.QueryContractInfoRequest")]
1219#[proto_query(
1220    path = "/cosmwasm.wasm.v1.Query/ContractInfo",
1221    response_type = QueryContractInfoResponse
1222)]
1223pub struct QueryContractInfoRequest {
1224    /// address is the address of the contract to query
1225    #[prost(string, tag = "1")]
1226    pub address: ::prost::alloc::string::String,
1227}
1228/// QueryContractInfoResponse is the response type for the Query/ContractInfo RPC
1229/// method
1230#[allow(clippy::derive_partial_eq_without_eq)]
1231#[derive(
1232    Clone,
1233    PartialEq,
1234    Eq,
1235    ::prost::Message,
1236    ::serde::Serialize,
1237    ::serde::Deserialize,
1238    ::schemars::JsonSchema,
1239    CosmwasmExt,
1240)]
1241#[proto_message(type_url = "/cosmwasm.wasm.v1.QueryContractInfoResponse")]
1242pub struct QueryContractInfoResponse {
1243    /// address is the address of the contract
1244    #[prost(string, tag = "1")]
1245    pub address: ::prost::alloc::string::String,
1246    #[prost(message, optional, tag = "2")]
1247    pub contract_info: ::core::option::Option<ContractInfo>,
1248}
1249/// QueryContractHistoryRequest is the request type for the Query/ContractHistory
1250/// RPC method
1251#[allow(clippy::derive_partial_eq_without_eq)]
1252#[derive(
1253    Clone,
1254    PartialEq,
1255    Eq,
1256    ::prost::Message,
1257    ::serde::Serialize,
1258    ::serde::Deserialize,
1259    ::schemars::JsonSchema,
1260    CosmwasmExt,
1261)]
1262#[proto_message(type_url = "/cosmwasm.wasm.v1.QueryContractHistoryRequest")]
1263#[proto_query(
1264    path = "/cosmwasm.wasm.v1.Query/ContractHistory",
1265    response_type = QueryContractHistoryResponse
1266)]
1267pub struct QueryContractHistoryRequest {
1268    /// address is the address of the contract to query
1269    #[prost(string, tag = "1")]
1270    pub address: ::prost::alloc::string::String,
1271    /// pagination defines an optional pagination for the request.
1272    #[prost(message, optional, tag = "2")]
1273    pub pagination:
1274        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageRequest>,
1275}
1276/// QueryContractHistoryResponse is the response type for the
1277/// Query/ContractHistory RPC method
1278#[allow(clippy::derive_partial_eq_without_eq)]
1279#[derive(
1280    Clone,
1281    PartialEq,
1282    Eq,
1283    ::prost::Message,
1284    ::serde::Serialize,
1285    ::serde::Deserialize,
1286    ::schemars::JsonSchema,
1287    CosmwasmExt,
1288)]
1289#[proto_message(type_url = "/cosmwasm.wasm.v1.QueryContractHistoryResponse")]
1290pub struct QueryContractHistoryResponse {
1291    #[prost(message, repeated, tag = "1")]
1292    pub entries: ::prost::alloc::vec::Vec<ContractCodeHistoryEntry>,
1293    /// pagination defines the pagination in the response.
1294    #[prost(message, optional, tag = "2")]
1295    pub pagination:
1296        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageResponse>,
1297}
1298/// QueryContractsByCodeRequest is the request type for the Query/ContractsByCode
1299/// RPC method
1300#[allow(clippy::derive_partial_eq_without_eq)]
1301#[derive(
1302    Clone,
1303    PartialEq,
1304    Eq,
1305    ::prost::Message,
1306    ::serde::Serialize,
1307    ::serde::Deserialize,
1308    ::schemars::JsonSchema,
1309    CosmwasmExt,
1310)]
1311#[proto_message(type_url = "/cosmwasm.wasm.v1.QueryContractsByCodeRequest")]
1312#[proto_query(
1313    path = "/cosmwasm.wasm.v1.Query/ContractsByCode",
1314    response_type = QueryContractsByCodeResponse
1315)]
1316pub struct QueryContractsByCodeRequest {
1317    /// grpc-gateway_out does not support Go style CodID
1318    #[prost(uint64, tag = "1")]
1319    #[serde(alias = "codeID")]
1320    #[serde(
1321        serialize_with = "crate::serde::as_str::serialize",
1322        deserialize_with = "crate::serde::as_str::deserialize"
1323    )]
1324    pub code_id: u64,
1325    /// pagination defines an optional pagination for the request.
1326    #[prost(message, optional, tag = "2")]
1327    pub pagination:
1328        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageRequest>,
1329}
1330/// QueryContractsByCodeResponse is the response type for the
1331/// Query/ContractsByCode RPC method
1332#[allow(clippy::derive_partial_eq_without_eq)]
1333#[derive(
1334    Clone,
1335    PartialEq,
1336    Eq,
1337    ::prost::Message,
1338    ::serde::Serialize,
1339    ::serde::Deserialize,
1340    ::schemars::JsonSchema,
1341    CosmwasmExt,
1342)]
1343#[proto_message(type_url = "/cosmwasm.wasm.v1.QueryContractsByCodeResponse")]
1344pub struct QueryContractsByCodeResponse {
1345    /// contracts are a set of contract addresses
1346    #[prost(string, repeated, tag = "1")]
1347    pub contracts: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1348    /// pagination defines the pagination in the response.
1349    #[prost(message, optional, tag = "2")]
1350    pub pagination:
1351        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageResponse>,
1352}
1353/// QueryAllContractStateRequest is the request type for the
1354/// Query/AllContractState RPC method
1355#[allow(clippy::derive_partial_eq_without_eq)]
1356#[derive(
1357    Clone,
1358    PartialEq,
1359    Eq,
1360    ::prost::Message,
1361    ::serde::Serialize,
1362    ::serde::Deserialize,
1363    ::schemars::JsonSchema,
1364    CosmwasmExt,
1365)]
1366#[proto_message(type_url = "/cosmwasm.wasm.v1.QueryAllContractStateRequest")]
1367#[proto_query(
1368    path = "/cosmwasm.wasm.v1.Query/AllContractState",
1369    response_type = QueryAllContractStateResponse
1370)]
1371pub struct QueryAllContractStateRequest {
1372    /// address is the address of the contract
1373    #[prost(string, tag = "1")]
1374    pub address: ::prost::alloc::string::String,
1375    /// pagination defines an optional pagination for the request.
1376    #[prost(message, optional, tag = "2")]
1377    pub pagination:
1378        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageRequest>,
1379}
1380/// QueryAllContractStateResponse is the response type for the
1381/// Query/AllContractState RPC method
1382#[allow(clippy::derive_partial_eq_without_eq)]
1383#[derive(
1384    Clone,
1385    PartialEq,
1386    Eq,
1387    ::prost::Message,
1388    ::serde::Serialize,
1389    ::serde::Deserialize,
1390    ::schemars::JsonSchema,
1391    CosmwasmExt,
1392)]
1393#[proto_message(type_url = "/cosmwasm.wasm.v1.QueryAllContractStateResponse")]
1394pub struct QueryAllContractStateResponse {
1395    #[prost(message, repeated, tag = "1")]
1396    pub models: ::prost::alloc::vec::Vec<Model>,
1397    /// pagination defines the pagination in the response.
1398    #[prost(message, optional, tag = "2")]
1399    pub pagination:
1400        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageResponse>,
1401}
1402/// QueryRawContractStateRequest is the request type for the
1403/// Query/RawContractState RPC method
1404#[allow(clippy::derive_partial_eq_without_eq)]
1405#[derive(
1406    Clone,
1407    PartialEq,
1408    Eq,
1409    ::prost::Message,
1410    ::serde::Serialize,
1411    ::serde::Deserialize,
1412    ::schemars::JsonSchema,
1413    CosmwasmExt,
1414)]
1415#[proto_message(type_url = "/cosmwasm.wasm.v1.QueryRawContractStateRequest")]
1416#[proto_query(
1417    path = "/cosmwasm.wasm.v1.Query/RawContractState",
1418    response_type = QueryRawContractStateResponse
1419)]
1420pub struct QueryRawContractStateRequest {
1421    /// address is the address of the contract
1422    #[prost(string, tag = "1")]
1423    pub address: ::prost::alloc::string::String,
1424    #[prost(bytes = "vec", tag = "2")]
1425    pub query_data: ::prost::alloc::vec::Vec<u8>,
1426}
1427/// QueryRawContractStateResponse is the response type for the
1428/// Query/RawContractState RPC method
1429#[allow(clippy::derive_partial_eq_without_eq)]
1430#[derive(
1431    Clone,
1432    PartialEq,
1433    Eq,
1434    ::prost::Message,
1435    ::serde::Serialize,
1436    ::serde::Deserialize,
1437    ::schemars::JsonSchema,
1438    CosmwasmExt,
1439)]
1440#[proto_message(type_url = "/cosmwasm.wasm.v1.QueryRawContractStateResponse")]
1441pub struct QueryRawContractStateResponse {
1442    /// Data contains the raw store data
1443    #[prost(bytes = "vec", tag = "1")]
1444    pub data: ::prost::alloc::vec::Vec<u8>,
1445}
1446/// QuerySmartContractStateRequest is the request type for the
1447/// Query/SmartContractState RPC method
1448#[allow(clippy::derive_partial_eq_without_eq)]
1449#[derive(
1450    Clone,
1451    PartialEq,
1452    Eq,
1453    ::prost::Message,
1454    ::serde::Serialize,
1455    ::serde::Deserialize,
1456    ::schemars::JsonSchema,
1457    CosmwasmExt,
1458)]
1459#[proto_message(type_url = "/cosmwasm.wasm.v1.QuerySmartContractStateRequest")]
1460#[proto_query(
1461    path = "/cosmwasm.wasm.v1.Query/SmartContractState",
1462    response_type = QuerySmartContractStateResponse
1463)]
1464pub struct QuerySmartContractStateRequest {
1465    /// address is the address of the contract
1466    #[prost(string, tag = "1")]
1467    pub address: ::prost::alloc::string::String,
1468    /// QueryData contains the query data passed to the contract
1469    #[prost(bytes = "vec", tag = "2")]
1470    pub query_data: ::prost::alloc::vec::Vec<u8>,
1471}
1472/// QuerySmartContractStateResponse is the response type for the
1473/// Query/SmartContractState RPC method
1474#[allow(clippy::derive_partial_eq_without_eq)]
1475#[derive(
1476    Clone,
1477    PartialEq,
1478    Eq,
1479    ::prost::Message,
1480    ::serde::Serialize,
1481    ::serde::Deserialize,
1482    ::schemars::JsonSchema,
1483    CosmwasmExt,
1484)]
1485#[proto_message(type_url = "/cosmwasm.wasm.v1.QuerySmartContractStateResponse")]
1486pub struct QuerySmartContractStateResponse {
1487    /// Data contains the json data returned from the smart contract
1488    #[prost(bytes = "vec", tag = "1")]
1489    pub data: ::prost::alloc::vec::Vec<u8>,
1490}
1491/// QueryCodeRequest is the request type for the Query/Code RPC method
1492#[allow(clippy::derive_partial_eq_without_eq)]
1493#[derive(
1494    Clone,
1495    PartialEq,
1496    Eq,
1497    ::prost::Message,
1498    ::serde::Serialize,
1499    ::serde::Deserialize,
1500    ::schemars::JsonSchema,
1501    CosmwasmExt,
1502)]
1503#[proto_message(type_url = "/cosmwasm.wasm.v1.QueryCodeRequest")]
1504#[proto_query(path = "/cosmwasm.wasm.v1.Query/Code", response_type = QueryCodeResponse)]
1505pub struct QueryCodeRequest {
1506    /// grpc-gateway_out does not support Go style CodID
1507    #[prost(uint64, tag = "1")]
1508    #[serde(alias = "codeID")]
1509    #[serde(
1510        serialize_with = "crate::serde::as_str::serialize",
1511        deserialize_with = "crate::serde::as_str::deserialize"
1512    )]
1513    pub code_id: u64,
1514}
1515/// CodeInfoResponse contains code meta data from CodeInfo
1516#[allow(clippy::derive_partial_eq_without_eq)]
1517#[derive(
1518    Clone,
1519    PartialEq,
1520    Eq,
1521    ::prost::Message,
1522    ::serde::Serialize,
1523    ::serde::Deserialize,
1524    ::schemars::JsonSchema,
1525    CosmwasmExt,
1526)]
1527#[proto_message(type_url = "/cosmwasm.wasm.v1.CodeInfoResponse")]
1528pub struct CodeInfoResponse {
1529    /// id for legacy support
1530    #[prost(uint64, tag = "1")]
1531    #[serde(alias = "codeID")]
1532    #[serde(
1533        serialize_with = "crate::serde::as_str::serialize",
1534        deserialize_with = "crate::serde::as_str::deserialize"
1535    )]
1536    pub code_id: u64,
1537    #[prost(string, tag = "2")]
1538    pub creator: ::prost::alloc::string::String,
1539    #[prost(bytes = "vec", tag = "3")]
1540    pub data_hash: ::prost::alloc::vec::Vec<u8>,
1541    #[prost(message, optional, tag = "6")]
1542    pub instantiate_permission: ::core::option::Option<AccessConfig>,
1543}
1544/// QueryCodeResponse is the response type for the Query/Code RPC method
1545#[allow(clippy::derive_partial_eq_without_eq)]
1546#[derive(
1547    Clone,
1548    PartialEq,
1549    Eq,
1550    ::prost::Message,
1551    ::serde::Serialize,
1552    ::serde::Deserialize,
1553    ::schemars::JsonSchema,
1554    CosmwasmExt,
1555)]
1556#[proto_message(type_url = "/cosmwasm.wasm.v1.QueryCodeResponse")]
1557pub struct QueryCodeResponse {
1558    #[prost(message, optional, tag = "1")]
1559    pub code_info: ::core::option::Option<CodeInfoResponse>,
1560    #[prost(bytes = "vec", tag = "2")]
1561    pub data: ::prost::alloc::vec::Vec<u8>,
1562}
1563/// QueryCodesRequest is the request type for the Query/Codes RPC method
1564#[allow(clippy::derive_partial_eq_without_eq)]
1565#[derive(
1566    Clone,
1567    PartialEq,
1568    Eq,
1569    ::prost::Message,
1570    ::serde::Serialize,
1571    ::serde::Deserialize,
1572    ::schemars::JsonSchema,
1573    CosmwasmExt,
1574)]
1575#[proto_message(type_url = "/cosmwasm.wasm.v1.QueryCodesRequest")]
1576#[proto_query(
1577    path = "/cosmwasm.wasm.v1.Query/Codes",
1578    response_type = QueryCodesResponse
1579)]
1580pub struct QueryCodesRequest {
1581    /// pagination defines an optional pagination for the request.
1582    #[prost(message, optional, tag = "1")]
1583    pub pagination:
1584        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageRequest>,
1585}
1586/// QueryCodesResponse is the response type for the Query/Codes RPC method
1587#[allow(clippy::derive_partial_eq_without_eq)]
1588#[derive(
1589    Clone,
1590    PartialEq,
1591    Eq,
1592    ::prost::Message,
1593    ::serde::Serialize,
1594    ::serde::Deserialize,
1595    ::schemars::JsonSchema,
1596    CosmwasmExt,
1597)]
1598#[proto_message(type_url = "/cosmwasm.wasm.v1.QueryCodesResponse")]
1599pub struct QueryCodesResponse {
1600    #[prost(message, repeated, tag = "1")]
1601    pub code_infos: ::prost::alloc::vec::Vec<CodeInfoResponse>,
1602    /// pagination defines the pagination in the response.
1603    #[prost(message, optional, tag = "2")]
1604    pub pagination:
1605        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageResponse>,
1606}
1607/// QueryPinnedCodesRequest is the request type for the Query/PinnedCodes
1608/// RPC method
1609#[allow(clippy::derive_partial_eq_without_eq)]
1610#[derive(
1611    Clone,
1612    PartialEq,
1613    Eq,
1614    ::prost::Message,
1615    ::serde::Serialize,
1616    ::serde::Deserialize,
1617    ::schemars::JsonSchema,
1618    CosmwasmExt,
1619)]
1620#[proto_message(type_url = "/cosmwasm.wasm.v1.QueryPinnedCodesRequest")]
1621#[proto_query(
1622    path = "/cosmwasm.wasm.v1.Query/PinnedCodes",
1623    response_type = QueryPinnedCodesResponse
1624)]
1625pub struct QueryPinnedCodesRequest {
1626    /// pagination defines an optional pagination for the request.
1627    #[prost(message, optional, tag = "2")]
1628    pub pagination:
1629        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageRequest>,
1630}
1631/// QueryPinnedCodesResponse is the response type for the
1632/// Query/PinnedCodes RPC method
1633#[allow(clippy::derive_partial_eq_without_eq)]
1634#[derive(
1635    Clone,
1636    PartialEq,
1637    Eq,
1638    ::prost::Message,
1639    ::serde::Serialize,
1640    ::serde::Deserialize,
1641    ::schemars::JsonSchema,
1642    CosmwasmExt,
1643)]
1644#[proto_message(type_url = "/cosmwasm.wasm.v1.QueryPinnedCodesResponse")]
1645pub struct QueryPinnedCodesResponse {
1646    #[prost(uint64, repeated, packed = "false", tag = "1")]
1647    #[serde(alias = "codeIDs")]
1648    pub code_ids: ::prost::alloc::vec::Vec<u64>,
1649    /// pagination defines the pagination in the response.
1650    #[prost(message, optional, tag = "2")]
1651    pub pagination:
1652        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageResponse>,
1653}
1654/// QueryParamsRequest is the request type for the Query/Params RPC method.
1655#[allow(clippy::derive_partial_eq_without_eq)]
1656#[derive(
1657    Clone,
1658    PartialEq,
1659    Eq,
1660    ::prost::Message,
1661    ::serde::Serialize,
1662    ::serde::Deserialize,
1663    ::schemars::JsonSchema,
1664    CosmwasmExt,
1665)]
1666#[proto_message(type_url = "/cosmwasm.wasm.v1.QueryParamsRequest")]
1667#[proto_query(
1668    path = "/cosmwasm.wasm.v1.Query/Params",
1669    response_type = QueryParamsResponse
1670)]
1671pub struct QueryParamsRequest {}
1672/// QueryParamsResponse is the response type for the Query/Params RPC method.
1673#[allow(clippy::derive_partial_eq_without_eq)]
1674#[derive(
1675    Clone,
1676    PartialEq,
1677    Eq,
1678    ::prost::Message,
1679    ::serde::Serialize,
1680    ::serde::Deserialize,
1681    ::schemars::JsonSchema,
1682    CosmwasmExt,
1683)]
1684#[proto_message(type_url = "/cosmwasm.wasm.v1.QueryParamsResponse")]
1685pub struct QueryParamsResponse {
1686    /// params defines the parameters of the module.
1687    #[prost(message, optional, tag = "1")]
1688    pub params: ::core::option::Option<Params>,
1689}
1690/// QueryContractsByCreatorRequest is the request type for the
1691/// Query/ContractsByCreator RPC method.
1692#[allow(clippy::derive_partial_eq_without_eq)]
1693#[derive(
1694    Clone,
1695    PartialEq,
1696    Eq,
1697    ::prost::Message,
1698    ::serde::Serialize,
1699    ::serde::Deserialize,
1700    ::schemars::JsonSchema,
1701    CosmwasmExt,
1702)]
1703#[proto_message(type_url = "/cosmwasm.wasm.v1.QueryContractsByCreatorRequest")]
1704#[proto_query(
1705    path = "/cosmwasm.wasm.v1.Query/ContractsByCreator",
1706    response_type = QueryContractsByCreatorResponse
1707)]
1708pub struct QueryContractsByCreatorRequest {
1709    /// CreatorAddress is the address of contract creator
1710    #[prost(string, tag = "1")]
1711    pub creator_address: ::prost::alloc::string::String,
1712    /// Pagination defines an optional pagination for the request.
1713    #[prost(message, optional, tag = "2")]
1714    pub pagination:
1715        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageRequest>,
1716}
1717/// QueryContractsByCreatorResponse is the response type for the
1718/// Query/ContractsByCreator RPC method.
1719#[allow(clippy::derive_partial_eq_without_eq)]
1720#[derive(
1721    Clone,
1722    PartialEq,
1723    Eq,
1724    ::prost::Message,
1725    ::serde::Serialize,
1726    ::serde::Deserialize,
1727    ::schemars::JsonSchema,
1728    CosmwasmExt,
1729)]
1730#[proto_message(type_url = "/cosmwasm.wasm.v1.QueryContractsByCreatorResponse")]
1731pub struct QueryContractsByCreatorResponse {
1732    /// ContractAddresses result set
1733    #[prost(string, repeated, tag = "1")]
1734    pub contract_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1735    /// Pagination defines the pagination in the response.
1736    #[prost(message, optional, tag = "2")]
1737    pub pagination:
1738        ::core::option::Option<super::super::super::cosmos::base::query::v1beta1::PageResponse>,
1739}
1740/// MsgStoreCode submit Wasm code to the system
1741#[allow(clippy::derive_partial_eq_without_eq)]
1742#[derive(
1743    Clone,
1744    PartialEq,
1745    Eq,
1746    ::prost::Message,
1747    ::serde::Serialize,
1748    ::serde::Deserialize,
1749    ::schemars::JsonSchema,
1750    CosmwasmExt,
1751)]
1752#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgStoreCode")]
1753pub struct MsgStoreCode {
1754    /// Sender is the actor that signed the messages
1755    #[prost(string, tag = "1")]
1756    pub sender: ::prost::alloc::string::String,
1757    /// WASMByteCode can be raw or gzip compressed
1758    #[prost(bytes = "vec", tag = "2")]
1759    pub wasm_byte_code: ::prost::alloc::vec::Vec<u8>,
1760    /// InstantiatePermission access control to apply on contract creation,
1761    /// optional
1762    #[prost(message, optional, tag = "5")]
1763    pub instantiate_permission: ::core::option::Option<AccessConfig>,
1764}
1765/// MsgStoreCodeResponse returns store result data.
1766#[allow(clippy::derive_partial_eq_without_eq)]
1767#[derive(
1768    Clone,
1769    PartialEq,
1770    Eq,
1771    ::prost::Message,
1772    ::serde::Serialize,
1773    ::serde::Deserialize,
1774    ::schemars::JsonSchema,
1775    CosmwasmExt,
1776)]
1777#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgStoreCodeResponse")]
1778pub struct MsgStoreCodeResponse {
1779    /// CodeID is the reference to the stored WASM code
1780    #[prost(uint64, tag = "1")]
1781    #[serde(alias = "codeID")]
1782    #[serde(
1783        serialize_with = "crate::serde::as_str::serialize",
1784        deserialize_with = "crate::serde::as_str::deserialize"
1785    )]
1786    pub code_id: u64,
1787    /// Checksum is the sha256 hash of the stored code
1788    #[prost(bytes = "vec", tag = "2")]
1789    pub checksum: ::prost::alloc::vec::Vec<u8>,
1790}
1791/// MsgInstantiateContract create a new smart contract instance for the given
1792/// code id.
1793#[allow(clippy::derive_partial_eq_without_eq)]
1794#[derive(
1795    Clone,
1796    PartialEq,
1797    Eq,
1798    ::prost::Message,
1799    ::serde::Serialize,
1800    ::serde::Deserialize,
1801    ::schemars::JsonSchema,
1802    CosmwasmExt,
1803)]
1804#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgInstantiateContract")]
1805pub struct MsgInstantiateContract {
1806    /// Sender is the that actor that signed the messages
1807    #[prost(string, tag = "1")]
1808    pub sender: ::prost::alloc::string::String,
1809    /// Admin is an optional address that can execute migrations
1810    #[prost(string, tag = "2")]
1811    pub admin: ::prost::alloc::string::String,
1812    /// CodeID is the reference to the stored WASM code
1813    #[prost(uint64, tag = "3")]
1814    #[serde(alias = "codeID")]
1815    #[serde(
1816        serialize_with = "crate::serde::as_str::serialize",
1817        deserialize_with = "crate::serde::as_str::deserialize"
1818    )]
1819    pub code_id: u64,
1820    /// Label is optional metadata to be stored with a contract instance.
1821    #[prost(string, tag = "4")]
1822    pub label: ::prost::alloc::string::String,
1823    /// Msg json encoded message to be passed to the contract on instantiation
1824    #[prost(bytes = "vec", tag = "5")]
1825    pub msg: ::prost::alloc::vec::Vec<u8>,
1826    /// Funds coins that are transferred to the contract on instantiation
1827    #[prost(message, repeated, tag = "6")]
1828    pub funds: ::prost::alloc::vec::Vec<super::super::super::cosmos::base::v1beta1::Coin>,
1829}
1830/// MsgInstantiateContractResponse return instantiation result data
1831#[allow(clippy::derive_partial_eq_without_eq)]
1832#[derive(
1833    Clone,
1834    PartialEq,
1835    Eq,
1836    ::prost::Message,
1837    ::serde::Serialize,
1838    ::serde::Deserialize,
1839    ::schemars::JsonSchema,
1840    CosmwasmExt,
1841)]
1842#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgInstantiateContractResponse")]
1843pub struct MsgInstantiateContractResponse {
1844    /// Address is the bech32 address of the new contract instance.
1845    #[prost(string, tag = "1")]
1846    pub address: ::prost::alloc::string::String,
1847    /// Data contains bytes to returned from the contract
1848    #[prost(bytes = "vec", tag = "2")]
1849    pub data: ::prost::alloc::vec::Vec<u8>,
1850}
1851/// MsgInstantiateContract2 create a new smart contract instance for the given
1852/// code id with a predicable address.
1853#[allow(clippy::derive_partial_eq_without_eq)]
1854#[derive(
1855    Clone,
1856    PartialEq,
1857    Eq,
1858    ::prost::Message,
1859    ::serde::Serialize,
1860    ::serde::Deserialize,
1861    ::schemars::JsonSchema,
1862    CosmwasmExt,
1863)]
1864#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgInstantiateContract2")]
1865pub struct MsgInstantiateContract2 {
1866    /// Sender is the that actor that signed the messages
1867    #[prost(string, tag = "1")]
1868    pub sender: ::prost::alloc::string::String,
1869    /// Admin is an optional address that can execute migrations
1870    #[prost(string, tag = "2")]
1871    pub admin: ::prost::alloc::string::String,
1872    /// CodeID is the reference to the stored WASM code
1873    #[prost(uint64, tag = "3")]
1874    #[serde(alias = "codeID")]
1875    #[serde(
1876        serialize_with = "crate::serde::as_str::serialize",
1877        deserialize_with = "crate::serde::as_str::deserialize"
1878    )]
1879    pub code_id: u64,
1880    /// Label is optional metadata to be stored with a contract instance.
1881    #[prost(string, tag = "4")]
1882    pub label: ::prost::alloc::string::String,
1883    /// Msg json encoded message to be passed to the contract on instantiation
1884    #[prost(bytes = "vec", tag = "5")]
1885    pub msg: ::prost::alloc::vec::Vec<u8>,
1886    /// Funds coins that are transferred to the contract on instantiation
1887    #[prost(message, repeated, tag = "6")]
1888    pub funds: ::prost::alloc::vec::Vec<super::super::super::cosmos::base::v1beta1::Coin>,
1889    /// Salt is an arbitrary value provided by the sender. Size can be 1 to 64.
1890    #[prost(bytes = "vec", tag = "7")]
1891    pub salt: ::prost::alloc::vec::Vec<u8>,
1892    /// FixMsg include the msg value into the hash for the predictable address.
1893    /// Default is false
1894    #[prost(bool, tag = "8")]
1895    pub fix_msg: bool,
1896}
1897/// MsgInstantiateContract2Response return instantiation result data
1898#[allow(clippy::derive_partial_eq_without_eq)]
1899#[derive(
1900    Clone,
1901    PartialEq,
1902    Eq,
1903    ::prost::Message,
1904    ::serde::Serialize,
1905    ::serde::Deserialize,
1906    ::schemars::JsonSchema,
1907    CosmwasmExt,
1908)]
1909#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgInstantiateContract2Response")]
1910pub struct MsgInstantiateContract2Response {
1911    /// Address is the bech32 address of the new contract instance.
1912    #[prost(string, tag = "1")]
1913    pub address: ::prost::alloc::string::String,
1914    /// Data contains bytes to returned from the contract
1915    #[prost(bytes = "vec", tag = "2")]
1916    pub data: ::prost::alloc::vec::Vec<u8>,
1917}
1918/// MsgExecuteContract submits the given message data to a smart contract
1919#[allow(clippy::derive_partial_eq_without_eq)]
1920#[derive(
1921    Clone,
1922    PartialEq,
1923    Eq,
1924    ::prost::Message,
1925    ::serde::Serialize,
1926    ::serde::Deserialize,
1927    ::schemars::JsonSchema,
1928    CosmwasmExt,
1929)]
1930#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgExecuteContract")]
1931pub struct MsgExecuteContract {
1932    /// Sender is the that actor that signed the messages
1933    #[prost(string, tag = "1")]
1934    pub sender: ::prost::alloc::string::String,
1935    /// Contract is the address of the smart contract
1936    #[prost(string, tag = "2")]
1937    pub contract: ::prost::alloc::string::String,
1938    /// Msg json encoded message to be passed to the contract
1939    #[prost(bytes = "vec", tag = "3")]
1940    #[serde(
1941        deserialize_with = "crate::serde::as_map::deserialize"
1942    )]
1943    pub msg: ::prost::alloc::vec::Vec<u8>,
1944    /// Funds coins that are transferred to the contract on execution
1945    #[prost(message, repeated, tag = "5")]
1946    pub funds: ::prost::alloc::vec::Vec<super::super::super::cosmos::base::v1beta1::Coin>,
1947}
1948/// MsgExecuteContractResponse returns execution result data.
1949#[allow(clippy::derive_partial_eq_without_eq)]
1950#[derive(
1951    Clone,
1952    PartialEq,
1953    Eq,
1954    ::prost::Message,
1955    ::serde::Serialize,
1956    ::serde::Deserialize,
1957    ::schemars::JsonSchema,
1958    CosmwasmExt,
1959)]
1960#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgExecuteContractResponse")]
1961pub struct MsgExecuteContractResponse {
1962    /// Data contains bytes to returned from the contract
1963    #[prost(bytes = "vec", tag = "1")]
1964    pub data: ::prost::alloc::vec::Vec<u8>,
1965}
1966/// MsgMigrateContract runs a code upgrade/ downgrade for a smart contract
1967#[allow(clippy::derive_partial_eq_without_eq)]
1968#[derive(
1969    Clone,
1970    PartialEq,
1971    Eq,
1972    ::prost::Message,
1973    ::serde::Serialize,
1974    ::serde::Deserialize,
1975    ::schemars::JsonSchema,
1976    CosmwasmExt,
1977)]
1978#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgMigrateContract")]
1979pub struct MsgMigrateContract {
1980    /// Sender is the that actor that signed the messages
1981    #[prost(string, tag = "1")]
1982    pub sender: ::prost::alloc::string::String,
1983    /// Contract is the address of the smart contract
1984    #[prost(string, tag = "2")]
1985    pub contract: ::prost::alloc::string::String,
1986    /// CodeID references the new WASM code
1987    #[prost(uint64, tag = "3")]
1988    #[serde(alias = "codeID")]
1989    #[serde(
1990        serialize_with = "crate::serde::as_str::serialize",
1991        deserialize_with = "crate::serde::as_str::deserialize"
1992    )]
1993    pub code_id: u64,
1994    /// Msg json encoded message to be passed to the contract on migration
1995    #[prost(bytes = "vec", tag = "4")]
1996    pub msg: ::prost::alloc::vec::Vec<u8>,
1997}
1998/// MsgMigrateContractResponse returns contract migration result data.
1999#[allow(clippy::derive_partial_eq_without_eq)]
2000#[derive(
2001    Clone,
2002    PartialEq,
2003    Eq,
2004    ::prost::Message,
2005    ::serde::Serialize,
2006    ::serde::Deserialize,
2007    ::schemars::JsonSchema,
2008    CosmwasmExt,
2009)]
2010#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgMigrateContractResponse")]
2011pub struct MsgMigrateContractResponse {
2012    /// Data contains same raw bytes returned as data from the wasm contract.
2013    /// (May be empty)
2014    #[prost(bytes = "vec", tag = "1")]
2015    pub data: ::prost::alloc::vec::Vec<u8>,
2016}
2017/// MsgUpdateAdmin sets a new admin for a smart contract
2018#[allow(clippy::derive_partial_eq_without_eq)]
2019#[derive(
2020    Clone,
2021    PartialEq,
2022    Eq,
2023    ::prost::Message,
2024    ::serde::Serialize,
2025    ::serde::Deserialize,
2026    ::schemars::JsonSchema,
2027    CosmwasmExt,
2028)]
2029#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgUpdateAdmin")]
2030pub struct MsgUpdateAdmin {
2031    /// Sender is the that actor that signed the messages
2032    #[prost(string, tag = "1")]
2033    pub sender: ::prost::alloc::string::String,
2034    /// NewAdmin address to be set
2035    #[prost(string, tag = "2")]
2036    pub new_admin: ::prost::alloc::string::String,
2037    /// Contract is the address of the smart contract
2038    #[prost(string, tag = "3")]
2039    pub contract: ::prost::alloc::string::String,
2040}
2041/// MsgUpdateAdminResponse returns empty data
2042#[allow(clippy::derive_partial_eq_without_eq)]
2043#[derive(
2044    Clone,
2045    PartialEq,
2046    Eq,
2047    ::prost::Message,
2048    ::serde::Serialize,
2049    ::serde::Deserialize,
2050    ::schemars::JsonSchema,
2051    CosmwasmExt,
2052)]
2053#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgUpdateAdminResponse")]
2054pub struct MsgUpdateAdminResponse {}
2055/// MsgClearAdmin removes any admin stored for a smart contract
2056#[allow(clippy::derive_partial_eq_without_eq)]
2057#[derive(
2058    Clone,
2059    PartialEq,
2060    Eq,
2061    ::prost::Message,
2062    ::serde::Serialize,
2063    ::serde::Deserialize,
2064    ::schemars::JsonSchema,
2065    CosmwasmExt,
2066)]
2067#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgClearAdmin")]
2068pub struct MsgClearAdmin {
2069    /// Sender is the actor that signed the messages
2070    #[prost(string, tag = "1")]
2071    pub sender: ::prost::alloc::string::String,
2072    /// Contract is the address of the smart contract
2073    #[prost(string, tag = "3")]
2074    pub contract: ::prost::alloc::string::String,
2075}
2076/// MsgClearAdminResponse returns empty data
2077#[allow(clippy::derive_partial_eq_without_eq)]
2078#[derive(
2079    Clone,
2080    PartialEq,
2081    Eq,
2082    ::prost::Message,
2083    ::serde::Serialize,
2084    ::serde::Deserialize,
2085    ::schemars::JsonSchema,
2086    CosmwasmExt,
2087)]
2088#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgClearAdminResponse")]
2089pub struct MsgClearAdminResponse {}
2090/// MsgUpdateInstantiateConfig updates instantiate config for a smart contract
2091#[allow(clippy::derive_partial_eq_without_eq)]
2092#[derive(
2093    Clone,
2094    PartialEq,
2095    Eq,
2096    ::prost::Message,
2097    ::serde::Serialize,
2098    ::serde::Deserialize,
2099    ::schemars::JsonSchema,
2100    CosmwasmExt,
2101)]
2102#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgUpdateInstantiateConfig")]
2103pub struct MsgUpdateInstantiateConfig {
2104    /// Sender is the that actor that signed the messages
2105    #[prost(string, tag = "1")]
2106    pub sender: ::prost::alloc::string::String,
2107    /// CodeID references the stored WASM code
2108    #[prost(uint64, tag = "2")]
2109    #[serde(alias = "codeID")]
2110    #[serde(
2111        serialize_with = "crate::serde::as_str::serialize",
2112        deserialize_with = "crate::serde::as_str::deserialize"
2113    )]
2114    pub code_id: u64,
2115    /// NewInstantiatePermission is the new access control
2116    #[prost(message, optional, tag = "3")]
2117    pub new_instantiate_permission: ::core::option::Option<AccessConfig>,
2118}
2119/// MsgUpdateInstantiateConfigResponse returns empty data
2120#[allow(clippy::derive_partial_eq_without_eq)]
2121#[derive(
2122    Clone,
2123    PartialEq,
2124    Eq,
2125    ::prost::Message,
2126    ::serde::Serialize,
2127    ::serde::Deserialize,
2128    ::schemars::JsonSchema,
2129    CosmwasmExt,
2130)]
2131#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgUpdateInstantiateConfigResponse")]
2132pub struct MsgUpdateInstantiateConfigResponse {}
2133/// MsgUpdateParams is the MsgUpdateParams request type.
2134///
2135/// Since: 0.40
2136#[allow(clippy::derive_partial_eq_without_eq)]
2137#[derive(
2138    Clone,
2139    PartialEq,
2140    Eq,
2141    ::prost::Message,
2142    ::serde::Serialize,
2143    ::serde::Deserialize,
2144    ::schemars::JsonSchema,
2145    CosmwasmExt,
2146)]
2147#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgUpdateParams")]
2148pub struct MsgUpdateParams {
2149    /// Authority is the address of the governance account.
2150    #[prost(string, tag = "1")]
2151    pub authority: ::prost::alloc::string::String,
2152    /// params defines the x/wasm parameters to update.
2153    ///
2154    /// NOTE: All parameters must be supplied.
2155    #[prost(message, optional, tag = "2")]
2156    pub params: ::core::option::Option<Params>,
2157}
2158/// MsgUpdateParamsResponse defines the response structure for executing a
2159/// MsgUpdateParams message.
2160///
2161/// Since: 0.40
2162#[allow(clippy::derive_partial_eq_without_eq)]
2163#[derive(
2164    Clone,
2165    PartialEq,
2166    Eq,
2167    ::prost::Message,
2168    ::serde::Serialize,
2169    ::serde::Deserialize,
2170    ::schemars::JsonSchema,
2171    CosmwasmExt,
2172)]
2173#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgUpdateParamsResponse")]
2174pub struct MsgUpdateParamsResponse {}
2175/// MsgSudoContract is the MsgSudoContract request type.
2176///
2177/// Since: 0.40
2178#[allow(clippy::derive_partial_eq_without_eq)]
2179#[derive(
2180    Clone,
2181    PartialEq,
2182    Eq,
2183    ::prost::Message,
2184    ::serde::Serialize,
2185    ::serde::Deserialize,
2186    ::schemars::JsonSchema,
2187    CosmwasmExt,
2188)]
2189#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgSudoContract")]
2190pub struct MsgSudoContract {
2191    /// Authority is the address of the governance account.
2192    #[prost(string, tag = "1")]
2193    pub authority: ::prost::alloc::string::String,
2194    /// Contract is the address of the smart contract
2195    #[prost(string, tag = "2")]
2196    pub contract: ::prost::alloc::string::String,
2197    /// Msg json encoded message to be passed to the contract as sudo
2198    #[prost(bytes = "vec", tag = "3")]
2199    pub msg: ::prost::alloc::vec::Vec<u8>,
2200}
2201/// MsgSudoContractResponse defines the response structure for executing a
2202/// MsgSudoContract message.
2203///
2204/// Since: 0.40
2205#[allow(clippy::derive_partial_eq_without_eq)]
2206#[derive(
2207    Clone,
2208    PartialEq,
2209    Eq,
2210    ::prost::Message,
2211    ::serde::Serialize,
2212    ::serde::Deserialize,
2213    ::schemars::JsonSchema,
2214    CosmwasmExt,
2215)]
2216#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgSudoContractResponse")]
2217pub struct MsgSudoContractResponse {
2218    /// Data contains bytes to returned from the contract
2219    #[prost(bytes = "vec", tag = "1")]
2220    pub data: ::prost::alloc::vec::Vec<u8>,
2221}
2222/// MsgPinCodes is the MsgPinCodes request type.
2223///
2224/// Since: 0.40
2225#[allow(clippy::derive_partial_eq_without_eq)]
2226#[derive(
2227    Clone,
2228    PartialEq,
2229    Eq,
2230    ::prost::Message,
2231    ::serde::Serialize,
2232    ::serde::Deserialize,
2233    ::schemars::JsonSchema,
2234    CosmwasmExt,
2235)]
2236#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgPinCodes")]
2237pub struct MsgPinCodes {
2238    /// Authority is the address of the governance account.
2239    #[prost(string, tag = "1")]
2240    pub authority: ::prost::alloc::string::String,
2241    /// CodeIDs references the new WASM codes
2242    #[prost(uint64, repeated, packed = "false", tag = "2")]
2243    #[serde(alias = "codeIDs")]
2244    pub code_ids: ::prost::alloc::vec::Vec<u64>,
2245}
2246/// MsgPinCodesResponse defines the response structure for executing a
2247/// MsgPinCodes message.
2248///
2249/// Since: 0.40
2250#[allow(clippy::derive_partial_eq_without_eq)]
2251#[derive(
2252    Clone,
2253    PartialEq,
2254    Eq,
2255    ::prost::Message,
2256    ::serde::Serialize,
2257    ::serde::Deserialize,
2258    ::schemars::JsonSchema,
2259    CosmwasmExt,
2260)]
2261#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgPinCodesResponse")]
2262pub struct MsgPinCodesResponse {}
2263/// MsgUnpinCodes is the MsgUnpinCodes request type.
2264///
2265/// Since: 0.40
2266#[allow(clippy::derive_partial_eq_without_eq)]
2267#[derive(
2268    Clone,
2269    PartialEq,
2270    Eq,
2271    ::prost::Message,
2272    ::serde::Serialize,
2273    ::serde::Deserialize,
2274    ::schemars::JsonSchema,
2275    CosmwasmExt,
2276)]
2277#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgUnpinCodes")]
2278pub struct MsgUnpinCodes {
2279    /// Authority is the address of the governance account.
2280    #[prost(string, tag = "1")]
2281    pub authority: ::prost::alloc::string::String,
2282    /// CodeIDs references the WASM codes
2283    #[prost(uint64, repeated, packed = "false", tag = "2")]
2284    #[serde(alias = "codeIDs")]
2285    pub code_ids: ::prost::alloc::vec::Vec<u64>,
2286}
2287/// MsgUnpinCodesResponse defines the response structure for executing a
2288/// MsgUnpinCodes message.
2289///
2290/// Since: 0.40
2291#[allow(clippy::derive_partial_eq_without_eq)]
2292#[derive(
2293    Clone,
2294    PartialEq,
2295    Eq,
2296    ::prost::Message,
2297    ::serde::Serialize,
2298    ::serde::Deserialize,
2299    ::schemars::JsonSchema,
2300    CosmwasmExt,
2301)]
2302#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgUnpinCodesResponse")]
2303pub struct MsgUnpinCodesResponse {}
2304/// MsgStoreAndInstantiateContract is the MsgStoreAndInstantiateContract
2305/// request type.
2306///
2307/// Since: 0.40
2308#[allow(clippy::derive_partial_eq_without_eq)]
2309#[derive(
2310    Clone,
2311    PartialEq,
2312    Eq,
2313    ::prost::Message,
2314    ::serde::Serialize,
2315    ::serde::Deserialize,
2316    ::schemars::JsonSchema,
2317    CosmwasmExt,
2318)]
2319#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgStoreAndInstantiateContract")]
2320pub struct MsgStoreAndInstantiateContract {
2321    /// Authority is the address of the governance account.
2322    #[prost(string, tag = "1")]
2323    pub authority: ::prost::alloc::string::String,
2324    /// WASMByteCode can be raw or gzip compressed
2325    #[prost(bytes = "vec", tag = "3")]
2326    pub wasm_byte_code: ::prost::alloc::vec::Vec<u8>,
2327    /// InstantiatePermission to apply on contract creation, optional
2328    #[prost(message, optional, tag = "4")]
2329    pub instantiate_permission: ::core::option::Option<AccessConfig>,
2330    /// UnpinCode code on upload, optional. As default the uploaded contract is
2331    /// pinned to cache.
2332    #[prost(bool, tag = "5")]
2333    pub unpin_code: bool,
2334    /// Admin is an optional address that can execute migrations
2335    #[prost(string, tag = "6")]
2336    pub admin: ::prost::alloc::string::String,
2337    /// Label is optional metadata to be stored with a constract instance.
2338    #[prost(string, tag = "7")]
2339    pub label: ::prost::alloc::string::String,
2340    /// Msg json encoded message to be passed to the contract on instantiation
2341    #[prost(bytes = "vec", tag = "8")]
2342    pub msg: ::prost::alloc::vec::Vec<u8>,
2343    /// Funds coins that are transferred from the authority account to the contract
2344    /// on instantiation
2345    #[prost(message, repeated, tag = "9")]
2346    pub funds: ::prost::alloc::vec::Vec<super::super::super::cosmos::base::v1beta1::Coin>,
2347    /// Source is the URL where the code is hosted
2348    #[prost(string, tag = "10")]
2349    pub source: ::prost::alloc::string::String,
2350    /// Builder is the docker image used to build the code deterministically, used
2351    /// for smart contract verification
2352    #[prost(string, tag = "11")]
2353    pub builder: ::prost::alloc::string::String,
2354    /// CodeHash is the SHA256 sum of the code outputted by builder, used for smart
2355    /// contract verification
2356    #[prost(bytes = "vec", tag = "12")]
2357    pub code_hash: ::prost::alloc::vec::Vec<u8>,
2358}
2359/// MsgStoreAndInstantiateContractResponse defines the response structure
2360/// for executing a MsgStoreAndInstantiateContract message.
2361///
2362/// Since: 0.40
2363#[allow(clippy::derive_partial_eq_without_eq)]
2364#[derive(
2365    Clone,
2366    PartialEq,
2367    Eq,
2368    ::prost::Message,
2369    ::serde::Serialize,
2370    ::serde::Deserialize,
2371    ::schemars::JsonSchema,
2372    CosmwasmExt,
2373)]
2374#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgStoreAndInstantiateContractResponse")]
2375pub struct MsgStoreAndInstantiateContractResponse {
2376    /// Address is the bech32 address of the new contract instance.
2377    #[prost(string, tag = "1")]
2378    pub address: ::prost::alloc::string::String,
2379    /// Data contains bytes to returned from the contract
2380    #[prost(bytes = "vec", tag = "2")]
2381    pub data: ::prost::alloc::vec::Vec<u8>,
2382}
2383/// MsgAddCodeUploadParamsAddresses is the
2384/// MsgAddCodeUploadParamsAddresses request type.
2385#[allow(clippy::derive_partial_eq_without_eq)]
2386#[derive(
2387    Clone,
2388    PartialEq,
2389    Eq,
2390    ::prost::Message,
2391    ::serde::Serialize,
2392    ::serde::Deserialize,
2393    ::schemars::JsonSchema,
2394    CosmwasmExt,
2395)]
2396#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgAddCodeUploadParamsAddresses")]
2397pub struct MsgAddCodeUploadParamsAddresses {
2398    /// Authority is the address of the governance account.
2399    #[prost(string, tag = "1")]
2400    pub authority: ::prost::alloc::string::String,
2401    #[prost(string, repeated, tag = "2")]
2402    pub addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2403}
2404/// MsgAddCodeUploadParamsAddressesResponse defines the response
2405/// structure for executing a MsgAddCodeUploadParamsAddresses message.
2406#[allow(clippy::derive_partial_eq_without_eq)]
2407#[derive(
2408    Clone,
2409    PartialEq,
2410    Eq,
2411    ::prost::Message,
2412    ::serde::Serialize,
2413    ::serde::Deserialize,
2414    ::schemars::JsonSchema,
2415    CosmwasmExt,
2416)]
2417#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgAddCodeUploadParamsAddressesResponse")]
2418pub struct MsgAddCodeUploadParamsAddressesResponse {}
2419/// MsgRemoveCodeUploadParamsAddresses is the
2420/// MsgRemoveCodeUploadParamsAddresses request type.
2421#[allow(clippy::derive_partial_eq_without_eq)]
2422#[derive(
2423    Clone,
2424    PartialEq,
2425    Eq,
2426    ::prost::Message,
2427    ::serde::Serialize,
2428    ::serde::Deserialize,
2429    ::schemars::JsonSchema,
2430    CosmwasmExt,
2431)]
2432#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgRemoveCodeUploadParamsAddresses")]
2433pub struct MsgRemoveCodeUploadParamsAddresses {
2434    /// Authority is the address of the governance account.
2435    #[prost(string, tag = "1")]
2436    pub authority: ::prost::alloc::string::String,
2437    #[prost(string, repeated, tag = "2")]
2438    pub addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2439}
2440/// MsgRemoveCodeUploadParamsAddressesResponse defines the response
2441/// structure for executing a MsgRemoveCodeUploadParamsAddresses message.
2442#[allow(clippy::derive_partial_eq_without_eq)]
2443#[derive(
2444    Clone,
2445    PartialEq,
2446    Eq,
2447    ::prost::Message,
2448    ::serde::Serialize,
2449    ::serde::Deserialize,
2450    ::schemars::JsonSchema,
2451    CosmwasmExt,
2452)]
2453#[proto_message(type_url = "/cosmwasm.wasm.v1.MsgRemoveCodeUploadParamsAddressesResponse")]
2454pub struct MsgRemoveCodeUploadParamsAddressesResponse {}
2455pub struct WasmQuerier<'a, Q: cosmwasm_std::CustomQuery> {
2456    querier: &'a cosmwasm_std::QuerierWrapper<'a, Q>,
2457}
2458impl<'a, Q: cosmwasm_std::CustomQuery> WasmQuerier<'a, Q> {
2459    pub fn new(querier: &'a cosmwasm_std::QuerierWrapper<'a, Q>) -> Self {
2460        Self { querier }
2461    }
2462    pub fn contract_info(
2463        &self,
2464        address: ::prost::alloc::string::String,
2465    ) -> Result<QueryContractInfoResponse, cosmwasm_std::StdError> {
2466        QueryContractInfoRequest { address }.query(self.querier)
2467    }
2468    pub fn contract_history(
2469        &self,
2470        address: ::prost::alloc::string::String,
2471        pagination: ::core::option::Option<
2472            super::super::super::cosmos::base::query::v1beta1::PageRequest,
2473        >,
2474    ) -> Result<QueryContractHistoryResponse, cosmwasm_std::StdError> {
2475        QueryContractHistoryRequest {
2476            address,
2477            pagination,
2478        }
2479        .query(self.querier)
2480    }
2481    pub fn contracts_by_code(
2482        &self,
2483        code_id: u64,
2484        pagination: ::core::option::Option<
2485            super::super::super::cosmos::base::query::v1beta1::PageRequest,
2486        >,
2487    ) -> Result<QueryContractsByCodeResponse, cosmwasm_std::StdError> {
2488        QueryContractsByCodeRequest {
2489            code_id,
2490            pagination,
2491        }
2492        .query(self.querier)
2493    }
2494    pub fn all_contract_state(
2495        &self,
2496        address: ::prost::alloc::string::String,
2497        pagination: ::core::option::Option<
2498            super::super::super::cosmos::base::query::v1beta1::PageRequest,
2499        >,
2500    ) -> Result<QueryAllContractStateResponse, cosmwasm_std::StdError> {
2501        QueryAllContractStateRequest {
2502            address,
2503            pagination,
2504        }
2505        .query(self.querier)
2506    }
2507    pub fn raw_contract_state(
2508        &self,
2509        address: ::prost::alloc::string::String,
2510        query_data: ::prost::alloc::vec::Vec<u8>,
2511    ) -> Result<QueryRawContractStateResponse, cosmwasm_std::StdError> {
2512        QueryRawContractStateRequest {
2513            address,
2514            query_data,
2515        }
2516        .query(self.querier)
2517    }
2518    pub fn smart_contract_state(
2519        &self,
2520        address: ::prost::alloc::string::String,
2521        query_data: ::prost::alloc::vec::Vec<u8>,
2522    ) -> Result<QuerySmartContractStateResponse, cosmwasm_std::StdError> {
2523        QuerySmartContractStateRequest {
2524            address,
2525            query_data,
2526        }
2527        .query(self.querier)
2528    }
2529    pub fn code(&self, code_id: u64) -> Result<QueryCodeResponse, cosmwasm_std::StdError> {
2530        QueryCodeRequest { code_id }.query(self.querier)
2531    }
2532    pub fn codes(
2533        &self,
2534        pagination: ::core::option::Option<
2535            super::super::super::cosmos::base::query::v1beta1::PageRequest,
2536        >,
2537    ) -> Result<QueryCodesResponse, cosmwasm_std::StdError> {
2538        QueryCodesRequest { pagination }.query(self.querier)
2539    }
2540    pub fn pinned_codes(
2541        &self,
2542        pagination: ::core::option::Option<
2543            super::super::super::cosmos::base::query::v1beta1::PageRequest,
2544        >,
2545    ) -> Result<QueryPinnedCodesResponse, cosmwasm_std::StdError> {
2546        QueryPinnedCodesRequest { pagination }.query(self.querier)
2547    }
2548    pub fn params(&self) -> Result<QueryParamsResponse, cosmwasm_std::StdError> {
2549        QueryParamsRequest {}.query(self.querier)
2550    }
2551    pub fn contracts_by_creator(
2552        &self,
2553        creator_address: ::prost::alloc::string::String,
2554        pagination: ::core::option::Option<
2555            super::super::super::cosmos::base::query::v1beta1::PageRequest,
2556        >,
2557    ) -> Result<QueryContractsByCreatorResponse, cosmwasm_std::StdError> {
2558        QueryContractsByCreatorRequest {
2559            creator_address,
2560            pagination,
2561        }
2562        .query(self.querier)
2563    }
2564}