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 95c376d4bc
commit ba6d8ad229
3 changed files with 10 additions and 0 deletions

View file

@ -71,6 +71,8 @@ builders =
& insertBuilder
"neverSucceedsValidator"
(\() -> mkValidatorInfo $ plam $ \_ _ _ -> perror)
-- Provided Effect scripts
& insertBuilder "treasuryWithdrawalEffect" ((.treasuryWithdrawalEffectInfo) . agoraScripts)
{- | Create scripts from params.
@ -87,6 +89,7 @@ agoraScripts params =
, proposalValidatorInfo = mkValidatorInfo' scripts.compiledProposalValidator
, treasuryValidatorInfo = mkValidatorInfo' scripts.compiledTreasuryValidator
, authorityTokenPolicyInfo = mkPolicyInfo' scripts.compiledAuthorityTokenPolicy
, treasuryWithdrawalEffectInfo = mkValidatorInfo' scripts.compiledTreasuryWithdrawalEffect
}
where
governor =
@ -126,6 +129,7 @@ data AgoraScripts = AgoraScripts
, proposalValidatorInfo :: ScriptInfo
, treasuryValidatorInfo :: ScriptInfo
, authorityTokenPolicyInfo :: ScriptInfo
, treasuryWithdrawalEffectInfo :: ScriptInfo
}
deriving anyclass
( -- | @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.Scripts (governorPolicy, governorValidator)
import Agora.Proposal.Scripts (proposalPolicy, proposalValidator)
import Agora.Effect.TreasuryWithdrawal (treasuryWithdrawalValidator)
import Agora.Scripts (AgoraScripts (AgoraScripts))
import Agora.Scripts qualified as Scripts
import Agora.Stake.Scripts (stakePolicy, stakeValidator)
@ -54,6 +55,8 @@ agoraScripts conf gov = scripts
compiledTreasuryValidator = mkValidator' $ treasuryValidator authorityTokenSymbol
compiledTreasuryWithdrawalEffect = mkValidator' $ treasuryWithdrawalValidator authorityTokenSymbol
scripts =
AgoraScripts
{ Scripts.compiledGovernorPolicy = CompiledMintingPolicy compiledGovernorPolicy
@ -64,4 +67,5 @@ agoraScripts conf gov = scripts
, Scripts.compiledProposalValidator = CompiledValidator compiledProposalValidator
, Scripts.compiledTreasuryValidator = CompiledValidator compiledTreasuryValidator
, Scripts.compiledAuthorityTokenPolicy = CompiledMintingPolicy compiledAuthorityPolicy
, Scripts.compiledTreasuryWithdrawalEffect = CompiledValidator compiledTreasuryWithdrawalEffect
}

View file

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