diff --git a/cardano-cli/src/Cardano/CLI/EraBased/Commands/Query.hs b/cardano-cli/src/Cardano/CLI/EraBased/Commands/Query.hs index 26920648c9..4346483bd2 100644 --- a/cardano-cli/src/Cardano/CLI/EraBased/Commands/Query.hs +++ b/cardano-cli/src/Cardano/CLI/EraBased/Commands/Query.hs @@ -38,6 +38,7 @@ import qualified Cardano.Api.Ledger as L import qualified Cardano.Api.Network as Consensus import Cardano.Api.Shelley hiding (QueryInShelleyBasedEra (..)) +import Cardano.CLI.Orphans () import Cardano.CLI.Types.Common import Cardano.CLI.Types.Key @@ -75,9 +76,7 @@ data QueryCmds era -- | Fields that are common to most queries data QueryCommons = QueryCommons - { nodeSocketPath :: !SocketPath - , consensusModeParams :: !ConsensusModeParams - , networkId :: !NetworkId + { nodeConnInfo :: !LocalNodeConnectInfo , target :: !(Consensus.Target ChainPoint) } deriving (Generic, Show) @@ -94,9 +93,7 @@ data QueryLeadershipScheduleCmdArgs = QueryLeadershipScheduleCmdArgs deriving (Generic, Show) data QueryProtocolParametersCmdArgs = QueryProtocolParametersCmdArgs - { nodeSocketPath :: !SocketPath - , consensusModeParams :: !ConsensusModeParams - , networkId :: !NetworkId + { nodeConnInfo :: !LocalNodeConnectInfo , mOutFile :: !(Maybe (File () Out)) } deriving (Generic, Show) @@ -177,9 +174,7 @@ data QueryPoolStateCmdArgs = QueryPoolStateCmdArgs deriving (Generic, Show) data QueryTxMempoolCmdArgs = QueryTxMempoolCmdArgs - { nodeSocketPath :: !SocketPath - , consensusModeParams :: !ConsensusModeParams - , networkId :: !NetworkId + { nodeConnInfo :: !LocalNodeConnectInfo , query :: !TxMempoolQuery , mOutFile :: !(Maybe (File () Out)) } @@ -284,7 +279,7 @@ renderQueryCmds = \case "query kes-period-info" QueryPoolStateCmd{} -> "query pool-state" - QueryTxMempoolCmd (QueryTxMempoolCmdArgs _ _ _ q _) -> + QueryTxMempoolCmd (QueryTxMempoolCmdArgs _ q _) -> "query tx-mempool" <> renderTxMempoolQuery q QuerySlotNumberCmd{} -> "query slot-number" diff --git a/cardano-cli/src/Cardano/CLI/EraBased/Commands/Transaction.hs b/cardano-cli/src/Cardano/CLI/EraBased/Commands/Transaction.hs index 0d61de4995..9b04ef79fa 100644 --- a/cardano-cli/src/Cardano/CLI/EraBased/Commands/Transaction.hs +++ b/cardano-cli/src/Cardano/CLI/EraBased/Commands/Transaction.hs @@ -28,6 +28,7 @@ import Cardano.Api.Shelley import Cardano.CLI.EraBased.Script.Certificate.Types (CliCertificateScriptRequirements) import Cardano.CLI.EraBased.Script.Mint.Types import Cardano.CLI.EraBased.Script.Spend.Types (CliSpendScriptRequirements) +import Cardano.CLI.Orphans () import Cardano.CLI.Types.Common import Cardano.CLI.Types.Governance @@ -91,9 +92,7 @@ data TransactionBuildRawCmdArgs era = TransactionBuildRawCmdArgs -- | Like 'TransactionBuildRaw' but without the fee, and with a change output. data TransactionBuildCmdArgs era = TransactionBuildCmdArgs { currentEra :: !(Exp.Era era) - , nodeSocketPath :: !SocketPath - , consensusModeParams :: !ConsensusModeParams - , networkId :: !NetworkId + , nodeConnInfo :: !LocalNodeConnectInfo , mScriptValidity :: !(Maybe ScriptValidity) -- ^ Mark script as expected to pass or fail validation , mOverrideWitnesses :: !(Maybe Word) @@ -209,9 +208,7 @@ data TransactionSignWitnessCmdArgs = TransactionSignWitnessCmdArgs deriving Show data TransactionSubmitCmdArgs = TransactionSubmitCmdArgs - { nodeSocketPath :: !SocketPath - , consensusModeParams :: !ConsensusModeParams - , networkId :: !NetworkId + { nodeConnInfo :: !LocalNodeConnectInfo , txFile :: !FilePath } deriving Show diff --git a/cardano-cli/src/Cardano/CLI/EraBased/Options/Query.hs b/cardano-cli/src/Cardano/CLI/EraBased/Options/Query.hs index dd920ee50e..e4eb1fd60a 100644 --- a/cardano-cli/src/Cardano/CLI/EraBased/Options/Query.hs +++ b/cardano-cli/src/Cardano/CLI/EraBased/Options/Query.hs @@ -301,9 +301,11 @@ pQueryProtocolParametersCmd :: EnvCli -> Parser (QueryCmds era) pQueryProtocolParametersCmd envCli = fmap QueryProtocolParametersCmd $ QueryProtocolParametersCmdArgs - <$> pSocketPath envCli - <*> pConsensusModeParams - <*> pNetworkId envCli + <$> ( LocalNodeConnectInfo + <$> pConsensusModeParams + <*> pNetworkId envCli + <*> pSocketPath envCli + ) <*> pMaybeOutputFile pQueryTipCmd :: ShelleyBasedEra era -> EnvCli -> Parser (QueryCmds era) @@ -400,9 +402,11 @@ pQueryTxMempoolCmd :: EnvCli -> Parser (QueryCmds era) pQueryTxMempoolCmd envCli = fmap QueryTxMempoolCmd $ QueryTxMempoolCmdArgs - <$> pSocketPath envCli - <*> pConsensusModeParams - <*> pNetworkId envCli + <$> ( LocalNodeConnectInfo + <$> pConsensusModeParams + <*> pNetworkId envCli + <*> pSocketPath envCli + ) <*> pTxMempoolQuery <*> pMaybeOutputFile where @@ -699,7 +703,9 @@ pQueryCommons -> Parser QueryCommons pQueryCommons w envCli = QueryCommons - <$> pSocketPath envCli - <*> pConsensusModeParams - <*> pNetworkId envCli + <$> ( LocalNodeConnectInfo + <$> pConsensusModeParams + <*> pNetworkId envCli + <*> pSocketPath envCli + ) <*> pTarget w diff --git a/cardano-cli/src/Cardano/CLI/EraBased/Options/Transaction.hs b/cardano-cli/src/Cardano/CLI/EraBased/Options/Transaction.hs index d8432e4ae7..89a2333bda 100644 --- a/cardano-cli/src/Cardano/CLI/EraBased/Options/Transaction.hs +++ b/cardano-cli/src/Cardano/CLI/EraBased/Options/Transaction.hs @@ -169,9 +169,11 @@ pTransactionBuildCmd sbe envCli = do pCmd era' = do fmap TransactionBuildCmd $ TransactionBuildCmdArgs era' - <$> pSocketPath envCli - <*> pConsensusModeParams - <*> pNetworkId envCli + <$> ( LocalNodeConnectInfo + <$> pConsensusModeParams + <*> pNetworkId envCli + <*> pSocketPath envCli + ) <*> optional pScriptValidity <*> optional pWitnessOverride <*> some (pTxIn sbe AutoBalance) @@ -331,9 +333,11 @@ pTransactionSubmit :: EnvCli -> Parser (TransactionCmds era) pTransactionSubmit envCli = fmap TransactionSubmitCmd $ TransactionSubmitCmdArgs - <$> pSocketPath envCli - <*> pConsensusModeParams - <*> pNetworkId envCli + <$> ( LocalNodeConnectInfo + <$> pConsensusModeParams + <*> pNetworkId envCli + <*> pSocketPath envCli + ) <*> pTxSubmitFile pTransactionPolicyId :: Parser (TransactionCmds era) diff --git a/cardano-cli/src/Cardano/CLI/EraBased/Run/Query.hs b/cardano-cli/src/Cardano/CLI/EraBased/Run/Query.hs index ea0940b854..80ad6fd5a1 100644 --- a/cardano-cli/src/Cardano/CLI/EraBased/Run/Query.hs +++ b/cardano-cli/src/Cardano/CLI/EraBased/Run/Query.hs @@ -127,17 +127,14 @@ runQueryProtocolParametersCmd -> ExceptT QueryCmdError IO () runQueryProtocolParametersCmd Cmd.QueryProtocolParametersCmdArgs - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.mOutFile } = do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - AnyCardanoEra era <- firstExceptT QueryCmdAcquireFailure $ determineEra localNodeConnInfo + AnyCardanoEra era <- firstExceptT QueryCmdAcquireFailure $ determineEra nodeConnInfo sbe <- forEraInEon @ShelleyBasedEra era (left QueryCmdByronEra) pure let qInMode = QueryInEra $ QueryInShelleyBasedEra sbe Api.QueryProtocolParameters pp <- - executeQueryAnyMode localNodeConnInfo qInMode + executeQueryAnyMode nodeConnInfo qInMode & modifyError QueryCmdConvenienceError writeProtocolParameters sbe mOutFile pp where @@ -195,19 +192,15 @@ runQueryTipCmd ( Cmd.QueryTipCmdArgs { Cmd.commons = Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.target } , Cmd.mOutFile } ) = do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - eLocalState <- ExceptT $ fmap sequence $ - executeLocalStateQueryExpr localNodeConnInfo target $ + executeLocalStateQueryExpr nodeConnInfo target $ runExceptT $ do era <- lift queryCurrentEra & onLeft (left . QueryCmdUnsupportedNtcVersion) eraHistory <- lift queryEraHistory & onLeft (left . QueryCmdUnsupportedNtcVersion) @@ -234,7 +227,7 @@ runQueryTipCmd -- node to client protocol so we use chain sync instead which necessitates another connection. -- At some point when we can stop supporting the older node to client protocols, this fallback -- can be removed. - & onNothing (queryChainTipViaChainSync localNodeConnInfo) + & onNothing (queryChainTipViaChainSync nodeConnInfo) let tipSlotNo :: SlotNo = case chainTip of ChainTipAtGenesis -> 0 @@ -296,9 +289,7 @@ runQueryUTxOCmd ( Cmd.QueryUTxOCmdArgs { Cmd.commons = Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.target } , Cmd.queryFilter @@ -306,11 +297,9 @@ runQueryUTxOCmd , Cmd.mOutFile } ) = do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - join $ lift - ( executeLocalStateQueryExpr localNodeConnInfo target $ runExceptT $ do + ( executeLocalStateQueryExpr nodeConnInfo target $ runExceptT $ do AnyCardanoEra era <- easyRunQueryCurrentEra sbe <- @@ -333,9 +322,7 @@ runQueryKesPeriodInfoCmd Cmd.QueryKesPeriodInfoCmdArgs { Cmd.commons = Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.target } , Cmd.nodeOpCertFp @@ -345,11 +332,9 @@ runQueryKesPeriodInfoCmd lift (readFileTextEnvelope AsOperationalCertificate nodeOpCertFp) & onLeft (left . QueryCmdOpCertCounterReadError) - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - join $ lift - ( executeLocalStateQueryExpr localNodeConnInfo target $ runExceptT $ do + ( executeLocalStateQueryExpr nodeConnInfo target $ runExceptT $ do AnyCardanoEra era <- easyRunQueryCurrentEra sbe <- @@ -369,7 +354,7 @@ runQueryKesPeriodInfoCmd ptclState <- easyRunQuery (queryProtocolState sbe) pure $ do - chainTip <- liftIO $ getLocalChainTip localNodeConnInfo + chainTip <- liftIO $ getLocalChainTip nodeConnInfo let curKesPeriod = currentKesPeriod chainTip gParams oCertStartKesPeriod = opCertStartingKesPeriod opCert @@ -632,19 +617,15 @@ runQueryPoolStateCmd Cmd.QueryPoolStateCmdArgs { Cmd.commons = Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.target } , Cmd.allOrOnlyPoolIds , Cmd.mOutFile } = do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - join $ lift - ( executeLocalStateQueryExpr localNodeConnInfo target $ runExceptT $ do + ( executeLocalStateQueryExpr nodeConnInfo target $ runExceptT $ do AnyCardanoEra era <- easyRunQueryCurrentEra sbe <- @@ -671,24 +652,20 @@ runQueryTxMempoolCmd -> ExceptT QueryCmdError IO () runQueryTxMempoolCmd Cmd.QueryTxMempoolCmdArgs - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.query , Cmd.mOutFile } = do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - localQuery <- case query of TxMempoolQueryTxExists tx -> do AnyCardanoEra era <- - determineEra localNodeConnInfo + determineEra nodeConnInfo & modifyError QueryCmdAcquireFailure pure $ LocalTxMonitoringQueryTx $ TxIdInMode era tx TxMempoolQueryNextTx -> pure LocalTxMonitoringSendNextTx TxMempoolQueryInfo -> pure LocalTxMonitoringMempoolInformation - result <- liftIO $ queryTxMonitoringLocal localNodeConnInfo localQuery + result <- liftIO $ queryTxMonitoringLocal nodeConnInfo localQuery firstExceptT QueryCmdWriteFileError . newExceptT $ writeLazyByteStringOutput mOutFile $ encodePretty result @@ -701,14 +678,12 @@ runQuerySlotNumberCmd Cmd.QuerySlotNumberCmdArgs { Cmd.commons = Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.target } , Cmd.utcTime } = do - SlotNo slotNo <- utcTimeToSlotNo nodeSocketPath consensusModeParams networkId target utcTime + SlotNo slotNo <- utcTimeToSlotNo nodeConnInfo target utcTime liftIO . putStr $ show slotNo runQueryRefScriptSizeCmd @@ -719,20 +694,16 @@ runQueryRefScriptSizeCmd Cmd.QueryRefScriptSizeCmdArgs { Cmd.commons = Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.target } , Cmd.transactionInputs , Cmd.format , Cmd.mOutFile } = do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - join $ lift - ( executeLocalStateQueryExpr localNodeConnInfo target $ runExceptT $ do + ( executeLocalStateQueryExpr nodeConnInfo target $ runExceptT $ do AnyCardanoEra era <- easyRunQueryCurrentEra sbe <- @@ -769,19 +740,15 @@ runQueryStakeSnapshotCmd Cmd.QueryStakeSnapshotCmdArgs { Cmd.commons = Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.target } , Cmd.allOrOnlyPoolIds , Cmd.mOutFile } = do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - join $ lift - ( executeLocalStateQueryExpr localNodeConnInfo target $ runExceptT $ do + ( executeLocalStateQueryExpr nodeConnInfo target $ runExceptT $ do AnyCardanoEra era <- easyRunQueryCurrentEra sbe <- @@ -809,19 +776,15 @@ runQueryLedgerStateCmd ( Cmd.QueryLedgerStateCmdArgs { Cmd.commons = Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.target } , Cmd.mOutFile } ) = do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - join $ lift - ( executeLocalStateQueryExpr localNodeConnInfo target $ runExceptT $ do + ( executeLocalStateQueryExpr nodeConnInfo target $ runExceptT $ do AnyCardanoEra era <- easyRunQueryCurrentEra sbe <- @@ -843,18 +806,14 @@ runQueryLedgerPeerSnapshot Cmd.QueryLedgerPeerSnapshotCmdArgs { Cmd.commons = Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.target } , Cmd.outFile } = do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - join $ lift - ( executeLocalStateQueryExpr localNodeConnInfo target $ runExceptT $ do + ( executeLocalStateQueryExpr nodeConnInfo target $ runExceptT $ do AnyCardanoEra era <- lift queryCurrentEra & onLeft (left . QueryCmdUnsupportedNtcVersion) @@ -878,19 +837,15 @@ runQueryProtocolStateCmd ( Cmd.QueryProtocolStateCmdArgs { Cmd.commons = Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.target } , Cmd.mOutFile } ) = do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - join $ lift - ( executeLocalStateQueryExpr localNodeConnInfo target $ runExceptT $ do + ( executeLocalStateQueryExpr nodeConnInfo target $ runExceptT $ do AnyCardanoEra era <- easyRunQueryCurrentEra sbe <- @@ -914,18 +869,15 @@ runQueryStakeAddressInfoCmd cmd@Cmd.QueryStakeAddressInfoCmdArgs { Cmd.commons = Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.target } , Cmd.mOutFile } = do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath AnyCardanoEra era <- firstExceptT QueryCmdAcquireFailure - (newExceptT $ executeLocalStateQueryExpr localNodeConnInfo target queryCurrentEra) + (newExceptT $ executeLocalStateQueryExpr nodeConnInfo target queryCurrentEra) & onLeft (left . QueryCmdUnsupportedNtcVersion) sbe <- requireShelleyBasedEra era & onNothing (left QueryCmdByronEra) @@ -948,17 +900,13 @@ callQueryStakeAddressInfoCmd Cmd.QueryStakeAddressInfoCmdArgs { Cmd.commons = Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo = nodeConnInfo@LocalNodeConnectInfo{localNodeNetworkId = networkId} , Cmd.target } , Cmd.addr = StakeAddress _ addr } = do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - - lift $ executeLocalStateQueryExpr localNodeConnInfo target $ runExceptT $ do + lift $ executeLocalStateQueryExpr nodeConnInfo target $ runExceptT $ do AnyCardanoEra era <- easyRunQueryCurrentEra sbe <- @@ -1297,19 +1245,15 @@ runQueryStakePoolsCmd Cmd.QueryStakePoolsCmdArgs { Cmd.commons = Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.target } , Cmd.format , Cmd.mOutFile } = do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - join $ lift - ( executeLocalStateQueryExpr localNodeConnInfo target $ runExceptT @QueryCmdError $ do + ( executeLocalStateQueryExpr nodeConnInfo target $ runExceptT @QueryCmdError $ do AnyCardanoEra era <- easyRunQueryCurrentEra sbe <- @@ -1367,19 +1311,15 @@ runQueryStakeDistributionCmd Cmd.QueryStakeDistributionCmdArgs { Cmd.commons = Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.target } , Cmd.format , Cmd.mOutFile } = do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - join $ lift - ( executeLocalStateQueryExpr localNodeConnInfo target $ runExceptT $ do + ( executeLocalStateQueryExpr nodeConnInfo target $ runExceptT $ do AnyCardanoEra era <- easyRunQueryCurrentEra sbe <- @@ -1432,9 +1372,7 @@ runQueryLeadershipScheduleCmd Cmd.QueryLeadershipScheduleCmdArgs { Cmd.commons = Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.target } , Cmd.genesisFp = GenesisFile genFile @@ -1444,8 +1382,6 @@ runQueryLeadershipScheduleCmd , Cmd.format , Cmd.mOutFile } = do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - poolid <- modifyError QueryCmdTextReadError $ readVerificationKeyOrHashOrFile AsStakePoolKey poolColdVerKeyFile @@ -1460,7 +1396,7 @@ runQueryLeadershipScheduleCmd join $ lift - ( executeLocalStateQueryExpr localNodeConnInfo target $ runExceptT $ do + ( executeLocalStateQueryExpr nodeConnInfo target $ runExceptT $ do AnyCardanoEra era <- easyRunQueryCurrentEra sbe <- @@ -1502,7 +1438,7 @@ runQueryLeadershipScheduleCmd serCurrentEpochState <- easyRunQuery (queryCurrentEpochState sbe) pure $ do - tip <- liftIO $ getLocalChainTip localNodeConnInfo + tip <- liftIO $ getLocalChainTip nodeConnInfo schedule <- firstExceptT QueryCmdLeaderShipError $ @@ -1602,15 +1538,12 @@ runQueryConstitution { Cmd.eon , Cmd.commons = Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.target } , Cmd.mOutFile } = conwayEraOnwardsConstraints eon $ do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - constitution <- runQuery localNodeConnInfo target $ queryConstitution eon + constitution <- runQuery nodeConnInfo target $ queryConstitution eon writeOutput mOutFile constitution runQueryGovState @@ -1621,15 +1554,12 @@ runQueryGovState { Cmd.eon , Cmd.commons = Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.target } , Cmd.mOutFile } = conwayEraOnwardsConstraints eon $ do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - govState <- runQuery localNodeConnInfo target $ queryGovState eon + govState <- runQuery nodeConnInfo target $ queryGovState eon writeOutput mOutFile govState runQueryDRepState @@ -1642,24 +1572,20 @@ runQueryDRepState , Cmd.includeStake , Cmd.commons = Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.target } , Cmd.mOutFile } = conwayEraOnwardsConstraints eon $ do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - let drepHashSources = case drepHashSources' of All -> []; Only l -> l drepCreds <- modifyError QueryCmdDRepKeyError $ mapM readDRepCredential drepHashSources - drepState <- runQuery localNodeConnInfo target $ queryDRepState eon $ fromList drepCreds + drepState <- runQuery nodeConnInfo target $ queryDRepState eon $ fromList drepCreds drepStakeDistribution <- case includeStake of Cmd.WithStake -> - runQuery localNodeConnInfo target $ + runQuery nodeConnInfo target $ queryDRepStakeDistribution eon (fromList $ L.DRepCredential <$> drepCreds) Cmd.NoStake -> return mempty @@ -1690,16 +1616,12 @@ runQueryDRepStakeDistribution { Cmd.eon , Cmd.commons = Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.target } , Cmd.drepHashSources = drepHashSources' , Cmd.mOutFile } = conwayEraOnwardsConstraints eon $ do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - let drepFromSource = fmap L.DRepCredential . firstExceptT QueryCmdDRepKeyError @@ -1709,7 +1631,7 @@ runQueryDRepStakeDistribution Only l -> l dreps <- fromList <$> mapM drepFromSource drepHashSources - drepStakeDistribution <- runQuery localNodeConnInfo target $ queryDRepStakeDistribution eon dreps + drepStakeDistribution <- runQuery nodeConnInfo target $ queryDRepStakeDistribution eon dreps writeOutput mOutFile $ Map.assocs drepStakeDistribution @@ -1721,16 +1643,13 @@ runQuerySPOStakeDistribution { Cmd.eon , Cmd.commons = commons@Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo = nodeConnInfo@LocalNodeConnectInfo{localNodeNetworkId = networkId} , Cmd.target } , Cmd.spoHashSources = spoHashSources' , Cmd.mOutFile } = conwayEraOnwardsConstraints eon $ do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - spoFromSource = firstExceptT QueryCmdSPOKeyError . readSPOCredential + let spoFromSource = firstExceptT QueryCmdSPOKeyError . readSPOCredential spoHashSources = case spoHashSources' of All -> [] Only l -> l @@ -1740,11 +1659,11 @@ runQuerySPOStakeDistribution let beo = convert eon spoStakeDistribution :: Map (L.KeyHash L.StakePool StandardCrypto) L.Coin <- - runQuery localNodeConnInfo target $ querySPOStakeDistribution eon spos + runQuery nodeConnInfo target $ querySPOStakeDistribution eon spos let poolIds :: Set (Hash StakePoolKey) = Set.fromList $ map StakePoolKeyHash $ Map.keys spoStakeDistribution serialisedPoolState :: SerialisedPoolState era <- - runQuery localNodeConnInfo target $ queryPoolState beo (Just poolIds) + runQuery nodeConnInfo target $ queryPoolState beo (Just poolIds) PoolState (poolState :: L.PState (ShelleyLedgerEra era)) <- pure (decodePoolState serialisedPoolState) @@ -1799,9 +1718,7 @@ runQueryCommitteeMembersState { Cmd.eon , Cmd.commons = Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.target } , Cmd.committeeColdKeys = coldCredKeys @@ -1809,8 +1726,6 @@ runQueryCommitteeMembersState , Cmd.memberStatuses = memberStatuses , Cmd.mOutFile } = conwayEraOnwardsConstraints eon $ do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - let coldKeysFromVerKeyHashOrFile = modifyError QueryCmdCommitteeColdKeyError . readVerificationKeyOrHashOrFileOrScriptHash AsCommitteeColdKey unCommitteeColdKeyHash @@ -1822,7 +1737,7 @@ runQueryCommitteeMembersState hotKeys <- fromList <$> mapM hotKeysFromVerKeyHashOrFile hotCredKeys committeeState <- - runQuery localNodeConnInfo target $ + runQuery nodeConnInfo target $ queryCommitteeMembersState eon coldKeys hotKeys (fromList memberStatuses) writeOutput mOutFile $ A.toJSON committeeState @@ -1834,17 +1749,13 @@ runQueryTreasuryValue { Cmd.eon , Cmd.commons = Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.target } , Cmd.mOutFile } = conwayEraOnwardsConstraints eon $ do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - L.AccountState (L.Coin treasury) _reserves <- - runQuery localNodeConnInfo target $ queryAccountState eon + runQuery nodeConnInfo target $ queryAccountState eon let treasuryString = show treasury case mOutFile of Nothing -> @@ -1862,22 +1773,18 @@ runQueryProposals { Cmd.eon , Cmd.commons = Cmd.QueryCommons - { Cmd.nodeSocketPath - , Cmd.consensusModeParams - , Cmd.networkId + { Cmd.nodeConnInfo , Cmd.target } , Cmd.govActionIds = govActionIds' , Cmd.mOutFile } = conwayEraOnwardsConstraints eon $ do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - let govActionIds = case govActionIds' of All -> [] Only l -> l govActionStates :: (Seq.Seq (L.GovActionState (ShelleyLedgerEra era))) <- - runQuery localNodeConnInfo target $ queryProposals eon $ Set.fromList govActionIds + runQuery nodeConnInfo target $ queryProposals eon $ Set.fromList govActionIds writeOutput mOutFile govActionStates @@ -1938,15 +1845,11 @@ toTentativeEpochInfo (EraHistory interpreter) = -- | Get slot number for timestamp, or an error if the UTC timestamp is before 'SystemStart' or after N+1 era utcTimeToSlotNo - :: SocketPath - -> ConsensusModeParams - -> NetworkId + :: LocalNodeConnectInfo -> Consensus.Target ChainPoint -> UTCTime -> ExceptT QueryCmdError IO SlotNo -utcTimeToSlotNo nodeSocketPath consensusModeParams networkId target utcTime = do - let localNodeConnInfo = LocalNodeConnectInfo consensusModeParams networkId nodeSocketPath - +utcTimeToSlotNo localNodeConnInfo target utcTime = lift ( executeLocalStateQueryExpr localNodeConnInfo target $ runExceptT $ do systemStart <- easyRunQuerySystemStart diff --git a/cardano-cli/src/Cardano/CLI/EraBased/Run/Transaction.hs b/cardano-cli/src/Cardano/CLI/EraBased/Run/Transaction.hs index 44dd0fbff5..ffeecefcc5 100644 --- a/cardano-cli/src/Cardano/CLI/EraBased/Run/Transaction.hs +++ b/cardano-cli/src/Cardano/CLI/EraBased/Run/Transaction.hs @@ -117,9 +117,11 @@ runTransactionBuildCmd runTransactionBuildCmd Cmd.TransactionBuildCmdArgs { currentEra - , nodeSocketPath - , consensusModeParams - , networkId = networkId + , nodeConnInfo = + nodeConnInfo@LocalNodeConnectInfo + { localNodeNetworkId = networkId + , localNodeSocketPath = nodeSocketPath + } , mScriptValidity = mScriptValidity , mOverrideWitnesses = mOverrideWitnesses , txins @@ -147,17 +149,6 @@ runTransactionBuildCmd let eon = convert currentEra era' = toCardanoEra eon - -- The user can specify an era prior to the era that the node is currently in. - -- We cannot use the user specified era to construct a query against a node because it may differ - -- from the node's era and this will result in the 'QueryEraMismatch' failure. - - let localNodeConnInfo = - LocalNodeConnectInfo - { localConsensusModeParams = consensusModeParams - , localNodeNetworkId = networkId - , localNodeSocketPath = nodeSocketPath - } - txinsAndMaybeScriptWits <- firstExceptT TxCmdCliSpendingScriptWitnessError $ readSpendScriptWitnesses eon txins @@ -244,7 +235,7 @@ runTransactionBuildCmd (balances, _) <- lift ( executeLocalStateQueryExpr - localNodeConnInfo + nodeConnInfo Consensus.VolatileTip (queryStakeAddresses eon allAddrHashes networkId) ) @@ -278,14 +269,14 @@ runTransactionBuildCmd allTxInputs = inputsThatRequireWitnessing ++ allReferenceInputs ++ filteredTxinsc AnyCardanoEra nodeEra <- - lift (executeLocalStateQueryExpr localNodeConnInfo Consensus.VolatileTip queryCurrentEra) + lift (executeLocalStateQueryExpr nodeConnInfo Consensus.VolatileTip queryCurrentEra) & onLeft (left . TxCmdQueryConvenienceError . AcqFailure) & onLeft (left . TxCmdQueryConvenienceError . QceUnsupportedNtcVersion) (txEraUtxo, _, eraHistory, systemStart, _, _, _, featuredCurrentTreasuryValueM) <- lift ( executeLocalStateQueryExpr - localNodeConnInfo + nodeConnInfo Consensus.VolatileTip (queryStateForBalancedTx nodeEra allTxInputs []) ) @@ -1515,23 +1506,14 @@ runTransactionSubmitCmd -> ExceptT TxCmdError IO () runTransactionSubmitCmd Cmd.TransactionSubmitCmdArgs - { nodeSocketPath - , consensusModeParams - , networkId + { nodeConnInfo , txFile } = do txFileOrPipe <- liftIO $ fileOrPipe txFile InAnyShelleyBasedEra era tx <- lift (readFileTx txFileOrPipe) & onLeft (left . TxCmdTextEnvCddlError) let txInMode = TxInMode era tx - localNodeConnInfo = - LocalNodeConnectInfo - { localConsensusModeParams = consensusModeParams - , localNodeNetworkId = networkId - , localNodeSocketPath = nodeSocketPath - } - - res <- liftIO $ submitTxToNodeLocal localNodeConnInfo txInMode + res <- liftIO $ submitTxToNodeLocal nodeConnInfo txInMode case res of Net.Tx.SubmitSuccess -> do liftIO $ Text.hPutStrLn IO.stderr "Transaction successfully submitted. Transaction hash is:" diff --git a/cardano-cli/src/Cardano/CLI/Orphans.hs b/cardano-cli/src/Cardano/CLI/Orphans.hs index 5d7a5b42da..4aab279019 100644 --- a/cardano-cli/src/Cardano/CLI/Orphans.hs +++ b/cardano-cli/src/Cardano/CLI/Orphans.hs @@ -1,6 +1,7 @@ +{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE GADTs #-} -{-# LANGUAGE LambdaCase #-} {-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE StandaloneDeriving #-} {-# OPTIONS_GHC -Wno-orphans #-} module Cardano.CLI.Orphans @@ -13,6 +14,7 @@ import qualified Cardano.Api.Ledger as L import Cardano.Api.Shelley (scriptDataToJsonDetailedSchema) import Data.Aeson +import GHC.Generics -- TODO upstream this orphaned instance to the ledger instance (L.EraTxOut ledgerera, L.EraGov ledgerera) => ToJSON (L.NewEpochState ledgerera) where @@ -32,3 +34,8 @@ instance ToJSON HashableScriptData where [ "hash" .= hashScriptDataBytes hsd , "json" .= scriptDataToJsonDetailedSchema hsd ] + +-- TODO move LocalNodeConnectInfo to cardano-api +deriving instance Generic LocalNodeConnectInfo + +deriving instance Show LocalNodeConnectInfo