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..152a128 100644 --- a/agora/Agora/Bootstrap.hs +++ b/agora/Agora/Bootstrap.hs @@ -7,6 +7,7 @@ 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) @@ -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.