packages feed

cleveland-0.3.2: CHANGES.md

<!-- Unreleased: append new entries here -->


0.3.2
=====
* [!1323](https://gitlab.com/morley-framework/morley/-/merge_requests/1323)
  Trace called contracts on error
  + Display sequence of contracts calls and other operations on error
* [!1310](https://gitlab.com/morley-framework/morley/-/merge_requests/1310)
  Various parser fixes
  + Add Hedgehog generator for Michelson macros `genMacro`
* [!1341](https://gitlab.com/morley-framework/morley/-/merge_requests/1341)
  Refactor scope constraints
  + Avoid redundant `check*Presence` uses
* [!1333](https://gitlab.com/morley-framework/morley/-/merge_requests/1333)
  Improve typechecker error rendering

0.3.1
=====
* [!1339](https://gitlab.com/morley-framework/morley/-/merge_requests/1339)
  Export AddressWithAlias &c from Cleveland
* [!1331](https://gitlab.com/morley-framework/morley/-/merge_requests/1331)
  Support implicit account tickets
  + New Cleveland action, `transferTicket`, and its unchecked counterpart
    `unsafeTransferTicket`.
* [!1330](https://gitlab.com/morley-framework/morley/-/merge_requests/1330)
  Support ticket balance queries
* [!1328](https://gitlab.com/morley-framework/morley/-/merge_requests/1328)
  Kill support for TORUs, minimal sr1 address support, tz4 address support
  + BLS crypto generators added in `Hedgehog.Gen.Tezos.Crypto.BLS`;
  + New crypto hedgehog generators which allow choosing key type added to
    `Hedgehog.Gen.Tezos.Crypto`;
  + `importSecretKey` Cleveland action added to allow for getting addresses with
    specific key type.
* [!1313](https://gitlab.com/morley-framework/morley/-/merge_requests/1313)
  Add `getOnlyRpcEnv` utility function
* [!1315](https://gitlab.com/morley-framework/morley/-/merge_requests/1315)
  Avoid redundant calls to octez-client address store
  + Use `ImplicitAddressWithAlias` for sender, moneybag and new implicit address
    generators
  + Introduce `ToImplicitAddress` class to use `ImplicitAddressWithAlias` where
    `ImplicitAddress` is required
* [!1297](https://gitlab.com/morley-framework/morley/-/merge_requests/1297)
  Add a failure predicate to expect custom error with a specific tag, but
  arbitrary argument (including none), `expectCustomErrorAnyArg`
* [!1304](https://gitlab.com/morley-framework/morley/-/merge_requests/1304)
  Avoid unnecessary contract conversions
* [!1306](https://gitlab.com/morley-framework/morley/-/merge_requests/1306)
  Add `refillables` which marks multiple addresses as refillable
* [!1290](https://gitlab.com/morley-framework/morley/-/merge_requests/1290)
  Implement negation for `TransferFailurePredicate`
  + Also refactor `TransferFailurePredicate` to use `Maybe Builder` instead of
    `Validation Builder ()`.
* [!1280](https://gitlab.com/morley-framework/morley/-/merge_requests/1280)
  Apply internal modules pattern consistently
  + Export everything from internal modules
  + Move some internal modules around to avoid mixing definitions and reexports.

0.3.0
=====
* [!1281](https://gitlab.com/morley-framework/morley/-/merge_requests/1281)
  Use the new binaries names, `octez-client` and `octez-node`
* [!1270](https://gitlab.com/morley-framework/morley/-/merge_requests/1270)
  Add lima protocol TICKET instruction, rename old one to TICKET_DEPRECATED
  + The `TICKET` instruction was renamed to `TICKET_DEPRECATED`
  + A new `TICKET` instuction was added which no longer allows zero amount tickets.
    It now returns `Some Ticket` and `None` in case of zero ammount supplied.
* [!1252](https://gitlab.com/morley-framework/morley/-/merge_requests/1252)
  Better errors on stuck GetEntrypointArgCustom
  + Particularly in `transfer` with polymorphic/ambiguous contract parameter.
* [!1258](https://gitlab.com/morley-framework/morley/-/merge_requests/1258)
  Support implicit contract delegates and setting delegates during origination
  + New function `setDelegate` for setting the delegate on implicit addresses.
  + `originate` now allows specifying optional delegate by passing a `KeyHash` value as argument.
  + `getDelegate` now accepts either implicit or contract addresses.
* [!1226](https://gitlab.com/morley-framework/morley/-/merge_requests/1226)
  Implement delegation operation via RPC
* [!1257](https://gitlab.com/morley-framework/morley/-/merge_requests/1257)
  Add ability to call on-chain views directly from test scenarios
* [!1244](https://gitlab.com/morley-framework/morley/-/merge_requests/1244)
  Carry verbosity setting to only-rpc env in `mkMorleyOnlyRpcEnvNetwork`
* [!1243](https://gitlab.com/morley-framework/morley/-/merge_requests/1243)
  Use Morley's `run_code` emulation
* [!1242](https://gitlab.com/morley-framework/morley/-/merge_requests/1242)
  Use `Constrained` utility existential
* [!1246](https://gitlab.com/morley-framework/morley/-/merge_requests/1246)
  Fix `MonadOriginate` blowing up with `Reduction stack overflow`
  + `MonadOriginate` constraint caused GHC to go loopy; now it doesn't, and a
    test was added to prevent this in the future.
* [!1247](https://gitlab.com/morley-framework/morley/-/merge_requests/1247)
  Refactor MorleyClientEnv
  + Removed `MorleyClientEnv'`, constructor now lives in `MorleyClientEnv`
  + Removed `Morley.Client.Env` module
  + `MorleyClientEnv`, `mkMorleyClientEnv` and `MorleyClientEnv` lenses moved to `Morley.Client.Full`
* [!1220](https://gitlab.com/morley-framework/morley/-/merge_requests/1220)
  Better `transfer` errors on bad address type
* [!1219](https://gitlab.com/morley-framework/morley/-/merge_requests/1219)
  Add resolving contract aliases in network tests
* [!1237](https://gitlab.com/morley-framework/morley/-/merge_requests/1237)
  Support delegate registration on the emulator
* [!1178](https://gitlab.com/morley-framework/morley/-/merge_requests/1178)
  Fix `contract t` typed value generator
  + `contract t` value generator where `t /= unit` could produce implicit
    addresses. This is invalid. Now it only produces smart contract addresses.
  + `contract unit` generator can still produce both implicit and smart contract
    addresses.
* [!1228](https://gitlab.com/morley-framework/morley/-/merge_requests/1228)
  Handle implicit default entrypoint in `testContractCoversEntrypoints` &c
  + Implicit default entrypoint is considered in entrypoint coverage tests iff
    the default entrypoint is defined in the spec. Otherwise, implicit default
    is ignored. Explicit default entrypoint is always considered.
* [!1211](https://gitlab.com/morley-framework/morley/-/merge_requests/1211)
  Unify handling of annotated exceptions

0.2.1
=====
* [!1199](https://gitlab.com/morley-framework/morley/-/merge_requests/1199)
  Replace removed HasTezosClient actions with TezosClient.Impl version.
* [!1212](https://gitlab.com/morley-framework/morley/-/merge_requests/1212)
  Support contract events
  + Untie cleveland operation results from morley-client.
  + Introduce `ContractEvent` type for contract events.
  + Introduce new `WithContractEvents` flag for `transfer`, which tells it to
    return `[ContractEvent]`.
* [!1191](https://gitlab.com/morley-framework/morley/-/merge_requests/1191)
  General cleanup
  + Display contract's aliases in error messages when a transfer fails (emulator-mode only).
* [!1177](https://gitlab.com/morley-framework/morley/-/merge_requests/1177)
  Distinguish implicit/contract aliases and addresses on the type level
* [!1187](https://gitlab.com/morley-framework/morley/-/merge_requests/1187)
  Access MorleyClientEnv in network tests
  + Add `NetworkCaps` carrying `NetworkEnv`.
  + Replace `ScenarioCleveland` with `ScenarioNetwork`.
  + Reimplement `scenario` as a function in `MonadScenario` typeclass.
  + Rename `Scenario` to `Scenario'`, add `Scenario` synonym that bakes in
    `MonadScenario` constraint.
  + Allow `ifEmulation` to access `NetworkCaps` in the on-network branch.
* [!1168](https://gitlab.com/morley-framework/morley/-/merge_requests/1168)
  Support a mix of RPC and non-RPC representations in `runCode`
* [!1137](https://gitlab.com/morley-framework/morley/-/merge_requests/1137)
  Refactor Cleveland's originate\* and `transfer`/`transferMoney`/`call`
  functions
  + All 9 `originate*` functions are replaced with single `originate`,
    optionally accepting initial balance (as `Mutez`) and whether it's a large
    origination (using `Large` argument).
  + `transfer`, `transferMoney` and `call` functions replaced by `transfer` and
    two helpers, `calling` and `unsafeCalling`.

0.2.0
=====
* [!1172](https://gitlab.com/morley-framework/morley/-/merge_requests/1172)
  Add `withChainId` and `withMinBlockTime` functions to set emulator constants.
* [!1123](https://gitlab.com/morley-framework/morley/-/merge_requests/1123)
  Remove deprecated exports
* [!1161](https://gitlab.com/morley-framework/morley/-/merge_requests/1161)
  Remove support for `AliasHint`
* [!1169](https://gitlab.com/morley-framework/morley/-/merge_requests/1169)
  Support MIN_BLOCK_TIME instruction
  + Add `getMinBlockTime` utility to get minimal block delay in seconds as
    `Natural`
* [!1164](https://gitlab.com/morley-framework/morley/-/merge_requests/1164)
  Add `now` and `level` params to the `/run_code`
* [!1162](https://gitlab.com/morley-framework/morley/-/merge_requests/1162)
  Implement instruction to batch-create accounts
* [!1114](https://gitlab.com/morley-framework/morley/-/merge_requests/1114)
  Update to ghc-9.0.2
* [!1108](https://gitlab.com/morley-framework/morley/-/merge_requests/1108)
  Remove support for the deprecated morley extensions
* [!1127](https://gitlab.com/morley-framework/morley/-/merge_requests/1127)
  Create tempdir in Cleveland if datadir is unspecified
  + Instead of mangling user's default tezos-client data directory, when
    a Cleveland test-suite invocation doesn't specify a datadir, use a
    new temporary directory by default.

0.1.2
=====
* [!1050](https://gitlab.com/morley-framework/morley/-/merge_requests/1050)
  Modify resolveAddress to accept AliasHints
* [!1039](https://gitlab.com/morley-framework/morley/-/merge_requests/1039)
  Parameterize generators with a Range
  + `minTimestamp`, `maxTimestamp` and `midTimestamp` are moved to `Hedgehog.Range.Tezos.Core.Timestamp`.
* [!1017](https://gitlab.com/morley-framework/morley/-/merge_requests/1017)
  Resolve some TODOs and link TODOs without issue id to the corresponding gitlab tickets.
* [!1082](https://gitlab.com/morley-framework/morley/-/merge_requests/1082)
  Fix/drop/comment noncanonical Show instances

0.1.1
=====
* [!1113](https://gitlab.com/morley-framework/morley/-/merge_requests/1113)
  Remove uses of `Parser LetEnv` due to redundant constraint.
* [!1094](https://gitlab.com/morley-framework/morley/-/merge_requests/1094)
  Deprecate morley language extensions
  + Functions for importing and testing Morley contracts are added: `Test.Cleveland.Michelson.Import.testTreesWithUntypedContractExt`, `Test.Cleveland.Michelson.Import.testTreesWithTypedContractExt`, `Test.Cleveland.Lorentz.Import.importContractExt`. All these functions are considered deprecated.
* [!965](https://gitlab.com/morley-framework/morley/-/merge_requests/965)
  Use Morley's fixed-size lists
  + Add Hedgehog generators for sized lists.
  + Introduce `enumAliasHints` for generating a sized list of similarly named alias hints.
* [!1072](https://gitlab.com/morley-framework/morley/-/merge_requests/1072)
  Add `runCode` to Cleveland
* [!1070](https://gitlab.com/morley-framework/morley/-/merge_requests/1070)
  Simplify cleveland's internals & public api
  + Relaced the `NiceUnpackedValue (AsRPC st)` constraint in `getStorage`
  + Removed the `NicePackedValue k` constraint from `getAllBigMapValuesMaybe`,
    `getAllBigMapValues`, `getBigMapSizeMaybe`, and `getBigMapSize`.
* [!1025](https://gitlab.com/morley-framework/morley/-/merge_requests/1025)
  Reduce the number of unsafe functions at the call site
  + Remove `unsafeFromHex` converter that is used as counter-part of safe `fromHex` and replaced with `unsafe . fromHex`.
  + Refactor `fromHex` to return `Either` instead of `Maybe`.
  + Add `parseAddressFromHex` helper to get rid of duplicated usages of `parseAddressRaw . unsafe . fromHex`.
* [!978](https://gitlab.com/morley-framework/morley/-/merge_requests/978)
  Make it difficult to misuse 'Show'
  + Use `Buildable` and `pretty` preferrentially.
  + Add `Buildable` instances for `FaluireReason`, `Either a b`.
  + Add `PrettyShow` instances for `TypeSpec` (in lorentz-test) and `Time _` (in cleveland itself)./
  + Avoid using `(+||)` and `(||+)`.
  + Use `Debug.show` when defining `Show` instances.
* [!1058](https://gitlab.com/morley-framework/morley/-/merge_requests/1058)
  Add `Buildable` instances for Unit, tuples up to 8 elements & bytestrings
* [!1057](https://gitlab.com/morley-framework/morley/-/merge_requests/1057)
  Test `Show` and `RenderDoc` instances of `Annotation t`, `AnnotationSet`, `Notes t`, `InstrAbstract op`
* [!997](https://gitlab.com/morley-framework/morley/-/merge_requests/997)
  Check necessity in initial `cast` automatically in Lorentz contracts
* [!1044](https://gitlab.com/morley-framework/morley/-/merge_requests/1044)
  Fix `getRunMode` and `whenEmulated`
  + `getRunMode` is replaced by `ifEmulation` helper.
  + A new helper `whenNetwork` is added.
  + One caveat is that functions passed to `ifEmulation` are universally quantified over the outer monad, so if additional constraints are required beyond `MonadCleveland` or `MonadEmulated`, those constraints have to go on the base monad, e.g. `(MonadCleveland caps m, MonadFail (ClevelandBaseMonad caps)) => m ()`.
ifEmulation.
* [!1043](https://gitlab.com/morley-framework/morley/-/merge_requests/1043)
  Extract actual + expected pattern into a datatype and show diff in type mismatch
* [!1037](https://gitlab.com/morley-framework/morley/-/merge_requests/1037)
  Add synonyms for `SomeConstrainedValue`
  + Reimplement `SomeConstant`, `SomeValue`, `SomeStorage` via `SomeConstrainedValue`.

0.1.0
=====
Initial release extracted from the [morley](https://hackage.haskell.org/package/morley)
and [lorentz](https://hackage.haskell.org/package/lorentz) packages.
Tezos testing framework for contract developed with Michelson, Morley or Lorentz.