plutus-ledger-api-1.30.0.0: Interface to the Plutus ledger for the Cardano ledger.
Safe HaskellSafe-Inferred
LanguageHaskell2010

PlutusLedgerApi.V1.Value

Description

Functions for working with Value.

Synopsis

Currency symbols

newtype CurrencySymbol Source #

ByteString representing the currency, hashed with BLAKE2b-224. It is empty for Ada, 28 bytes for MintingPolicyHash. Forms an AssetClass along with TokenName. A Value is a map from CurrencySymbol's to a map from TokenName to an Integer.

This is a simple type without any validation, use with caution. You may want to add checks for its invariants. See the Shelley ledger specification.

Instances

Instances details
Data CurrencySymbol Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

gfoldl ∷ (∀ d b. Data d ⇒ c (d → b) → d → c b) → (∀ g. g → c g) → CurrencySymbol → c CurrencySymbol Source #

gunfold ∷ (∀ b r. Data b ⇒ c (b → r) → c r) → (∀ r. r → c r) → Constr → c CurrencySymbol Source #

toConstrCurrencySymbolConstr Source #

dataTypeOfCurrencySymbolDataType Source #

dataCast1Typeable t ⇒ (∀ d. Data d ⇒ c (t d)) → Maybe (c CurrencySymbol) Source #

dataCast2Typeable t ⇒ (∀ d e. (Data d, Data e) ⇒ c (t d e)) → Maybe (c CurrencySymbol) Source #

gmapT ∷ (∀ b. Data b ⇒ b → b) → CurrencySymbolCurrencySymbol Source #

gmapQl ∷ (r → r' → r) → r → (∀ d. Data d ⇒ d → r') → CurrencySymbol → r Source #

