Skip to content

Version 5.0.0

Latest
Compare
Choose a tag to compare
@mmontin mmontin released this 19 Mar 12:19
9cb8081

Added

  • quickCurrencyPolicyV3 and permanentCurrencyPolicyV3 which should be the
    most commonly used.
  • All kinds of scripts can now be used as reference scripts.
  • validateTxSkel_ which validates a skeleton and ignores the output.
  • txSkelMintsFromList' which only allows one redeemer per minting policy.
  • validatorToTypedValidatorV2
  • walletPKHashToWallet that retrives a wallet from a pkh. It used to be
    present but somehow disapeared.
  • It is now possible to reference an output which has a hashed datum.
  • txSkelHashedData the gives all the datum hashes in inputs and reference inputs.
  • Partial support for withdrawals in txSkels. The rewarding scripts will be run
    and assets will be transferred. However, these withdrawals are not properly
    constrained yet.
  • PrettyCooked option pcOptPrintLog, which is a boolean, to turn on or off the log
    display in the pretty printer. The default value is True.
  • Reference inputs with the right reference scripts are now automatically
    attached to redeemers when such input exists. This can be turned on using
    txOptAutoReferenceScripts. If disabled, the helper withReferenceInput can
    be used on a redeemer to manually attach a reference input (which does not
    necessarily have to contain the right reference script).
  • Capability to test the result of a mockchain run based on the log entries.
  • txOutRefToTxSkelOut helper to query the mock chain for recreating a
    TxSkelOut from a TxOutRef. This is very useful when using Tweaks that
    need to pay back an existing output with a slight modification.
  • A new tweak modifySpendRedeemersOfTypeTweak to apply an optional
    modification of all redeemers of a certain type within the skeleton inputs.
  • New setters for the various outputs fields.
  • The Payable structure to properly define, compose, and later pay, payable
    elements with receive.
  • The receive smart constructor for payments that allows to compose payable
    elements (datums, values, staking credential and reference scripts) and
    associate them to a recipient.
  • TxSkelOutValue which encompasses both a value and whether it can be tampered
    with through min ada adjustment. It comes with the constructors
    Value and FixedValue from the Payable type.

Removed

  • positivePart and negativePart in ValueUtils.hs. Replaced by Api.split.
  • Redundant logging of errors in mockchain runs.
  • Useless minting of non-ADA value in the dummy initial transaction.
  • Payment helpers (such as PaysPK, withDatum ...). Replaced by receives.
  • txOptEnsureMinAda, replaced by a field of TxSkelOutValue

Changed

  • GHC bumped to 9.6.6
  • Internal representation of redeemers have changed, and are similar for any
    supported script purpose (minting, spending or proposing).
  • Redeemers should now be built using one of the two following smart
    constructors: someTxSkelRedeemer, emptyTxSkelRedeemer
  • mkProposingScript changed to mkScript
  • withDatumHashed changed to withUnresolvedDatumHash
  • paysScriptDatumHashed changed to paysScriptUnresolvedDatumHash
  • txSkelInputData changed to txSkelInputDataAsHashes
  • Pretty printing of hashed datum now includes the hash (and not only the
    resolved datum).
  • Logging has been reworked:
    • it is no longer limited to StagedMockChain runs
    • it is now a component of MonadBlockChainBalancing
    • it can be turned on/off in pretty-printing options
    • it now displays the discarding of utxos during balancing.
    • it now displays when the user specifies useless collateral utxos.
    • it is not visible from outside of cooked-validators
  • Dependency to cardano-api bumped to 8.46.
  • The whole testing API has been revamped
  • File AddInputsAndOutputs.hs has been split into Inputs.hs, Outputs.hs
    and Mint.hs. File TamperDatum.hs has been updated and integrated into
    Output.hs.
  • File Skeleton.hs has been split into sub-files in the Skeleton folder.
  • Default language extensions and compilation options have been updated.
  • Transaction generation now directly lives in MonadMockChainBalancing.
  • Initial distributions are now handled as a first action in the MockChain.

Fixed

  • A bug where the script hashes would not be computed properly for early plutus
    version (V1 and V2).
  • A bug where balancing would fail with excessive inputs and not enough min ada
    in the excess.
  • Transactions that do not involve script are now properly generated without any
  • All kinds of scripts can now be used as reference scripts.
  • A bug where scripts being paid to in the initial distribution would not be
    stored in the MockChain.