document newly added validation context types

This commit is contained in:
Hongrui Fang 2022-09-06 21:50:48 +08:00 committed by 方泓睿
parent e5dc29f98b
commit 0db0abbe49
No known key found for this signature in database
GPG key ID: F10AB2CCE24113DD
2 changed files with 34 additions and 12 deletions

View file

@ -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)

View file

@ -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