- CIP57 (Plutus blueprints) support
- modular design
- changed value interface (
IValue
)- assets field must be an array of
{ name: Uint8Array, quantity: number | bigint }
(previously was an object)
- assets field must be an array of
- introudced the
IR
- deprecated
plet( pexpr ).in( pvar => ... )
in favor ofconst pvar = plet( pexpr )
- deprecated
struct.extract( ...fields ).in( structInstance => ... )
in favor of plain dot notation ( eg.structInstance.field
)
- introduced the
src/offchain
folder exporting- all the Ledger types
- the
TxBuilder
class
- fixed some
plu-ts
level types bugs
- fixes some bugs in UPLC code generation
getFromDataForType
returnspunMapData
forlist( pair( any, any ) )
terms
- introduces
dynPair
type (interchangeable topair
type for what matters about typings)
- introduced
pdynPair
for dynamicTerm<PPair<...>>
creation, to overcome the lack of amkPair
builtin;- adjusted
pfstPair
andpsndPair
accordingly - adjusted
getFromDataForType
macro andgetFromDataTermForType
accordingly
- adjusted
- fixed bug in
papp
(previously usingb
instead of_b
) - fixed some ts types
papp
(and$
method) accepts ts values and converts it automatically when possibleexample: if
Term<PInt>
is expected it should be possible to pass1
without having to dopInt(1)
- simple constants (
int
,bs
,bool
, etc... ) - functions (
lam
,fn
) - structured types (
list
,pair
) - modified exsisting utility terms methods accordingly
- simple constants (
- added
TermPair
- added
pPair
for constants pairs
evalScript
optimizations- definition of
CEKHeap
to storeCEKValues
in no particular order - modify
CEKEnv
to point at values in theCEKHeap
rather than having a local copy (and copying them when cloning too)
- definition of
Data
classes are now cloning the fields in the constructor and the fields getters now will return freezed object (Data
is meant to be immutable anyway)
pand
andpor
take adelayed( bool )
as second argument (before was just strictbool
)- change definitons
- add
strictAnd
andstrictOr
versions
pfoldr
andpfoldl
(reduce
method of js arrays) forTermList
pfoldr
andpfoldl
- re-implementation of exsisting functions (
pfilter
,pmap
, etc...) in terms ofpfold[rl]
(should result in smaller scripts if used multiple times)
UtilityTermOf<PLam<...>>
returnsTermFn<...>
UtilityTermOf<PAlias<SomePType>>
returnsTerm<PAlias<...>> & UtilityTermOf<SomePType>
ToPType<AliasTermType<...>>
now returnsPAlias<...>
- fixed some
TermList
typescript types
- UtilityTerms should expose typescript functions rather than plu-ts ones; this was done to incentivize developers to reuse the terms but it extremly hurts readability
- UtilityTerms will still expose the plu-ts term equivalent of each method trough the
<method name>Term
property