liqwid-plutarch-extra-3.21.1: A collection of Plutarch extras from Liqwid Labs
Safe HaskellSafe-Inferred
LanguageHaskell2010

Plutarch.Extra.ExtendedAssetClass

Synopsis

Types

Haskell

data ExtendedAssetClass Source #

An AssetClass whose TokenName may or may not be relevant.

Since: 3.14.2

Constructors

AnyToken CurrencySymbol

TokenName is irrelevant

FixedToken AssetClass

TokenName is relevant

Instances

Instances details
FromJSON ExtendedAssetClass Source #

Since: 3.14.2

Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

ToJSON ExtendedAssetClass Source #

Since: 3.14.2

Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

Generic ExtendedAssetClass Source # 
Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

Associated Types

type Rep ExtendedAssetClass :: Type -> Type Source #

Show ExtendedAssetClass Source #

Since: 3.14.2

Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

Eq ExtendedAssetClass Source #

Since: 3.14.2

Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

Ord ExtendedAssetClass Source #

Since: 3.14.2

Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

PConstantDecl ExtendedAssetClass Source # 
Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

FromData ExtendedAssetClass Source # 
Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

ToData ExtendedAssetClass Source # 
Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

UnsafeFromData ExtendedAssetClass Source #

Since: 3.14.2

Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

PlyArg ExtendedAssetClass Source #

Since: 3.14.5

Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

(k ~ A_Getter, a ~ AssetClass, b ~ AssetClass) => LabelOptic "assetClass" k ExtendedAssetClass ExtendedAssetClass a b Source #

We can always 'pull out' an AssetClass, by essentially 'forgetting' the significance of our 'TokenName'. In cases where it's not significant, we stub it with the empty name.

Since: 3.14.2

Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

(k ~ An_AffineTraversal, a ~ TokenName, b ~ TokenName) => LabelOptic "name" k ExtendedAssetClass ExtendedAssetClass a b Source #

We may not necessarily have a TokenName that matters; if we do, then changing it is fine.

Since: 3.14.2

Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

(k ~ A_Getter, a ~ CurrencySymbol, b ~ CurrencySymbol) => LabelOptic "symbol" k ExtendedAssetClass ExtendedAssetClass a b Source #

We can always retrieve a CurrencySymbol, but depending on what we have, we may be unable to change it.

Since: 3.14.2

Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

type Rep ExtendedAssetClass Source #

Since: 3.14.2

Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

type Rep ExtendedAssetClass = D1 ('MetaData "ExtendedAssetClass" "Plutarch.Extra.ExtendedAssetClass" "liqwid-plutarch-extra-3.21.1-KPadsMN5oqEA2Ctxwq6qig" 'False) (C1 ('MetaCons "AnyToken" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CurrencySymbol)) :+: C1 ('MetaCons "FixedToken" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 AssetClass)))
type PConstantRepr ExtendedAssetClass Source #

Since: 3.14.2

Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

type PConstanted ExtendedAssetClass Source # 
Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

type ToDataConstraint ExtendedAssetClass Source # 
Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

type UPLCRep ExtendedAssetClass Source # 
Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

Plutarch

data PExtendedAssetClass (s :: S) Source #

Plutarch equivalent to ExtendedAssetClass.

Since: 3.14.2

Instances

Instances details
PEq PExtendedAssetClass Source #

Since: 3.14.2

Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

Methods

