add NoFieldSelectors flag globally

This commit is contained in:
Emily Martins 2022-09-16 16:08:33 +02:00 committed by emiflake
parent 052f20334d
commit 9e3521dcb4
12 changed files with 54 additions and 57 deletions

View file

@ -64,7 +64,7 @@ data AgoraScripts = AgoraScripts
@since 0.2.0
-}
governorSTSymbol :: AgoraScripts -> CurrencySymbol
governorSTSymbol = mintingPolicySymbol . getCompiledMintingPolicy . compiledGovernorPolicy
governorSTSymbol = mintingPolicySymbol . (.getCompiledMintingPolicy) . (.compiledGovernorPolicy)
{- | Get the asset class of the governor state token.
@ -78,14 +78,14 @@ governorSTAssetClass as = AssetClass (governorSTSymbol as, "")
@since 0.2.0
-}
governorValidatorHash :: AgoraScripts -> ValidatorHash
governorValidatorHash = validatorHash . getCompiledValidator . compiledGovernorValidator
governorValidatorHash = validatorHash . (.getCompiledValidator) . (.compiledGovernorValidator)
{- | Get the currency symbol of the propsoal state token.
@since 0.2.0
-}
proposalSTSymbol :: AgoraScripts -> CurrencySymbol
proposalSTSymbol as = mintingPolicySymbol $ getCompiledMintingPolicy as.compiledProposalPolicy
proposalSTSymbol as = mintingPolicySymbol $ (.getCompiledMintingPolicy) as.compiledProposalPolicy
{- | Get the asset class of the governor state token.
@ -99,14 +99,14 @@ proposalSTAssetClass as = AssetClass (proposalSTSymbol as, "")
@since 0.2.0
-}
proposalValidatoHash :: AgoraScripts -> ValidatorHash
proposalValidatoHash = validatorHash . getCompiledValidator . compiledProposalValidator
proposalValidatoHash = validatorHash . (.getCompiledValidator) . (.compiledProposalValidator)
{- | Get the script hash of the governor validator.
@since 0.2.0
-}
stakeSTSymbol :: AgoraScripts -> CurrencySymbol
stakeSTSymbol = mintingPolicySymbol . getCompiledMintingPolicy . compiledStakePolicy
stakeSTSymbol = mintingPolicySymbol . (.getCompiledMintingPolicy) . (.compiledStakePolicy)
{- | Get the asset class of the stake state token.
@ -125,18 +125,18 @@ stakeSTAssetClass as =
@since 0.2.0
-}
stakeValidatorHash :: AgoraScripts -> ValidatorHash
stakeValidatorHash = validatorHash . getCompiledValidator . compiledStakeValidator
stakeValidatorHash = validatorHash . (.getCompiledValidator) . (.compiledStakeValidator)
{- | Get the currency symbol of the authority token.
@since 0.2.0
-}
authorityTokenSymbol :: AgoraScripts -> CurrencySymbol
authorityTokenSymbol = mintingPolicySymbol . getCompiledMintingPolicy . compiledAuthorityTokenPolicy
authorityTokenSymbol = mintingPolicySymbol . (.getCompiledMintingPolicy) . (.compiledAuthorityTokenPolicy)
{- | Get the script hash of the treasury validator.
@since 0.2.0
-}
treasuryValidatorHash :: AgoraScripts -> ValidatorHash
treasuryValidatorHash = validatorHash . getCompiledValidator . compiledTreasuryValidator
treasuryValidatorHash = validatorHash . (.getCompiledValidator) . (.compiledTreasuryValidator)

View file

