module Types.Reader where import Network.HTTP.Client (Manager) import Servant (Handler) import Servant.Client (ClientEnv) import Control.Monad.Reader (ReaderT) import qualified Data.Text as T import Data.Text.I18n import Crypto.KDF.PBKDF2 import Crypto.Hash.Algorithms data ReadState = ReadState -- { rsManager :: Manager { rsL10n :: L10n , rsBackend :: ClientEnv , rsHashParams :: HashParams , rsCurrencySymbol :: T.Text , rsBackendVersion :: T.Text } type UserHandler = ReaderT ReadState Handler data HashParams = HashParams { hashIterations :: Int , hashSaltLength :: Int , hashOutputLength :: Int } recommendedHashParams = HashParams { hashIterations = 8000 , hashSaltLength = 23 , hashOutputLength = 512 }