From 46acf181329551b44724945e97c8f6eb303874a4 Mon Sep 17 00:00:00 2001 From: John Ky Date: Fri, 8 Jul 2022 11:19:39 +1000 Subject: [PATCH] Add utxoCostPerByte parameter. See https://github.com/input-output-hk/cardano-node/issues/4052 See https://github.com/cardano-foundation/CIPs/pull/265 --- cardano-api/gen/Gen/Cardano/Api/Typed.hs | 2 + cardano-api/src/Cardano/Api/Fees.hs | 11 -- .../src/Cardano/Api/ProtocolParameters.hs | 133 +++++++++++------- cardano-api/src/Cardano/Api/Value.hs | 3 +- cardano-cli/src/Cardano/CLI/Run/Friendly.hs | 5 +- .../src/Cardano/CLI/Shelley/Parsers.hs | 9 ++ .../data/golden/alonzo/transaction-view.out | 2 +- .../src/Cardano/Node/Tracing/Era/Shelley.hs | 4 +- .../Tracing/OrphanInstances/Shelley.hs | 6 +- 9 files changed, 108 insertions(+), 67 deletions(-) diff --git a/cardano-api/gen/Gen/Cardano/Api/Typed.hs b/cardano-api/gen/Gen/Cardano/Api/Typed.hs index 4e529274518..ed91c879218 100644 --- a/cardano-api/gen/Gen/Cardano/Api/Typed.hs +++ b/cardano-api/gen/Gen/Cardano/Api/Typed.hs @@ -765,6 +765,7 @@ genProtocolParameters = <*> Gen.maybe genNat <*> Gen.maybe genNat <*> Gen.maybe genNat + <*> Gen.maybe genLovelace genProtocolParametersUpdate :: Gen ProtocolParametersUpdate genProtocolParametersUpdate = do @@ -795,6 +796,7 @@ genProtocolParametersUpdate = do protocolUpdateMaxValueSize <- Gen.maybe genNat protocolUpdateCollateralPercent <- Gen.maybe genNat protocolUpdateMaxCollateralInputs <- Gen.maybe genNat + protocolUpdateUTxOCostPerByte <- Gen.maybe genLovelace pure ProtocolParametersUpdate{..} diff --git a/cardano-api/src/Cardano/Api/Fees.hs b/cardano-api/src/Cardano/Api/Fees.hs index 0f7dc8d9add..1d1aeaf1e63 100644 --- a/cardano-api/src/Cardano/Api/Fees.hs +++ b/cardano-api/src/Cardano/Api/Fees.hs @@ -793,10 +793,6 @@ data TxBodyErrorAutoBalance = -- parameter, for eras that use this parameter. | TxBodyErrorMissingParamMinUTxO - -- | The 'ProtocolParameters' must provide the value for the cost per - -- word parameter, for eras that use this parameter. - | TxBodyErrorMissingParamCostPerWord - -- | The transaction validity interval is too far into the future. -- See 'TransactionValidityIntervalError' for details. | TxBodyErrorValidityInterval TransactionValidityError @@ -856,9 +852,6 @@ instance Error TxBodyErrorAutoBalance where displayError TxBodyErrorMissingParamMinUTxO = "The minUTxOValue protocol parameter is required but missing" - displayError TxBodyErrorMissingParamCostPerWord = - "The utxoCostPerWord protocol parameter is required but missing" - displayError (TxBodyErrorValidityInterval err) = displayError err @@ -1268,13 +1261,9 @@ calculateMinimumUTxO era txout@(TxOut _ v _ _) pparams' = data MinimumUTxOError = PParamsMinUTxOMissing - | PParamsUTxOCostPerWordMissing deriving Show instance Error MinimumUTxOError where displayError PParamsMinUTxOMissing = "\"minUtxoValue\" field not present in protocol parameters when \ \trying to calculate minimum UTxO value." - displayError PParamsUTxOCostPerWordMissing = - "\"utxoCostPerWord\" field not present in protocol parameters when \ - \trying to calculate minimum UTxO value." diff --git a/cardano-api/src/Cardano/Api/ProtocolParameters.hs b/cardano-api/src/Cardano/Api/ProtocolParameters.hs index b03f158efd6..c6572ed276a 100644 --- a/cardano-api/src/Cardano/Api/ProtocolParameters.hs +++ b/cardano-api/src/Cardano/Api/ProtocolParameters.hs @@ -71,7 +71,7 @@ import Data.Bifunctor (bimap, first) import Data.ByteString (ByteString) import Data.Map.Strict (Map) import qualified Data.Map.Strict as Map -import Data.Maybe (fromMaybe, isJust, isNothing) +import Data.Maybe (fromMaybe, isJust) import Data.String (IsString) import Data.Text (Text) import GHC.Generics @@ -100,7 +100,6 @@ import qualified Cardano.Ledger.Alonzo.PParams as Alonzo import qualified Cardano.Ledger.Alonzo.Scripts as Alonzo import qualified Cardano.Ledger.Babbage.PParams as Babbage -import Cardano.Ledger.Babbage.Translation (coinsPerUTxOWordToCoinsPerUTxOByte) import Text.PrettyBy.Default (display) @@ -286,7 +285,13 @@ data ProtocolParameters = -- | The maximum number of collateral inputs allowed in a transaction. -- -- /Introduced in Alonzo/ - protocolParamMaxCollateralInputs :: Maybe Natural + protocolParamMaxCollateralInputs :: Maybe Natural, + + -- | Cost in ada per byte of UTxO storage. + -- + -- /Introduced in Babbage/ + protocolParamUTxOCostPerByte :: Maybe Lovelace + } deriving (Eq, Generic, Show) @@ -320,6 +325,7 @@ instance FromJSON ProtocolParameters where <*> o .:? "maxValueSize" <*> o .:? "collateralPercentage" <*> o .:? "maxCollateralInputs" + <*> o .:? "utxoCostPerByte" instance ToJSON ProtocolParameters where toJSON ProtocolParameters{..} = @@ -351,6 +357,8 @@ instance ToJSON ProtocolParameters where , "maxValueSize" .= protocolParamMaxValueSize , "collateralPercentage" .= protocolParamCollateralPercent , "maxCollateralInputs" .= protocolParamMaxCollateralInputs + -- Babbage era: + , "utxoCostPerByte" .= protocolParamUTxOCostPerByte ] @@ -473,13 +481,15 @@ data ProtocolParametersUpdate = -- protocolUpdateTreasuryCut :: Maybe Rational, - -- Introduced in Alonzo + -- Introduced in Alonzo, -- | Cost in ada per word of UTxO storage. -- - -- /Introduced in Alonzo/ + -- /Introduced in Alonzo, obsoleted in Babbage by 'protocolUpdateUTxOCostPerByte'/ protocolUpdateUTxOCostPerWord :: Maybe Lovelace, + -- Introduced in Alonzo, + -- | Cost models for script languages that use them. -- -- /Introduced in Alonzo/ @@ -514,7 +524,12 @@ data ProtocolParametersUpdate = -- | The maximum number of collateral inputs allowed in a transaction. -- -- /Introduced in Alonzo/ - protocolUpdateMaxCollateralInputs :: Maybe Natural + protocolUpdateMaxCollateralInputs :: Maybe Natural, + + -- | Cost in ada per byte of UTxO storage. + -- + -- /Introduced in Babbage. Supercedes 'protocolUpdateUTxOCostPerWord'/ + protocolUpdateUTxOCostPerByte :: Maybe Lovelace } deriving (Eq, Show) @@ -547,6 +562,8 @@ instance Semigroup ProtocolParametersUpdate where , protocolUpdateMaxValueSize = merge protocolUpdateMaxValueSize , protocolUpdateCollateralPercent = merge protocolUpdateCollateralPercent , protocolUpdateMaxCollateralInputs = merge protocolUpdateMaxCollateralInputs + -- Introduced in Babbage below. + , protocolUpdateUTxOCostPerByte = merge protocolUpdateUTxOCostPerByte } where -- prefer the right hand side: @@ -585,11 +602,12 @@ instance Monoid ProtocolParametersUpdate where , protocolUpdateMaxValueSize = Nothing , protocolUpdateCollateralPercent = Nothing , protocolUpdateMaxCollateralInputs = Nothing + , protocolUpdateUTxOCostPerByte = Nothing } instance ToCBOR ProtocolParametersUpdate where toCBOR ProtocolParametersUpdate{..} = - CBOR.encodeListLen 25 + CBOR.encodeListLen 26 <> toCBOR protocolUpdateProtocolVersion <> toCBOR protocolUpdateDecentralization <> toCBOR protocolUpdateExtraPraosEntropy @@ -615,10 +633,11 @@ instance ToCBOR ProtocolParametersUpdate where <> toCBOR protocolUpdateMaxValueSize <> toCBOR protocolUpdateCollateralPercent <> toCBOR protocolUpdateMaxCollateralInputs + <> toCBOR protocolUpdateUTxOCostPerByte instance FromCBOR ProtocolParametersUpdate where fromCBOR = do - CBOR.enforceSize "ProtocolParametersUpdate" 25 + CBOR.enforceSize "ProtocolParametersUpdate" 26 ProtocolParametersUpdate <$> fromCBOR <*> fromCBOR @@ -645,6 +664,7 @@ instance FromCBOR ProtocolParametersUpdate where <*> fromCBOR <*> fromCBOR <*> fromCBOR + <*> fromCBOR -- ---------------------------------------------------------------------------- @@ -1033,7 +1053,6 @@ toBabbagePParamsUpdate , protocolUpdatePoolPledgeInfluence , protocolUpdateMonetaryExpansion , protocolUpdateTreasuryCut - , protocolUpdateUTxOCostPerWord , protocolUpdateCostModels , protocolUpdatePrices , protocolUpdateMaxTxExUnits @@ -1041,6 +1060,7 @@ toBabbagePParamsUpdate , protocolUpdateMaxValueSize , protocolUpdateCollateralPercent , protocolUpdateMaxCollateralInputs + , protocolUpdateUTxOCostPerByte } = Babbage.PParams { Babbage._minfeeA = noInlineMaybeToStrictMaybe protocolUpdateTxFeePerByte @@ -1064,8 +1084,6 @@ toBabbagePParamsUpdate noInlineMaybeToStrictMaybe protocolUpdateProtocolVersion , Babbage._minPoolCost = toShelleyLovelace <$> noInlineMaybeToStrictMaybe protocolUpdateMinPoolCost - , Babbage._coinsPerUTxOByte = coinsPerUTxOWordToCoinsPerUTxOByte . toShelleyLovelace <$> - noInlineMaybeToStrictMaybe protocolUpdateUTxOCostPerWord , Babbage._costmdls = if Map.null protocolUpdateCostModels then Ledger.SNothing else either (const Ledger.SNothing) Ledger.SJust @@ -1079,6 +1097,8 @@ toBabbagePParamsUpdate , Babbage._maxValSize = noInlineMaybeToStrictMaybe protocolUpdateMaxValueSize , Babbage._collateralPercentage = noInlineMaybeToStrictMaybe protocolUpdateCollateralPercent , Babbage._maxCollateralInputs = noInlineMaybeToStrictMaybe protocolUpdateMaxCollateralInputs + , Babbage._coinsPerUTxOByte = toShelleyLovelace <$> + noInlineMaybeToStrictMaybe protocolUpdateUTxOCostPerByte } -- ---------------------------------------------------------------------------- @@ -1175,6 +1195,7 @@ fromShelleyPParamsUpdate , protocolUpdateMaxValueSize = Nothing , protocolUpdateCollateralPercent = Nothing , protocolUpdateMaxCollateralInputs = Nothing + , protocolUpdateUTxOCostPerByte = Nothing } fromAlonzoPParamsUpdate :: Alonzo.PParamsUpdate ledgerera @@ -1246,6 +1267,7 @@ fromAlonzoPParamsUpdate , protocolUpdateMaxValueSize = strictMaybeToMaybe _maxValSize , protocolUpdateCollateralPercent = strictMaybeToMaybe _collateralPercentage , protocolUpdateMaxCollateralInputs = strictMaybeToMaybe _maxCollateralInputs + , protocolUpdateUTxOCostPerByte = Nothing } @@ -1301,8 +1323,7 @@ fromBabbagePParamsUpdate strictMaybeToMaybe _rho , protocolUpdateTreasuryCut = Ledger.unboundRational <$> strictMaybeToMaybe _tau - , protocolUpdateUTxOCostPerWord = (*8) . fromShelleyLovelace <$> - strictMaybeToMaybe _coinsPerUTxOByte + , protocolUpdateUTxOCostPerWord = Nothing , protocolUpdateCostModels = maybe mempty fromAlonzoCostModels (strictMaybeToMaybe _costmdls) , protocolUpdatePrices = fromAlonzoPrices <$> @@ -1314,6 +1335,8 @@ fromBabbagePParamsUpdate , protocolUpdateMaxValueSize = strictMaybeToMaybe _maxValSize , protocolUpdateCollateralPercent = strictMaybeToMaybe _collateralPercentage , protocolUpdateMaxCollateralInputs = strictMaybeToMaybe _maxCollateralInputs + , protocolUpdateUTxOCostPerByte = fromShelleyLovelace <$> + strictMaybeToMaybe _coinsPerUTxOByte } @@ -1483,11 +1506,11 @@ toAlonzoPParams ProtocolParameters { protocolParamMaxTxExUnits = Nothing } = toAlonzoPParams ProtocolParameters { protocolParamMaxBlockExUnits = Nothing } = error "toAlonzoPParams: must specify protocolParamMaxBlockExUnits" toAlonzoPParams ProtocolParameters { protocolParamMaxValueSize = Nothing } = - error "toAlonzoPParams: must specify protocolParamMaxValueSize" + error "toAlonzoPParams: must specify protocolParamMaxValueSize" toAlonzoPParams ProtocolParameters { protocolParamCollateralPercent = Nothing } = - error "toAlonzoPParams: must specify protocolParamCollateralPercent" + error "toAlonzoPParams: must specify protocolParamCollateralPercent" toAlonzoPParams ProtocolParameters { protocolParamMaxCollateralInputs = Nothing } = - error "toAlonzoPParams: must specify protocolParamMaxCollateralInputs" + error "toAlonzoPParams: must specify protocolParamMaxCollateralInputs" toBabbagePParams :: ProtocolParameters -> Babbage.PParams ledgerera @@ -1506,7 +1529,7 @@ toBabbagePParams ProtocolParameters { protocolParamPoolPledgeInfluence, protocolParamMonetaryExpansion, protocolParamTreasuryCut, - protocolParamUTxOCostPerWord = Just utxoCostPerWord, + protocolParamUTxOCostPerByte = Just utxoCostPerByte, protocolParamCostModels, protocolParamPrices = Just prices, protocolParamMaxTxExUnits = Just maxTxExUnits, @@ -1540,8 +1563,7 @@ toBabbagePParams ProtocolParameters { (Ledger.boundRational protocolParamTreasuryCut) -- New params in Babbage. - , Babbage._coinsPerUTxOByte = coinsPerUTxOWordToCoinsPerUTxOByte - (toShelleyLovelace utxoCostPerWord) + , Babbage._coinsPerUTxOByte = toShelleyLovelace utxoCostPerByte , Babbage._costmdls = either (\e -> error $ "toAlonzoPParams: invalid cost models, error: " <> e) @@ -1556,8 +1578,8 @@ toBabbagePParams ProtocolParameters { , Babbage._collateralPercentage = collateralPercentage , Babbage._maxCollateralInputs = maxCollateralInputs } -toBabbagePParams ProtocolParameters { protocolParamUTxOCostPerWord = Nothing } = - error "toBabbagePParams: must specify protocolParamUTxOCostPerWord" +toBabbagePParams ProtocolParameters { protocolParamUTxOCostPerByte = Nothing } = + error "toBabbagePParams: must specify protocolParamUTxOCostPerByte" toBabbagePParams ProtocolParameters { protocolParamPrices = Nothing } = error "toBabbagePParams: must specify protocolParamPrices" toBabbagePParams ProtocolParameters { protocolParamMaxTxExUnits = Nothing } = @@ -1627,14 +1649,15 @@ fromShelleyPParams , protocolParamPoolPledgeInfluence = Ledger.unboundRational _a0 , protocolParamMonetaryExpansion = Ledger.unboundRational _rho , protocolParamTreasuryCut = Ledger.unboundRational _tau - , protocolParamUTxOCostPerWord = Nothing - , protocolParamCostModels = Map.empty - , protocolParamPrices = Nothing - , protocolParamMaxTxExUnits = Nothing - , protocolParamMaxBlockExUnits = Nothing - , protocolParamMaxValueSize = Nothing - , protocolParamCollateralPercent = Nothing - , protocolParamMaxCollateralInputs = Nothing + , protocolParamUTxOCostPerWord = Nothing -- Only in Alonzo + , protocolParamCostModels = Map.empty -- Only from Alonzo onwards + , protocolParamPrices = Nothing -- Only from Alonzo onwards + , protocolParamMaxTxExUnits = Nothing -- Only from Alonzo onwards + , protocolParamMaxBlockExUnits = Nothing -- Only from Alonzo onwards + , protocolParamMaxValueSize = Nothing -- Only from Alonzo onwards + , protocolParamCollateralPercent = Nothing -- Only from Alonzo onwards + , protocolParamMaxCollateralInputs = Nothing -- Only from Alonzo onwards + , protocolParamUTxOCostPerByte = Nothing -- Only from babbage onwards } @@ -1693,6 +1716,7 @@ fromAlonzoPParams , protocolParamMaxValueSize = Just _maxValSize , protocolParamCollateralPercent = Just _collateralPercentage , protocolParamMaxCollateralInputs = Just _maxCollateralInputs + , protocolParamUTxOCostPerByte = Nothing -- Only from babbage onwards } fromBabbagePParams :: Babbage.PParams ledgerera -> ProtocolParameters @@ -1740,7 +1764,7 @@ fromBabbagePParams , protocolParamPoolPledgeInfluence = Ledger.unboundRational _a0 , protocolParamMonetaryExpansion = Ledger.unboundRational _rho , protocolParamTreasuryCut = Ledger.unboundRational _tau - , protocolParamUTxOCostPerWord = Just (8 * fromShelleyLovelace _coinsPerUTxOByte) + , protocolParamUTxOCostPerWord = Nothing -- Obsolete from babbage onwards , protocolParamCostModels = fromAlonzoCostModels _costmdls , protocolParamPrices = Just (fromAlonzoPrices _prices) , protocolParamMaxTxExUnits = Just (fromAlonzoExUnits _maxTxExUnits) @@ -1748,6 +1772,7 @@ fromBabbagePParams , protocolParamMaxValueSize = Just _maxValSize , protocolParamCollateralPercent = Just _collateralPercentage , protocolParamMaxCollateralInputs = Just _maxCollateralInputs + , protocolParamUTxOCostPerByte = Just (fromShelleyLovelace _coinsPerUTxOByte) } data ProtocolParametersError = @@ -1790,33 +1815,47 @@ checkProtocolParameters sbe ProtocolParameters{..} = maxValueSize = isJust protocolParamMaxValueSize collateralPercent = isJust protocolParamCollateralPercent maxCollateralInputs = isJust protocolParamMaxCollateralInputs + costPerByte = isJust protocolParamUTxOCostPerByte + decentralization = isJust protocolParamDecentralization + extraPraosEntropy = isJust protocolParamExtraPraosEntropy + + alonzoPParamFieldsRequirements :: [Bool] + alonzoPParamFieldsRequirements = + [ costPerWord + , cModel + , prices + , maxTxUnits + , maxBlockExUnits + , maxValueSize + , collateralPercent + , maxCollateralInputs + , not costPerByte + ] - alonzoRequiredPParamFields :: [Bool] - alonzoRequiredPParamFields = - [ costPerWord - , cModel - , prices - , maxTxUnits - , maxBlockExUnits - , maxValueSize - , collateralPercent - , maxCollateralInputs + babbagePParamFieldsRequirements :: [Bool] + babbagePParamFieldsRequirements = + [ not costPerWord + , cModel + , prices + , maxTxUnits + , maxBlockExUnits + , maxValueSize + , collateralPercent + , maxCollateralInputs + , costPerByte + , not decentralization + , not extraPraosEntropy ] checkAlonzoParams :: Either ProtocolParametersError () checkAlonzoParams = do - if all (== True) alonzoRequiredPParamFields + if all (== True) alonzoPParamFieldsRequirements then return () else Left PParamsErrorMissingAlonzoProtocolParameter - babbageDeprecatedFields :: [Bool] - babbageDeprecatedFields = [ isNothing protocolParamDecentralization - , isNothing protocolParamExtraPraosEntropy - ] - checkBabbageParams :: Either ProtocolParametersError () checkBabbageParams = - if all (== True) $ alonzoRequiredPParamFields ++ babbageDeprecatedFields + if all (== True) babbagePParamFieldsRequirements then return () else Left PParamsErrorMissingAlonzoProtocolParameter diff --git a/cardano-api/src/Cardano/Api/Value.hs b/cardano-api/src/Cardano/Api/Value.hs index 7cbf41385d6..ad69cab44b2 100644 --- a/cardano-api/src/Cardano/Api/Value.hs +++ b/cardano-api/src/Cardano/Api/Value.hs @@ -88,14 +88,13 @@ import Cardano.Api.SerialiseRaw import Cardano.Api.SerialiseUsing import Cardano.Api.Utils (failEitherWith) - -- ---------------------------------------------------------------------------- -- Lovelace -- newtype Lovelace = Lovelace Integer deriving stock (Eq, Ord, Show) - deriving newtype (Enum, Num, ToJSON, FromJSON, ToCBOR, FromCBOR) + deriving newtype (Enum, Real, Integral, Num, ToJSON, FromJSON, ToCBOR, FromCBOR) instance Semigroup Lovelace where Lovelace a <> Lovelace b = Lovelace (a + b) diff --git a/cardano-cli/src/Cardano/CLI/Run/Friendly.hs b/cardano-cli/src/Cardano/CLI/Run/Friendly.hs index e9cdda87103..7084e38300f 100644 --- a/cardano-cli/src/Cardano/CLI/Run/Friendly.hs +++ b/cardano-cli/src/Cardano/CLI/Run/Friendly.hs @@ -231,6 +231,7 @@ friendlyProtocolParametersUpdate , protocolUpdateMaxTxExUnits , protocolUpdateMaxValueSize , protocolUpdatePrices + , protocolUpdateUTxOCostPerByte } = object . catMaybes $ [ protocolUpdateProtocolVersion <&> \(major, minor) -> @@ -258,7 +259,7 @@ friendlyProtocolParametersUpdate ("monetary expansion" .=) . friendlyRational , protocolUpdateTreasuryCut <&> ("treasury expansion" .=) . friendlyRational , protocolUpdateUTxOCostPerWord <&> - ("UTxO storage cost per unit" .=) . friendlyLovelace + ("UTxO storage cost per word" .=) . friendlyLovelace , protocolUpdateCollateralPercent <&> ("collateral inputs share" .=) . (<> "%") . textShow , protocolUpdateMaxBlockExUnits <&> ("max block execution units" .=) @@ -266,6 +267,8 @@ friendlyProtocolParametersUpdate , protocolUpdateMaxTxExUnits <&> ("max transaction execution units" .=) , protocolUpdateMaxValueSize <&> ("max value size" .=) , protocolUpdatePrices <&> ("execution prices" .=) . friendlyPrices + , protocolUpdateUTxOCostPerByte <&> + ("UTxO storage cost per byte" .=) . friendlyLovelace ] friendlyPrices :: ExecutionUnitPrices -> Aeson.Value diff --git a/cardano-cli/src/Cardano/CLI/Shelley/Parsers.hs b/cardano-cli/src/Cardano/CLI/Shelley/Parsers.hs index 45eec8be4bd..aa17c3bce0d 100644 --- a/cardano-cli/src/Cardano/CLI/Shelley/Parsers.hs +++ b/cardano-cli/src/Cardano/CLI/Shelley/Parsers.hs @@ -2903,6 +2903,7 @@ pProtocolParametersUpdate = <*> optional pMaxValueSize <*> optional pCollateralPercent <*> optional pMaxCollateralInputs + <*> optional pUTxOCostPerByte pCostModels :: Parser FilePath pCostModels = @@ -3062,6 +3063,14 @@ pUTxOCostPerWord = <> Opt.help "Cost in lovelace per unit of UTxO storage (from Alonzo era)." ) +pUTxOCostPerByte :: Parser Lovelace +pUTxOCostPerByte = + Opt.option (readerFromParsecParser parseLovelace) + ( Opt.long "utxo-cost-per-byte" + <> Opt.metavar "LOVELACE" + <> Opt.help "Cost in lovelace per unit of UTxO storage (from Babbage era)." + ) + pExecutionUnitPrices :: Parser ExecutionUnitPrices pExecutionUnitPrices = ExecutionUnitPrices <$> Opt.option readRational diff --git a/cardano-cli/test/data/golden/alonzo/transaction-view.out b/cardano-cli/test/data/golden/alonzo/transaction-view.out index 0d4d498bdea..b73070664ab 100644 --- a/cardano-cli/test/data/golden/alonzo/transaction-view.out +++ b/cardano-cli/test/data/golden/alonzo/transaction-view.out @@ -17,7 +17,7 @@ update proposal: updates: - genesis key hash: 1bafa294233a5a7ffbf539ae798da0943aa83d2a19398c2d0e5af114 update: - UTxO storage cost per unit: 194 Lovelace + UTxO storage cost per word: 194 Lovelace collateral inputs share: 200% execution prices: memory: 196/197 diff --git a/cardano-node/src/Cardano/Node/Tracing/Era/Shelley.hs b/cardano-node/src/Cardano/Node/Tracing/Era/Shelley.hs index 6bbc4d7d927..e247bac13a0 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Era/Shelley.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Era/Shelley.hs @@ -434,9 +434,9 @@ instance ( ShelleyBasedEra era mconcat [ "kind" .= String "InvalidWitnessesUTXOW" , "invalidWitnesses" .= map textShow wits' ] - forMachine _dtal (MissingVKeyWitnessesUTXOW (WitHashes wits')) = + forMachine _dtal (MissingVKeyWitnessesUTXOW wits') = mconcat [ "kind" .= String "MissingVKeyWitnessesUTXOW" - , "missingWitnesses" .= wits' + , "missingWitnesses" .= String (Text.pack $ show wits') ] forMachine _dtal (MissingScriptWitnessesUTXOW missingScripts) = mconcat [ "kind" .= String "MissingScriptWitnessesUTXOW" diff --git a/cardano-node/src/Cardano/Tracing/OrphanInstances/Shelley.hs b/cardano-node/src/Cardano/Tracing/OrphanInstances/Shelley.hs index 986f2c20233..f4e9927a9b6 100644 --- a/cardano-node/src/Cardano/Tracing/OrphanInstances/Shelley.hs +++ b/cardano-node/src/Cardano/Tracing/OrphanInstances/Shelley.hs @@ -372,10 +372,10 @@ instance ( ShelleyBasedEra era mconcat [ "kind" .= String "InvalidWitnessesUTXOW" , "invalidWitnesses" .= map textShow wits' ] - toObject _verb (MissingVKeyWitnessesUTXOW (WitHashes wits')) = + toObject _verb (MissingVKeyWitnessesUTXOW wits') = mconcat [ "kind" .= String "MissingVKeyWitnessesUTXOW" - , "missingWitnesses" .= wits' - ] + , "missingWitnesses" .= String (Text.pack $ show wits') + ] toObject _verb (MissingScriptWitnessesUTXOW missingScripts) = mconcat [ "kind" .= String "MissingScriptWitnessesUTXOW" , "missingScripts" .= missingScripts