Skip to content

Commit 6334b9d

Browse files
committed
Remove SUBUTXOS rule
since scripts will not be executed for individual subtransactions
1 parent a95e046 commit 6334b9d

File tree

12 files changed

+42
-220
lines changed

12 files changed

+42
-220
lines changed

eras/dijkstra/impl/cardano-ledger-dijkstra.cabal

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ library
6969
Cardano.Ledger.Dijkstra.Rules.SubLedgers
7070
Cardano.Ledger.Dijkstra.Rules.SubPool
7171
Cardano.Ledger.Dijkstra.Rules.SubUtxo
72-
Cardano.Ledger.Dijkstra.Rules.SubUtxos
7372
Cardano.Ledger.Dijkstra.Rules.SubUtxow
7473
Cardano.Ledger.Dijkstra.Rules.Utxo
7574
Cardano.Ledger.Dijkstra.Rules.Utxos

eras/dijkstra/impl/src/Cardano/Ledger/Dijkstra/Era.hs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ module Cardano.Ledger.Dijkstra.Era (
2222
DijkstraSUBLEDGER,
2323
DijkstraSUBLEDGERS,
2424
DijkstraSUBPOOL,
25-
DijkstraSUBUTXOS,
2625
DijkstraSUBUTXOW,
2726
DijkstraSUBUTXO,
2827
DijkstraUTXO,
@@ -115,10 +114,6 @@ data DijkstraSUBUTXO era
115114

116115
type instance EraRule "SUBUTXO" DijkstraEra = DijkstraSUBUTXO DijkstraEra
117116

118-
data DijkstraSUBUTXOS era
119-
120-
type instance EraRule "SUBUTXOS" DijkstraEra = DijkstraSUBUTXOS DijkstraEra
121-
122117
data DijkstraSUBUTXOW era
123118

124119
type instance EraRule "SUBUTXOW" DijkstraEra = DijkstraSUBUTXOW DijkstraEra

eras/dijkstra/impl/src/Cardano/Ledger/Dijkstra/Rules.hs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ module Cardano.Ledger.Dijkstra.Rules (
1919
module Cardano.Ledger.Dijkstra.Rules.SubLedgers,
2020
module Cardano.Ledger.Dijkstra.Rules.SubPool,
2121
module Cardano.Ledger.Dijkstra.Rules.SubUtxo,
22-
module Cardano.Ledger.Dijkstra.Rules.SubUtxos,
2322
module Cardano.Ledger.Dijkstra.Rules.SubUtxow,
2423
module Cardano.Ledger.Dijkstra.Rules.Utxo,
2524
module Cardano.Ledger.Dijkstra.Rules.Utxow,
@@ -52,7 +51,6 @@ import Cardano.Ledger.Dijkstra.Rules.SubLedger
5251
import Cardano.Ledger.Dijkstra.Rules.SubLedgers
5352
import Cardano.Ledger.Dijkstra.Rules.SubPool
5453
import Cardano.Ledger.Dijkstra.Rules.SubUtxo
55-
import Cardano.Ledger.Dijkstra.Rules.SubUtxos
5654
import Cardano.Ledger.Dijkstra.Rules.SubUtxow
5755
import Cardano.Ledger.Dijkstra.Rules.Utxo
5856
import Cardano.Ledger.Dijkstra.Rules.Utxos ()

eras/dijkstra/impl/src/Cardano/Ledger/Dijkstra/Rules/Ledger.hs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ import Cardano.Ledger.Dijkstra.Era (
8484
DijkstraSUBGOV,
8585
DijkstraSUBGOVCERT,
8686
DijkstraSUBUTXO,
87-
DijkstraSUBUTXOS,
8887
DijkstraSUBUTXOW,
8988
DijkstraUTXOW,
9089
)
@@ -469,7 +468,6 @@ instance
469468
, EraRule "SUBLEDGER" era ~ DijkstraSUBLEDGER era
470469
, EraRule "SUBGOV" era ~ DijkstraSUBGOV era
471470
, EraRule "SUBUTXO" era ~ DijkstraSUBUTXO era
472-
, EraRule "SUBUTXOS" era ~ DijkstraSUBUTXOS era
473471
, EraRule "SUBUTXOW" era ~ DijkstraSUBUTXOW era
474472
, EraRule "SUBCERTS" era ~ DijkstraSUBCERTS era
475473
, EraRule "SUBCERT" era ~ DijkstraSUBCERT era
@@ -582,7 +580,6 @@ instance
582580
, EraRule "SUBLEDGER" era ~ DijkstraSUBLEDGER era
583581
, EraRule "SUBGOV" era ~ DijkstraSUBGOV era
584582
, EraRule "SUBUTXO" era ~ DijkstraSUBUTXO era
585-
, EraRule "SUBUTXOS" era ~ DijkstraSUBUTXOS era
586583
, EraRule "SUBUTXOW" era ~ DijkstraSUBUTXOW era
587584
, EraRule "SUBCERTS" era ~ DijkstraSUBCERTS era
588585
, EraRule "SUBCERT" era ~ DijkstraSUBCERT era

eras/dijkstra/impl/src/Cardano/Ledger/Dijkstra/Rules/Mempool.hs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ import Cardano.Ledger.Dijkstra.Era (
6161
DijkstraSUBLEDGERS,
6262
DijkstraSUBPOOL,
6363
DijkstraSUBUTXO,
64-
DijkstraSUBUTXOS,
6564
DijkstraSUBUTXOW,
6665
)
6766
import Cardano.Ledger.Dijkstra.Rules.Ledger (
@@ -257,7 +256,6 @@ instance
257256
, EraRule "SUBLEDGER" era ~ DijkstraSUBLEDGER era
258257
, EraRule "SUBGOV" era ~ DijkstraSUBGOV era
259258
, EraRule "SUBUTXO" era ~ DijkstraSUBUTXO era
260-
, EraRule "SUBUTXOS" era ~ DijkstraSUBUTXOS era
261259
, EraRule "SUBUTXOW" era ~ DijkstraSUBUTXOW era
262260
, EraRule "SUBCERTS" era ~ DijkstraSUBCERTS era
263261
, EraRule "SUBCERT" era ~ DijkstraSUBCERT era

eras/dijkstra/impl/src/Cardano/Ledger/Dijkstra/Rules/SubLedger.hs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ import Cardano.Ledger.Dijkstra.Era (
5353
DijkstraSUBLEDGER,
5454
DijkstraSUBPOOL,
5555
DijkstraSUBUTXO,
56-
DijkstraSUBUTXOS,
5756
DijkstraSUBUTXOW,
5857
)
5958
import Cardano.Ledger.Dijkstra.Rules.SubCerts (DijkstraSubCertsPredFailure (..), SubCertsEnv (..))
@@ -180,7 +179,6 @@ instance
180179
, EraRule "SUBGOV" era ~ DijkstraSUBGOV era
181180
, EraRule "SUBUTXO" era ~ DijkstraSUBUTXO era
182181
, EraRule "SUBUTXOW" era ~ DijkstraSUBUTXOW era
183-
, EraRule "SUBUTXOS" era ~ DijkstraSUBUTXOS era
184182
, EraRule "SUBCERTS" era ~ DijkstraSUBCERTS era
185183
, EraRule "SUBCERT" era ~ DijkstraSUBCERT era
186184
, EraRule "SUBDELEG" era ~ DijkstraSUBDELEG era
@@ -316,7 +314,6 @@ instance
316314
, EraPlutusContext era
317315
, EraRule "SUBUTXO" era ~ DijkstraSUBUTXO era
318316
, EraRule "SUBUTXOW" era ~ DijkstraSUBUTXOW era
319-
, EraRule "SUBUTXOS" era ~ DijkstraSUBUTXOS era
320317
) =>
321318
Embed (DijkstraSUBUTXOW era) (DijkstraSUBLEDGER era)
322319
where

eras/dijkstra/impl/src/Cardano/Ledger/Dijkstra/Rules/SubLedgers.hs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ import Cardano.Ledger.Dijkstra.Era (
4747
DijkstraSUBLEDGERS,
4848
DijkstraSUBPOOL,
4949
DijkstraSUBUTXO,
50-
DijkstraSUBUTXOS,
5150
DijkstraSUBUTXOW,
5251
)
5352
import Cardano.Ledger.Dijkstra.Rules.SubDeleg (DijkstraSubDelegPredFailure)
@@ -167,7 +166,6 @@ instance
167166
, EraRule "SUBLEDGER" era ~ DijkstraSUBLEDGER era
168167
, EraRule "SUBGOV" era ~ DijkstraSUBGOV era
169168
, EraRule "SUBUTXO" era ~ DijkstraSUBUTXO era
170-
, EraRule "SUBUTXOS" era ~ DijkstraSUBUTXOS era
171169
, EraRule "SUBUTXOW" era ~ DijkstraSUBUTXOW era
172170
, EraRule "SUBCERTS" era ~ DijkstraSUBCERTS era
173171
, EraRule "SUBCERT" era ~ DijkstraSUBCERT era

eras/dijkstra/impl/src/Cardano/Ledger/Dijkstra/Rules/SubUtxo.hs

Lines changed: 39 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ module Cardano.Ledger.Dijkstra.Rules.SubUtxo (
2121
DijkstraSubUtxoEvent (..),
2222
) where
2323

24-
import Cardano.Ledger.Alonzo.Plutus.Context (EraPlutusContext)
2524
import Cardano.Ledger.BaseTypes
2625
import Cardano.Ledger.Binary (
2726
DecCBOR (..),
@@ -34,10 +33,8 @@ import Cardano.Ledger.Conway.Governance
3433
import Cardano.Ledger.Dijkstra.Era (
3534
DijkstraEra,
3635
DijkstraSUBUTXO,
37-
DijkstraSUBUTXOS,
3836
)
39-
import Cardano.Ledger.Dijkstra.Rules.SubUtxos (DijkstraSubUtxosPredFailure)
40-
import Cardano.Ledger.Shelley.LedgerState (UTxOState)
37+
import Cardano.Ledger.Shelley.LedgerState (UTxO, UTxOState)
4138
import Cardano.Ledger.Shelley.Rules (UtxoEnv)
4239
import Cardano.Ledger.TxIn (TxIn)
4340
import Control.DeepSeq (NFData)
@@ -49,8 +46,7 @@ import GHC.Generics (Generic)
4946
import NoThunks.Class (InspectHeapNamed (..), NoThunks (..))
5047

5148
data DijkstraSubUtxoPredFailure era
52-
= SubUtxosFailure (PredicateFailure (EraRule "SUBUTXOS" era))
53-
| -- | The bad transaction inputs
49+
= -- | The bad transaction inputs
5450
SubBadInputsUTxO (NonEmptySet TxIn)
5551
| SubOutsideValidityIntervalUTxO
5652
-- | transaction's validity interval
@@ -89,7 +85,6 @@ data DijkstraSubUtxoPredFailure era
8985
deriving stock instance
9086
( Era era
9187
, Eq (Value era)
92-
, Eq (PredicateFailure (EraRule "SUBUTXOS" era))
9388
, Eq (TxOut era)
9489
, Eq (Script era)
9590
, Eq TxIn
@@ -99,7 +94,6 @@ deriving stock instance
9994
deriving stock instance
10095
( Era era
10196
, Show (Value era)
102-
, Show (PredicateFailure (EraRule "SUBUTXOS" era))
10397
, Show (TxOut era)
10498
, Show (Script era)
10599
, Show TxIn
@@ -115,7 +109,6 @@ instance
115109
( Era era
116110
, NFData (Value era)
117111
, NFData (TxOut era)
118-
, NFData (PredicateFailure (EraRule "SUBUTXOS" era))
119112
) =>
120113
NFData (DijkstraSubUtxoPredFailure era)
121114

@@ -125,23 +118,25 @@ type instance EraRuleEvent "SUBUTXO" DijkstraEra = DijkstraSubUtxoEvent Dijkstra
125118

126119
instance InjectRuleFailure "SUBUTXO" DijkstraSubUtxoPredFailure DijkstraEra
127120

128-
instance InjectRuleFailure "SUBUTXO" DijkstraSubUtxosPredFailure DijkstraEra where
129-
injectFailure = SubUtxosFailure
130-
131121
instance InjectRuleEvent "SUBUTXO" DijkstraSubUtxoEvent DijkstraEra
132122

133-
newtype DijkstraSubUtxoEvent era = SubUtxosEvent (Event (EraRule "SUBUTXOS" era))
123+
data DijkstraSubUtxoEvent era
124+
= TotalDeposits (SafeHash EraIndependentTxBody) Coin
125+
| -- | The UTxOs consumed and created by a signal tx
126+
TxUTxODiff
127+
-- | UTxO consumed
128+
(UTxO era)
129+
-- | UTxO created
130+
(UTxO era)
134131
deriving (Generic)
135132

136-
deriving instance Eq (Event (EraRule "SUBUTXOS" era)) => Eq (DijkstraSubUtxoEvent era)
133+
deriving instance (Era era, Eq (TxOut era)) => Eq (DijkstraSubUtxoEvent era)
137134

138-
instance NFData (Event (EraRule "SUBUTXOS" era)) => NFData (DijkstraSubUtxoEvent era)
135+
instance (Era era, NFData (TxOut era)) => NFData (DijkstraSubUtxoEvent era)
139136

140137
instance
141138
( ConwayEraGov era
142139
, EraRule "SUBUTXO" era ~ DijkstraSUBUTXO era
143-
, EraRule "SUBUTXOS" era ~ DijkstraSUBUTXOS era
144-
, Embed (EraRule "SUBUTXOS" era) (DijkstraSUBUTXO era)
145140
, BabbageEraTxBody era
146141
) =>
147142
STS (DijkstraSUBUTXO era)
@@ -157,71 +152,52 @@ instance
157152

158153
dijkstraSubUtxoTransition ::
159154
forall era.
160-
( EraRule "SUBUTXO" era ~ DijkstraSUBUTXO era
161-
, EraRule "SUBUTXOS" era ~ DijkstraSUBUTXOS era
162-
, Embed (EraRule "SUBUTXOS" era) (DijkstraSUBUTXO era)
163-
) =>
155+
EraRule "SUBUTXO" era ~ DijkstraSUBUTXO era =>
164156
TransitionRule (EraRule "SUBUTXO" era)
165157
dijkstraSubUtxoTransition = do
166-
TRC (env, state, signal) <- judgmentContext
167-
trans @(EraRule "SUBUTXOS" era) $
168-
TRC (env, state, signal)
169-
170-
instance
171-
( ConwayEraGov era
172-
, ConwayEraTxBody era
173-
, EraPlutusContext era
174-
, EraRule "SUBUTXOS" era ~ DijkstraSUBUTXOS era
175-
) =>
176-
Embed (DijkstraSUBUTXOS era) (DijkstraSUBUTXO era)
177-
where
178-
wrapFailed = SubUtxosFailure
179-
wrapEvent = SubUtxosEvent
158+
TRC (_, state, _) <- judgmentContext
159+
pure state
180160

181161
instance
182162
( Era era
183163
, EncCBOR (TxOut era)
184-
, EncCBOR (PredicateFailure (EraRule "SUBUTXOS" era))
185164
) =>
186165
EncCBOR (DijkstraSubUtxoPredFailure era)
187166
where
188167
encCBOR =
189168
encode . \case
190-
SubUtxosFailure a -> Sum (SubUtxosFailure @era) 0 !> To a
191-
SubBadInputsUTxO ins -> Sum (SubBadInputsUTxO @era) 1 !> To ins
192-
SubOutsideValidityIntervalUTxO a b -> Sum SubOutsideValidityIntervalUTxO 2 !> To a !> To b
193-
SubMaxTxSizeUTxO mm -> Sum SubMaxTxSizeUTxO 3 !> To mm
194-
SubInputSetEmptyUTxO -> Sum SubInputSetEmptyUTxO 4
195-
SubWrongNetwork right wrongs -> Sum (SubWrongNetwork @era) 5 !> To right !> To wrongs
196-
SubWrongNetworkWithdrawal right wrongs -> Sum (SubWrongNetworkWithdrawal @era) 6 !> To right !> To wrongs
197-
SubOutputTooSmallUTxO outs -> Sum (SubOutputTooSmallUTxO @era) 7 !> To outs
198-
SubOutputBootAddrAttrsTooBig outs -> Sum (SubOutputBootAddrAttrsTooBig @era) 8 !> To outs
199-
SubOutputTooBigUTxO outs -> Sum (SubOutputTooBigUTxO @era) 9 !> To outs
200-
SubWrongNetworkInTxBody mm -> Sum SubWrongNetworkInTxBody 10 !> To mm
201-
SubOutsideForecast a -> Sum SubOutsideForecast 11 !> To a
202-
SubBabbageOutputTooSmallUTxO x -> Sum SubBabbageOutputTooSmallUTxO 12 !> To x
169+
SubBadInputsUTxO ins -> Sum (SubBadInputsUTxO @era) 0 !> To ins
170+
SubOutsideValidityIntervalUTxO a b -> Sum SubOutsideValidityIntervalUTxO 1 !> To a !> To b
171+
SubMaxTxSizeUTxO mm -> Sum SubMaxTxSizeUTxO 2 !> To mm
172+
SubInputSetEmptyUTxO -> Sum SubInputSetEmptyUTxO 3
173+
SubWrongNetwork right wrongs -> Sum (SubWrongNetwork @era) 4 !> To right !> To wrongs
174+
SubWrongNetworkWithdrawal right wrongs -> Sum (SubWrongNetworkWithdrawal @era) 5 !> To right !> To wrongs
175+
SubOutputTooSmallUTxO outs -> Sum (SubOutputTooSmallUTxO @era) 6 !> To outs
176+
SubOutputBootAddrAttrsTooBig outs -> Sum (SubOutputBootAddrAttrsTooBig @era) 7 !> To outs
177+
SubOutputTooBigUTxO outs -> Sum (SubOutputTooBigUTxO @era) 8 !> To outs
178+
SubWrongNetworkInTxBody mm -> Sum SubWrongNetworkInTxBody 9 !> To mm
179+
SubOutsideForecast a -> Sum SubOutsideForecast 10 !> To a
180+
SubBabbageOutputTooSmallUTxO x -> Sum SubBabbageOutputTooSmallUTxO 11 !> To x
203181

204182
instance
205183
( Era era
206184
, DecCBOR (TxOut era)
207185
, EncCBOR (Value era)
208186
, DecCBOR (Value era)
209-
, DecCBOR (PredicateFailure (EraRule "SUBUTXOS" era))
210187
) =>
211188
DecCBOR (DijkstraSubUtxoPredFailure era)
212189
where
213190
decCBOR = decode . Summands "DijkstraSubUtxoPredFailure" $ \case
214-
0 -> SumD SubUtxosFailure <! From
215-
1 -> SumD SubBadInputsUTxO <! From
216-
2 -> SumD SubOutsideValidityIntervalUTxO <! From <! From
217-
3 -> SumD SubMaxTxSizeUTxO <! From
218-
4 -> SumD SubInputSetEmptyUTxO
219-
5 -> SumD SubWrongNetwork <! From <! From
220-
6 -> SumD SubWrongNetworkWithdrawal <! From <! From
221-
7 -> SumD SubOutputTooSmallUTxO <! From
222-
8 -> SumD SubOutputBootAddrAttrsTooBig <! From
223-
9 -> SumD SubOutputTooBigUTxO <! From
224-
10 -> SumD SubWrongNetworkInTxBody <! From
225-
11 -> SumD SubOutsideForecast <! From
226-
12 -> SumD SubBabbageOutputTooSmallUTxO <! From
191+
0 -> SumD SubBadInputsUTxO <! From
192+
1 -> SumD SubOutsideValidityIntervalUTxO <! From <! From
193+
2 -> SumD SubMaxTxSizeUTxO <! From
194+
3 -> SumD SubInputSetEmptyUTxO
195+
4 -> SumD SubWrongNetwork <! From <! From
196+
5 -> SumD SubWrongNetworkWithdrawal <! From <! From
197+
6 -> SumD SubOutputTooSmallUTxO <! From
198+
7 -> SumD SubOutputBootAddrAttrsTooBig <! From
199+
8 -> SumD SubOutputTooBigUTxO <! From
200+
9 -> SumD SubWrongNetworkInTxBody <! From
201+
10 -> SumD SubOutsideForecast <! From
202+
11 -> SumD SubBabbageOutputTooSmallUTxO <! From
227203
n -> Invalid n

0 commit comments

Comments
 (0)