@@ -21,7 +21,6 @@ module Cardano.Ledger.Dijkstra.Rules.SubUtxo (
2121 DijkstraSubUtxoEvent (.. ),
2222) where
2323
24- import Cardano.Ledger.Alonzo.Plutus.Context (EraPlutusContext )
2524import Cardano.Ledger.BaseTypes
2625import Cardano.Ledger.Binary (
2726 DecCBOR (.. ),
@@ -34,10 +33,8 @@ import Cardano.Ledger.Conway.Governance
3433import 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 )
4138import Cardano.Ledger.Shelley.Rules (UtxoEnv )
4239import Cardano.Ledger.TxIn (TxIn )
4340import Control.DeepSeq (NFData )
@@ -49,8 +46,7 @@ import GHC.Generics (Generic)
4946import NoThunks.Class (InspectHeapNamed (.. ), NoThunks (.. ))
5047
5148data 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
8985deriving 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
9994deriving 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
126119instance InjectRuleFailure " SUBUTXO" DijkstraSubUtxoPredFailure DijkstraEra
127120
128- instance InjectRuleFailure " SUBUTXO" DijkstraSubUtxosPredFailure DijkstraEra where
129- injectFailure = SubUtxosFailure
130-
131121instance 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
140137instance
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
158153dijkstraSubUtxoTransition ::
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 )
165157dijkstraSubUtxoTransition = 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
181161instance
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
204182instance
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