export alwaysSucceedsPolicy as a standalone builder
This commit is contained in:
parent
563746f1ef
commit
c547494c93
3 changed files with 27 additions and 13 deletions
|
|
@ -8,13 +8,16 @@
|
||||||
-}
|
-}
|
||||||
module Main (main) where
|
module Main (main) where
|
||||||
|
|
||||||
|
import Agora.Bootstrap (alwaysSucceedsPolicyRoledScript)
|
||||||
import Agora.Bootstrap qualified as Bootstrap
|
import Agora.Bootstrap qualified as Bootstrap
|
||||||
import Agora.Linker (linker)
|
import Agora.Linker (linker)
|
||||||
|
import Data.Aeson qualified as Aeson
|
||||||
import Data.Default (def)
|
import Data.Default (def)
|
||||||
import Plutarch (Config (Config), TracingMode (DoTracingAndBinds))
|
import Plutarch (Config (Config), TracingMode (DoTracingAndBinds))
|
||||||
import ScriptExport.Export (exportMain)
|
import ScriptExport.Export (exportMain)
|
||||||
import ScriptExport.Types (
|
import ScriptExport.Types (
|
||||||
Builders,
|
Builders,
|
||||||
|
insertBuilder,
|
||||||
insertScriptExportWithLinker,
|
insertScriptExportWithLinker,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -31,4 +34,9 @@ builders =
|
||||||
(Config DoTracingAndBinds)
|
(Config DoTracingAndBinds)
|
||||||
)
|
)
|
||||||
linker
|
linker
|
||||||
|
, -- Note: To be compatible with current off-chain setup, we are not using
|
||||||
|
-- static builder here.
|
||||||
|
insertBuilder
|
||||||
|
"alwaysSucceedsPolicy"
|
||||||
|
(const @_ @Aeson.Value alwaysSucceedsPolicyRoledScript)
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
Initialize a governance system
|
Initialize a governance system
|
||||||
-}
|
-}
|
||||||
module Agora.Bootstrap (agoraScripts) where
|
module Agora.Bootstrap (agoraScripts, alwaysSucceedsPolicyRoledScript) where
|
||||||
|
|
||||||
import Agora.AuthorityToken (authorityTokenPolicy)
|
import Agora.AuthorityToken (authorityTokenPolicy)
|
||||||
import Agora.Effect.GovernorMutation (mutateGovernorValidator)
|
import Agora.Effect.GovernorMutation (mutateGovernorValidator)
|
||||||
|
|
@ -18,9 +18,10 @@ import Data.Map (fromList)
|
||||||
import Data.Text (Text, unpack)
|
import Data.Text (Text, unpack)
|
||||||
import Plutarch (Config)
|
import Plutarch (Config)
|
||||||
import Plutarch.Api.V2 (PMintingPolicy)
|
import Plutarch.Api.V2 (PMintingPolicy)
|
||||||
import Ply (TypedScriptEnvelope)
|
import Plutarch.Extra.Compile (mustCompile)
|
||||||
|
import Ply (ScriptRole (MintingPolicyRole), TypedScriptEnvelope)
|
||||||
import Ply.Plutarch.TypedWriter (TypedWriter, mkEnvelope)
|
import Ply.Plutarch.TypedWriter (TypedWriter, mkEnvelope)
|
||||||
import ScriptExport.ScriptInfo (RawScriptExport (..))
|
import ScriptExport.ScriptInfo (RawScriptExport (..), RoledScript (..))
|
||||||
|
|
||||||
{- | Parameterize core scripts, given the 'Agora.Governor.Governor'
|
{- | Parameterize core scripts, given the 'Agora.Governor.Governor'
|
||||||
parameters and plutarch configurations.
|
parameters and plutarch configurations.
|
||||||
|
|
@ -42,10 +43,6 @@ agoraScripts conf =
|
||||||
, envelope "agora:noOpValidator" noOpValidator
|
, envelope "agora:noOpValidator" noOpValidator
|
||||||
, envelope "agora:treasuryWithdrawalValidator" treasuryWithdrawalValidator
|
, envelope "agora:treasuryWithdrawalValidator" treasuryWithdrawalValidator
|
||||||
, envelope "agora:mutateGovernorValidator" mutateGovernorValidator
|
, envelope "agora:mutateGovernorValidator" mutateGovernorValidator
|
||||||
, -- NOTE(Emily, Jan 3rd 2023): Adding this in here because it's useful for testnet GT.
|
|
||||||
-- In reality, it shouldn't be used by anyone on mainnet, but removing it is not
|
|
||||||
-- productive for off-chain testing.
|
|
||||||
envelope @PMintingPolicy "agora:alwaysSucceedsPolicy" $ plam $ \_ _ -> popaque $ pcon PUnit
|
|
||||||
]
|
]
|
||||||
where
|
where
|
||||||
envelope ::
|
envelope ::
|
||||||
|
|
@ -55,3 +52,18 @@ agoraScripts conf =
|
||||||
ClosedTerm pt ->
|
ClosedTerm pt ->
|
||||||
(Text, TypedScriptEnvelope)
|
(Text, TypedScriptEnvelope)
|
||||||
envelope d t = (d, either (error . unpack) id $ mkEnvelope conf d t)
|
envelope d t = (d, either (error . unpack) id $ mkEnvelope conf d t)
|
||||||
|
|
||||||
|
{- | A minting policy that always succeeds.
|
||||||
|
|
||||||
|
NOTE(Emily, Jan 3rd 2023): Adding this in here because it's useful for testnet GT.
|
||||||
|
In reality, it shouldn't be used by anyone on mainnet, but removing it is not
|
||||||
|
productive for off-chain testing.
|
||||||
|
|
||||||
|
@since 1.0.0
|
||||||
|
-}
|
||||||
|
alwaysSucceedsPolicyRoledScript :: RoledScript
|
||||||
|
alwaysSucceedsPolicyRoledScript =
|
||||||
|
RoledScript
|
||||||
|
{ script = mustCompile @PMintingPolicy $ plam $ \_ _ -> popaque $ pcon PUnit
|
||||||
|
, role = MintingPolicyRole
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -114,11 +114,6 @@ linker = do
|
||||||
, Tagged AuthorityTokenTag CurrencySymbol
|
, Tagged AuthorityTokenTag CurrencySymbol
|
||||||
]
|
]
|
||||||
"agora:mutateGovernorValidator"
|
"agora:mutateGovernorValidator"
|
||||||
alwaysSucceedsPolicy' <-
|
|
||||||
fetchTS
|
|
||||||
@MintingPolicyRole
|
|
||||||
@'[]
|
|
||||||
"agora:alwaysSucceedsPolicy"
|
|
||||||
|
|
||||||
governor <- getParam
|
governor <- getParam
|
||||||
|
|
||||||
|
|
@ -185,7 +180,6 @@ linker = do
|
||||||
, ("agora:noOpValidator", toRoledScript noOpVal')
|
, ("agora:noOpValidator", toRoledScript noOpVal')
|
||||||
, ("agora:treasuryWithdrawalValidator", toRoledScript treaWithdrawalVal')
|
, ("agora:treasuryWithdrawalValidator", toRoledScript treaWithdrawalVal')
|
||||||
, ("agora:mutateGovernorValidator", toRoledScript mutateGovVal')
|
, ("agora:mutateGovernorValidator", toRoledScript mutateGovVal')
|
||||||
, ("agora:alwaysSucceedsPolicy", toRoledScript alwaysSucceedsPolicy')
|
|
||||||
]
|
]
|
||||||
, information =
|
, information =
|
||||||
AgoraScriptInfo
|
AgoraScriptInfo
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue