vectis_wallet/interface/
authenticator.rs

1use cosmwasm_std::StdError;
2use cw2::ContractVersion;
3use sylvia::types::QueryCtx;
4use sylvia::{interface, schemars};
5
6pub mod authenticator_trait {
7    use super::*;
8
9    /// The trait for each authenticator contract
10    #[interface]
11    pub trait AuthenticatorTrait {
12        type Error: From<StdError>;
13
14        #[msg(query)]
15        fn authenticate(
16            &self,
17            ctx: QueryCtx,
18            signed_data: Vec<u8>,
19            controller_data: Vec<u8>,
20            metadata: Vec<Vec<u8>>,
21            signature: Vec<u8>,
22        ) -> Result<bool, Self::Error>;
23
24        #[msg(query)]
25        fn contract_version(&self, ctx: QueryCtx) -> Result<ContractVersion, StdError>;
26    }
27}