neptune-auth 1.0.0

Crate for implementing message authorization for cosmwasm smart contracts.
Documentation
use cosmwasm_std::{Addr, StdError};
use thiserror::Error;

pub type NeptAuthResult<T> = core::result::Result<T, NeptAuthError>;

const AUTH_ERR: &str = "Neptune Auth Error -";

#[derive(Error, Debug, PartialEq)]
pub enum NeptAuthError {
    #[error(transparent)]
    Std(#[from] StdError),

    #[error("{} Unauthorized: {sender} is not {permission_group}", AUTH_ERR)]
    Unauthorized {
        sender: Addr,
        permission_group: String,
    },

    #[error("{} Public must be only entry in permission group list", AUTH_ERR)]
    InvalidPublic,

    #[error("{} Empty permission group list", AUTH_ERR)]
    EmptyPermissionGroupList,
}