Add the effect validator to the API

This commit is contained in:
Ben Cross 2022-08-29 10:29:52 +01:00 committed by Emily Martins
parent f1236b7492
commit 177fef8a25
3 changed files with 10 additions and 0 deletions

View file

@ -71,6 +71,8 @@ builders =
& insertBuilder & insertBuilder
"neverSucceedsValidator" "neverSucceedsValidator"
(\() -> mkValidatorInfo $ plam $ \_ _ _ -> perror) (\() -> mkValidatorInfo $ plam $ \_ _ _ -> perror)
-- Provided Effect scripts
& insertBuilder "treasuryWithdrawalEffect" ((.treasuryWithdrawalEffectInfo) . agoraScripts)
{- | Create scripts from params. {- | Create scripts from params.
@ -87,6 +89,7 @@ agoraScripts params =
, proposalValidatorInfo = mkValidatorInfo' scripts.compiledProposalValidator , proposalValidatorInfo = mkValidatorInfo' scripts.compiledProposalValidator
, treasuryValidatorInfo = mkValidatorInfo' scripts.compiledTreasuryValidator , treasuryValidatorInfo = mkValidatorInfo' scripts.compiledTreasuryValidator
, authorityTokenPolicyInfo = mkPolicyInfo' scripts.compiledAuthorityTokenPolicy , authorityTokenPolicyInfo = mkPolicyInfo' scripts.compiledAuthorityTokenPolicy
, treasuryWithdrawalEffectInfo = mkValidatorInfo' scripts.compiledTreasuryWithdrawalEffect
} }
where where
governor = governor =
@ -126,6 +129,7 @@ data AgoraScripts = AgoraScripts
, proposalValidatorInfo :: ScriptInfo , proposalValidatorInfo :: ScriptInfo
, treasuryValidatorInfo :: ScriptInfo , treasuryValidatorInfo :: ScriptInfo
, authorityTokenPolicyInfo :: ScriptInfo , authorityTokenPolicyInfo :: ScriptInfo
, treasuryWithdrawalEffectInfo :: ScriptInfo
} }
deriving anyclass deriving anyclass
( -- | @since 0.2.0 ( -- | @since 0.2.0

View file

@ -10,6 +10,7 @@ import Agora.AuthorityToken (AuthorityToken (AuthorityToken), authorityTokenPoli
import Agora.Governor (Governor, gstOutRef, gtClassRef, maximumCosigners) import Agora.Governor (Governor, gstOutRef, gtClassRef, maximumCosigners)
import Agora.Governor.Scripts (governorPolicy, governorValidator) import Agora.Governor.Scripts (governorPolicy, governorValidator)
import Agora.Proposal.Scripts (proposalPolicy, proposalValidator) import Agora.Proposal.Scripts (proposalPolicy, proposalValidator)
import Agora.Effect.TreasuryWithdrawal (treasuryWithdrawalValidator)
import Agora.Scripts (AgoraScripts (AgoraScripts)) import Agora.Scripts (AgoraScripts (AgoraScripts))
import Agora.Scripts qualified as Scripts import Agora.Scripts qualified as Scripts
import Agora.Stake.Scripts (stakePolicy, stakeValidator) import Agora.Stake.Scripts (stakePolicy, stakeValidator)
@ -54,6 +55,8 @@ agoraScripts conf gov = scripts
compiledTreasuryValidator = mkValidator' $ treasuryValidator authorityTokenSymbol compiledTreasuryValidator = mkValidator' $ treasuryValidator authorityTokenSymbol
compiledTreasuryWithdrawalEffect = mkValidator' $ treasuryWithdrawalValidator authorityTokenSymbol
scripts = scripts =
AgoraScripts AgoraScripts
{ Scripts.compiledGovernorPolicy = CompiledMintingPolicy compiledGovernorPolicy { Scripts.compiledGovernorPolicy = CompiledMintingPolicy compiledGovernorPolicy
@ -64,4 +67,5 @@ agoraScripts conf gov = scripts
, Scripts.compiledProposalValidator = CompiledValidator compiledProposalValidator , Scripts.compiledProposalValidator = CompiledValidator compiledProposalValidator
, Scripts.compiledTreasuryValidator = CompiledValidator compiledTreasuryValidator , Scripts.compiledTreasuryValidator = CompiledValidator compiledTreasuryValidator
, Scripts.compiledAuthorityTokenPolicy = CompiledMintingPolicy compiledAuthorityPolicy , Scripts.compiledAuthorityTokenPolicy = CompiledMintingPolicy compiledAuthorityPolicy
, Scripts.compiledTreasuryWithdrawalEffect = CompiledValidator compiledTreasuryWithdrawalEffect
} }

View file

@ -19,6 +19,7 @@ module Agora.Scripts (
treasuryValidatorHash, treasuryValidatorHash,
) where ) where
import Agora.Effect.TreasuryWithdrawal (TreasuryWithdrawalDatum)
import Agora.Governor (GovernorDatum, GovernorRedeemer) import Agora.Governor (GovernorDatum, GovernorRedeemer)
import Agora.Proposal (ProposalDatum, ProposalRedeemer) import Agora.Proposal (ProposalDatum, ProposalRedeemer)
import Agora.Stake (StakeDatum, StakeRedeemer) import Agora.Stake (StakeDatum, StakeRedeemer)
@ -55,6 +56,7 @@ data AgoraScripts = AgoraScripts
, compiledProposalValidator :: CompiledValidator ProposalDatum ProposalRedeemer , compiledProposalValidator :: CompiledValidator ProposalDatum ProposalRedeemer
, compiledTreasuryValidator :: CompiledValidator () () , compiledTreasuryValidator :: CompiledValidator () ()
, compiledAuthorityTokenPolicy :: CompiledMintingPolicy () , compiledAuthorityTokenPolicy :: CompiledMintingPolicy ()
, compiledTreasuryWithdrawalEffect :: CompiledValidator () TreasuryWithdrawalDatum
} }
{- | Get the currency symbol of the governor state token. {- | Get the currency symbol of the governor state token.