This library contains wrappers over autogenerated bindings for CSL and some types adapted from cardano-api
and cardano-wallet
. It is primarily used in cardano-transaction-lib
.
This library presents Transaction
and all its structural components as PureScript algebraic data types.
- Trivial types are implemented as
newtype
s over CSL (we use a vendored version for both nodejs & the browser, with GC added). - Variant types are implemented as ADTs
- Records-like types are implemented as newtypes over PureScript records.
Here's what is included:
EncodeAeson
/DecodeAeson
instances - no compatibility with CSL is maintained, because JSON encoders in CSL are partialAsCbor
instances for types that are representable as binaryShow
,Eq
,Ord
,Generic
instances where they make senseToMetadata
/FromMetadata
andToData
/FromData
typeclasses and some instances- Some pretty-printing functions that render a
TagSet
frommonad-logger
. fromCsl
/toCsl
functions that lift values between CSL and purescript domains (only for types ported from CSL)
Asset
AssetClass
PaymentPubKeyHash
UtxoMap
Semigroup
instances forValue
,ExUnits
andMint
are unlawful (they unsafely throw on numeric overflows)- No
TransactionBuilder
- for a framework to build transactions, seecardano-transaction-lib
- No
Block
,BlockHeader
- these are not needed for an in-browser dApp. - Recursion max-depth issues (JavaScript...)