From ba6d8ad229347f36a1dcf3ea6460c39b1637e800 Mon Sep 17 00:00:00 2001 From: Ben Cross Date: Mon, 29 Aug 2022 10:29:52 +0100 Subject: [PATCH 1/2] Add the effect validator to the API --- agora-scripts/Main.hs | 4 ++++ agora/Agora/Bootstrap.hs | 4 ++++ agora/Agora/Scripts.hs | 2 ++ 3 files changed, 10 insertions(+) diff --git a/agora-scripts/Main.hs b/agora-scripts/Main.hs index b87ca6e..1be422d 100644 --- a/agora-scripts/Main.hs +++ b/agora-scripts/Main.hs @@ -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 diff --git a/agora/Agora/Bootstrap.hs b/agora/Agora/Bootstrap.hs index 7c8da67..0fbab59 100644 --- a/agora/Agora/Bootstrap.hs +++ b/agora/Agora/Bootstrap.hs @@ -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 } diff --git a/agora/Agora/Scripts.hs b/agora/Agora/Scripts.hs index 186ad18..9443b17 100644 --- a/agora/Agora/Scripts.hs +++ b/agora/Agora/Scripts.hs @@ -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. From d1ab54d4f99e20fe3d2c5546d27b43dc46509e8a Mon Sep 17 00:00:00 2001 From: Ben Cross Date: Fri, 2 Sep 2022 09:03:11 +0100 Subject: [PATCH 2/2] Formatting --- agora/Agora/Bootstrap.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agora/Agora/Bootstrap.hs b/agora/Agora/Bootstrap.hs index 0fbab59..152a128 100644 --- a/agora/Agora/Bootstrap.hs +++ b/agora/Agora/Bootstrap.hs @@ -7,10 +7,10 @@ module Agora.Bootstrap (agoraScripts) where import Agora.AuthorityToken (AuthorityToken (AuthorityToken), authorityTokenPolicy) +import Agora.Effect.TreasuryWithdrawal (treasuryWithdrawalValidator) 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)