gmapQr ∷ ∀ r r'. (r' → r → r) → r → (∀ d. Data d ⇒ d → r') → CurrencySymbol → r Source #

gmapQ ∷ (∀ d. Data d ⇒ d → u) → CurrencySymbol → [u] Source #

gmapQiInt → (∀ d. Data d ⇒ d → u) → CurrencySymbol → u Source #

gmapMMonad m ⇒ (∀ d. Data d ⇒ d → m d) → CurrencySymbol → m CurrencySymbol Source #

gmapMpMonadPlus m ⇒ (∀ d. Data d ⇒ d → m d) → CurrencySymbol → m CurrencySymbol Source #

gmapMoMonadPlus m ⇒ (∀ d. Data d ⇒ d → m d) → CurrencySymbol → m CurrencySymbol Source #

IsString CurrencySymbol Source #

from hex encoding

Instance details

Defined in PlutusLedgerApi.V1.Value

Generic CurrencySymbol Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Associated Types

type Rep CurrencySymbolTypeType Source #

Show CurrencySymbol Source #

using hex encoding

Instance details

Defined in PlutusLedgerApi.V1.Value

NFData CurrencySymbol Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

rnfCurrencySymbol → () Source #

Eq CurrencySymbol Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Ord CurrencySymbol Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Eq CurrencySymbol Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

FromData CurrencySymbol Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

ToData CurrencySymbol Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

UnsafeFromData CurrencySymbol Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Ord CurrencySymbol Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Pretty CurrencySymbol Source #

using hex encoding

Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

prettyCurrencySymbolDoc ann #

prettyList ∷ [CurrencySymbol] → Doc ann #

Lift DefaultUni CurrencySymbol Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Typeable DefaultUni CurrencySymbol Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

type Rep CurrencySymbol Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

type Rep CurrencySymbol = D1 ('MetaData "CurrencySymbol" "PlutusLedgerApi.V1.Value" "plutus-ledger-api-1.30.0.0-inplace" 'True) (C1 ('MetaCons "CurrencySymbol" 'PrefixI 'True) (S1 ('MetaSel ('Just "unCurrencySymbol") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BuiltinByteString)))

currencySymbol ∷ ByteString → CurrencySymbol Source #

Creates CurrencySymbol from raw ByteString.

adaSymbolCurrencySymbol Source #

The CurrencySymbol of the Ada currency.

Token names

newtype TokenName Source #

ByteString of a name of a token. Shown as UTF-8 string when possible. Should be no longer than 32 bytes, empty for Ada. Forms an AssetClass along with a CurrencySymbol.

This is a simple type without any validation, use with caution. You may want to add checks for its invariants. See the Shelley ledger specification.

Constructors

TokenName 

Instances

Instances details
Data TokenName Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

gfoldl ∷ (∀ d b. Data d ⇒ c (d → b) → d → c b) → (∀ g. g → c g) → TokenName → c TokenName Source #

gunfold ∷ (∀ b r. Data b ⇒ c (b → r) → c r) → (∀ r. r → c r) → Constr → c TokenName Source #

toConstrTokenNameConstr Source #

dataTypeOfTokenNameDataType Source #

dataCast1Typeable t ⇒ (∀ d. Data d ⇒ c (t d)) → Maybe (c TokenName) Source #

dataCast2Typeable t ⇒ (∀ d e. (Data d, Data e) ⇒ c (t d e)) → Maybe (c TokenName) Source #

gmapT ∷ (∀ b. Data b ⇒ b → b) → TokenNameTokenName Source #

gmapQl ∷ (r → r' → r) → r → (∀ d. Data d ⇒ d → r') → TokenName → r Source #

gmapQr ∷ ∀ r r'. (r' → r → r) → r → (∀ d. Data d ⇒ d → r') → TokenName → r Source #

gmapQ ∷ (∀ d. Data d ⇒ d → u) → TokenName → [u] Source #

gmapQiInt → (∀ d. Data d ⇒ d → u) → TokenName → u Source #

gmapMMonad m ⇒ (∀ d. Data d ⇒ d → m d) → TokenName → m TokenName Source #

gmapMpMonadPlus m ⇒ (∀ d. Data d ⇒ d → m d) → TokenName → m TokenName Source #

gmapMoMonadPlus m ⇒ (∀ d. Data d ⇒ d → m d) → TokenName → m TokenName Source #

IsString TokenName Source #

UTF-8 encoding. Doesn't verify length.

Instance details

Defined in PlutusLedgerApi.V1.Value

Generic TokenName Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Associated Types

type Rep TokenNameTypeType Source #

Show TokenName Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

NFData TokenName Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

rnfTokenName → () Source #

Eq TokenName Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Ord TokenName Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Eq TokenName Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

(==)TokenNameTokenNameBool Source #

FromData TokenName Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

ToData TokenName Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

UnsafeFromData TokenName Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Ord TokenName Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Pretty TokenName Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

prettyTokenNameDoc ann #

prettyList ∷ [TokenName] → Doc ann #

Lift DefaultUni TokenName Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Typeable DefaultUni TokenName Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

type Rep TokenName Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

type Rep TokenName = D1 ('MetaData "TokenName" "PlutusLedgerApi.V1.Value" "plutus-ledger-api-1.30.0.0-inplace" 'True) (C1 ('MetaCons "TokenName" 'PrefixI 'True) (S1 ('MetaSel ('Just "unTokenName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BuiltinByteString)))

tokenName ∷ ByteString → TokenName Source #

Creates TokenName from raw ByteString.

toStringTokenNameString Source #

Turn a TokenName to a hex-encoded String

Compared to show , it will not surround the string with double-quotes.

adaTokenTokenName Source #

The TokenName of the Ada currency.

Asset classes

newtype AssetClass Source #

An asset class, identified by a CurrencySymbol and a TokenName.

Constructors

AssetClass 

Instances

Instances details
Data AssetClass Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

gfoldl ∷ (∀ d b. Data d ⇒ c (d → b) → d → c b) → (∀ g. g → c g) → AssetClass → c AssetClass Source #

gunfold ∷ (∀ b r. Data b ⇒ c (b → r) → c r) → (∀ r. r → c r) → Constr → c AssetClass Source #

toConstrAssetClassConstr Source #

dataTypeOfAssetClassDataType Source #

dataCast1Typeable t ⇒ (∀ d. Data d ⇒ c (t d)) → Maybe (c AssetClass) Source #

dataCast2Typeable t ⇒ (∀ d e. (Data d, Data e) ⇒ c (t d e)) → Maybe (c AssetClass) Source #

gmapT ∷ (∀ b. Data b ⇒ b → b) → AssetClassAssetClass Source #

gmapQl ∷ (r → r' → r) → r → (∀ d. Data d ⇒ d → r') → AssetClass → r Source #

gmapQr ∷ ∀ r r'. (r' → r → r) → r → (∀ d. Data d ⇒ d → r') → AssetClass → r Source #

gmapQ ∷ (∀ d. Data d ⇒ d → u) → AssetClass → [u] Source #

gmapQiInt → (∀ d. Data d ⇒ d → u) → AssetClass → u Source #

gmapMMonad m ⇒ (∀ d. Data d ⇒ d → m d) → AssetClass → m AssetClass Source #

gmapMpMonadPlus m ⇒ (∀ d. Data d ⇒ d → m d) → AssetClass → m AssetClass Source #

gmapMoMonadPlus m ⇒ (∀ d. Data d ⇒ d → m d) → AssetClass → m AssetClass Source #

Generic AssetClass Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Associated Types

type Rep AssetClassTypeType Source #

Show AssetClass Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

NFData AssetClass Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

rnfAssetClass → () Source #

Eq AssetClass Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Ord AssetClass Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Eq AssetClass Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

(==)AssetClassAssetClassBool Source #

FromData AssetClass Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

ToData AssetClass Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

UnsafeFromData AssetClass Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Ord AssetClass Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Pretty AssetClass Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

prettyAssetClassDoc ann #

prettyList ∷ [AssetClass] → Doc ann #

Lift DefaultUni AssetClass Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Typeable DefaultUni AssetClass Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

type Rep AssetClass Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

type Rep AssetClass = D1 ('MetaData "AssetClass" "PlutusLedgerApi.V1.Value" "plutus-ledger-api-1.30.0.0-inplace" 'True) (C1 ('MetaCons "AssetClass" 'PrefixI 'True) (S1 ('MetaSel ('Just "unAssetClass") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CurrencySymbol, TokenName))))

assetClassCurrencySymbolTokenNameAssetClass Source #

The curried version of AssetClass constructor

assetClassValueAssetClassIntegerValue Source #

A Value containing the given amount of the asset class.

assetClassValueOfValueAssetClassInteger Source #

Get the quantity of the given AssetClass class in the Value.

Value

newtype Value Source #

The Value type represents a collection of amounts of different currencies. We can think of Value as a vector space whose dimensions are currencies.

Operations on currencies are usually implemented pointwise. That is, we apply the operation to the quantities for each currency in turn. So when we add two Values the resulting Value has, for each currency, the sum of the quantities of that particular currency in the argument Value. The effect of this is that the currencies in the Value are "independent", and are operated on separately.

Whenever we need to get the quantity of a currency in a Value where there is no explicit quantity of that currency in the Value, then the quantity is taken to be zero.

There is no 'Ord Value' instance since Value is only a partial order, so compare can't do the right thing in some cases.

Constructors

Value 

Instances

Instances details
Data Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

gfoldl ∷ (∀ d b. Data d ⇒ c (d → b) → d → c b) → (∀ g. g → c g) → Value → c Value Source #

gunfold ∷ (∀ b r. Data b ⇒ c (b → r) → c r) → (∀ r. r → c r) → Constr → c Value Source #

toConstrValueConstr Source #

dataTypeOfValueDataType Source #

dataCast1Typeable t ⇒ (∀ d. Data d ⇒ c (t d)) → Maybe (c Value) Source #

dataCast2Typeable t ⇒ (∀ d e. (Data d, Data e) ⇒ c (t d e)) → Maybe (c Value) Source #

gmapT ∷ (∀ b. Data b ⇒ b → b) → ValueValue Source #

gmapQl ∷ (r → r' → r) → r → (∀ d. Data d ⇒ d → r') → Value → r Source #

gmapQr ∷ ∀ r r'. (r' → r → r) → r → (∀ d. Data d ⇒ d → r') → Value → r Source #

gmapQ ∷ (∀ d. Data d ⇒ d → u) → Value → [u] Source #

gmapQiInt → (∀ d. Data d ⇒ d → u) → Value → u Source #

gmapMMonad m ⇒ (∀ d. Data d ⇒ d → m d) → Value → m Value Source #

gmapMpMonadPlus m ⇒ (∀ d. Data d ⇒ d → m d) → Value → m Value Source #

gmapMoMonadPlus m ⇒ (∀ d. Data d ⇒ d → m d) → Value → m Value Source #

Monoid Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Semigroup Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

(<>)ValueValueValue Source #

sconcatNonEmpty ValueValue Source #

stimesIntegral b ⇒ b → ValueValue Source #

Generic Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Associated Types

type Rep ValueTypeType Source #

Methods

fromValueRep Value x Source #

toRep Value x → Value Source #

Show Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

NFData Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

rnfValue → () Source #

Eq Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

(==)ValueValueBool Source #

(/=)ValueValueBool Source #

Eq Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

(==)ValueValueBool Source #

FromData Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

ToData Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

UnsafeFromData Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

JoinSemiLattice Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

(\/)ValueValueValue Source #

MeetSemiLattice Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

(/\)ValueValueValue Source #

Group Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

invValueValue Source #

Monoid Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

memptyValue Source #

AdditiveGroup Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

(-)ValueValueValue Source #

AdditiveMonoid Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

zeroValue Source #

AdditiveSemigroup Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

(+)ValueValueValue Source #

Semigroup Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

(<>)ValueValueValue Source #

Pretty Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

prettyValueDoc ann #

prettyList ∷ [Value] → Doc ann #

Lift DefaultUni Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Module Integer Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

scaleIntegerValueValue Source #

Typeable DefaultUni Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

type Rep Value Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

type Rep Value = D1 ('MetaData "Value" "PlutusLedgerApi.V1.Value" "plutus-ledger-api-1.30.0.0-inplace" 'True) (C1 ('MetaCons "Value" 'PrefixI 'True) (S1 ('MetaSel ('Just "getValue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map CurrencySymbol (Map TokenName Integer)))))

singletonCurrencySymbolTokenNameIntegerValue Source #

Make a Value containing only the given quantity of the given currency.

valueOfValueCurrencySymbolTokenNameInteger Source #

Get the quantity of the given currency in the Value. Assumes that the underlying map doesn't contain duplicate keys.

currencySymbolValueOfValueCurrencySymbolInteger Source #

Get the total value of the currency symbol in the Value map. Assumes that the underlying map doesn't contain duplicate keys.

lovelaceValueLovelaceValue Source #

A Value containing the given quantity of Lovelace.

lovelaceValueOfValueLovelace Source #

Get the quantity of Lovelace in the Value.

scaleModule s v ⇒ s → v → v Source #

Partial order operations

geqValueValueBool Source #

Check whether one Value is greater than or equal to another. See Value for an explanation of how operations on Values work.

gtValueValueBool Source #

Check whether one Value is strictly greater than another. This is *not* a pointwise operation. gt l r means geq l r && not (eq l r).

leqValueValueBool Source #

Check whether one Value is less than or equal to another. See Value for an explanation of how operations on Values work.

ltValueValueBool Source #

Check whether one Value is strictly less than another. This is *not* a pointwise operation. lt l r means leq l r && not (eq l r).

Etc.

isZeroValueBool Source #

Check whether a Value is zero.

splitValue → (Value, Value) Source #

Split a Value into its positive and negative parts. The first element of the tuple contains the negative parts of the Value, the second element contains the positive parts.

negate (fst (split a)) plus (snd (split a)) == a

unionWith ∷ (IntegerIntegerInteger) → ValueValueValue Source #

Combine two Value maps with the argument function. Assumes the well-definedness of the two maps.

flattenValueValue → [(CurrencySymbol, TokenName, Integer)] Source #

Convert a Value to a simple list, keeping only the non-zero amounts. Note that the result isn't sorted, meaning v1 == v2 doesn't generally imply flattenValue v1 == flattenValue v2. Also assumes that there are no duplicate keys in the Value Map.

newtype Lovelace Source #

Constructors

Lovelace 

Fields

Instances

Instances details
Enum Lovelace Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Generic Lovelace Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Associated Types

type Rep LovelaceTypeType Source #

Num Lovelace Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Real Lovelace Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Show Lovelace Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Eq Lovelace Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Ord Lovelace Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Eq Lovelace Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

(==)LovelaceLovelaceBool Source #

FromData Lovelace Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

ToData Lovelace Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

UnsafeFromData Lovelace Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

AdditiveGroup Lovelace Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

(-)LovelaceLovelaceLovelace Source #

AdditiveMonoid Lovelace Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

zeroLovelace Source #

AdditiveSemigroup Lovelace Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

(+)LovelaceLovelaceLovelace Source #

Ord Lovelace Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Show Lovelace Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Pretty Lovelace Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Methods

prettyLovelaceDoc ann #

prettyList ∷ [Lovelace] → Doc ann #

Lift DefaultUni Lovelace Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

Typeable DefaultUni Lovelace Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

type Rep Lovelace Source # 
Instance details

Defined in PlutusLedgerApi.V1.Value

type Rep Lovelace = D1 ('MetaData "Lovelace" "PlutusLedgerApi.V1.Value" "plutus-ledger-api-1.30.0.0-inplace" 'True) (C1 ('MetaCons "Lovelace" 'PrefixI 'True) (S1 ('MetaSel ('Just "getLovelace") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)))