cw_auth_types/
lib.rs

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