cw_auth_types/
lib.rs

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