calculate GAT's symbol based on gov parameters
This commit is contained in:
parent
b282795efe
commit
920286f656
2 changed files with 9 additions and 14 deletions
|
|
@ -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 ())
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue