@@ -296,9 +296,7 @@ import Data.Bifunctor (Bifunctor (..))
296296import Data.ByteString (ByteString )
297297import qualified Data.ByteString.Base16 as Base16
298298import qualified Data.ByteString.Char8 as BSC
299- import qualified Data.DList as DList
300299import Data.Foldable (for_ )
301- import qualified Data.Foldable as Foldable
302300import Data.Function (on )
303301import Data.Functor (($>) )
304302import Data.List (sortBy )
@@ -309,7 +307,7 @@ import Data.Map.Strict (Map)
309307import qualified Data.Map.Strict as Map
310308import Data.Maybe
311309import Data.Monoid
312- import Data.OSet.Strict (OSet , (|><) )
310+ import Data.OSet.Strict (OSet )
313311import qualified Data.OSet.Strict as OSet
314312import Data.Scientific (toBoundedInteger )
315313import qualified Data.Sequence.Strict as Seq
@@ -1466,18 +1464,19 @@ indexTxVotingProcedures (TxVotingProcedures vProcedures (BuildTxWith sWitMap)) =
14661464-- ----------------------------------------------------------------------------
14671465-- Proposals within transactions (era-dependent)
14681466--
1469-
1467+ -- A proposal procedure houses a governance action that is required to be voted into acceptance when submitted.
14701468data TxProposalProcedures build era where
1469+ -- | No proposals in transaction..
14711470 TxProposalProceduresNone :: TxProposalProcedures build era
1472- -- | Create Tx proposal procedures. Prefer 'mkTxProposalProcedures' smart constructor to using this constructor
1473- -- directly.
1471+ -- | Represents proposal procedures present in transaction.
14741472 TxProposalProcedures
14751473 :: Ledger. EraPParams (ShelleyLedgerEra era )
1476- => OSet (L. ProposalProcedure (ShelleyLedgerEra era ))
1477- -- ^ a set of proposals
1478- -> BuildTxWith build (Map (L. ProposalProcedure (ShelleyLedgerEra era )) (ScriptWitness WitCtxStake era ))
1479- -- ^ a map of witnesses for the proposals. If the proposals are not added to the first constructor
1480- -- parameter too, the sky will fall on your head.
1474+ => OMap
1475+ (L. ProposalProcedure (ShelleyLedgerEra era ))
1476+ ( BuildTxWith
1477+ build
1478+ (Maybe (ScriptWitness WitCtxStake era ))
1479+ )
14811480 -> TxProposalProcedures build era
14821481
14831482deriving instance Eq (TxProposalProcedures build era )
@@ -1492,27 +1491,21 @@ mkTxProposalProcedures
14921491 => IsShelleyBasedEra era
14931492 => [(L. ProposalProcedure (ShelleyLedgerEra era ), Maybe (ScriptWitness WitCtxStake era ))]
14941493 -> TxProposalProcedures build era
1495- mkTxProposalProcedures proposalsWithWitnessesList = do
1496- let (proposals, proposalsWithWitnesses) =
1497- bimap toList toList $
1498- Foldable. foldl' partitionProposals mempty proposalsWithWitnessesList
1494+ mkTxProposalProcedures proposals = do
14991495 shelleyBasedEraConstraints (shelleyBasedEra @ era ) $
1500- TxProposalProcedures (fromList proposals) (pure $ fromList proposalsWithWitnesses)
1501- where
1502- partitionProposals (ps, pws) (p, Nothing ) =
1503- (DList. snoc ps p, pws) -- add a proposal to the list
1504- partitionProposals (ps, pws) (p, Just w) =
1505- (DList. snoc ps p, DList. snoc pws (p, w)) -- add a proposal both to the list and to the witnessed list
1496+ TxProposalProcedures $
1497+ fromList $
1498+ map (second pure ) proposals
15061499
15071500-- | Index proposal procedures by their order ('Ord').
15081501indexTxProposalProcedures
15091502 :: TxProposalProcedures BuildTx era
15101503 -> [(ScriptWitnessIndex , L. ProposalProcedure (ShelleyLedgerEra era ), ScriptWitness WitCtxStake era )]
15111504indexTxProposalProcedures TxProposalProceduresNone = []
1512- indexTxProposalProcedures txpp @ (TxProposalProcedures _ ( BuildTxWith witnesses) ) = do
1513- let allProposalsList = toList $ convProposalProcedures txpp
1505+ indexTxProposalProcedures (TxProposalProcedures proposals ) = do
1506+ let allProposalsList = fst <$> toList proposals
15141507 [ (ScriptWitnessIndexProposing $ fromIntegral ix, proposal, scriptWitness)
1515- | (proposal, scriptWitness) <- toList witnesses
1508+ | (proposal, BuildTxWith ( Just scriptWitness)) <- toList proposals
15161509 , ix <- maybeToList $ List. elemIndex proposal allProposalsList
15171510 ]
15181511
@@ -2228,9 +2221,8 @@ fromLedgerProposalProcedures sbe body =
22282221 forShelleyBasedEraInEonMaybe sbe $ \ w ->
22292222 conwayEraOnwardsConstraints w $
22302223 Featured w $
2231- TxProposalProcedures
2232- (body ^. L. proposalProceduresTxBodyL)
2233- ViewTx
2224+ mkTxProposalProcedures
2225+ (fmap (,Nothing ) . toList $ body ^. L. proposalProceduresTxBodyL)
22342226
22352227fromLedgerVotingProcedures
22362228 :: ()
@@ -2821,15 +2813,10 @@ convReferenceInputs txInsReference =
28212813 TxInsReference _ refTxins -> fromList $ map toShelleyTxIn refTxins
28222814
28232815-- | Returns an OSet of proposals from 'TxProposalProcedures'.
2824- --
2825- -- If 'pws' in 'TxProposalProcedures pps (BuildTxWith pws)' contained proposals not present in 'pps', the'll
2826- -- be sorted ascendingly and snoc-ed to 'pps' if they're not present in 'pps'.
28272816convProposalProcedures
28282817 :: TxProposalProcedures build era -> OSet (L. ProposalProcedure (ShelleyLedgerEra era ))
28292818convProposalProcedures TxProposalProceduresNone = OSet. empty
2830- convProposalProcedures (TxProposalProcedures pp bWits) = do
2831- let wits = fromMaybe mempty $ buildTxWithToMaybe bWits
2832- pp |>< fromList (Map. keys wits)
2819+ convProposalProcedures (TxProposalProcedures proposals) = fromList $ fst <$> toList proposals
28332820
28342821convVotingProcedures :: TxVotingProcedures build era -> L. VotingProcedures (ShelleyLedgerEra era )
28352822convVotingProcedures txVotingProcedures =
0 commit comments