Merge pull request #72 from Liqwid-Labs/connor/validatorHashTokenName

`ValidatorHashToTokenName`
This commit is contained in:
Jack Hodgkinson 2022-05-06 09:15:17 +01:00 committed by GitHub
commit 1ce89d3ac6
2 changed files with 14 additions and 5 deletions

View file

@ -22,8 +22,8 @@ import Agora.Utils (
psymbolValueOf, psymbolValueOf,
ptokenSpent, ptokenSpent,
ptxSignedBy, ptxSignedBy,
pvalidatorHashToTokenName,
pvalueSpent, pvalueSpent,
validatorHashToTokenName,
) )
import Plutarch.Api.V1 ( import Plutarch.Api.V1 (
PCredential (PPubKeyCredential, PScriptCredential), PCredential (PPubKeyCredential, PScriptCredential),
@ -117,7 +117,7 @@ stakePolicy gtClassRef =
PScriptCredential validatorHash -> P.do PScriptCredential validatorHash -> P.do
stakeDatum <- pletFields @'["owner", "stakedAmount"] stakeDatum' stakeDatum <- pletFields @'["owner", "stakedAmount"] stakeDatum'
tn :: Term _ PTokenName <- plet (validatorHashToTokenName $ pfromData $ pfield @"_0" # validatorHash) tn :: Term _ PTokenName <- plet (pvalidatorHashToTokenName $ pfromData $ pfield @"_0" # validatorHash)
let stValue = let stValue =
psingletonValue psingletonValue

View file

@ -39,11 +39,17 @@ module Agora.Utils (
findOutputsToAddress, findOutputsToAddress,
findTxOutDatum, findTxOutDatum,
validatorHashToTokenName, validatorHashToTokenName,
pvalidatorHashToTokenName,
getMintingPolicySymbol, getMintingPolicySymbol,
) where ) where
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
import Plutus.V1.Ledger.Api (
CurrencySymbol,
TokenName (..),
ValidatorHash (..),
)
import Plutus.V1.Ledger.Value (AssetClass (..)) import Plutus.V1.Ledger.Value (AssetClass (..))
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
@ -76,7 +82,6 @@ import Plutarch.Builtin (ppairDataBuiltin)
import Plutarch.Map.Extra (pkeys) import Plutarch.Map.Extra (pkeys)
import Plutarch.Monadic qualified as P import Plutarch.Monadic qualified as P
import Plutarch.TryFrom (PTryFrom, ptryFrom) import Plutarch.TryFrom (PTryFrom, ptryFrom)
import Plutus.V1.Ledger.Api (CurrencySymbol)
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
-- Validator-level utility functions -- Validator-level utility functions
@ -474,8 +479,12 @@ findTxOutDatum = phoistAcyclic $
{- | Safely convert a 'PValidatorHash' into a 'PTokenName'. This can be useful for tagging {- | Safely convert a 'PValidatorHash' into a 'PTokenName'. This can be useful for tagging
tokens for extra safety. tokens for extra safety.
-} -}
validatorHashToTokenName :: forall (s :: S). Term s PValidatorHash -> Term s PTokenName validatorHashToTokenName :: ValidatorHash -> TokenName
validatorHashToTokenName vh = pcon (PTokenName (pto vh)) validatorHashToTokenName (ValidatorHash hash) = TokenName hash
-- | Plutarch level 'validatorHashToTokenName'.
pvalidatorHashToTokenName :: forall (s :: S). Term s PValidatorHash -> Term s PTokenName
pvalidatorHashToTokenName vh = pcon (PTokenName (pto vh))
-- | Get the CurrencySymbol of a PMintingPolicy. -- | Get the CurrencySymbol of a PMintingPolicy.
getMintingPolicySymbol :: ClosedTerm PMintingPolicy -> CurrencySymbol getMintingPolicySymbol :: ClosedTerm PMintingPolicy -> CurrencySymbol