nibiru-std 0.7.0

Nibiru standard library for CosmWasm smart contracts
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
// @generated
/// Configuration parameters for the pool.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PoolParams {
    #[prost(string, tag="1")]
    pub swap_fee: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub exit_fee: ::prost::alloc::string::String,
    /// Amplification Parameter (A): Larger value of A make the curve better
    /// resemble a straight line in the center (when pool is near balance).  Highly
    /// volatile assets should use a lower value, while assets that are closer
    /// together may be best with a higher value. This is only used if the
    /// pool_type is set to 1 (stableswap)
    #[prost(string, tag="3")]
    pub a: ::prost::alloc::string::String,
    #[prost(enumeration="PoolType", tag="4")]
    pub pool_type: i32,
}
/// Which assets the pool contains.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PoolAsset {
    /// Coins we are talking about,
    /// the denomination must be unique amongst all PoolAssets for this pool.
    #[prost(message, optional, tag="1")]
    pub token: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
    /// Weight that is not normalized. This weight must be less than 2^50
    #[prost(string, tag="2")]
    pub weight: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Pool {
    /// The pool id.
    #[prost(uint64, tag="1")]
    pub id: u64,
    /// The pool account address.
    #[prost(string, tag="2")]
    pub address: ::prost::alloc::string::String,
    /// Fees and other pool-specific parameters.
    #[prost(message, optional, tag="3")]
    pub pool_params: ::core::option::Option<PoolParams>,
    /// These are assumed to be sorted by denomiation.
    /// They contain the pool asset and the information about the weight
    #[prost(message, repeated, tag="4")]
    pub pool_assets: ::prost::alloc::vec::Vec<PoolAsset>,
    /// sum of all non-normalized pool weights
    #[prost(string, tag="5")]
    pub total_weight: ::prost::alloc::string::String,
    /// sum of all LP tokens sent out
    #[prost(message, optional, tag="6")]
    pub total_shares: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
}
/// - `balancer`: Balancer are pools defined by the equation xy=k, extended by
/// the weighs introduced by Balancer.
/// - `stableswap`: Stableswap pools are defined by a combination of
/// constant-product and constant-sum pool
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum PoolType {
    Balancer = 0,
    Stableswap = 1,
}
impl PoolType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            PoolType::Balancer => "BALANCER",
            PoolType::Stableswap => "STABLESWAP",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "BALANCER" => Some(Self::Balancer),
            "STABLESWAP" => Some(Self::Stableswap),
            _ => None,
        }
    }
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EventPoolCreated {
    /// the address of the user who created the pool
    #[prost(string, tag="1")]
    pub creator: ::prost::alloc::string::String,
    /// the create pool fee
    #[prost(message, repeated, tag="2")]
    pub fees: ::prost::alloc::vec::Vec<crate::proto::cosmos::base::v1beta1::Coin>,
    /// the final state of the pool
    #[prost(message, optional, tag="4")]
    pub final_pool: ::core::option::Option<Pool>,
    /// the amount of pool shares that the user received
    #[prost(message, optional, tag="5")]
    pub final_user_pool_shares: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EventPoolJoined {
    /// the address of the user who joined the pool
    #[prost(string, tag="1")]
    pub address: ::prost::alloc::string::String,
    /// the amount of tokens that the user deposited
    #[prost(message, repeated, tag="2")]
    pub tokens_in: ::prost::alloc::vec::Vec<crate::proto::cosmos::base::v1beta1::Coin>,
    /// the amount of pool shares that the user received
    #[prost(message, optional, tag="3")]
    pub pool_shares_out: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
    /// the amount of tokens remaining for the user
    #[prost(message, repeated, tag="4")]
    pub rem_coins: ::prost::alloc::vec::Vec<crate::proto::cosmos::base::v1beta1::Coin>,
    /// the final state of the pool
    #[prost(message, optional, tag="5")]
    pub final_pool: ::core::option::Option<Pool>,
    /// the final amount of user pool shares
    #[prost(message, optional, tag="6")]
    pub final_user_pool_shares: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EventPoolExited {
    /// the address of the user who exited the pool
    #[prost(string, tag="1")]
    pub address: ::prost::alloc::string::String,
    /// the amount of pool shares that the user exited with
    #[prost(message, optional, tag="2")]
    pub pool_shares_in: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
    /// the amount of tokens returned to the user
    #[prost(message, repeated, tag="3")]
    pub tokens_out: ::prost::alloc::vec::Vec<crate::proto::cosmos::base::v1beta1::Coin>,
    /// the amount of fees collected by the pool
    #[prost(message, repeated, tag="4")]
    pub fees: ::prost::alloc::vec::Vec<crate::proto::cosmos::base::v1beta1::Coin>,
    /// the final state of the pool
    #[prost(message, optional, tag="5")]
    pub final_pool: ::core::option::Option<Pool>,
    /// the final amount of user pool shares
    #[prost(message, optional, tag="6")]
    pub final_user_pool_shares: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EventAssetsSwapped {
    /// the address of the user who swapped tokens
    #[prost(string, tag="1")]
    pub address: ::prost::alloc::string::String,
    /// the amount of tokens that the user deposited
    #[prost(message, optional, tag="2")]
    pub token_in: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
    /// the amount of tokens that the user received
    #[prost(message, optional, tag="3")]
    pub token_out: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
    /// the amount of fees collected by the pool
    #[prost(message, optional, tag="4")]
    pub fee: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
    /// the final state of the pool
    #[prost(message, optional, tag="5")]
    pub final_pool: ::core::option::Option<Pool>,
}
/// Params defines the parameters for the module.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Params {
    /// The start pool number, i.e. the first pool number that isn't taken yet.
    #[prost(uint64, tag="1")]
    pub starting_pool_number: u64,
    /// The cost of creating a pool, taken from the pool creator's account.
    #[prost(message, repeated, tag="2")]
    pub pool_creation_fee: ::prost::alloc::vec::Vec<crate::proto::cosmos::base::v1beta1::Coin>,
    /// The assets that can be used to create liquidity pools
    #[prost(string, repeated, tag="3")]
    pub whitelisted_asset: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
/// GenesisState defines the spot module's genesis state.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GenesisState {
    /// params defines all the parameters of the module.
    #[prost(message, optional, tag="1")]
    pub params: ::core::option::Option<Params>,
    /// pools defines all the pools of the module.
    #[prost(message, repeated, tag="2")]
    pub pools: ::prost::alloc::vec::Vec<Pool>,
}
/// QueryParamsRequest is request type for the Query/Params RPC method.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryParamsRequest {
}
/// QueryParamsResponse is response type for the Query/Params RPC method.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryParamsResponse {
    /// params holds all the parameters of this module.
    #[prost(message, optional, tag="1")]
    pub params: ::core::option::Option<Params>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryPoolNumberRequest {
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryPoolNumberResponse {
    #[prost(uint64, tag="1")]
    pub pool_id: u64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryPoolRequest {
    #[prost(uint64, tag="1")]
    pub pool_id: u64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryPoolResponse {
    #[prost(message, optional, tag="1")]
    pub pool: ::core::option::Option<Pool>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryPoolsRequest {
    /// pagination defines an optional pagination for the request.
    #[prost(message, optional, tag="1")]
    pub pagination: ::core::option::Option<crate::proto::cosmos::base::query::v1beta1::PageRequest>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryPoolsResponse {
    #[prost(message, repeated, tag="1")]
    pub pools: ::prost::alloc::vec::Vec<Pool>,
    /// pagination defines the pagination in the response.
    #[prost(message, optional, tag="2")]
    pub pagination: ::core::option::Option<crate::proto::cosmos::base::query::v1beta1::PageResponse>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryPoolParamsRequest {
    #[prost(uint64, tag="1")]
    pub pool_id: u64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryPoolParamsResponse {
    #[prost(message, optional, tag="1")]
    pub pool_params: ::core::option::Option<PoolParams>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryNumPoolsRequest {
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryNumPoolsResponse {
    #[prost(uint64, tag="1")]
    pub num_pools: u64,
}
/// --------------------------------------------
/// Query total liquidity the protocol
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryTotalLiquidityRequest {
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryTotalLiquidityResponse {
    #[prost(message, repeated, tag="1")]
    pub liquidity: ::prost::alloc::vec::Vec<crate::proto::cosmos::base::v1beta1::Coin>,
}
/// --------------------------------------------
/// Query total liquidity for a pool
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryTotalPoolLiquidityRequest {
    #[prost(uint64, tag="1")]
    pub pool_id: u64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryTotalPoolLiquidityResponse {
    #[prost(message, repeated, tag="1")]
    pub liquidity: ::prost::alloc::vec::Vec<crate::proto::cosmos::base::v1beta1::Coin>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryTotalSharesRequest {
    #[prost(uint64, tag="1")]
    pub pool_id: u64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryTotalSharesResponse {
    /// sum of all LP tokens sent out
    #[prost(message, optional, tag="1")]
    pub total_shares: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
}
/// Returns the amount of tokenInDenom to produce 1 tokenOutDenom
/// For example, if the price of NIBI = 9.123 NUSD, then setting
/// tokenInDenom=NUSD and tokenOutDenom=NIBI would give "9.123".
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QuerySpotPriceRequest {
    #[prost(uint64, tag="1")]
    pub pool_id: u64,
    /// the denomination of the token you are giving into the pool
    #[prost(string, tag="2")]
    pub token_in_denom: ::prost::alloc::string::String,
    /// the denomination of the token you are taking out of the pool
    #[prost(string, tag="3")]
    pub token_out_denom: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QuerySpotPriceResponse {
    #[prost(string, tag="1")]
    pub spot_price: ::prost::alloc::string::String,
}
/// Given an exact amount of tokens in and a target tokenOutDenom, calculates
/// the expected amount of tokens out received from a swap.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QuerySwapExactAmountInRequest {
    #[prost(uint64, tag="1")]
    pub pool_id: u64,
    #[prost(message, optional, tag="2")]
    pub token_in: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
    #[prost(string, tag="3")]
    pub token_out_denom: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QuerySwapExactAmountInResponse {
    #[prost(message, optional, tag="2")]
    pub token_out: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
    #[prost(message, optional, tag="3")]
    pub fee: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
}
/// Given an exact amount of tokens out and a target tokenInDenom, calculates
/// the expected amount of tokens in required to do the swap.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QuerySwapExactAmountOutRequest {
    #[prost(uint64, tag="1")]
    pub pool_id: u64,
    #[prost(message, optional, tag="2")]
    pub token_out: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
    #[prost(string, tag="3")]
    pub token_in_denom: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QuerySwapExactAmountOutResponse {
    #[prost(message, optional, tag="2")]
    pub token_in: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryJoinExactAmountInRequest {
    #[prost(uint64, tag="1")]
    pub pool_id: u64,
    #[prost(message, repeated, tag="2")]
    pub tokens_in: ::prost::alloc::vec::Vec<crate::proto::cosmos::base::v1beta1::Coin>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryJoinExactAmountInResponse {
    /// amount of pool shares returned to user after join
    #[prost(string, tag="1")]
    pub pool_shares_out: ::prost::alloc::string::String,
    /// coins remaining after pool join
    #[prost(message, repeated, tag="2")]
    pub rem_coins: ::prost::alloc::vec::Vec<crate::proto::cosmos::base::v1beta1::Coin>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryJoinExactAmountOutRequest {
    #[prost(uint64, tag="1")]
    pub pool_id: u64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryJoinExactAmountOutResponse {
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryExitExactAmountInRequest {
    #[prost(uint64, tag="1")]
    pub pool_id: u64,
    /// amount of pool shares to return to pool
    #[prost(string, tag="2")]
    pub pool_shares_in: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryExitExactAmountInResponse {
    /// coins obtained after exiting
    #[prost(message, repeated, tag="1")]
    pub tokens_out: ::prost::alloc::vec::Vec<crate::proto::cosmos::base::v1beta1::Coin>,
    #[prost(message, repeated, tag="2")]
    pub fees: ::prost::alloc::vec::Vec<crate::proto::cosmos::base::v1beta1::Coin>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryExitExactAmountOutRequest {
    #[prost(uint64, tag="1")]
    pub pool_id: u64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryExitExactAmountOutResponse {
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MsgCreatePool {
    #[prost(string, tag="1")]
    pub creator: ::prost::alloc::string::String,
    #[prost(message, optional, tag="2")]
    pub pool_params: ::core::option::Option<PoolParams>,
    #[prost(message, repeated, tag="3")]
    pub pool_assets: ::prost::alloc::vec::Vec<PoolAsset>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MsgCreatePoolResponse {
    #[prost(uint64, tag="1")]
    pub pool_id: u64,
}
///
/// Message to join a pool (identified by poolId) with a set of tokens to deposit.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MsgJoinPool {
    #[prost(string, tag="1")]
    pub sender: ::prost::alloc::string::String,
    #[prost(uint64, tag="2")]
    pub pool_id: u64,
    #[prost(message, repeated, tag="3")]
    pub tokens_in: ::prost::alloc::vec::Vec<crate::proto::cosmos::base::v1beta1::Coin>,
    #[prost(bool, tag="4")]
    pub use_all_coins: bool,
}
///
/// Response when a user joins a pool.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MsgJoinPoolResponse {
    /// the final state of the pool after a join
    #[prost(message, optional, tag="1")]
    pub pool: ::core::option::Option<Pool>,
    /// sum of LP tokens minted from the join
    #[prost(message, optional, tag="2")]
    pub num_pool_shares_out: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
    /// remaining tokens from attempting to join the pool
    #[prost(message, repeated, tag="3")]
    pub remaining_coins: ::prost::alloc::vec::Vec<crate::proto::cosmos::base::v1beta1::Coin>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MsgExitPool {
    #[prost(string, tag="1")]
    pub sender: ::prost::alloc::string::String,
    #[prost(uint64, tag="2")]
    pub pool_id: u64,
    #[prost(message, optional, tag="3")]
    pub pool_shares: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MsgExitPoolResponse {
    #[prost(message, repeated, tag="3")]
    pub tokens_out: ::prost::alloc::vec::Vec<crate::proto::cosmos::base::v1beta1::Coin>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MsgSwapAssets {
    #[prost(string, tag="1")]
    pub sender: ::prost::alloc::string::String,
    #[prost(uint64, tag="2")]
    pub pool_id: u64,
    #[prost(message, optional, tag="3")]
    pub token_in: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
    #[prost(string, tag="4")]
    pub token_out_denom: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MsgSwapAssetsResponse {
    #[prost(message, optional, tag="3")]
    pub token_out: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
}
// @@protoc_insertion_point(module)