(#==) :: forall (s :: S). Term s PExtendedAssetClass -> Term s PExtendedAssetClass -> Term s PBool Source #

PIsData PExtendedAssetClass Source #

Since: 3.14.2

Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

DerivePlutusType PExtendedAssetClass Source #

Since: 3.14.2

Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

Associated Types

type DPTStrat PExtendedAssetClass Source #

PlutusType PExtendedAssetClass Source # 
Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

Methods

pcon' :: forall (s :: S). PExtendedAssetClass s -> Term s (PInner PExtendedAssetClass) Source #

pmatch' :: forall (s :: S) (b :: PType). Term s (PInner PExtendedAssetClass) -> (PExtendedAssetClass s -> Term s b) -> Term s b Source #

PUnsafeLiftDecl PExtendedAssetClass Source #

Since: 3.14.2

Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

Associated Types

type PLifted PExtendedAssetClass = (r :: Type) Source #

PShow PExtendedAssetClass Source #

Since: 3.14.2

Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

Methods

pshow' :: forall (s :: S). Bool -> Term s PExtendedAssetClass -> Term s PString Source #

Generic (PExtendedAssetClass s) Source # 
Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

Associated Types

type Rep (PExtendedAssetClass s) :: Type -> Type Source #

type DPTStrat PExtendedAssetClass Source # 
Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

type PContravariant' PExtendedAssetClass Source # 
Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

type PCovariant' PExtendedAssetClass Source # 
Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

type PInner PExtendedAssetClass Source #

Since: 3.14.2

Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

type PVariant' PExtendedAssetClass Source # 
Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

type PLifted PExtendedAssetClass Source # 
Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

type PlyArgOf PExtendedAssetClass Source #

Since: 3.14.5

Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

type Rep (PExtendedAssetClass s) Source #

Since: 3.14.2

Instance details

Defined in Plutarch.Extra.ExtendedAssetClass

type Rep (PExtendedAssetClass s) = D1 ('MetaData "PExtendedAssetClass" "Plutarch.Extra.ExtendedAssetClass" "liqwid-plutarch-extra-3.21.1-KPadsMN5oqEA2Ctxwq6qig" 'False) (C1 ('MetaCons "PAnyToken" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term s (PDataRecord '["_0" := PCurrencySymbol])))) :+: C1 ('MetaCons "PFixedToken" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term s (PDataRecord '["_0" := PAssetClassData])))))

Constants

Haskell

extendedAdaClass :: ExtendedAssetClass Source #

A FixedToken wrapper around adaClass. Provided mostly for convenience.

Since: 3.15.1

Plutarch

pextendedAdaClass :: forall (s :: S). Term s PExtendedAssetClass Source #

Plutarch equivalent to extendedAdaClass.

Since: 3.15.1

Functions

Haskell

isExtendedAdaClass :: ExtendedAssetClass -> Bool Source #

Verify whether an ExtendedAssetClass is the ADA extended asset class.

Since: 3.15.1

unsafeToAssetClass :: ExtendedAssetClass -> AssetClass Source #

Convert to an AssetClass. We do this by either 'unwrapping' a FixedToken, or 'stubbing in' an empty TokenName for an AnyToken.

Note

This is not a safe conversion in general (hence its name). For example:

cls = AnyTokenType sym

v = assetClassValueOf (unsafeToAssetClass cls)
                      (singleton x "" 1 <> singleton x "a" 1)

Then v would equal 1, when it's supposed to be 2.

There are some legitimate uses for this conversion, which is why it exists, but it should be used with care.

Since: 3.15.3

Plutarch

pisExtendedAdaClass :: forall (s :: S). Term s (PExtendedAssetClass :--> PBool) Source #

As isExtendedAdaClass, but for Plutarch.

Since: 3.15.1

pextendedAssetClassValueOf :: forall (keys :: KeyGuarantees) (amounts :: AmountGuarantees) (s :: S). Term s (PExtendedAssetClass :--> (PValue keys amounts :--> PInteger)) Source #

As passetClassValueOf, but for PExtendedAssetClass.

Since: 3.14.2

pextendedAssetClassValueOf' :: forall (keys :: KeyGuarantees) (amounts :: AmountGuarantees) (s :: S). ExtendedAssetClass -> Term s (PValue keys amounts :--> PInteger) Source #

As pextendedAssetClassValueOf, but using a Haskell-level ExtendedAssetClass.

Since: 3.14.6

punsafeToAssetClass :: forall (s :: S). Term s (PExtendedAssetClass :--> PAssetClass) Source #

Convert to a PAssetClass. We do this by either 'unwrapping' a PFixedToken, or 'stubbing in' an empty PTokenName for PAnyToken.

Note

This is not a safe conversion in general (hence its name). For example:

cls = pcon $ PAnyTokenType sym

v = passetClassValueOf # (punsafeToAssetClass cls) #
 pconstant (singleton x "" 1 <> singleton x "a" 1)

Then v would equal 1, when it's supposed to be 2.

There are some legitimate uses for this conversion (specifically for creating Values), which is why it exists, but it should be used with care.

Since: 3.15.0

punsafeToAssetClassData :: forall (s :: S). Term s (PExtendedAssetClass :--> PAssetClassData) Source #

Convert to a PAssetClassData.

Note

This is not a safe conversion in general, for the same reasons as punsafeToAssetClass. All caveats on the use of punsafeToAssetClass also apply to this function.

Since: 3.15.0