Fix linker and tests

This commit is contained in:
Seungheon Oh 2023-03-04 01:18:55 -06:00
parent f0917565a2
commit 293de47f05
2 changed files with 46 additions and 45 deletions

View file

@ -221,7 +221,7 @@ mkPolicyScript ctx = mustCompile (go # pconstant ctx)
go = loudEval $ go = loudEval $
plam $ \sc -> plam $ \sc ->
governorPolicy governorPolicy
# pconstant (view #gstOutRef governor) # pdata (pconstant (view #gstOutRef governor))
# pforgetData (pconstantData ()) # pforgetData (pconstantData ())
# sc # sc

View file

@ -12,6 +12,7 @@ import Plutarch.Extra.AssetClass (AssetClass (AssetClass))
import Plutarch.Extra.ScriptContext (scriptHashToTokenName) import Plutarch.Extra.ScriptContext (scriptHashToTokenName)
import PlutusLedgerApi.V2 (CurrencySymbol (CurrencySymbol), ScriptHash, TxOutRef, getScriptHash) import PlutusLedgerApi.V2 (CurrencySymbol (CurrencySymbol), ScriptHash, TxOutRef, getScriptHash)
import Ply ( import Ply (
AsData (AsData),
ScriptRole (MintingPolicyRole, ValidatorRole), ScriptRole (MintingPolicyRole, ValidatorRole),
(#), (#),
) )
@ -48,122 +49,122 @@ linker = do
govPol <- govPol <-
fetchTS fetchTS
@MintingPolicyRole @MintingPolicyRole
@'[TxOutRef] @'[AsData TxOutRef]
"agora:governorPolicy" "agora:governorPolicy"
govVal <- govVal <-
fetchTS fetchTS
@ValidatorRole @ValidatorRole
@'[ ScriptHash @'[ AsData ScriptHash
, Tagged StakeSTTag AssetClass , AsData (Tagged StakeSTTag AssetClass)
, Tagged GovernorSTTag CurrencySymbol , AsData (Tagged GovernorSTTag CurrencySymbol)
, Tagged ProposalSTTag CurrencySymbol , AsData (Tagged ProposalSTTag CurrencySymbol)
, Tagged AuthorityTokenTag CurrencySymbol , AsData (Tagged AuthorityTokenTag CurrencySymbol)
] ]
"agora:governorValidator" "agora:governorValidator"
stkPol <- stkPol <-
fetchTS fetchTS
@MintingPolicyRole @MintingPolicyRole
@'[Tagged GTTag AssetClass] @'[AsData (Tagged GTTag AssetClass)]
"agora:stakePolicy" "agora:stakePolicy"
stkVal <- stkVal <-
fetchTS fetchTS
@ValidatorRole @ValidatorRole
@'[ Tagged StakeSTTag CurrencySymbol @'[ AsData (Tagged StakeSTTag CurrencySymbol)
, Tagged ProposalSTTag AssetClass , AsData (Tagged ProposalSTTag AssetClass)
, Tagged GTTag AssetClass , AsData (Tagged GTTag AssetClass)
] ]
"agora:stakeValidator" "agora:stakeValidator"
prpPol <- prpPol <-
fetchTS @MintingPolicyRole fetchTS @MintingPolicyRole
@'[Tagged GovernorSTTag AssetClass] @'[AsData (Tagged GovernorSTTag AssetClass)]
"agora:proposalPolicy" "agora:proposalPolicy"
prpVal <- prpVal <-
fetchTS fetchTS
@ValidatorRole @ValidatorRole
@'[ Tagged StakeSTTag AssetClass @'[ AsData (Tagged StakeSTTag AssetClass)
, Tagged GovernorSTTag CurrencySymbol , AsData (Tagged GovernorSTTag CurrencySymbol)
, Tagged ProposalSTTag CurrencySymbol , AsData (Tagged ProposalSTTag CurrencySymbol)
, Integer , AsData Integer
] ]
"agora:proposalValidator" "agora:proposalValidator"
treVal <- treVal <-
fetchTS fetchTS
@ValidatorRole @ValidatorRole
@'[Tagged AuthorityTokenTag CurrencySymbol] @'[AsData (Tagged AuthorityTokenTag CurrencySymbol)]
"agora:treasuryValidator" "agora:treasuryValidator"
atkPol <- atkPol <-
fetchTS fetchTS
@MintingPolicyRole @MintingPolicyRole
@'[Tagged GovernorSTTag AssetClass] @'[AsData (Tagged GovernorSTTag AssetClass)]
"agora:authorityTokenPolicy" "agora:authorityTokenPolicy"
noOpVal <- noOpVal <-
fetchTS fetchTS
@ValidatorRole @ValidatorRole
@'[Tagged AuthorityTokenTag CurrencySymbol] @'[AsData (Tagged AuthorityTokenTag CurrencySymbol)]
"agora:noOpValidator" "agora:noOpValidator"
treaWithdrawalVal <- treaWithdrawalVal <-
fetchTS fetchTS
@ValidatorRole @ValidatorRole
@'[Tagged AuthorityTokenTag CurrencySymbol] @'[AsData (Tagged AuthorityTokenTag CurrencySymbol)]
"agora:treasuryWithdrawalValidator" "agora:treasuryWithdrawalValidator"
mutateGovVal <- mutateGovVal <-
fetchTS fetchTS
@ValidatorRole @ValidatorRole
@'[ ScriptHash @'[ AsData ScriptHash
, Tagged GovernorSTTag CurrencySymbol , AsData (Tagged GovernorSTTag CurrencySymbol)
, Tagged AuthorityTokenTag CurrencySymbol , AsData (Tagged AuthorityTokenTag CurrencySymbol)
] ]
"agora:mutateGovernorValidator" "agora:mutateGovernorValidator"
governor <- getParam governor <- getParam
let govPol' = govPol # governor.gstOutRef let govPol' = govPol # AsData governor.gstOutRef
govVal' = govVal' =
govVal govVal
# propValHash # AsData propValHash
# Tagged sstAssetClass # AsData (Tagged sstAssetClass)
# Tagged gstSymbol # AsData (Tagged gstSymbol)
# Tagged pstSymbol # AsData (Tagged pstSymbol)
# Tagged atSymbol # AsData (Tagged atSymbol)
gstSymbol = CurrencySymbol . getScriptHash . scriptHash $ toScript govPol' gstSymbol = CurrencySymbol . getScriptHash . scriptHash $ toScript govPol'
gstAssetClass = gstAssetClass =
AssetClass gstSymbol "" AssetClass gstSymbol ""
govValHash = scriptHash $ toScript govVal' govValHash = scriptHash $ toScript govVal'
atPol' = atkPol # Tagged gstAssetClass atPol' = atkPol # AsData (Tagged gstAssetClass)
atSymbol = CurrencySymbol . getScriptHash . scriptHash $ toScript atPol' atSymbol = CurrencySymbol . getScriptHash . scriptHash $ toScript atPol'
propPol' = prpPol # Tagged gstAssetClass propPol' = prpPol # AsData (Tagged gstAssetClass)
propVal' = propVal' =
prpVal prpVal
# Tagged sstAssetClass # AsData (Tagged sstAssetClass)
# Tagged gstSymbol # AsData (Tagged gstSymbol)
# Tagged pstSymbol # AsData (Tagged pstSymbol)
# governor.maximumCosigners # AsData governor.maximumCosigners
propValHash = scriptHash $ toScript propVal' propValHash = scriptHash $ toScript propVal'
pstSymbol = CurrencySymbol . getScriptHash . scriptHash $ toScript propPol' pstSymbol = CurrencySymbol . getScriptHash . scriptHash $ toScript propPol'
pstAssetClass = AssetClass pstSymbol "" pstAssetClass = AssetClass pstSymbol ""
stakPol' = stkPol # governor.gtClassRef stakPol' = stkPol # AsData governor.gtClassRef
stakVal' = stakVal' =
stkVal stkVal
# Tagged sstSymbol # AsData (Tagged sstSymbol)
# Tagged pstAssetClass # AsData (Tagged pstAssetClass)
# governor.gtClassRef # AsData governor.gtClassRef
sstSymbol = CurrencySymbol . getScriptHash . scriptHash $ toScript stakPol' sstSymbol = CurrencySymbol . getScriptHash . scriptHash $ toScript stakPol'
stakValTokenName = stakValTokenName =
scriptHashToTokenName $ scriptHash $ toScript stakVal' scriptHashToTokenName $ scriptHash $ toScript stakVal'
sstAssetClass = AssetClass sstSymbol stakValTokenName sstAssetClass = AssetClass sstSymbol stakValTokenName
treaVal' = treVal # Tagged atSymbol treaVal' = treVal # AsData (Tagged atSymbol)
noOpVal' = noOpVal # Tagged atSymbol noOpVal' = noOpVal # AsData (Tagged atSymbol)
treaWithdrawalVal' = treaWithdrawalVal # Tagged atSymbol treaWithdrawalVal' = treaWithdrawalVal # AsData (Tagged atSymbol)
mutateGovVal' = mutateGovVal' =
mutateGovVal mutateGovVal
# govValHash # AsData govValHash
# Tagged gstSymbol # AsData (Tagged gstSymbol)
# Tagged atSymbol # AsData (Tagged atSymbol)
return $ return $
ScriptExport ScriptExport