Changelog for lorentz-0.13.3
0.13.3
- !1100
Support
map
instruction overMaybe
(a.k.a.option
)- Add
instance MapOpHs (Maybe e)
- Add
- !1084 Switch to the new mutez subtraction operation
- !1101
Export
sopSetField
andsopGetField
fromLorentz.StoreClass
- !1089
Enhance and rename mutez quasiquote
- Export
tz
quasiquoter fromLorentz.Value
andLorentz
.
- Export
- !1071
Add
HasRPCRepr
typeclass- Move
AsRPC
type instances from theLorentz.AsRPC
module to the modules of their respective types.
- Move
- !901
Weaken constraints of
getField
getField
and similar methods now requireDupable
on the copied field andHasDupableGetters
(defaults toDupable
) on the datatype.
- !1060
Add
Lorentz.AsRPC
module containing instances forMorley.AsRPC
type family - !978
Make it difficult to misuse 'Show'
- Use
Buildable
andpretty
preferrentially. - Avoid using
(+||)
and(||+)
. - Use
Debug.show
when definingShow
instances.
- Use
- !1062
Move
senderIsNotAdmin
Lorenz error tomorley-ledgers
repo - !997
Check necessity in initial
cast
automatically in Lorentz contracts - !1043 Extract actual + expected pattern into a datatype and show diff in type mismatch
- !1037
Add synonyms for
SomeConstrainedValue
- Reimplement
SomeConstant
,SomeValue
,SomeStorage
viaSomeConstrainedValue
. - Add
SomePackedVal = SomeConstrainedValue PackedValScope
.
- Reimplement
- !1049
Delete unnecessary
HasStorage
constraintsLorentz.Contract
no longer requiresParameterDeclaresEntrypoints
orHasAnnotation st
.- Added
NiceStorageFull
constraint for whenHasAnnotation st
is actually needed.
0.13.2
- !1041
createContract
now returnsTAddress
, notAddress
0.13.1
- !1016
- Add support for on-chain views.
Contract
,TAddress
and similar types has gained a new type argument designating the views set exposed by the contract. By default, set it to()
.- The old A1 (aka TZIP-4) views -
View
type and related methods - were renamed via adding a_
suffix:View_
,mkView_
,wrapView_
, e.t.c.
- !1010
Add timelock puzzle support.
- Add Lorentz instruction
openChest
. - Add
OpenChest
type, isomorphic toEither ByteString Bool
- Add Lorentz types
ChestT
,OpenChestT
, abstracting working with any type representable asByteString
(defined inLorentz.Bytes
). - Add
openChestT
Lorentz instruction for working withChestT
(defined inLorentz.Bytes
)
- Add Lorentz instruction
0.13.0
- !915
- Add Fixedpoint arithmetics to lorentz
- Add additional
NFixed
datatype for natural fixedpoint values - Add typeclasses for rounding and casting fixedpoint values
- Change behavior of lorentz arithmetic operations - now type of the result is specified by user.
- Add
ArithOpHs
instance forEDiv
instruction
- !989
Switch from interpolate to home-grown string interpolation module
- Note this changes the syntax of slices in
md
quasiquoter. Before we could use expressions#{expression}
, now we can only use variable names#{name}
.
- Note this changes the syntax of slices in
- !909
- Update all instances of
Named
functions with patterns fromMorley.Util.Named
- Update all instances of
- !1000
Modify the
cloneX
macro to only usedup
s. - !937
Attach source code location to interpreter error messages
- Changed morley interpreter error type from
MichelsonFailed
toMichelsonFailureWithStack
- Changed morley interpreter error type from
- !945
- Bump Stackage LTS version from 17.9 to 18.10.
- !835
- Added
Lorentz.Tickets
module with tickets arithmetics and common helpers. - Added
Impossible
error. - Added
transferTokensE
andpairE
. - Moved
NonZero
toLorentz.Macro
. - Updated
Wrappable
:- Make separate
Wrappable
andUnwrappable
typeclasses. - Old
Unwrappable
type family renamed toUnwrappabled
. - Weaked permissions to perform some actions for some types.
May now require
unsafeCoerceWrap
instead ofcoerceWrap
.
- Make separate
- Added
- !922 Replace lSignEd22519 with generic lSign
- !881
- Rename
PrintedValScope
toUntypedValScope
with related types and functions.
- Rename
0.12.1
- !879
- Add
Buildable
andRenderDoc
instances for(:->)
operator - Instances are based on transforming operator to
Instr
type and using its instances
- Add
0.12.0
-
StoreHasField
instance definition is no more necessary for simple ADT storage types.
-
- Reorganized
Contract
type and related stuff. - Added methods for reading
Contract
from file.
Migration guide (sufficient unless you worked on framework internals):
- In case you needed to use non-default contract compilation options, use
mkContractWith
now.
For more details, see documentation of
Lorentz.Run
. - Reorganized
-
- Add tickets feature.
- Add dupable restriction to
dup
-like instructions and some high-level helpers. Seedup
's documentation for notes on how to live in this brand new world. - Make
parseNoEnv
,readValue
and other similar functions acceptMichelsonSource
instead ofFilePath
.
-
- All unsafe functions and data constructors now contain "unsafe" word
at prefix position. E.g
UnsafeMText
,unsafeMkAnnotation
.
- All unsafe functions and data constructors now contain "unsafe" word
at prefix position. E.g
-
- Added
Lorentz.Expr
module with primitives for convenient expressions evaluation.- Added
listE
to construct an expression list from a list of expressions.
- Added
if ... then ... else
now is polymorphic in the first argument.- Boolean expressions now can appear as condition for
if
.
- Boolean expressions now can appear as condition for
- Added
0.11.0
- !814
- Added the usage of
Prelude.Type
instead ofData.Kind.Type
, as a resultKind.Type
was replaced with justType
.
- Added the usage of
- !745
-
Generalize
st*
methods for working with storage. Now it is possible to access nested fields and submaps likestToField (#a :-| #b)
. This should not require any changes unless you keep you own generic helpers over those methods. -
Existing
StoreHasSubmap (Big?)Map anyName k v
instance is replaced with two:StoreHasSubmap (Big?)Map Self k v
StoreHasSubmap store name k v
that delegates toStoreHasField
.
Migration guide:
- If you have
StoreHasSubmap
instances for specific storage and name implemented viastoreSubmapOpsDeeper
, remove them and make sure you have a similarStoreHasField
instance implemented viastoreFieldOpsADT
. - If you have storage which is directly a map, use
this
instead of label to access the map. - If you have an instance for a complex storage which is not represented as simple ADT, turn this instance into overlappable one.
-
- !807
- Add some instances to
BigMap
andTAddress
types.
- Add some instances to
- !787
- Added new Edo macros:
CAR k
andCDR k
ascarN
andcdrN
.
- Added new Edo macros:
- !798
- Added back the
UnaryArithOpHs Abs Integer
instance that was removed by accident.
- Added back the
- !802
- Add
NiceParameterFull
andNiceStorage
constraints to LorentzContract
constructor. - Moved
coDisableInitialCast
toCompilationOptions
datatype.
- Add
0.10.0
- !774
- Added support for
BLS12-381
crypto primitives (types, instructions, arithmetics). - Now it is possible to use
int
instruction for newtypes overNatural
.
- Added support for
- !786
- !791
- Add new Edo instructions:
pairGet
andpairUpdate
.
- Add new Edo instructions:
- !755
Restricted
FAILWITH
only to packable values, exceptCONTRACT
s - !759
- Add
UnitErrorArg
andNoErrorArg
to be used withErrorArg
instance.UnitErrorArg
is preferred to()
NoErrorArg
allows failing with just a string instead of apair string unit
.
- Add
- !764
- Added
Never
type, deprecatedEmpty
type.
- Added
0.9.1
- !781
- Replaced mixins and dependency on
base
withbase-noprelude
.
- Replaced mixins and dependency on
- !751
- Add new Edo instruction:
LEVEL
.
- Add new Edo instruction:
- !741
- Add new Edo instructions:
SHA3
andKECCAK
.
- Add new Edo instructions:
0.9.0
- !731
Added
GenericStrategy
-ies for compatibility with LIGO. - !712 Add lenses for Lorentz contract config.
- !684
- Simplify working with autodoc in contracts (breaking change).
finalizeParamCallingDoc
is now applied automatically when lorentz'Contract
is used, no need to call it manually.
0.8.0
- !671
- Add
TypeHasDoc
instances forTAddress
andFutureContract
. - Add a generic
instance DocItem (DEntrypoint ep)
. In case of getting overlapping instances, you have to implementEntrypointKindHasDoc
instead. - Some error messages in doc tests are improved.
- Some bugfixes for anchors.
- Cases with contract logic residing outside of entrypoints are now better handled.
- Add
- !665
Improve
StorageContains
to work for polymorphic case (when field is marked withIdentity
). - !679
Add
dupLNamed
. - !672
- Add
Packed
,TSignature
andHash
types. pack
andunpack
now work withPacked
instead ofByteString
(for the sake of better type-safety). Either usePacked
type, orpackRaw
/unpackRaw
instructions.checkSignature
now works withPacked
andTSignature
.blake2b
and other hashing instructions now work withHash
.- If necessary, coersions can be used to switch between the mentioned types and raw
ByteString
.
- Add
- !667
- Modify representation of extended lambdas (arbitrary code used as lambdas is now packed into right-hand combs, not left-hand ones).
- Add
applicate
macro.
- !630
Use
:
in all library instructions instead of&
. - !652
Update the
ContractRegistry
to be able to not require contract name for all its commands when there is only one contract. - !640
Change
StoreSubmapOps
to contain no optional methods.
0.7.1
0.7.0
- !629
All
UStore
modules has been moved to the morley-upgradeable repository. Now you have to include that repository to your build and importLorentz.UStore
. - !610
Remove
Lorentz.TestScenario
. - !585
Add
HasAnnotation
instance forChainId
.
0.6.2
- !589
Add
annOptions
method inHasAnnotation
which can be used to customize the generated annotations of a type.- Add helper functions to use with
annOptions
.
- Add helper functions to use with
- !591
Add
dupTop2
.
0.6.1
- !533
Add
entrypointDoc
,typeDoc
, anderrorDoc
quasiquotes which help generating typeclass instances.
0.6.0
- !558
Added a new
wrapOne
to wrap a value in a constructor with a single field, because it has the advantage of having an input stack that does not depend on a type family. - !528
The generated documentation now contains a sample value of each entrypoint.
- Allow modification of sample value via
mkDEntrypointExample
.
- Allow modification of sample value via
- !493
Add support for root entrypoint.
- A contract can now specify whether or not the root annotation should be generated and which name it should use.
self
andcontract
instructions are able to call the root entrypoint.
0.5.0
- !530
Field annotation are now generated for sum-type in
parameter
andstorage
.- It also ensures that it will not generate field annotations that would introduce extra entrypoints.
- !371
Make
view_
argument accept 2 arguments rather than a pair. - !486
Add
customGeneric
to deriveGeneric
instances with a custom tree structure and, consequently,IsoValue
instances with such a structure. - !483 Add a way to generate field annotations for entrypoint parameter.
- !470
Move
Lorentz.Test
and Hedgehog generators to a new package:cleveland
. - !357
Remove deprecated
Lorentz.Store
module and deprecated custom error functionality.
0.4.0
- !449
- Improve
Lorentz.Test.Integrational
interface. - Remove
IntegrationalValidator
,SuccessValidator
,validate
,composeValidators
,composeValidatorsList
,expectAnySuccess
. - Add
unexpectedInterpreterError
,attempt
,catchExpectedError
. - Change type of
expect*
/tExpect*
/lExpect*
functions. They now returnIntegrationalScenario
instead ofSuccessValidator
/Bool
. - Rename
ValidationError
toTestError
- Replace
TestError
'sUnexpectedExecutorError
constructor withInterpreterError
andUnexpectedInterpreterError
.
- Improve
- !432
Add
whenNone
to Lorentz. - !398
Add
StoreHasEntrypoint
class to conveniently use entrypoints as lambdas stored intobig_map
(s) to make use of lazy evaluation. - !409
- Add hedgehog support
- !303
- Functions for working with
UStore
from Haskell world (e.g.fillUStore
) now have a different constraint. UStore
templates are now documented and thus may require instance of the respective typeclass.
- Functions for working with
0.3.0
- !417 Change the license to MIT.
- !360
- Add
compileLorentzWithOptions
function that accepts optional Michelson optimizer configuration and string transformer function. ChangedcompileLorentz
to call the optimizer with the default configuration. - Add
Lorentz.Contract
data type as a wrapper forLorentz.ContractCode
andLorentz.CompilationOptions
. Require that all contracts are wrapped in this data type.
- Add
- !354
- Add
constructStack
function that constructs a datatype from fields on the stack. - Add
deconstruct
function that deconstructs a datatype to its fields on the stack.
- Add
- !358
Removed deprecated
STEPS_TO_QUOTA
instruction. - !337
Added
comment
,commentAroundFun
andcommentAroundStmt
to generate comments in Michelson code.
0.2.0
- !346
Added
docStorage
andcontractGeneralDefault
. - !306
Deprecated
mapMigrationCode
in favor ofMapLorentzInstr
. - !326
Updated contract registry (
Lorentz.ContractRegistry
):- Now it can print initial storage apart from contract and documentation.
- Some extra fields were added to
ContractInfo
. - Logic is captured in the
runContractRegistry
function. - If you don't specify output file, we will use a file with name constructed from contract name. Pass
-
if you wantstdout
.
- !245 Added
HasTypeAnn
instance forFutureContract arg
. - !294
- Added
Paths_*
modules toautogen-modules
in cabal files. Removed-O0
- from default GHC options. Please set
ghc-options
in yourstack.yaml
orcabal.project.local
.
- Added
- !271 Renamed 'Contract' to 'ContractCode', and appended "Code" to the names of two functions: 'convertContract' and 'printTypedContract'
- !267
- Retain type annotations in entrypoints derivation.
- Remove overlappable
HasTypeAnn
instance defined for nearly each type. Adddefault
getTypeAnn
method definition instead and manually defineHasTypeAnn
instance for each type instead (trivially). When you create a new data type withIsoValue
instance, you usually have to deriveHasTypeAnn
as well.
0.1.0
Initial release extracted from the morley package.