cw_auth_types/
lib.rs

1#[cfg(feature = "session")]
2pub mod sessions;
3pub mod errors;
4pub mod stores;
5
6pub use smart_account_auth::cosmwasm_std as wasm;
7pub use saa_schema::{saa_type, serde, strum, strum_macros};
8
9
10#[cfg(feature = "session")]
11pub mod macros {
12    pub use protos::{session_action, session_query};
13}
14
15
16use smart_account_auth::{CredentialId, CredentialRecord, CredentialData};
17
18
19#[saa_type]
20pub enum UpdateOperation<D : serde::Serialize = CredentialData> {
21    Add(D),
22    Remove(Vec<crate::CredentialId>),
23}
24
25
26
27
28#[saa_type]
29pub struct StoredCredentials {
30    /// whether there are stored native credentials that don't require a signature
31    pub has_natives     :   bool,
32
33    /// Default ID used for verification
34    pub verifying_id    :   CredentialId,
35
36     /// ID and info about every stored credential
37    pub records         :   Vec<CredentialRecord>,
38
39    // Nonce or account number used for replay attack protection
40    pub account_number  :   u64,
41
42    // Session keys that can be used used for specific actions
43    #[cfg(feature = "session")]
44    #[serde(skip_serializing_if = "Option::is_none")]
45    pub sessions        :   Option<CredentialId>,
46}