From 3b760e8e7bcb1ef4e9b02dd7c1c3a368cc50e044 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Sun, 11 Oct 2026 18:48:52 +0100 Subject: [PATCH] database field conversion instance (#1940) Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> --- src/Simplex/Messaging/Crypto/BIP39.hs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Simplex/Messaging/Crypto/BIP39.hs b/src/Simplex/Messaging/Crypto/BIP39.hs index ab29c4531..9fb451862 100644 --- a/src/Simplex/Messaging/Crypto/BIP39.hs +++ b/src/Simplex/Messaging/Crypto/BIP39.hs @@ -34,6 +34,7 @@ import qualified Data.Map.Strict as M import Data.Text (Text) import qualified Data.Text as T import Data.Text.Encoding (encodeUtf8) +import Simplex.Messaging.Agent.Store.DB (Binary (..), FromField (..), ToField (..), blobFieldDecoder) import qualified Simplex.Messaging.Crypto as C import Simplex.Messaging.Crypto.BIP39.English (englishWordList) @@ -85,6 +86,10 @@ mkEntropy ent where entLen = BA.length ent +instance ToField WalletEntropy where toField (WalletEntropy ent) = toField $ Binary (BA.convert ent :: ByteString) + +instance FromField WalletEntropy where fromField = blobFieldDecoder $ mkEntropy . BA.convert + randomEntropy :: EntropyStrength -> TVar ChaChaDRG -> STM WalletEntropy randomEntropy s = fmap WalletEntropy . C.randomBytes' (strengthBytes s)