Merge pull request #170 from Liqwid-Labs/bencross/treasurywithdrawal

Add treasury withdrawal effect to scripts API
This commit is contained in:
emiflake 2022-09-02 18:03:21 +02:00 committed by GitHub
commit 148c01acb8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
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

@ -7,6 +7,7 @@
module Agora.Bootstrap (agoraScripts) where module Agora.Bootstrap (agoraScripts) where
import Agora.AuthorityToken (AuthorityToken (AuthorityToken), authorityTokenPolicy) import Agora.AuthorityToken (AuthorityToken (AuthorityToken), authorityTokenPolicy)
import Agora.Effect.TreasuryWithdrawal (treasuryWithdrawalValidator)
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)
@ -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.