From 01d0efc594346c16cd65d27bef7409ccdf2f3e6a Mon Sep 17 00:00:00 2001 From: Hongrui Fang Date: Wed, 16 Nov 2022 12:32:52 +0800 Subject: [PATCH] fix documentation; apply suggestions --- agora/Agora/AuthorityToken.hs | 7 ++++--- agora/Agora/Effect/GovernorMutation.hs | 4 ++-- agora/Agora/Governor.hs | 6 +++++- agora/Agora/Governor/Scripts.hs | 8 ++++---- agora/Agora/Proposal/Scripts.hs | 6 +++--- agora/Agora/Treasury.hs | 2 +- agora/Agora/Utils.hs | 11 +++++++---- 7 files changed, 26 insertions(+), 18 deletions(-) diff --git a/agora/Agora/AuthorityToken.hs b/agora/Agora/AuthorityToken.hs index 90612d6..b1bffc0 100644 --- a/agora/Agora/AuthorityToken.hs +++ b/agora/Agora/AuthorityToken.hs @@ -13,7 +13,7 @@ module Agora.AuthorityToken ( import Agora.Governor (PGovernorRedeemer (PMintGATs), presolveGovernorRedeemer) import Agora.SafeMoney (AuthorityTokenTag, GovernorSTTag) -import Agora.Utils (psymbolValueOfT, ptag, ptoScottEncodingT, puntag) +import Agora.Utils (ptag, ptaggedSymbolValueOf, ptoScottEncodingT, puntag) import Plutarch.Api.V1 ( PCredential (..), PCurrencySymbol (..), @@ -101,7 +101,7 @@ singleAuthorityTokenBurned :: Term s PBool singleAuthorityTokenBurned gatCs inputs mint = unTermCont $ do let gatAmountMinted :: Term _ PInteger - gatAmountMinted = psymbolValueOfT # gatCs # mint + gatAmountMinted = ptaggedSymbolValueOf # gatCs # mint let inputsWithGAT = pfoldMap @@ -117,12 +117,13 @@ singleAuthorityTokenBurned gatCs inputs mint = unTermCont $ do $ resolved pure . pcon . PSum $ - psymbolValueOfT + ptaggedSymbolValueOf # gatCs #$ pfield @"value" #$ resolved ) # inputs + pure $ foldr1 (#&&) diff --git a/agora/Agora/Effect/GovernorMutation.hs b/agora/Agora/Effect/GovernorMutation.hs index 422b5ee..2050a28 100644 --- a/agora/Agora/Effect/GovernorMutation.hs +++ b/agora/Agora/Effect/GovernorMutation.hs @@ -26,7 +26,7 @@ import Agora.Governor ( PGovernorRedeemer, ) import Agora.SafeMoney (AuthorityTokenTag, GovernorSTTag) -import Agora.Utils (psymbolValueOfT) +import Agora.Utils (ptaggedSymbolValueOf) import Plutarch.Api.V1 (PCurrencySymbol, PValidatorHash) import Plutarch.Api.V2 ( PScriptPurpose (PSpending), @@ -187,7 +187,7 @@ mutateGovernorValidator = foldl1 (#&&) [ ptraceIfFalse "Governor UTxO should carry GST" $ - psymbolValueOfT + ptaggedSymbolValueOf # gstSymbol # (pfield @"value" # inputF.resolved) #== 1 diff --git a/agora/Agora/Governor.hs b/agora/Agora/Governor.hs index d536cc2..e7cb192 100644 --- a/agora/Agora/Governor.hs +++ b/agora/Agora/Governor.hs @@ -298,7 +298,11 @@ pisGovernorDatumValid = phoistAcyclic $ pisMaxTimeRangeWidthValid # datumF.createProposalTimeRangeMaxWidth ] --- | @since 1.0.0 +{- | Find the governor input and resolve the corresponding governor redeemer, + given the assetclass of GST. + + @since 1.0.0 +-} presolveGovernorRedeemer :: forall (s :: S). Term diff --git a/agora/Agora/Governor/Scripts.hs b/agora/Agora/Governor/Scripts.hs index c663244..f417e33 100644 --- a/agora/Agora/Governor/Scripts.hs +++ b/agora/Agora/Governor/Scripts.hs @@ -41,7 +41,7 @@ import Agora.Stake ( pnumCreatedProposals, presolveStakeInputDatum, ) -import Agora.Utils (psymbolValueOfT, ptoScottEncodingT, puntag) +import Agora.Utils (ptaggedSymbolValueOf, ptoScottEncodingT, puntag) import Data.Function (on) import Plutarch.Api.V1 (PCurrencySymbol, PValidatorHash) import Plutarch.Api.V1.AssocMap (plookup) @@ -321,7 +321,7 @@ governorValidator = outputF.address governorInputF.address , ptraceIfFalse "Has governor ST" $ - psymbolValueOfT # gstSymbol # outputF.value #== 1 + ptaggedSymbolValueOf # gstSymbol # outputF.value #== 1 ] datum = @@ -474,7 +474,7 @@ governorValidator = -- Filter out proposal inputs and ouputs using PST and the address of proposal validator. pguardC "The governor can only process one proposal at a time" $ - (psymbolValueOfT # pstSymbol #$ pvalueSpent # txInfoF.inputs) #== 1 + (ptaggedSymbolValueOf # pstSymbol #$ pvalueSpent # txInfoF.inputs) #== 1 let proposalInputDatum = passertPJust @@ -507,7 +507,7 @@ governorValidator = outputF <- pletFieldsC @'["address", "datum", "value"] output let atAmount = - psymbolValueOfT + ptaggedSymbolValueOf # atSymbol # outputF.value diff --git a/agora/Agora/Proposal/Scripts.hs b/agora/Agora/Proposal/Scripts.hs index 72cb906..b9e0625 100644 --- a/agora/Agora/Proposal/Scripts.hs +++ b/agora/Agora/Proposal/Scripts.hs @@ -36,7 +36,7 @@ import Agora.Stake ( pisVoter, presolveStakeInputDatum, ) -import Agora.Utils (psymbolValueOfT, ptoScottEncodingT) +import Agora.Utils (ptaggedSymbolValueOf, ptoScottEncodingT) import Data.Function (on) import Plutarch.Api.V1 (PCredential, PCurrencySymbol) import Plutarch.Api.V1.AssocMap (plookup) @@ -287,7 +287,7 @@ proposalValidator = outputF.address proposalInputF.address , ptraceIfFalse "Has proposal ST" $ - psymbolValueOfT # pstSymbol # outputF.value #== 1 + ptaggedSymbolValueOf # pstSymbol # outputF.value #== 1 ] handleProposalUTxO = @@ -724,7 +724,7 @@ proposalValidator = . (pfield @"resolved" #) -> value ) -> - psymbolValueOfT # gstSymbol # value #== 1 + ptaggedSymbolValueOf # gstSymbol # value #== 1 ) # pfromData txInfoF.inputs diff --git a/agora/Agora/Treasury.hs b/agora/Agora/Treasury.hs index 21453a3..a48793e 100644 --- a/agora/Agora/Treasury.hs +++ b/agora/Agora/Treasury.hs @@ -27,7 +27,7 @@ import "liqwid-plutarch-extra" Plutarch.Extra.TermCont (pguardC, pletFieldsC, pm Following arguments should be provided(in this order): 1. authority token symbol - @since 0.1.0 + @since 1.0.0 -} treasuryValidator :: ClosedTerm (PTagged AuthorityTokenTag PCurrencySymbol :--> PValidator) diff --git a/agora/Agora/Utils.hs b/agora/Agora/Utils.hs index ca13169..c589ed5 100644 --- a/agora/Agora/Utils.hs +++ b/agora/Agora/Utils.hs @@ -14,7 +14,7 @@ module Agora.Utils ( pisNothing, pisDNothing, ptoScottEncodingT, - psymbolValueOfT, + ptaggedSymbolValueOf, ptag, puntag, ) where @@ -88,8 +88,11 @@ ptoScottEncodingT = phoistAcyclic $ plam $ \d -> punsafeDowncast $ ptoScottEncoding #$ pto d --- | @since 1.0.0 -psymbolValueOfT :: +{- | Get the sum of all values belonging to a particular tagged 'CurrencySymbol'. + + @since 1.0.0 +-} +ptaggedSymbolValueOf :: forall {k :: Type} (unit :: k) @@ -97,7 +100,7 @@ psymbolValueOfT :: (amounts :: AmountGuarantees) (s :: S). Term s (PTagged unit PCurrencySymbol :--> (PValue keys amounts :--> PInteger)) -psymbolValueOfT = phoistAcyclic $ plam $ \tcs -> psymbolValueOf # pto tcs +ptaggedSymbolValueOf = phoistAcyclic $ plam $ \tcs -> psymbolValueOf # pto tcs -- | @since 1.0.0 ptag ::