From d4262646b15882398252ac371912584f3f4a503b Mon Sep 17 00:00:00 2001 From: John Ky Date: Tue, 25 Nov 2025 22:41:14 +1100 Subject: [PATCH 1/2] stuff --- cabal.project | 1 + cardano-cli/src/Cardano/CLI/EraBased/Query/Run.hs | 14 +++++++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/cabal.project b/cabal.project index 7264a54f37..6dbf7e8e5a 100644 --- a/cabal.project +++ b/cabal.project @@ -18,6 +18,7 @@ index-state: packages: cardano-cli + ../cardano-api/cardano-api program-options ghc-options: -Werror diff --git a/cardano-cli/src/Cardano/CLI/EraBased/Query/Run.hs b/cardano-cli/src/Cardano/CLI/EraBased/Query/Run.hs index 276743c9c5..a8ba3c8bc2 100644 --- a/cardano-cli/src/Cardano/CLI/EraBased/Query/Run.hs +++ b/cardano-cli/src/Cardano/CLI/EraBased/Query/Run.hs @@ -329,9 +329,9 @@ runQueryUTxOCmd case forEraInEonMaybe cEra id of Nothing -> throwCliError $ QueryCmdEraNotSupported anyCEra - Just sbe -> do - utxo <- easyRunQuery (queryUtxo sbe queryFilter) - hoist liftIO $ writeFilteredUTxOs sbe outputFormat mOutFile utxo + Just cOn -> do + utxo <- easyRunQuery (queryUtxo (convert cOn) queryFilter) + hoist liftIO $ writeFilteredUTxOs cOn outputFormat mOutFile utxo ) & fromEitherCIOCli @@ -1212,18 +1212,18 @@ writePoolState era outputFormat mOutFile serialisedCurrentEpochState = do $ writeLazyByteStringOutput mOutFile output writeFilteredUTxOs - :: ShelleyBasedEra era + :: Exp.Era era -> Vary [FormatCborBin, FormatCborHex, FormatJson, FormatText, FormatYaml] -> Maybe (File () Out) -> UTxO era -> ExceptT QueryCmdError IO () writeFilteredUTxOs era format mOutFile utxo = do let output = - shelleyBasedEraConstraints era $ + obtainCommonConstraints era $ format & ( id - . Vary.on (\FormatCborBin -> CBOR.serialize $ toLedgerUTxO era utxo) - . Vary.on (\FormatCborHex -> Base16.encode . CBOR.serialize $ toLedgerUTxO era utxo) + . Vary.on (\FormatCborBin -> CBOR.serialize $ toLedgerUTxO (convert era) utxo) + . Vary.on (\FormatCborHex -> Base16.encode . CBOR.serialize $ toLedgerUTxO (convert era) utxo) . Vary.on (\FormatJson -> Json.encodeJson utxo) . Vary.on (\FormatText -> strictTextToLazyBytestring $ filteredUTxOsToText utxo) . Vary.on (\FormatYaml -> Json.encodeYaml utxo) From 60b7033ceefce473bf95f9cb2edfda3089ae6434 Mon Sep 17 00:00:00 2001 From: John Ky Date: Sun, 30 Nov 2025 16:33:13 +1100 Subject: [PATCH 2/2] stuff --- .../Cardano/CLI/Compatible/Json/Friendly.hs | 27 ++++++++++--------- .../Cardano/CLI/EraBased/Transaction/Run.hs | 5 ++-- .../Debug/TransactionView/Run.hs | 11 ++++++-- 3 files changed, 25 insertions(+), 18 deletions(-) diff --git a/cardano-cli/src/Cardano/CLI/Compatible/Json/Friendly.hs b/cardano-cli/src/Cardano/CLI/Compatible/Json/Friendly.hs index 0e75e77648..10e7830a12 100644 --- a/cardano-cli/src/Cardano/CLI/Compatible/Json/Friendly.hs +++ b/cardano-cli/src/Cardano/CLI/Compatible/Json/Friendly.hs @@ -92,7 +92,7 @@ friendlyTx :: MonadIO m => Vary [FormatJson, FormatYaml] -> Maybe (File () Out) - -> ShelleyBasedEra era + -> Exp.Era era -> Tx era -> m (Either (FileError e) ()) friendlyTx format mOutFile era tx = do @@ -103,7 +103,7 @@ friendlyTxBody :: MonadIO m => Vary [FormatJson, FormatYaml] -> Maybe (File () Out) - -> ShelleyBasedEra era + -> Exp.Era era -> TxBody era -> m (Either (FileError e) ()) friendlyTxBody format mOutFile era tx = do @@ -141,7 +141,7 @@ friendlyProposalImpl friendlyTxImpl :: MonadWarning m - => ShelleyBasedEra era + => Exp.Era era -> Tx era -> m [Aeson.Pair] friendlyTxImpl era tx = @@ -162,26 +162,27 @@ friendlyKeyWitness = friendlyTxBodyImpl :: forall m era . MonadWarning m - => ShelleyBasedEra era + => Exp.Era era -> TxBody era -> m [Aeson.Pair] -friendlyTxBodyImpl sbe tb = do - let era = convert sbe :: CardanoEra era +friendlyTxBodyImpl era tb = do + let cEra = convert era :: CardanoEra era + sbe = convert era :: ShelleyBasedEra era return ( mconcat [ [ "auxiliary scripts" .= friendlyAuxScripts txAuxScripts , "certificates" .= forShelleyBasedEraInEon sbe Null (`friendlyCertificates` txCertificates) , "collateral inputs" .= friendlyCollateralInputs txInsCollateral - , "era" .= era + , "era" .= cEra , "fee" .= friendlyFee txFee , "inputs" .= friendlyInputs txIns , "metadata" .= friendlyMetadata txMetadata , "mint" .= friendlyMintValue txMintValue - , "outputs" .= map (friendlyTxOut sbe) txOuts + , "outputs" .= map (friendlyTxOut era) txOuts , "reference inputs" .= friendlyReferenceInputs txInsReference , "total collateral" .= friendlyTotalCollateral txTotalCollateral - , "return collateral" .= friendlyReturnCollateral sbe txReturnCollateral + , "return collateral" .= friendlyReturnCollateral era txReturnCollateral , "required signers (payment key hashes needed for scripts)" .= friendlyExtraKeyWits txExtraKeyWits , "update proposal" .= friendlyUpdateProposal txUpdateProposal @@ -436,7 +437,7 @@ friendlyTotalCollateral (TxTotalCollateral _ coll) = toJSON coll friendlyReturnCollateral :: () - => ShelleyBasedEra era + => Exp.Era era -> TxReturnCollateral CtxTx era -> Aeson.Value friendlyReturnCollateral era = \case @@ -486,9 +487,9 @@ friendlyStakeAddress (StakeAddress net cred) = , friendlyStakeCredential cred ] -friendlyTxOut :: ShelleyBasedEra era -> TxOut CtxTx era -> Aeson.Value -friendlyTxOut sbe (TxOut addr amount mdatum script) = - shelleyBasedEraConstraints sbe $ +friendlyTxOut :: Exp.Era era -> TxOut CtxTx era -> Aeson.Value +friendlyTxOut era (TxOut addr amount mdatum script) = + obtainCommonConstraints era $ object $ case addr of AddressInEra ByronAddressInAnyEra byronAdr -> diff --git a/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Run.hs b/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Run.hs index ee4374b93f..4598ce67cb 100644 --- a/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Run.hs +++ b/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Run.hs @@ -1578,11 +1578,10 @@ buildTransactionContext IO (AnyCardanoEra, SystemStart, EraHistory, UTxO era, LedgerProtocolParameters era) buildTransactionContext era systemStartOrGenesisFileSource mustUnsafeExtendSafeZone eraHistoryFile utxoFile protocolParamsFile = - shelleyBasedEraConstraints (convert era) $ do + obtainCommonConstraints era $ do ledgerPParams <- firstExceptT TxCmdProtocolParamsError $ - obtainCommonConstraints era $ - readProtocolParameters protocolParamsFile + readProtocolParameters protocolParamsFile EraHistory interpreter <- onLeft (left . TxCmdTextEnvError) $ liftIO $ diff --git a/cardano-cli/src/Cardano/CLI/EraIndependent/Debug/TransactionView/Run.hs b/cardano-cli/src/Cardano/CLI/EraIndependent/Debug/TransactionView/Run.hs index 9984c12710..31523575cc 100644 --- a/cardano-cli/src/Cardano/CLI/EraIndependent/Debug/TransactionView/Run.hs +++ b/cardano-cli/src/Cardano/CLI/EraIndependent/Debug/TransactionView/Run.hs @@ -8,8 +8,13 @@ module Cardano.CLI.EraIndependent.Debug.TransactionView.Run where import Cardano.Api +import Cardano.Api.Experimental qualified as Exp import Cardano.CLI.Compatible.Exception + ( CIO + , fromEitherCli + , fromEitherIOCli + ) import Cardano.CLI.Compatible.Json.Friendly ( friendlyTx , friendlyTxBody @@ -34,16 +39,18 @@ runTransactionViewCmd unwitnessed <- fromEitherIOCli $ readFileTxBody txbodyFile - InAnyShelleyBasedEra era txbody <- pure $ unIncompleteTxBody unwitnessed + InAnyShelleyBasedEra sbe txbody <- pure $ unIncompleteTxBody unwitnessed -- Why are we differentiating between a transaction body and a transaction? -- In the case of a transaction body, we /could/ simply call @makeSignedTransaction []@ -- to get a transaction which would allow us to reuse friendlyTxBS. However, -- this would mean that we'd have an empty list of witnesses mentioned in the output, which -- is arguably not part of the transaction body. + era <- fromEitherCli $ Exp.sbeToEra sbe fromEitherIOCli @(FileError ()) $ friendlyTxBody outputFormat mOutFile era txbody InputTxFile (File txFilePath) -> do txFile <- liftIO $ fileOrPipe txFilePath - InAnyShelleyBasedEra era tx <- fromEitherIOCli (readFileTx txFile) + InAnyShelleyBasedEra sbe tx <- fromEitherIOCli (readFileTx txFile) + era <- fromEitherCli $ Exp.sbeToEra sbe fromEitherIOCli @(FileError ()) $ friendlyTx outputFormat mOutFile era tx