allow other components to know the assetclass of GST

This commit is contained in:
fanghr 2022-04-21 13:30:07 +08:00
parent c7ae47d487
commit 2e1514f366

View file

@ -24,6 +24,7 @@ module Agora.Governor (
-- * Utilities -- * Utilities
governorStateTokenAssetClass, governorStateTokenAssetClass,
authorityTokenSymbolFromGovernor,
) where ) where
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
@ -472,20 +473,8 @@ governorValidator params =
stateTokenValueOf :: Term s (PValue :--> PInteger) stateTokenValueOf :: Term s (PValue :--> PInteger)
stateTokenValueOf = passetClassValueOf' stateTokenAssetClass stateTokenValueOf = passetClassValueOf' stateTokenAssetClass
authorityTokenParams :: AuthorityToken
authorityTokenParams =
AuthorityToken
{ authority = stateTokenAssetClass
}
authorityTokenSymbol :: CurrencySymbol
authorityTokenSymbol = mintingPolicySymbol policy
where
policy :: MintingPolicy
policy = mkMintingPolicy $ authorityTokenPolicy authorityTokenParams
pGATSym :: Term s PCurrencySymbol pGATSym :: Term s PCurrencySymbol
pGATSym = phoistAcyclic $ pconstant authorityTokenSymbol pGATSym = phoistAcyclic $ pconstant $ authorityTokenSymbolFromGovernor params
scriptHashFromAddress' :: Term s (PAddress :--> PValidatorHash) scriptHashFromAddress' :: Term s (PAddress :--> PValidatorHash)
scriptHashFromAddress' = phoistAcyclic $ scriptHashFromAddress' = phoistAcyclic $
@ -505,3 +494,9 @@ governorStateTokenAssetClass gov = AssetClass (symbol, governorStateTokenName)
symbol :: CurrencySymbol symbol :: CurrencySymbol
symbol = mintingPolicySymbol policy symbol = mintingPolicySymbol policy
authorityTokenSymbolFromGovernor :: Governor -> CurrencySymbol
authorityTokenSymbolFromGovernor gov = mintingPolicySymbol policy
where
params = AuthorityToken $ governorStateTokenAssetClass gov
policy = mkMintingPolicy $ authorityTokenPolicy params