calculate GAT's symbol based on gov parameters

This commit is contained in:
fanghr 2022-04-20 16:48:09 +08:00
parent b282795efe
commit 920286f656
No known key found for this signature in database
GPG key ID: 35CD9A71CD5D5870
2 changed files with 9 additions and 14 deletions

View file

@ -21,12 +21,14 @@ import Plutarch.Api.V1 (
PTxInInfo (PTxInInfo),
PTxInfo (..),
PTxOut (..),
PMintingPolicy
)
import Plutarch.Api.V1.AssocMap (PMap (PMap))
import Plutarch.Api.V1.Value (PValue (PValue))
import Plutarch.Builtin (pforgetData)
import Plutarch.Monadic qualified as P
import Plutus.V1.Ledger.Value (AssetClass (AssetClass))
import Plutarch.Api.V1.Extra (passetClass, passetClassValueOf)
import Prelude
@ -39,7 +41,6 @@ import Agora.Utils (
psymbolValueOf,
ptokenSpent,
)
import Plutarch.Api.V1.Extra (passetClass, passetClassValueOf)
--------------------------------------------------------------------------------
@ -121,9 +122,7 @@ singleAuthorityTokenBurned gatCs txInfo mint = P.do
]
-- | Policy given 'AuthorityToken' params.
authorityTokenPolicy ::
AuthorityToken ->
Term s (PData :--> PScriptContext :--> PUnit)
authorityTokenPolicy :: AuthorityToken -> ClosedTerm PMintingPolicy
authorityTokenPolicy params =
plam $ \_redeemer ctx' ->
pmatch ctx' $ \(PScriptContext ctx') -> P.do
@ -149,6 +148,6 @@ authorityTokenPolicy params =
authorityTokensValidIn
# ownSymbol
# txOut
pconstant ()
popaque $ pconstant ()
)
(pconstant ())
(popaque $ pconstant ())

View file

@ -149,8 +149,6 @@ PlutusTx.makeIsDataIndexed
data Governor = Governor
{ stORef :: TxOutRef
-- ^ An utxo, which will be spent to mint the state token for the governor validator.
, gatSymbol :: CurrencySymbol
-- ^ The symbol of the Governance Authority Token.
}
governorStateTokenName :: TokenName
@ -353,7 +351,7 @@ governorValidator params =
passert "No token should be minted/burnt other than GAT" $
containsSingleCurrencySymbol # mint
popaque $ singleAuthorityTokenBurned gatSym ctx.txInfo mint
popaque $ singleAuthorityTokenBurned (pconstant authorityTokenSymbol) ctx.txInfo mint
where
stateTokenAssetClass :: AssetClass
stateTokenAssetClass = governorStateTokenAssetClass params
@ -389,12 +387,10 @@ governorValidator params =
}
authorityTokenSymbol :: CurrencySymbol
authorityTokenSymbol = undefined
authorityTokenSymbol = mintingPolicySymbol policy
where
policy = authorityTokenPolicy authorityTokenParams
gatSym :: Term s PCurrencySymbol
gatSym = pconstant params.gatSymbol
policy :: MintingPolicy
policy = mkMintingPolicy $ authorityTokenPolicy authorityTokenParams
--------------------------------------------------------------------------------