cardano-ledger-shelley-ma-0.1.0.0: Shelley ledger with multiasset and time lock support.
Safe HaskellNone
LanguageHaskell2010

Cardano.Ledger.Mary.Value

Synopsis

Documentation

newtype PolicyID crypto Source #

Policy ID

Constructors

PolicyID 

Fields

Instances

Instances details
Eq (PolicyID crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

(==) :: PolicyID crypto -> PolicyID crypto -> Bool #

(/=) :: PolicyID crypto -> PolicyID crypto -> Bool #

Ord (PolicyID crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

compare :: PolicyID crypto -> PolicyID crypto -> Ordering #

(<) :: PolicyID crypto -> PolicyID crypto -> Bool #

(<=) :: PolicyID crypto -> PolicyID crypto -> Bool #

(>) :: PolicyID crypto -> PolicyID crypto -> Bool #

(>=) :: PolicyID crypto -> PolicyID crypto -> Bool #

max :: PolicyID crypto -> PolicyID crypto -> PolicyID crypto #

min :: PolicyID crypto -> PolicyID crypto -> PolicyID crypto #

Show (PolicyID crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

showsPrec :: Int -> PolicyID crypto -> ShowS #

show :: PolicyID crypto -> String #

showList :: [PolicyID crypto] -> ShowS #

NFData (PolicyID crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

rnf :: PolicyID crypto -> () #

Crypto crypto => ToCBOR (PolicyID crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

toCBOR :: PolicyID crypto -> Encoding Source #

encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy (PolicyID crypto) -> Size Source #

encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [PolicyID crypto] -> Size Source #

Crypto crypto => FromCBOR (PolicyID crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

fromCBOR :: Decoder s (PolicyID crypto) Source #

label :: Proxy (PolicyID crypto) -> Text Source #

NoThunks (PolicyID crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

newtype AssetName Source #

Asset Name

Constructors

AssetName 

Instances

Instances details
Eq AssetName Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Ord AssetName Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Show AssetName Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

NFData AssetName Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

rnf :: AssetName -> () #

ToCBOR AssetName Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

toCBOR :: AssetName -> Encoding Source #

encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy AssetName -> Size Source #

encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [AssetName] -> Size Source #

FromCBOR AssetName Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

NoThunks AssetName Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

data Value crypto Source #

The Value representing MultiAssets

Constructors

Value !Integer !(Map (PolicyID crypto) (Map AssetName Integer)) 

Instances

Instances details
Eq (CompactForm (Value crypto)) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

(==) :: CompactForm (Value crypto) -> CompactForm (Value crypto) -> Bool #

(/=) :: CompactForm (Value crypto) -> CompactForm (Value crypto) -> Bool #

Crypto crypto => Eq (Value crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

(==) :: Value crypto -> Value crypto -> Bool #

(/=) :: Value crypto -> Value crypto -> Bool #

Show (CompactForm (Value crypto)) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

showsPrec :: Int -> CompactForm (Value crypto) -> ShowS #

show :: CompactForm (Value crypto) -> String #

showList :: [CompactForm (Value crypto)] -> ShowS #

Show (Value crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

showsPrec :: Int -> Value crypto -> ShowS #

show :: Value crypto -> String #

showList :: [Value crypto] -> ShowS #

Generic (Value crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Associated Types

type Rep (Value crypto) :: Type -> Type #

Methods

from :: Value crypto -> Rep (Value crypto) x #

to :: Rep (Value crypto) x -> Value crypto #

Semigroup (Value crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

(<>) :: Value crypto -> Value crypto -> Value crypto #

sconcat :: NonEmpty (Value crypto) -> Value crypto #

stimes :: Integral b => b -> Value crypto -> Value crypto #

Monoid (Value crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

mempty :: Value crypto #

mappend :: Value crypto -> Value crypto -> Value crypto #

mconcat :: [Value crypto] -> Value crypto #

NFData (Value crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

rnf :: Value crypto -> () #

Crypto crypto => ToCBOR (CompactForm (Value crypto)) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

toCBOR :: CompactForm (Value crypto) -> Encoding Source #

encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy (CompactForm (Value crypto)) -> Size Source #

encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [CompactForm (Value crypto)] -> Size Source #

Crypto crypto => ToCBOR (Value crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

toCBOR :: Value crypto -> Encoding Source #

encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy (Value crypto) -> Size Source #

encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [Value crypto] -> Size Source #

Crypto crypto => FromCBOR (CompactForm (Value crypto)) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

fromCBOR :: Decoder s (CompactForm (Value crypto)) Source #

label :: Proxy (CompactForm (Value crypto)) -> Text Source #

Crypto crypto => FromCBOR (Value crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

fromCBOR :: Decoder s (Value crypto) Source #

label :: Proxy (Value crypto) -> Text Source #

Group (Value crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

invert :: Value crypto -> Value crypto Source #

(~~) :: Value crypto -> Value crypto -> Value crypto Source #

pow :: Integral x => Value crypto -> x -> Value crypto Source #

Abelian (Value crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

NoThunks (Value crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Crypto crypto => Val (Value crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

zero :: Value crypto Source #

(<+>) :: Value crypto -> Value crypto -> Value crypto Source #

(<×>) :: Integral i => i -> Value crypto -> Value crypto Source #

(<->) :: Value crypto -> Value crypto -> Value crypto Source #

isZero :: Value crypto -> Bool Source #

coin :: Value crypto -> Coin Source #

inject :: Coin -> Value crypto Source #

modifyCoin :: (Coin -> Coin) -> Value crypto -> Value crypto Source #

size :: Value crypto -> Integer Source #

pointwise :: (Integer -> Integer -> Bool) -> Value crypto -> Value crypto -> Bool Source #

Crypto crypto => DecodeNonNegative (Value crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

decodeNonNegative :: Decoder s (Value crypto) Source #

Crypto crypto => DecodeMint (Value crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

decodeMint :: Decoder s (Value crypto) Source #

Crypto crypto => EncodeMint (Value crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Methods

encodeMint :: Value crypto -> Encoding Source #

Crypto crypto => Torsor (Value crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Associated Types

type Delta (Value crypto) Source #

Methods

addDelta :: Value crypto -> Delta (Value crypto) -> Value crypto Source #

toDelta :: Value crypto -> Delta (Value crypto) Source #

Crypto crypto => Compactible (Value crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

Associated Types

data CompactForm (Value crypto) Source #

Methods

toCompact :: Value crypto -> Maybe (CompactForm (Value crypto)) Source #

fromCompact :: CompactForm (Value crypto) -> Value crypto Source #

GetPolicies (Value crypto) crypto Source # 
Instance details

Defined in Cardano.Ledger.ShelleyMA.Rules.Utxow

Methods

getPolicies :: Value crypto -> Set (PolicyID crypto) Source #

type Rep (Value crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

type Rep (Value crypto) = D1 ('MetaData "Value" "Cardano.Ledger.Mary.Value" "cardano-ledger-shelley-ma-0.1.0.0-1YGSw9UWWJIK0EmJl3eL5D" 'False) (C1 ('MetaCons "Value" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Integer) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map (PolicyID crypto) (Map AssetName Integer)))))
type Delta (Value crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

type Delta (Value crypto) = Value crypto
newtype CompactForm (Value crypto) Source # 
Instance details

Defined in Cardano.Ledger.Mary.Value

newtype CompactForm (Value crypto) = CompactValue (CV crypto)

insert :: (Integer -> Integer -> Integer) -> PolicyID crypto -> AssetName -> Integer -> Value crypto -> Value crypto Source #

insert comb policy asset n v, if comb = old new -> old, the integer in the Value is prefered over n if comb = old new -> new, then n is prefered over the integer in the Value if (comb old new) == 0, then that value should not be stored in the Map part of the Value.

lookup :: PolicyID crypto -> AssetName -> Value crypto -> Integer Source #

policies :: Value crypto -> Set (PolicyID crypto) Source #

Extract the set of policies in the Value.

This function is equivalent to computing the support of the value in the spec.

prune :: Map (PolicyID crypto) (Map AssetName Integer) -> Map (PolicyID crypto) (Map AssetName Integer) Source #

Remove 0 assets from a map

showValue :: Value crypto -> String Source #

Display a Value as a String, one token per line

valueFromList :: Integer -> [(PolicyID era, AssetName, Integer)] -> Value era Source #

Rather than using prune to remove 0 assets, when can avoid adding them in the first place by using valueFromList to construct a Value.