nibiru_std/proto/buf/
nibiru.tokenfactory.v1.rs

1// @generated
2#[allow(clippy::derive_partial_eq_without_eq)]
3#[derive(Clone, PartialEq, ::prost::Message)]
4pub struct EventCreateDenom {
5    #[prost(string, tag="1")]
6    pub denom: ::prost::alloc::string::String,
7    #[prost(string, tag="2")]
8    pub creator: ::prost::alloc::string::String,
9}
10#[allow(clippy::derive_partial_eq_without_eq)]
11#[derive(Clone, PartialEq, ::prost::Message)]
12pub struct EventChangeAdmin {
13    #[prost(string, tag="1")]
14    pub denom: ::prost::alloc::string::String,
15    #[prost(string, tag="2")]
16    pub new_admin: ::prost::alloc::string::String,
17    #[prost(string, tag="3")]
18    pub old_admin: ::prost::alloc::string::String,
19}
20#[allow(clippy::derive_partial_eq_without_eq)]
21#[derive(Clone, PartialEq, ::prost::Message)]
22pub struct EventMint {
23    #[prost(message, optional, tag="1")]
24    pub coin: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
25    #[prost(string, tag="2")]
26    pub to_addr: ::prost::alloc::string::String,
27    #[prost(string, tag="3")]
28    pub caller: ::prost::alloc::string::String,
29}
30#[allow(clippy::derive_partial_eq_without_eq)]
31#[derive(Clone, PartialEq, ::prost::Message)]
32pub struct EventBurn {
33    #[prost(message, optional, tag="1")]
34    pub coin: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
35    #[prost(string, tag="2")]
36    pub from_addr: ::prost::alloc::string::String,
37    #[prost(string, tag="3")]
38    pub caller: ::prost::alloc::string::String,
39}
40#[allow(clippy::derive_partial_eq_without_eq)]
41#[derive(Clone, PartialEq, ::prost::Message)]
42pub struct EventSetDenomMetadata {
43    #[prost(string, tag="1")]
44    pub denom: ::prost::alloc::string::String,
45    /// Metadata: Official x/bank metadata for the denom. All token factory denoms
46    /// are standard, native assets. The "metadata.base" is the denom.
47    #[prost(message, optional, tag="2")]
48    pub metadata: ::core::option::Option<crate::proto::cosmos::bank::v1beta1::Metadata>,
49    #[prost(string, tag="3")]
50    pub caller: ::prost::alloc::string::String,
51}
52/// DenomAuthorityMetadata specifies metadata foraddresses that have specific
53/// capabilities over a token factory denom. Right now there is only one Admin
54/// permission, but is planned to be extended to the future.
55#[allow(clippy::derive_partial_eq_without_eq)]
56#[derive(Clone, PartialEq, ::prost::Message)]
57pub struct DenomAuthorityMetadata {
58    /// Admin: Bech32 address of the admin for the tokefactory denom. Can be empty
59    /// for no admin.
60    #[prost(string, tag="1")]
61    pub admin: ::prost::alloc::string::String,
62}
63/// ModuleParams defines the parameters for the tokenfactory module.
64///
65/// ### On Denom Creation Costs
66///
67/// We'd like for fees to be paid by the user/signer of a ransaction, but in many
68/// casess, token creation is abstracted away behind a smart contract. Setting a
69/// nonzero `denom_creation_fee` would force each contract to handle collecting
70/// and paying a fees for denom (factory/{contract-addr}/{subdenom}) creation on
71/// behalf of the end user.
72///
73/// For IBC token transfers, it's unclear who should pay the fee—the contract,
74/// the relayer, or the original sender?
75/// > "Charging fees will mess up composability, the same way Terra transfer tax
76/// > caused all kinds of headaches for contract devs." - @ethanfrey
77///
78/// ### Recommended Solution
79///
80/// Have the end user (signer) pay fees directly in the form of higher gas costs.
81/// This way, contracts won't need to handle collecting or paying fees. And for
82/// IBC, the gas costs are already paid by the original sender and can be
83/// estimated by the relayer. It's easier to tune gas costs to make spam
84/// prohibitively expensive since there are per-transaction and per-block gas
85/// limits.
86///
87/// See <https://github.com/CosmWasm/token-factory/issues/11> for the initial
88/// discussion of the issue with @ethanfrey and @valardragon.
89#[allow(clippy::derive_partial_eq_without_eq)]
90#[derive(Clone, PartialEq, ::prost::Message)]
91pub struct ModuleParams {
92    /// Adds gas consumption to the execution of `MsgCreateDenom` as a method of
93    /// spam prevention. Defaults to 10 NIBI.
94    #[prost(uint64, tag="1")]
95    pub denom_creation_gas_consume: u64,
96}
97/// TFDenom is a token factory (TF) denom. The canonical representation is
98/// "tf/{creator}/{subdenom}", its unique denomination in the x/bank module.
99#[allow(clippy::derive_partial_eq_without_eq)]
100#[derive(Clone, PartialEq, ::prost::Message)]
101pub struct TfDenom {
102    /// Creator: Bech32 address of the creator of the denom.
103    #[prost(string, tag="1")]
104    pub creator: ::prost::alloc::string::String,
105    /// Subdenom: Unique suffix of a token factory denom. A subdenom is specific
106    /// to a given creator. It is the name given during a token factory "Mint".
107    #[prost(string, tag="2")]
108    pub subdenom: ::prost::alloc::string::String,
109}
110// ----------------------------------------------
111// Genesis
112// ----------------------------------------------
113
114/// GenesisState for the Token Factory module.
115#[allow(clippy::derive_partial_eq_without_eq)]
116#[derive(Clone, PartialEq, ::prost::Message)]
117pub struct GenesisState {
118    #[prost(message, optional, tag="1")]
119    pub params: ::core::option::Option<ModuleParams>,
120    #[prost(message, repeated, tag="2")]
121    pub factory_denoms: ::prost::alloc::vec::Vec<GenesisDenom>,
122}
123/// GenesisDenom defines a tokenfactory denoms in the genesis state.
124#[allow(clippy::derive_partial_eq_without_eq)]
125#[derive(Clone, PartialEq, ::prost::Message)]
126pub struct GenesisDenom {
127    #[prost(string, tag="1")]
128    pub denom: ::prost::alloc::string::String,
129    #[prost(message, optional, tag="2")]
130    pub authority_metadata: ::core::option::Option<DenomAuthorityMetadata>,
131}
132/// QueryParamsRequest is the request type for the Query/Params RPC method.
133#[allow(clippy::derive_partial_eq_without_eq)]
134#[derive(Clone, PartialEq, ::prost::Message)]
135pub struct QueryParamsRequest {
136}
137/// QueryParamsResponse is the response type for the Query/Params RPC method.
138#[allow(clippy::derive_partial_eq_without_eq)]
139#[derive(Clone, PartialEq, ::prost::Message)]
140pub struct QueryParamsResponse {
141    /// Module parameters stored in state
142    #[prost(message, optional, tag="1")]
143    pub params: ::core::option::Option<ModuleParams>,
144}
145/// QueryDenomsRequest: gRPC query for all denoms registered for a creator
146#[allow(clippy::derive_partial_eq_without_eq)]
147#[derive(Clone, PartialEq, ::prost::Message)]
148pub struct QueryDenomsRequest {
149    #[prost(string, tag="1")]
150    pub creator: ::prost::alloc::string::String,
151}
152/// QueryDenomsResponse: All registered denoms for a creator
153#[allow(clippy::derive_partial_eq_without_eq)]
154#[derive(Clone, PartialEq, ::prost::Message)]
155pub struct QueryDenomsResponse {
156    #[prost(string, repeated, tag="1")]
157    pub denoms: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
158}
159/// QueryDenomInfoRequest: gRPC query for the denom admin and x/bank metadata
160#[allow(clippy::derive_partial_eq_without_eq)]
161#[derive(Clone, PartialEq, ::prost::Message)]
162pub struct QueryDenomInfoRequest {
163    #[prost(string, tag="1")]
164    pub denom: ::prost::alloc::string::String,
165}
166/// QueryDenomInfoResponse: All registered denoms for a creator
167#[allow(clippy::derive_partial_eq_without_eq)]
168#[derive(Clone, PartialEq, ::prost::Message)]
169pub struct QueryDenomInfoResponse {
170    /// Admin of the token factory denom
171    #[prost(string, tag="1")]
172    pub admin: ::prost::alloc::string::String,
173    /// Metadata: Official x/bank metadata for the denom. All token factory denoms
174    /// are standard, native assets.
175    #[prost(message, optional, tag="2")]
176    pub metadata: ::core::option::Option<crate::proto::cosmos::bank::v1beta1::Metadata>,
177}
178/// MsgCreateDenom: sdk.Msg that registers an a token factory denom.
179/// A denom has the form "tf/\[creatorAddr]/[subdenom\]".
180///   - Denoms become unique x/bank tokens, so the creator-subdenom pair that
181///     defines a denom cannot be reused.
182///   - The resulting denom's admin is originally set to be the creator, but the
183///     admin can be changed later.
184#[allow(clippy::derive_partial_eq_without_eq)]
185#[derive(Clone, PartialEq, ::prost::Message)]
186pub struct MsgCreateDenom {
187    #[prost(string, tag="1")]
188    pub sender: ::prost::alloc::string::String,
189    /// subdenom can be up to 44 "alphanumeric" characters long.
190    #[prost(string, tag="2")]
191    pub subdenom: ::prost::alloc::string::String,
192}
193/// MsgCreateDenomResponse is the return value of MsgCreateDenom
194#[allow(clippy::derive_partial_eq_without_eq)]
195#[derive(Clone, PartialEq, ::prost::Message)]
196pub struct MsgCreateDenomResponse {
197    /// NewTokenDenom: identifier for the newly created token factory denom.
198    #[prost(string, tag="1")]
199    pub new_token_denom: ::prost::alloc::string::String,
200}
201/// MsgChangeAdmin is the sdk.Msg type for allowing an admin account to change
202/// admin of a denom to a new account
203#[allow(clippy::derive_partial_eq_without_eq)]
204#[derive(Clone, PartialEq, ::prost::Message)]
205pub struct MsgChangeAdmin {
206    #[prost(string, tag="1")]
207    pub sender: ::prost::alloc::string::String,
208    #[prost(string, tag="2")]
209    pub denom: ::prost::alloc::string::String,
210    #[prost(string, tag="3")]
211    pub new_admin: ::prost::alloc::string::String,
212}
213/// MsgChangeAdminResponse is the gRPC response for the MsgChangeAdmin TxMsg.
214#[allow(clippy::derive_partial_eq_without_eq)]
215#[derive(Clone, PartialEq, ::prost::Message)]
216pub struct MsgChangeAdminResponse {
217}
218/// MsgUpdateModuleParams: sdk.Msg for updating the x/tokenfactory module params
219#[allow(clippy::derive_partial_eq_without_eq)]
220#[derive(Clone, PartialEq, ::prost::Message)]
221pub struct MsgUpdateModuleParams {
222    /// Authority: Address of the governance module account.
223    #[prost(string, tag="1")]
224    pub authority: ::prost::alloc::string::String,
225    #[prost(message, optional, tag="2")]
226    pub params: ::core::option::Option<ModuleParams>,
227}
228/// MsgUpdateModuleParamsResponse is the gRPC response for the
229/// MsgUpdateModuleParams TxMsg.
230#[allow(clippy::derive_partial_eq_without_eq)]
231#[derive(Clone, PartialEq, ::prost::Message)]
232pub struct MsgUpdateModuleParamsResponse {
233}
234/// MsgMint: sdk.Msg (TxMsg) where an denom admin mints more of the token.
235#[allow(clippy::derive_partial_eq_without_eq)]
236#[derive(Clone, PartialEq, ::prost::Message)]
237pub struct MsgMint {
238    #[prost(string, tag="1")]
239    pub sender: ::prost::alloc::string::String,
240    /// coin: The denom identifier and amount to mint.
241    #[prost(message, optional, tag="2")]
242    pub coin: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
243    /// mint_to_addr: An address to which tokens will be minted. If blank,
244    /// tokens are minted to the "sender".
245    #[prost(string, tag="3")]
246    pub mint_to: ::prost::alloc::string::String,
247}
248#[allow(clippy::derive_partial_eq_without_eq)]
249#[derive(Clone, PartialEq, ::prost::Message)]
250pub struct MsgMintResponse {
251    #[prost(string, tag="1")]
252    pub mint_to: ::prost::alloc::string::String,
253}
254/// MsgBurn: sdk.Msg (TxMsg) where a denom admin burns some of the token.
255/// The reason that the sender isn't automatically the "burn_from" address
256/// is to support smart contracts (primary use case). In this situation, the
257/// contract is the message signer and sender, while "burn_from" is based on the
258/// contract logic.
259#[allow(clippy::derive_partial_eq_without_eq)]
260#[derive(Clone, PartialEq, ::prost::Message)]
261pub struct MsgBurn {
262    #[prost(string, tag="1")]
263    pub sender: ::prost::alloc::string::String,
264    /// coin: The denom identifier and amount to burn.
265    #[prost(message, optional, tag="2")]
266    pub coin: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
267    /// burn_from: The address from which tokens will be burned.
268    #[prost(string, tag="3")]
269    pub burn_from: ::prost::alloc::string::String,
270}
271#[allow(clippy::derive_partial_eq_without_eq)]
272#[derive(Clone, PartialEq, ::prost::Message)]
273pub struct MsgBurnResponse {
274}
275/// MsgSetDenomMetadata: sdk.Msg (TxMsg) enabling the denom admin to change its
276/// bank metadata.
277#[allow(clippy::derive_partial_eq_without_eq)]
278#[derive(Clone, PartialEq, ::prost::Message)]
279pub struct MsgSetDenomMetadata {
280    #[prost(string, tag="1")]
281    pub sender: ::prost::alloc::string::String,
282    /// Metadata: Official x/bank metadata for the denom. All token factory denoms
283    /// are standard, native assets. The "metadata.base" is the denom.
284    #[prost(message, optional, tag="2")]
285    pub metadata: ::core::option::Option<crate::proto::cosmos::bank::v1beta1::Metadata>,
286}
287#[allow(clippy::derive_partial_eq_without_eq)]
288#[derive(Clone, PartialEq, ::prost::Message)]
289pub struct MsgSetDenomMetadataResponse {
290}
291/// MsgSudoSetDenomMetadata: sdk.Msg (TxMsg) enabling Nibiru's "sudoers" to change
292/// bank metadata.
293/// \[SUDO\] Only callable by sudoers.
294///
295/// Use Cases:
296///    - To define metadata for ICS20 assets brought
297///      over to the chain via IBC, as they don't have metadata by default.
298///    - To set metadata for Bank Coins created via the Token Factory
299///      module in case the admin forgets to do so. This is important because of
300///      the relationship Token Factory assets can have with ERC20s with the
301///      [FunToken Mechanism].
302///
303/// [FunToken Mechanism]: <https://nibiru.fi/docs/evm/funtoken.html>
304#[allow(clippy::derive_partial_eq_without_eq)]
305#[derive(Clone, PartialEq, ::prost::Message)]
306pub struct MsgSudoSetDenomMetadata {
307    #[prost(string, tag="1")]
308    pub sender: ::prost::alloc::string::String,
309    /// Metadata: Official x/bank metadata for the denom. The "metadata.base" is
310    /// the denom.
311    #[prost(message, optional, tag="2")]
312    pub metadata: ::core::option::Option<crate::proto::cosmos::bank::v1beta1::Metadata>,
313}
314#[allow(clippy::derive_partial_eq_without_eq)]
315#[derive(Clone, PartialEq, ::prost::Message)]
316pub struct MsgSudoSetDenomMetadataResponse {
317}
318/// Burn a native token such as unibi
319#[allow(clippy::derive_partial_eq_without_eq)]
320#[derive(Clone, PartialEq, ::prost::Message)]
321pub struct MsgBurnNative {
322    #[prost(string, tag="1")]
323    pub sender: ::prost::alloc::string::String,
324    #[prost(message, optional, tag="2")]
325    pub coin: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
326}
327#[allow(clippy::derive_partial_eq_without_eq)]
328#[derive(Clone, PartialEq, ::prost::Message)]
329pub struct MsgBurnNativeResponse {
330}
331// @@protoc_insertion_point(module)