Skip to content
This repository was archived by the owner on Aug 18, 2020. It is now read-only.

[CO-422] Making branch compile and cherry-picking of CO-427 #3809

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 1 addition & 8 deletions auxx/src/Mode.hs
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,7 @@ import Data.Conduit (transPipe)
import Pos.Chain.Block (HasSlogContext (..), HasSlogGState (..))
import Pos.Chain.Ssc (HasSscContext (..))
import Pos.Client.KeyStorage (MonadKeys (..), MonadKeysRead (..),
getPublicDefault, getSecretDefault, modifyPublicDefault,
modifySecretDefault)
getSecretDefault, modifySecretDefault)
import Pos.Client.Txp.Addresses (MonadAddresses (..))
import Pos.Client.Txp.Balances (MonadBalances (..),
getBalanceFromUtxo, getOwnUtxosGenesis)
Expand Down Expand Up @@ -65,7 +64,6 @@ import Pos.Launcher (HasConfigurations)
import Pos.Util (HasLens (..), postfixLFields)
import Pos.Util.CompileInfo (HasCompileInfo, withCompileInfo)
import Pos.Util.LoggerName (HasLoggerName' (..))
import Pos.Util.UserPublic (HasUserPublic (..))
import Pos.Util.UserSecret (HasUserSecret (..))
import Pos.Util.Wlog (HasLoggerName (..))
import Pos.WorkMode (EmptyMempoolExt, RealMode, RealModeContext (..))
Expand Down Expand Up @@ -126,9 +124,6 @@ instance MonadReporting AuxxMode where
instance HasMisbehaviorMetrics AuxxContext where
misbehaviorMetrics = lens (const Nothing) const

instance HasUserPublic AuxxContext where
userPublic = acRealModeContext_L . userPublic

instance HasUserSecret AuxxContext where
userSecret = acRealModeContext_L . userSecret

Expand Down Expand Up @@ -223,11 +218,9 @@ instance (HasConfigurations, HasCompileInfo) =>
True -> largestPubKeyAddressSingleKey nm

instance MonadKeysRead AuxxMode where
getPublic = getPublicDefault
getSecret = getSecretDefault

instance MonadKeys AuxxMode where
modifyPublic = modifyPublicDefault
modifySecret = modifySecretDefault

type instance MempoolExt AuxxMode = EmptyMempoolExt
Expand Down
54 changes: 1 addition & 53 deletions client/src/Pos/Client/KeyStorage.hs
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,15 @@
module Pos.Client.KeyStorage
( MonadKeysRead (..)
, MonadKeys (..)
, AllUserPublics (..)
, AllUserSecrets (..)
, getPublicDefault
, getSecretDefault
, modifyPublicPureDefault
, modifySecretPureDefault
, modifyPublicDefault
, modifySecretDefault

, getPublicKeys
, getSecretKeys
, getPublicKeysPlain
, getSecretKeysPlain
, addPublicKey
, addSecretKey
, deleteAllPublicKeys
, deleteAllSecretKeys
, deletePublicKeyBy
, deleteSecretKeyBy
) where

Expand All @@ -32,9 +23,7 @@ import qualified Control.Concurrent.STM as STM
import Control.Lens ((<%=), (<>~))
import Serokell.Util (modifyTVarS)

import Pos.Crypto (EncryptedSecretKey, PublicKey, hash)
import Pos.Util.UserPublic (HasUserPublic (..), UserPublic, upKeys,
writeUserPublic)
import Pos.Crypto (EncryptedSecretKey, hash)
import Pos.Util.UserSecret (HasUserSecret (..), UserSecret, usKeys,
writeUserSecret)

Expand All @@ -43,42 +32,25 @@ import Pos.Util.UserSecret (HasUserSecret (..), UserSecret, usKeys,
----------------------------------------------------------------------

class Monad m => MonadKeysRead m where
getPublic :: m UserPublic
getSecret :: m UserSecret

class MonadKeysRead m => MonadKeys m where
modifyPublic :: (UserPublic -> UserPublic) -> m ()
modifySecret :: (UserSecret -> UserSecret) -> m ()

type HasKeysContext ctx m =
( MonadReader ctx m
, HasUserPublic ctx
, HasUserSecret ctx
, MonadIO m
)

getPublicDefault :: HasKeysContext ctx m => m UserPublic
getPublicDefault = view userPublic >>= atomically . STM.readTVar

getSecretDefault :: HasKeysContext ctx m => m UserSecret
getSecretDefault = view userSecret >>= atomically . STM.readTVar

modifyPublicPureDefault :: HasKeysContext ctx m => (UserPublic -> UserPublic) -> m ()
modifyPublicPureDefault f = do
up <- view userPublic
atomically $ STM.modifyTVar' up f

modifySecretPureDefault :: HasKeysContext ctx m => (UserSecret -> UserSecret) -> m ()
modifySecretPureDefault f = do
us <- view userSecret
atomically $ STM.modifyTVar' us f

modifyPublicDefault :: HasKeysContext ctx m => (UserPublic -> UserPublic) -> m ()
modifyPublicDefault f = do
up <- view userPublic
new <- atomically $ modifyTVarS up (identity <%= f)
writeUserPublic new

modifySecretDefault :: HasKeysContext ctx m => (UserSecret -> UserSecret) -> m ()
modifySecretDefault f = do
us <- view userSecret
Expand All @@ -89,34 +61,16 @@ modifySecretDefault f = do
-- Helpers
----------------------------------------------------------------------

newtype AllUserPublics = AllUserPublics
{ getAllUserPublics :: [PublicKey]
} deriving (Container)

newtype AllUserSecrets = AllUserSecrets
{ getAllUserSecrets :: [EncryptedSecretKey]
} deriving (Container)

getPublicKeys :: MonadKeysRead m => m AllUserPublics
getPublicKeys = AllUserPublics <$> getPublicKeysPlain

getSecretKeys :: MonadKeysRead m => m AllUserSecrets
getSecretKeys = AllUserSecrets <$> getSecretKeysPlain

getPublicKeysPlain :: MonadKeysRead m => m [PublicKey]
getPublicKeysPlain = view upKeys <$> getPublic

getSecretKeysPlain :: MonadKeysRead m => m [EncryptedSecretKey]
getSecretKeysPlain = view usKeys <$> getSecret

addPublicKey :: MonadKeys m => PublicKey -> m ()
addPublicKey pk = modifyPublic $ \up ->
if view upKeys up `containsPublicKey` pk
then up
else up & upKeys <>~ [pk]
where
containsPublicKey = flip elem

addSecretKey :: MonadKeys m => EncryptedSecretKey -> m ()
addSecretKey sk = modifySecret $ \us ->
if view usKeys us `containsKey` sk
Expand All @@ -125,14 +79,8 @@ addSecretKey sk = modifySecret $ \us ->
where
containsKey ls k = hash k `elem` map hash ls

deleteAllPublicKeys :: MonadKeys m => m ()
deleteAllPublicKeys = modifyPublic (upKeys .~ [])

deleteAllSecretKeys :: MonadKeys m => m ()
deleteAllSecretKeys = modifySecret (usKeys .~ [])

deletePublicKeyBy :: MonadKeys m => (PublicKey -> Bool) -> m ()
deletePublicKeyBy predicate = modifyPublic (upKeys %~ filter (not . predicate))

deleteSecretKeyBy :: MonadKeys m => (EncryptedSecretKey -> Bool) -> m ()
deleteSecretKeyBy predicate = modifySecret (usKeys %~ filter (not . predicate))
2 changes: 0 additions & 2 deletions lib/cardano-sl.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,6 @@ library
Pos.Util.Config
Pos.Util.OutboundQueue
Pos.Util.UserKeyError
Pos.Util.UserPublic
Pos.Util.UserSecret

Pos.Web
Expand Down Expand Up @@ -276,7 +275,6 @@ test-suite cardano-test
-- Everything else
Test.Pos.Block.Arbitrary.Message
Test.Pos.Block.CborSpec
Test.Pos.Cbor.Arbitrary.UserPublic
Test.Pos.Cbor.Arbitrary.UserSecret
Test.Pos.Cbor.CborSpec
Test.Pos.ConstantsSpec
Expand Down
3 changes: 0 additions & 3 deletions lib/src/Pos/Client/CLI/Params.hs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ import Pos.Infra.InjectFail (mkFInjects)
import Pos.Infra.Network.CLI (intNetworkConfigOpts)
import Pos.Launcher.Param (BaseParams (..), LoggingParams (..),
NodeParams (..))
import Pos.Util.UserPublic (peekUserPublic)
import Pos.Util.UserSecret (peekUserSecret, usVss)
import Pos.Util.Util (eitherToThrow)
import Pos.Util.Wlog (LoggerName, WithLogger)
Expand Down Expand Up @@ -72,7 +71,6 @@ getNodeParams ::
getNodeParams defaultLoggerName cArgs@CommonNodeArgs{..} NodeArgs{..} mGeneratedSecrets = do
(primarySK, userSecret) <- prepareUserSecret cArgs mGeneratedSecrets
=<< peekUserSecret (getKeyfilePath cArgs)
userPublic <- peekUserPublic publicKeyfilePath
npNetworkConfig <- intNetworkConfigOpts networkConfigOpts
npBehaviorConfig <- case behaviorConfigPath of
Nothing -> pure def
Expand All @@ -84,7 +82,6 @@ getNodeParams defaultLoggerName cArgs@CommonNodeArgs{..} NodeArgs{..} mGenerated
, npRebuildDb = rebuildDB
, npSecretKey = primarySK
, npUserSecret = userSecret
, npUserPublic = userPublic
, npBaseParams = getBaseParams defaultLoggerName cArgs
, npJLFile = jlPath
, npReportServers = reportServers commonArgs
Expand Down
6 changes: 0 additions & 6 deletions lib/src/Pos/Context/Context.hs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ import Pos.Launcher.Param (BaseParams (..), NodeParams (..))
import Pos.Network.Block.RetrievalQueue (BlockRetrievalQueue,
BlockRetrievalQueueTag)
import Pos.Util.Lens (postfixLFields)
import Pos.Util.UserPublic (HasUserPublic (..), UserPublic)
import Pos.Util.UserSecret (HasUserSecret (..), UserSecret)
import Pos.Util.Util (HasLens (..))
import Pos.Util.Wlog (LoggerConfig)
Expand Down Expand Up @@ -84,8 +83,6 @@ data NodeContext = NodeContext
-- Stored hash is a hash of last applied block.
, ncStateLockMetrics :: !(StateLockMetrics MemPoolModifyReason)
-- ^ A set of callbacks for 'StateLock'.
, ncUserPublic :: !(TVar UserPublic)
-- ^ Public keys (and path to file) which are used to identify external wallets.
, ncUserSecret :: !(TVar UserSecret)
-- ^ Secret keys (and path to file) which are used to send transactions
, ncBlockRetrievalQueue :: !BlockRetrievalQueue
Expand Down Expand Up @@ -156,9 +153,6 @@ instance HasShutdownContext NodeContext where
instance HasLens UpdateContext NodeContext UpdateContext where
lensOf = ncUpdateContext_L

instance HasUserPublic NodeContext where
userPublic = ncUserPublic_L

instance HasUserSecret NodeContext where
userSecret = ncUserSecret_L

Expand Down
2 changes: 0 additions & 2 deletions lib/src/Pos/Launcher/Param.hs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ import Pos.Infra.InjectFail (FInjects)
import Pos.Infra.Network.Types (NetworkConfig)
import Pos.Infra.Statistics (EkgParams, StatsdParams)
import Pos.Util.Lens (postfixLFields)
import Pos.Util.UserPublic (UserPublic)
import Pos.Util.UserSecret (UserSecret)
import Pos.Util.Util (HasLens (..))
import Pos.Util.Wlog (LoggerName)
Expand Down Expand Up @@ -53,7 +52,6 @@ data NodeParams = NodeParams
{ npDbPathM :: !(Maybe FilePath) -- ^ Path to node's database
, npRebuildDb :: !Bool -- ^ @True@ if data-base should be rebuilt
, npSecretKey :: !SecretKey -- ^ Primary secret key of node
, npUserPublic :: !UserPublic -- ^ All node public keys
, npUserSecret :: !UserSecret -- ^ All node secret keys
, npBaseParams :: !BaseParams -- ^ See 'BaseParams'
, npJLFile :: !(Maybe FilePath) -- ^ File to use for JSON logging.
Expand Down
2 changes: 0 additions & 2 deletions lib/src/Pos/Launcher/Resource.hs
Original file line number Diff line number Diff line change
Expand Up @@ -303,8 +303,6 @@ allocateNodeContext genesisConfig ancd txpSettings ekgStore = do
logDebug "Created slotting context"
putSlotting ncSlottingVar ncSlottingContext
logDebug "Filled slotting future"
ncUserPublic <- newTVarIO $ npUserPublic
logDebug "Created UserPublic variable"
ncUserSecret <- newTVarIO $ npUserSecret
logDebug "Created UserSecret variable"
ncBlockRetrievalQueue <- liftIO $ newTBQueueIO blockRetrievalQueueSize
Expand Down
Loading