@ -1,4 +1,5 @@
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE NoFieldSelectors #-}
{- |
Module : Agora.Stake
@ -27,6 +28,7 @@ module Agora.Stake (
PStakeRedeemerHandlerContext (..),
PProposalContext (..),
PStakeRedeemerHandler,
PStakeRedeemerHandlerTerm (..),
StakeRedeemerImpl (..),
-- * Utility functions
@ -38,6 +40,7 @@ module Agora.Stake (
pisCreator,
pisPureCreator,
pisIrrelevant,
runStakeRedeemerHandler,
) where
import Agora.Proposal (PProposalId, PProposalRedeemer, PResultTag, ProposalId, ResultTag)
@ -583,22 +586,27 @@ instance DerivePlutusType PStakeRedeemerHandlerContext where
-}
type PStakeRedeemerHandler = PStakeRedeemerHandlerContext :--> PUnit
newtype PStakeRedeemerHandlerTerm = PStakeRedeemerHandlerTerm (ClosedTerm PStakeRedeemerHandler)
runStakeRedeemerHandler :: PStakeRedeemerHandlerTerm -> ClosedTerm PStakeRedeemerHandler
runStakeRedeemerHandler (PStakeRedeemerHandlerTerm t) = t
{- | A collection of stake redeemer handlers for each stake redeemers.
@since 1.0.0
-}
data StakeRedeemerImpl = StakeRedeemerImpl
{ onDepositWithdraw :: ClosedTerm PStakeRedeemerHandler
{ onDepositWithdraw :: PStakeRedeemerHandlerTerm
-- ^ Handler for 'DepositWithdraw'.
, onDestroy :: ClosedTerm PStakeRedeemerHandler
, onDestroy :: PStakeRedeemerHandlerTerm
-- ^ Handler for 'Destroy'.
, onPermitVote :: ClosedTerm PStakeRedeemerHandler
, onPermitVote :: PStakeRedeemerHandlerTerm
-- ^ Handler for 'permitVotes'.
, onRetractVote :: ClosedTerm PStakeRedeemerHandler
, onRetractVote :: PStakeRedeemerHandlerTerm
-- ^ Handler for 'RetractVotes'.
, onDelegateTo :: ClosedTerm PStakeRedeemerHandler
, onDelegateTo :: PStakeRedeemerHandlerTerm
-- ^ Handler for 'DelegateTo'.
, onClearDelegate :: ClosedTerm PStakeRedeemerHandler
, onClearDelegate :: PStakeRedeemerHandlerTerm
-- ^ handler for 'ClearDelegate'.
}

View file

@ -33,14 +33,7 @@ import Agora.Stake (
PStakeDatum,
PStakeInputContext (PStakeInput),
PStakeOutputContext (PStakeBurnt, PStakeOutput),
PStakeRedeemer (
PClearDelegate,
PDelegateTo,
PDepositWithdraw,
PDestroy,
PPermitVote,
PRetractVotes
),
PStakeRedeemer (PClearDelegate, PDelegateTo, PDepositWithdraw, PDestroy, PPermitVote, PRetractVotes),
PStakeRedeemerContext (
PDepositWithdrawDelta,
PNoMetadata,
@ -49,16 +42,10 @@ import Agora.Stake (
PStakeRedeemerHandlerContext (
PStakeRedeemerHandlerContext
),
StakeRedeemerImpl (
StakeRedeemerImpl,
onClearDelegate,
onDelegateTo,
onDepositWithdraw,
onDestroy,
onPermitVote,
onRetractVote
),
PStakeRedeemerHandlerTerm (PStakeRedeemerHandlerTerm),
StakeRedeemerImpl (..),
pstakeLocked,
runStakeRedeemerHandler,
)
import Agora.Stake.Redeemers (
pclearDelegate,
@ -463,16 +450,17 @@ mkStakeValidator
pure $
popaque $
pmatch stakeRedeemer $ \case
PDestroy _ -> onDestroy impl # noMetadataContext
PPermitVote _ -> onPermitVote impl # noMetadataContext
PRetractVotes _ -> onRetractVote impl # noMetadataContext
PClearDelegate _ -> onClearDelegate impl # noMetadataContext
PDestroy _ -> runStakeRedeemerHandler impl.onDestroy # noMetadataContext
PPermitVote _ -> runStakeRedeemerHandler impl.onPermitVote # noMetadataContext
PRetractVotes _ -> runStakeRedeemerHandler impl.onRetractVote # noMetadataContext
PClearDelegate _ -> runStakeRedeemerHandler impl.onClearDelegate # noMetadataContext
PDelegateTo ((pfield @"pkh" #) -> pkh) ->
onDelegateTo impl #$ mkRedeemerhandlerContext
runStakeRedeemerHandler impl.onDelegateTo
#$ mkRedeemerhandlerContext
#$ pcon
$ PSetDelegateTo pkh
PDepositWithdraw ((pfield @"delta" #) -> delta) ->
onDepositWithdraw impl #$ mkRedeemerhandlerContext
runStakeRedeemerHandler impl.onDepositWithdraw #$ mkRedeemerhandlerContext
#$ pcon
$ PDepositWithdrawDelta delta
@ -527,10 +515,10 @@ stakeValidator ::
stakeValidator =
mkStakeValidator $
StakeRedeemerImpl
{ onDepositWithdraw = pdepositWithdraw
, onDestroy = pdestroy
, onPermitVote = ppermitVote
, onRetractVote = pretractVote
, onDelegateTo = pdelegateTo
, onClearDelegate = pclearDelegate
{ onDepositWithdraw = PStakeRedeemerHandlerTerm pdepositWithdraw
, onDestroy = PStakeRedeemerHandlerTerm pdestroy
, onPermitVote = PStakeRedeemerHandlerTerm ppermitVote
, onRetractVote = PStakeRedeemerHandlerTerm pretractVote
, onDelegateTo = PStakeRedeemerHandlerTerm pdelegateTo
, onClearDelegate = PStakeRedeemerHandlerTerm pclearDelegate
}