packages feed

ppad-bip39 0.2.0 → 0.2.1

raw patch · 4 files changed

+77/−3 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

CHANGELOG view
@@ -1,5 +1,8 @@ # Changelog +- 0.2.1 (2025-03-02)+  * Various documentation improvements.+ - 0.2.0 (2025-02-27)   * 'seed' now validates the words in the mnemonic supplied to it;     'seed_unsafe' has been added as a function that works for any
bench/Main.hs view
@@ -1,4 +1,24 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE OverloadedStrings #-}+ module Main where +import Criterion.Main+import Crypto.KDF.BIP39+ main :: IO ()-main = pure ()+main = defaultMain [+    bgroup "ppad-bip39" [+        bench_mnemonic+      , bench_seed+    ]+  ]++bench_mnemonic :: Benchmark+bench_mnemonic = bench "mnemonic" $ nf mnemonic "my ultra secret entropy!"++bench_seed :: Benchmark+bench_seed = bench "seed" $ nf (seed mnem) mempty where+  mnem = "hope simple bubble suggest elbow correct limb hole gloom nasty fringe dolphin finger demand situate unlock junior autumn"+
lib/Crypto/KDF/BIP39.hs view
@@ -3,7 +3,7 @@ {-# LANGUAGE OverloadedStrings #-}  -- |--- Module: Crypto.HDKey.BIP32+-- Module: Crypto.HDKey.BIP39 -- Copyright: (c) 2025 Jared Tobin -- License: MIT -- Maintainer: Jared Tobin <jared@ppad.tech>@@ -25,6 +25,8 @@   , seed_unsafe    -- * Wordlists+  --+  -- $wordlists   , Wordlist(..)   , english   , chinese_traditional@@ -234,6 +236,19 @@  -- wordlists ------------------------------------------------------------------ +-- $wordlists+--+-- Wordlists for various languages.+--+-- For the following examples:+--+-- >>> import qualified Data.Text.IO as TIO+-- >>> let trop = "0123456789abcdef"++-- | The default English wordlist.+--+--   >>> TIO.putStrLn $ _mnemonic english trop+--   coral maze mimic half fat breeze thought club give brass bone snake english :: Wordlist english = unsafePerformIO $ do   wlist <- fmap TE.decodeUtf8 (BS.readFile "etc/english.txt")@@ -241,6 +256,10 @@   pure (Wordlist (PA.arrayFromList ls)) {-# NOINLINE english #-} +-- | The default Traditional Chinese wordlist.+--+--   >>> TIO.putStrLn $ _mnemonic chinese_traditional trop+--   持 樓 粗 殺 承 圖 湧 整 拿 路 式 棋 chinese_traditional :: Wordlist chinese_traditional = unsafePerformIO $ do   wlist <- fmap TE.decodeUtf8 (BS.readFile "etc/chinese_traditional.txt")@@ -248,6 +267,10 @@   pure (Wordlist (PA.arrayFromList ls)) {-# NOINLINE chinese_traditional #-} +-- | The default Simplified Chinese wordlist.+--+--   >>> TIO.putStrLn $ _mnemonic chinese_simplified trop+--   持 楼 粗 杀 承 图 涌 整 拿 路 式 棋 chinese_simplified :: Wordlist chinese_simplified = unsafePerformIO $ do   wlist <- fmap TE.decodeUtf8 (BS.readFile "etc/chinese_simplified.txt")@@ -255,6 +278,10 @@   pure (Wordlist (PA.arrayFromList ls)) {-# NOINLINE chinese_simplified #-} +-- | The default Korean wordlist.+--+--   >>> TIO.putStrLn $ _mnemonic korean trop+--   대문 어쩐지 여덟 설거지 볶음 그늘 태권도 단맛 상반기 균형 국왕 진출 korean :: Wordlist korean = unsafePerformIO $ do   wlist <- fmap TE.decodeUtf8 (BS.readFile "etc/korean.txt")@@ -262,6 +289,10 @@   pure (Wordlist (PA.arrayFromList ls)) {-# NOINLINE korean #-} +-- | The default French wordlist.+--+--   >>> TIO.putStrLn $ _mnemonic french trop+--   chlorure kimono légume flamme endroit bénéfice soulever céleste falaise belette banlieue reprise french :: Wordlist french = unsafePerformIO $ do   wlist <- fmap TE.decodeUtf8 (BS.readFile "etc/french.txt")@@ -269,6 +300,10 @@   pure (Wordlist (PA.arrayFromList ls)) {-# NOINLINE french #-} +-- | The default Spanish wordlist.+--+--   >>> TIO.putStrLn $ _mnemonic spanish trop+--   charla marido mente guía explicar banco tapa casco gemelo balcón ayuda ropa spanish :: Wordlist spanish = unsafePerformIO $ do   wlist <- fmap TE.decodeUtf8 (BS.readFile "etc/spanish.txt")@@ -276,6 +311,10 @@   pure (Wordlist (PA.arrayFromList ls)) {-# NOINLINE spanish #-} +-- | The default Czech wordlist.+--+--   >>> TIO.putStrLn $ _mnemonic czech trop+--   hadr omladina oslepit metr krajina deflace varovat flirt lovec dechovka cudnost svitek czech :: Wordlist czech = unsafePerformIO $ do   wlist <- fmap TE.decodeUtf8 (BS.readFile "etc/czech.txt")@@ -283,6 +322,10 @@   pure (Wordlist (PA.arrayFromList ls)) {-# NOINLINE czech #-} +-- |  The default Italian wordlist.+--+--   >>> TIO.putStrLn $ _mnemonic italian trop+--   conferma nevrotico obbligo indole florido benigno svista cigno grotta belva barbaro sfocato italian :: Wordlist italian = unsafePerformIO $ do   wlist <- fmap TE.decodeUtf8 (BS.readFile "etc/italian.txt")@@ -290,6 +333,10 @@   pure (Wordlist (PA.arrayFromList ls)) {-# NOINLINE italian #-} +-- | The default Portuguese wordlist.+--+--   >>> TIO.putStrLn $ _mnemonic portuguese trop+--   capacho juba lareira figurado ejetar avaliar sonhador cachorro exposto autismo aterro refinar portuguese :: Wordlist portuguese = unsafePerformIO $ do   wlist <- fmap TE.decodeUtf8 (BS.readFile "etc/portuguese.txt")@@ -297,6 +344,10 @@   pure (Wordlist (PA.arrayFromList ls)) {-# NOINLINE portuguese #-} +-- | The default Japanese wordlist.+--+--   >>> TIO.putStrLn $ _mnemonic japanese trop+--   きおん たさい たまご しゃおん こふん えきたい ますく がはく しかい えおり うろこ ひとごみ japanese :: Wordlist japanese = unsafePerformIO $ do   wlist <- fmap TE.decodeUtf8 (BS.readFile "etc/japanese.txt")
ppad-bip39.cabal view
@@ -1,6 +1,6 @@ cabal-version:      3.0 name:               ppad-bip39-version:            0.2.0+version:            0.2.1 synopsis:           BIP39 mnemonic codes. license:            MIT license-file:       LICENSE