desmos_bindings/
cosmos_types.rs

1//! Contains basic types of a cosmos sdk based chain.
2
3pub use crate::proto::cosmos::authz::v1beta1::{GenericAuthorization, Grant as AuthzGrant};
4
5pub use crate::proto::cosmos::bank::v1beta1::{DenomUnit, Metadata};
6
7pub use crate::proto::cosmos::base::query::v1beta1::PageRequest;
8
9pub use crate::proto::cosmos::base::v1beta1::Coin;
10
11pub use crate::proto::cosmos::crypto::{ed25519, secp256k1, secp256r1};
12
13pub use crate::proto::cosmos::feegrant::v1beta1::{
14    AllowedMsgAllowance, BasicAllowance, PeriodicAllowance,
15};
16
17pub use crate::proto::ibc::core::client::v1::Height;
18
19pub use crate::shim::{Any, Timestamp};
20
21/// Represents a generic fee allowance.
22pub enum Allowance {
23    /// Represents a basic allowance
24    BasicAllowance(BasicAllowance),
25
26    /// Represents a periodic allowance
27    PeriodicAllowance(PeriodicAllowance),
28
29    /// Represents a msg allowance
30    AllowedMsgAllowance(AllowedMsgAllowance),
31}
32
33impl Into<Any> for Allowance {
34    fn into(self) -> Any {
35        match self {
36            Allowance::BasicAllowance(allowance) => allowance.into(),
37            Allowance::PeriodicAllowance(allowance) => allowance.into(),
38            Allowance::AllowedMsgAllowance(allowance) => allowance.into(),
39        }
40    }
41}