diff --git a/agora/Agora/Proposal/Scripts.hs b/agora/Agora/Proposal/Scripts.hs index 19d6893..2ddb373 100644 --- a/agora/Agora/Proposal/Scripts.hs +++ b/agora/Agora/Proposal/Scripts.hs @@ -134,33 +134,49 @@ proposalPolicy (AssetClass (govCs, govTn)) = pure $ popaque (pconstant ()) +{- | Validation context for redeemers which witness multiple stake in the reference + inputs. + + @since 1.0.0 +-} data PWitneseMultipleStakeContext (s :: S) = PWitneseMultipleStakeContext { totalAmount :: Term s PInteger , orderedOwners :: Term s (PList PCredential) } - deriving stock (Generic) + deriving stock + ( -- | @since 1.0.0 + Generic + ) deriving anyclass - ( PlutusType + ( -- | @since 1.0.0 + PlutusType ) +-- | @since 1.0.0 instance DerivePlutusType PWitneseMultipleStakeContext where type DPTStrat _ = PlutusTypeScott +{- | Validation context for redeemers which need to modify a single stake. + + @since 1.0.0 +-} data PSpendSingleStakeContext (s :: S) = PSpendSingleStakeContext { inputStake :: Term s PStakeDatum , outputStake :: Term s PStakeDatum } - deriving stock (Generic) + deriving stock + ( -- | @since 1.0.0 + Generic + ) deriving anyclass - ( PlutusType + ( -- | @since 1.0.0 + PlutusType ) +-- | @since 1.0.0 instance DerivePlutusType PSpendSingleStakeContext where type DPTStrat _ = PlutusTypeScott -pemptyWitneseMultipleStakeContext :: forall (s :: S). Term s PWitneseMultipleStakeContext -pemptyWitneseMultipleStakeContext = pcon $ PWitneseMultipleStakeContext 0 pnil - {- | The validator for Proposals. The documentation for various of the redeemers lives at 'Agora.Proposal.ProposalRedeemer'. @@ -293,8 +309,6 @@ proposalValidator as maximumCosigners = onlyStatusChanged <- pletC $ - -- Only the status of proposals is updated. - -- Only the status of proposals is updated. proposalOut #== mkRecordConstr @@ -376,7 +390,7 @@ proposalValidator as maximumCosigners = sortOwners #$ pfoldl # f - # pemptyWitneseMultipleStakeContext + # pcon (PWitneseMultipleStakeContext 0 pnil) # txInfoF.referenceInputs in plam (# ctx) diff --git a/agora/Agora/Stake/Scripts.hs b/agora/Agora/Stake/Scripts.hs index 3ca8146..da8ed3a 100644 --- a/agora/Agora/Stake/Scripts.hs +++ b/agora/Agora/Stake/Scripts.hs @@ -197,6 +197,11 @@ stakePolicy gtClassRef = -------------------------------------------------------------------------------- +{- | Validation context for stake redeemers that allow only one stake to be + spent in the transaction. + + @since 1.0.0 +-} data POnlyOneStakeContext (s :: S) = POnlyOneStakeContext { ownOutputDatum :: Term s PStakeDatum , ownOutputValue :: Term s (PValue 'Sorted 'Positive) @@ -204,12 +209,15 @@ data POnlyOneStakeContext (s :: S) = POnlyOneStakeContext , onlyLocksUpdated :: Term s PBool } deriving stock - ( Generic + ( -- | @since 1.0.0 + Generic ) deriving anyclass - ( PlutusType + ( -- | @since 1.0.0 + PlutusType ) +-- | @since 1.0.0 instance DerivePlutusType POnlyOneStakeContext where type DPTStrat _ = PlutusTypeScott