From a36a72f0ed7bf03b1cd89519a00140cfe399b52c Mon Sep 17 00:00:00 2001 From: Neil Mayhew Date: Tue, 19 Nov 2024 18:10:30 -0700 Subject: [PATCH] cardano-ledger upgrade: use new predicate failure API with Mismatch --- .../Consensus/Shelley/Ledger/Mempool.hs | 58 ++++++++++++------- 1 file changed, 38 insertions(+), 20 deletions(-) diff --git a/ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Ledger/Mempool.hs b/ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Ledger/Mempool.hs index db05ee8aa1..ad6f439ad0 100644 --- a/ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Ledger/Mempool.hs +++ b/ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Ledger/Mempool.hs @@ -353,41 +353,51 @@ instance MaxTxSizeUTxO (ShelleyEra c) where , mismatchExpected = txSizeLimit } instance MaxTxSizeUTxO (AllegraEra c) where - maxTxSizeUTxO x y = + maxTxSizeUTxO txSize txSizeLimit = SL.ApplyTxError . pure $ ShelleyEra.UtxowFailure $ ShelleyEra.UtxoFailure - $ AllegraEra.MaxTxSizeUTxO x y + $ AllegraEra.MaxTxSizeUTxO + $ L.Mismatch { mismatchSupplied = txSize + , mismatchExpected = txSizeLimit } instance MaxTxSizeUTxO (MaryEra c) where - maxTxSizeUTxO x y = + maxTxSizeUTxO txSize txSizeLimit = SL.ApplyTxError . pure $ ShelleyEra.UtxowFailure $ ShelleyEra.UtxoFailure - $ AllegraEra.MaxTxSizeUTxO x y + $ AllegraEra.MaxTxSizeUTxO + $ L.Mismatch { mismatchSupplied = txSize + , mismatchExpected = txSizeLimit } instance MaxTxSizeUTxO (AlonzoEra c) where - maxTxSizeUTxO x y = + maxTxSizeUTxO txSize txSizeLimit = SL.ApplyTxError . pure $ ShelleyEra.UtxowFailure $ AlonzoEra.ShelleyInAlonzoUtxowPredFailure $ ShelleyEra.UtxoFailure - $ AlonzoEra.MaxTxSizeUTxO x y + $ AlonzoEra.MaxTxSizeUTxO + $ L.Mismatch { mismatchSupplied = txSize + , mismatchExpected = txSizeLimit } instance MaxTxSizeUTxO (BabbageEra c) where - maxTxSizeUTxO x y = + maxTxSizeUTxO txSize txSizeLimit = SL.ApplyTxError . pure $ ShelleyEra.UtxowFailure $ BabbageEra.UtxoFailure $ BabbageEra.AlonzoInBabbageUtxoPredFailure - $ AlonzoEra.MaxTxSizeUTxO x y + $ AlonzoEra.MaxTxSizeUTxO + $ L.Mismatch { mismatchSupplied = txSize + , mismatchExpected = txSizeLimit } instance MaxTxSizeUTxO (ConwayEra c) where - maxTxSizeUTxO x y = + maxTxSizeUTxO txSize txSizeLimit = SL.ApplyTxError . pure $ ConwayEra.ConwayUtxowFailure $ ConwayEra.UtxoFailure - $ ConwayEra.MaxTxSizeUTxO x y + $ ConwayEra.MaxTxSizeUTxO + $ L.Mismatch { mismatchSupplied = txSize + , mismatchExpected = txSizeLimit } ----- @@ -455,7 +465,7 @@ txMeasureAlonzo st tx@(ShelleyTx _txid tx') = limit = pparams ^. L.ppMaxTxExUnitsL exunits = - validateMaybe (exUnitsTooBigUTxO limit txsz) $ do + validateMaybe (exUnitsTooBigUTxO txsz limit) $ do guard $ pointWiseExUnits (<=) txsz limit Just $ fromExUnits txsz @@ -463,29 +473,35 @@ class ExUnitsTooBigUTxO era where exUnitsTooBigUTxO :: ExUnits -> ExUnits -> SL.ApplyTxError era instance Crypto c => ExUnitsTooBigUTxO (AlonzoEra c) where - exUnitsTooBigUTxO x y = + exUnitsTooBigUTxO txsz limit = SL.ApplyTxError . pure $ ShelleyEra.UtxowFailure $ AlonzoEra.ShelleyInAlonzoUtxowPredFailure $ ShelleyEra.UtxoFailure - $ AlonzoEra.ExUnitsTooBigUTxO x y + $ AlonzoEra.ExUnitsTooBigUTxO + $ L.Mismatch { mismatchSupplied = txsz + , mismatchExpected = limit } instance Crypto c => ExUnitsTooBigUTxO (BabbageEra c) where - exUnitsTooBigUTxO x y = + exUnitsTooBigUTxO txsz limit = SL.ApplyTxError . pure $ ShelleyEra.UtxowFailure $ BabbageEra.AlonzoInBabbageUtxowPredFailure $ AlonzoEra.ShelleyInAlonzoUtxowPredFailure $ ShelleyEra.UtxoFailure $ BabbageEra.AlonzoInBabbageUtxoPredFailure - $ AlonzoEra.ExUnitsTooBigUTxO x y + $ AlonzoEra.ExUnitsTooBigUTxO + $ L.Mismatch { mismatchSupplied = txsz + , mismatchExpected = limit } instance Crypto c => ExUnitsTooBigUTxO (ConwayEra c) where - exUnitsTooBigUTxO x y = + exUnitsTooBigUTxO txsz limit = SL.ApplyTxError . pure $ ConwayEra.ConwayUtxowFailure $ ConwayEra.UtxoFailure - $ ConwayEra.ExUnitsTooBigUTxO x y + $ ConwayEra.ExUnitsTooBigUTxO + $ L.Mismatch { mismatchSupplied = txsz + , mismatchExpected = limit } ----- @@ -546,7 +562,7 @@ txMeasureConway st tx@(ShelleyTx _txid tx') = limit = SL.maxRefScriptSizePerTx refScriptBytes = - validateMaybe (txRefScriptsSizeTooBig limit txsz) $ do + validateMaybe (txRefScriptsSizeTooBig txsz limit) $ do guard $ txsz <= limit Just $ IgnoringOverflow $ ByteSize32 $ fromIntegral txsz @@ -554,9 +570,11 @@ class TxRefScriptsSizeTooBig era where txRefScriptsSizeTooBig :: Int -> Int -> SL.ApplyTxError era instance Crypto c => TxRefScriptsSizeTooBig (ConwayEra c) where - txRefScriptsSizeTooBig x y = + txRefScriptsSizeTooBig txsz limit = SL.ApplyTxError . pure - $ ConwayEra.ConwayTxRefScriptsSizeTooBig x y + $ ConwayEra.ConwayTxRefScriptsSizeTooBig + $ L.Mismatch { mismatchSupplied = txsz + , mismatchExpected = limit } -----