From 40ba5fca68b749ddb73c4164fce1d3a80f702ac0 Mon Sep 17 00:00:00 2001 From: Dmitry Zuikov Date: Thu, 10 Aug 2023 05:50:39 +0300 Subject: [PATCH] RefLogKey moved to HBS2.Net.Proto.RefLog... ... since it is just one of many possible refs --- hbs2-core/lib/HBS2/Data/Types/Refs.hs | 23 ------------------- hbs2-core/lib/HBS2/Net/Proto/RefLog.hs | 26 +++++++++++++++++++++- hbs2-git/lib/HBS2Git/Types.hs | 7 +----- hbs2-peer/app/PeerMain/DialogCliCommand.hs | 6 ++--- hbs2/Main.hs | 1 + 5 files changed, 30 insertions(+), 33 deletions(-) diff --git a/hbs2-core/lib/HBS2/Data/Types/Refs.hs b/hbs2-core/lib/HBS2/Data/Types/Refs.hs index fee8a49a..a2df354a 100644 --- a/hbs2-core/lib/HBS2/Data/Types/Refs.hs +++ b/hbs2-core/lib/HBS2/Data/Types/Refs.hs @@ -141,27 +141,4 @@ type IsRefPubKey s = ( Eq (PubKey 'Sign s) , Hashable (PubKey 'Sign s) ) -newtype RefLogKey s = RefLogKey (PubKey 'Sign s) - -deriving stock instance IsRefPubKey s => Eq (RefLogKey s) - -instance IsRefPubKey s => Hashable (RefLogKey s) where - hashWithSalt s k = hashWithSalt s (hashObject @HbSync k) - -instance IsRefPubKey s => Hashed HbSync (RefLogKey s) where - hashObject (RefLogKey pk) = hashObject ("reflogkey|" <> serialise pk) - -instance IsRefPubKey s => FromStringMaybe (RefLogKey s) where - fromStringMay s = RefLogKey <$> fromStringMay s - -instance IsRefPubKey s => IsString (RefLogKey s) where - fromString s = fromMaybe (error "bad public key base58") (fromStringMay s) - - -instance Pretty (AsBase58 (PubKey 'Sign s )) => Pretty (AsBase58 (RefLogKey s)) where - pretty (AsBase58 (RefLogKey k)) = pretty (AsBase58 k) - -instance Pretty (AsBase58 (PubKey 'Sign s )) => Pretty (RefLogKey s) where - pretty (RefLogKey k) = pretty (AsBase58 k) - diff --git a/hbs2-core/lib/HBS2/Net/Proto/RefLog.hs b/hbs2-core/lib/HBS2/Net/Proto/RefLog.hs index 618c227f..fed42d6f 100644 --- a/hbs2-core/lib/HBS2/Net/Proto/RefLog.hs +++ b/hbs2-core/lib/HBS2/Net/Proto/RefLog.hs @@ -17,11 +17,35 @@ import HBS2.Data.Types.Refs import HBS2.System.Logger.Simple import Data.Maybe -import Data.Hashable +import Data.Hashable hiding (Hashed) import Data.ByteString (ByteString) import Type.Reflection (someTypeRep) import Lens.Micro.Platform +newtype RefLogKey s = RefLogKey (PubKey 'Sign s) + +deriving stock instance IsRefPubKey s => Eq (RefLogKey s) + +instance IsRefPubKey s => Hashable (RefLogKey s) where + hashWithSalt s k = hashWithSalt s (hashObject @HbSync k) + +instance IsRefPubKey s => Hashed HbSync (RefLogKey s) where + hashObject (RefLogKey pk) = hashObject ("reflogkey|" <> serialise pk) + +instance IsRefPubKey s => FromStringMaybe (RefLogKey s) where + fromStringMay s = RefLogKey <$> fromStringMay s + +instance IsRefPubKey s => IsString (RefLogKey s) where + fromString s = fromMaybe (error "bad public key base58") (fromStringMay s) + + +instance Pretty (AsBase58 (PubKey 'Sign s )) => Pretty (AsBase58 (RefLogKey s)) where + pretty (AsBase58 (RefLogKey k)) = pretty (AsBase58 k) + +instance Pretty (AsBase58 (PubKey 'Sign s )) => Pretty (RefLogKey s) where + pretty (RefLogKey k) = pretty (AsBase58 k) + + data RefLogRequest e = RefLogRequest (PubKey 'Sign (Encryption e)) | RefLogResponse (PubKey 'Sign (Encryption e)) (Hash HbSync) diff --git a/hbs2-git/lib/HBS2Git/Types.hs b/hbs2-git/lib/HBS2Git/Types.hs index d5f54d6f..87b71162 100644 --- a/hbs2-git/lib/HBS2Git/Types.hs +++ b/hbs2-git/lib/HBS2Git/Types.hs @@ -10,8 +10,7 @@ module HBS2Git.Types import HBS2.Prelude.Plated import HBS2.Git.Types -import HBS2.Net.Proto.Types(L4Proto) -import HBS2.Data.Types.Refs +import HBS2.Net.Proto.RefLog (RefLogKey(..)) import HBS2.Net.Proto.Types import HBS2.Net.Auth.Credentials @@ -27,17 +26,13 @@ import Control.Monad.IO.Class import Control.Monad.Reader import Database.SQLite.Simple (Connection) import Data.Char (isSpace) -import Data.Set qualified as Set -import Data.Set (Set) import Data.List qualified as List -import Data.Maybe import Lens.Micro.Platform import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict qualified as HashMap import Codec.Serialise import Control.Concurrent.STM import System.IO qualified as IO -import UnliftIO.IO qualified as UIO import System.IO (Handle) import Data.Kind import Control.Monad.Catch diff --git a/hbs2-peer/app/PeerMain/DialogCliCommand.hs b/hbs2-peer/app/PeerMain/DialogCliCommand.hs index d896752f..ff6f27fe 100644 --- a/hbs2-peer/app/PeerMain/DialogCliCommand.hs +++ b/hbs2-peer/app/PeerMain/DialogCliCommand.hs @@ -2,12 +2,12 @@ module PeerMain.DialogCliCommand where -import Data.Generics.Labels -import Data.Generics.Product.Fields +-- import Data.Generics.Labels +-- import Data.Generics.Product.Fields import HBS2.Actors.Peer import HBS2.Base58 import HBS2.Clock -import HBS2.Data.Types.Refs (RefLogKey(..)) +import HBS2.Net.Proto.RefLog (RefLogKey(..)) import HBS2.Defaults import HBS2.Events import HBS2.Hash diff --git a/hbs2/Main.hs b/hbs2/Main.hs index c177cc6a..afd5d721 100644 --- a/hbs2/Main.hs +++ b/hbs2/Main.hs @@ -9,6 +9,7 @@ import HBS2.Net.Proto.Types import HBS2.Net.Auth.AccessKey import HBS2.Net.Auth.Credentials import HBS2.Net.Proto.Definition() +import HBS2.Net.Proto.RefLog(RefLogKey(..)) import HBS2.Prelude.Plated import HBS2.Storage.Simple import HBS2.Storage.Simple.Extra