add stakeSTAssetClassFromGovernor

This commit is contained in:
fanghr 2022-04-30 19:15:41 +08:00
parent f62189c38d
commit 1387cd19df

View file

@ -24,14 +24,11 @@ module Agora.Governor.Scripts (
proposalFromGovernor, proposalFromGovernor,
proposalValidatorHashFromGovernor, proposalValidatorHashFromGovernor,
proposalSTSymbolFromGovernor, proposalSTSymbolFromGovernor,
stakeSTAssetClassFromGovernor,
) where ) where
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
import Data.Coerce (coerce)
--------------------------------------------------------------------------------
import Agora.AuthorityToken ( import Agora.AuthorityToken (
AuthorityToken (..), AuthorityToken (..),
authorityTokenPolicy, authorityTokenPolicy,
@ -716,6 +713,15 @@ stakeSTSymbolFromGovernor gov = mintingPolicySymbol policy
where where
policy = mkMintingPolicy $ stakePolicy gov.gtClassRef policy = mkMintingPolicy $ stakePolicy gov.gtClassRef
stakeSTAssetClassFromGovernor :: Governor -> AssetClass
stakeSTAssetClassFromGovernor gov = AssetClass (symbol, tokenName)
where
symbol = stakeSTSymbolFromGovernor gov
-- Tag with the address where the token is being sent to.
ValidatorHash hash = stakeValidatorHashFromGovernor gov
tokenName = TokenName hash
stakeFromGovernor :: Governor -> Stake stakeFromGovernor :: Governor -> Stake
stakeFromGovernor gov = stakeFromGovernor gov =
Stake gov.gtClassRef $ Stake gov.gtClassRef $
@ -732,12 +738,7 @@ proposalFromGovernor gov = Proposal gstAC sstAC mc
where where
gstAC = governorSTAssetClassFromGovernor gov gstAC = governorSTAssetClassFromGovernor gov
mc = gov.maximumCosigners mc = gov.maximumCosigners
sstAC = stakeSTAssetClassFromGovernor gov
sstS = stakeSTSymbolFromGovernor gov
-- The stake state token is tagged with the address which it's sent to.
sstTN :: TokenName
sstTN = coerce $ stakeValidatorHashFromGovernor gov
sstAC = AssetClass (sstS, sstTN)
proposalValidatorHashFromGovernor :: Governor -> ValidatorHash proposalValidatorHashFromGovernor :: Governor -> ValidatorHash
proposalValidatorHashFromGovernor gov = validatorHash validator proposalValidatorHashFromGovernor gov = validatorHash validator