diff --git a/.github/workflows/haskell.yml b/.github/workflows/haskell.yml index c77036fe1b3..b5e3218a77e 100644 --- a/.github/workflows/haskell.yml +++ b/.github/workflows/haskell.yml @@ -74,7 +74,7 @@ jobs: sudo apt-get update sudo apt-get -y install libsodium23 libsodium-dev sudo apt-get -y install libsystemd0 libsystemd-dev - sudo apt-get -y install liblmdb + sudo apt-get -y install liblmdb-dev sudo apt-get -y remove --purge software-properties-common sudo apt-get -y autoremove @@ -86,6 +86,7 @@ jobs: if: runner.os == 'macOS' run: | brew install libsodium lmdb + cp ./.github/workflows/lmdb.pc /usr/local/lib/pkgconfig - name: "MAC: Install build environment (for secp256k1)" if: runner.os == 'macOS' diff --git a/cabal.project b/cabal.project index 033b4d28e31..7326ac6fe4b 100644 --- a/cabal.project +++ b/cabal.project @@ -156,6 +156,7 @@ source-repository-package ouroboros-consensus ouroboros-consensus-byron ouroboros-consensus-cardano + ouroboros-consensus-cardano-tools ouroboros-consensus-diffusion ouroboros-consensus-protocol ouroboros-consensus-shelley diff --git a/cardano-cli/src/Cardano/CLI/Helpers.hs b/cardano-cli/src/Cardano/CLI/Helpers.hs index 6648dd395bb..01a2688b4fe 100644 --- a/cardano-cli/src/Cardano/CLI/Helpers.hs +++ b/cardano-cli/src/Cardano/CLI/Helpers.hs @@ -3,6 +3,7 @@ module Cardano.CLI.Helpers ( HelpersError(..) + , Some(..) , printWarning , deprecationWarning , ensureNewFile @@ -129,3 +130,9 @@ hushM :: forall e m a. Monad m => Either e a -> (e -> m ()) -> m (Maybe a) hushM r f = case r of Right a -> return (Just a) Left e -> f e >> return Nothing + +data Some (f :: k -> Type) where + Some :: f a -> Some f + +instance Show (Some f) where + show = const "Some(..)" diff --git a/cardano-cli/src/Cardano/CLI/Shelley/Commands.hs b/cardano-cli/src/Cardano/CLI/Shelley/Commands.hs index d02a35c718d..95e50a0b28b 100644 --- a/cardano-cli/src/Cardano/CLI/Shelley/Commands.hs +++ b/cardano-cli/src/Cardano/CLI/Shelley/Commands.hs @@ -52,14 +52,14 @@ import Cardano.Api.Shelley import Data.Text (Text) -import Ouroboros.Network.Protocol.LocalStateQuery.Type - +import Cardano.CLI.Helpers (Some(..)) import Cardano.CLI.Shelley.Key (PaymentVerifier, StakeVerifier, VerificationKeyOrFile, VerificationKeyOrHashOrFile, VerificationKeyTextOrFile) import Cardano.CLI.Types import Cardano.Chain.Common (BlockCount) import Cardano.Ledger.Shelley.TxBody (MIRPot) + -- -- Shelley CLI command data types -- @@ -361,8 +361,7 @@ data QueryCmd = | QueryStakePools' AnyConsensusModeParams NetworkId (Maybe OutputFile) | QueryStakeDistribution' AnyConsensusModeParams NetworkId (Maybe OutputFile) | QueryStakeAddressInfo AnyConsensusModeParams StakeAddress NetworkId (Maybe OutputFile) - | QueryUTxOWhole' AnyConsensusModeParams (QueryUTxOFilter 'WholeL) NetworkId (Maybe OutputFile) - | QueryUTxOLarge' AnyConsensusModeParams (QueryUTxOFilter 'LargeL) NetworkId (Maybe OutputFile) + | QueryUTxO' AnyConsensusModeParams (Some QueryUTxOFilter) NetworkId (Maybe OutputFile) | QueryDebugLedgerState' AnyConsensusModeParams NetworkId (Maybe OutputFile) | QueryProtocolState' AnyConsensusModeParams NetworkId (Maybe OutputFile) | QueryStakeSnapshot' @@ -389,8 +388,7 @@ renderQueryCmd cmd = QueryStakePools' {} -> "query stake-pools" QueryStakeDistribution' {} -> "query stake-distribution" QueryStakeAddressInfo {} -> "query stake-address-info" - QueryUTxOWhole' {} -> "query utxo" - QueryUTxOLarge' {} -> "query utxo" + QueryUTxO' {} -> "query utxo" QueryDebugLedgerState' {} -> "query ledger-state" QueryProtocolState' {} -> "query protocol-state" QueryStakeSnapshot' {} -> "query stake-snapshot" diff --git a/cardano-cli/src/Cardano/CLI/Shelley/Parsers.hs b/cardano-cli/src/Cardano/CLI/Shelley/Parsers.hs index 30e6fd7309c..eb1d8981fce 100644 --- a/cardano-cli/src/Cardano/CLI/Shelley/Parsers.hs +++ b/cardano-cli/src/Cardano/CLI/Shelley/Parsers.hs @@ -52,6 +52,7 @@ import Cardano.Api.Shelley import Cardano.Chain.Common (BlockCount (BlockCount)) import Cardano.CLI.Shelley.Commands +import Cardano.CLI.Shelley.Helpers (Some (..)) import Cardano.CLI.Shelley.Key (PaymentVerifier (..), StakeVerifier (..), VerificationKeyOrFile (..), VerificationKeyOrHashOrFile (..), VerificationKeyTextOrFile (..)) @@ -951,23 +952,13 @@ pQueryCmd = <*> pMaybeOutputFile pQueryUTxO :: Parser QueryCmd - pQueryUTxO = pQueryUTxOWhole <|> pQueryUTxOLarge + pQueryUTxO = + (QueryUTxO' + <$> pConsensusModeParams + <*> pQueryUTxOFilterWhole + <*> pNetworkId + <*> pMaybeOutputFile) - pQueryUTxOWhole :: Parser QueryCmd - pQueryUTxOWhole = - QueryUTxOWhole' - <$> pConsensusModeParams - <*> pQueryUTxOFilterWhole - <*> pNetworkId - <*> pMaybeOutputFile - - pQueryUTxOLarge :: Parser QueryCmd - pQueryUTxOLarge = - QueryUTxOLarge' - <$> pConsensusModeParams - <*> pQueryUTxOFilterLarge - <*> pNetworkId - <*> pMaybeOutputFile pQueryStakePools :: Parser QueryCmd pQueryStakePools = @@ -2471,10 +2462,11 @@ pTxByronWitnessCount = <> Opt.value 0 ) -pQueryUTxOFilterWhole :: Parser (QueryUTxOFilter 'WholeL) -pQueryUTxOFilterWhole = - pQueryUTxOWhole - <|> pQueryUTxOByAddress +pQueryUTxOFilterWhole :: Parser (Some QueryUTxOFilter) +pQueryUTxOFilterWhole = ( + Some <$> pQueryUTxOWhole + <|> Some <$> pQueryUTxOByAddress + <|> Some <$> pQueryUTxOByTxIn) where pQueryUTxOWhole = Opt.flag' QueryUTxOWhole @@ -2493,10 +2485,6 @@ pQueryUTxOFilterWhole = <> Opt.help "Filter by Cardano address(es) (Bech32-encoded)." ) -pQueryUTxOFilterLarge :: Parser (QueryUTxOFilter 'LargeL) -pQueryUTxOFilterLarge = - pQueryUTxOByTxIn - where pQueryUTxOByTxIn :: Parser (QueryUTxOFilter 'LargeL) pQueryUTxOByTxIn = QueryUTxOByTxIn . Set.fromList <$> some pByTxIn diff --git a/cardano-cli/src/Cardano/CLI/Shelley/Run/Query.hs b/cardano-cli/src/Cardano/CLI/Shelley/Run/Query.hs index aa2b049abd7..571f465419d 100644 --- a/cardano-cli/src/Cardano/CLI/Shelley/Run/Query.hs +++ b/cardano-cli/src/Cardano/CLI/Shelley/Run/Query.hs @@ -59,7 +59,8 @@ import qualified System.IO as IO import Text.Printf (printf) import Cardano.Binary (DecoderError) -import Cardano.CLI.Helpers (HelpersError (..), hushM, pPrintCBOR, renderHelpersError) +import Cardano.CLI.Helpers (HelpersError (..), Some (..), hushM, + pPrintCBOR, renderHelpersError) import Cardano.CLI.Shelley.Commands import Cardano.CLI.Shelley.Key (VerificationKeyOrHashOrFile, readVerificationKeyOrHashOrFile) @@ -190,9 +191,7 @@ runQueryCmd cmd = runQueryStakeSnapshot consensusModeParams network allOrOnlyPoolIds mOutFile QueryProtocolState' consensusModeParams network mOutFile -> runQueryProtocolState consensusModeParams network mOutFile - QueryUTxOWhole' consensusModeParams qFilter networkId mOutFile -> - runQueryUTxO consensusModeParams qFilter networkId mOutFile - QueryUTxOLarge' consensusModeParams qFilter networkId mOutFile -> + QueryUTxO' consensusModeParams qFilter networkId mOutFile -> runQueryUTxO consensusModeParams qFilter networkId mOutFile QueryKesPeriodInfo consensusModeParams network nodeOpCert mOutFile -> runQueryKesPeriodInfo consensusModeParams network nodeOpCert mOutFile @@ -366,12 +365,12 @@ runQueryTip (AnyConsensusModeParams cModeParams) network mOutFile = do runQueryUTxO :: AnyConsensusModeParams - -> QueryUTxOFilter fp + -> Some QueryUTxOFilter -> NetworkId -> Maybe OutputFile -> ExceptT ShelleyQueryCmdError IO () runQueryUTxO (AnyConsensusModeParams cModeParams) - qfilter network mOutFile = do + (Some qfilter) network mOutFile = do SocketPath sockPath <- firstExceptT ShelleyQueryCmdEnvVarSocketErr $ newExceptT readEnvSocketPath let localNodeConnInfo = LocalNodeConnectInfo cModeParams network sockPath diff --git a/flake.nix b/flake.nix index e1344356ad9..7c92d33f3e7 100644 --- a/flake.nix +++ b/flake.nix @@ -196,7 +196,6 @@ inherit (ouroboros-consensus-cardano-tools.components.exes) db-analyser db-synthesizer; inherit (bech32.components.exes) bech32; } // lib.optionalAttrs hostPlatform.isUnix { - inherit (network-mux.components.exes) cardano-ping; inherit plutus-example; }); }; diff --git a/shell.nix b/shell.nix index 8ffb5d28c02..289574efb5c 100644 --- a/shell.nix +++ b/shell.nix @@ -100,8 +100,6 @@ let nixWrapped cardano-cli bech32 - cardano-ping - cardano-cli cardano-node cardano-topology cardano-tracer