Skip to content

Plutus Application Framework v1.0.0 Release

Compare
Choose a tag to compare
released this 25 Nov 14:29
· 208 commits to main since this release
7952b9d

Release notes

This release targets a Cardano Network with the Vasil HF (node v1.35.4) and supports the Babbage era features.

What follows is a general picture of what Babbage era features we currently support:

  • plutus-contract emulator has been updated to work with Babbage era types.
  • plutus-contract emulator uses the Babbage era validation rules from cardano-ledger.
  • plutus-ledger-constraints and plutus-tx-constraints has been updated to build transactions with reference inputs, inline datums and reference scripts.
  • plutus-chain-index has been updated to read blocks from Babbage era, and supports storing reference scripts and inline datums from transactions. However, the stored UTxO does not include collateral output from transactions.

Important changes:

  • Added 'currentChainIndexSlot' in Contract API.
  • Changed the tx output representation of EmulatorTx to use Cardano.Api.TxOut
  • Removed the TotalFunds effect of WalletEffect.
  • Change behavior of MustPayToPubKeyAddress and MustPayToOtherScript in #705
  • Renamed currentTime to currentNodeClientTimeRange and renamed currentPABSlot to currentNodeClientSlot in #772
  • Remove offchain logic for MustProduceAtLeast and MustSpendAtLeast in #817
  • Use Cardano Haskell package repository ("CHaP") in #797
  • Removed plutus-playground in #821

What's Changed

  • SCP-3855: update node dep by @ak3n in #449
  • Update next node branch with main branch by @koslambrou in #454
  • PLT-18: Create validator/minting policy/stake validator wrapper for Plutus V2 by @koslambrou in #461
  • [chain-index]: export all servant client functions by @ak3n in #492
  • [next-node]: merge updates from the main branch. by @ak3n in #507
  • Create separate directories for v1 and v2 plutus scripts by @Jimbo4350 in #486
  • Add PlutusV2 minting and staking scripts by @Jimbo4350 in #528
  • [chain-index]: add inline datums support by @ak3n in #488
  • PLT-484 Upgraded cardano-node version to the official 1.35.0 release.… by @koslambrou in #551
  • Backport changes from the main branch to the next-node branch by @koslambrou in #553
  • Updated version of plutus-apps components to 1.0.0 and cardano-node to 1.35 by @koslambrou in #560
  • Backport changes from main to next-node branch by @koslambrou in #576
  • Merge #574 and #575 from main into next-node by @koslambrou in #578
  • Update cardano-node dependency to 1.35.1 by @koslambrou in #584
  • Add build-and-serve-docs to CONTRIBUTING... by @james-iohk in #595
  • Replace Set TxIn with [TxIn] to fix StateMachine.getInput by @ak3n in #594
  • Require markdown 3.3.7 by @james-iohk in #601
  • Added precision on the meaning of the first-major version of plutus-apps by @koslambrou in #597
  • Add note to checkPredicateGenOptions by @FinleyMcIlwaine in #603
  • Add script equivalence context test for the V2 context. by @Jimbo4350 in #588
  • Fix the swagger with CardanoBuildTx's OpenApi stub schema by @ak3n in #599
  • Buildkite will now generate the docker devcontainer with the vX.Y.Z tag name by @koslambrou in #598
  • PLT-515 Improve DevX for plutus-playground-server/client and pab-nami users by @zeme-iohk in #559
  • Merge main branch into next-node by @koslambrou in #609
  • Remove withIsCardanoEra workaround by @andreabedini in #607
  • Increase the delay of awaiting in plutus-pab-executables tests by @ak3n in #565
  • Add zero ada to mint and fee fields to match cardano-ledger behaviour by @ak3n in #608
  • feat: replace allowBigTransactions function with increaseTransactionL… by @KristianBalaj in #606
  • Fix Plutus Plauground Nightly E2E Test by @zeme-iohk in #615
  • Fix a typo of PubKeyTxOut by @whs-dot-hk in #621
  • [PLT-81] plutus-chain-index: support inline scripts when querying TxOut of a TxOutRef by @andreabedini in #613
  • Merge subtree raduom/hysterical screams into plutus-hysterical-screams by @zeme-iohk in #620
  • Absorb hysterical-screams into plutus-apps by @zeme-iohk in #627
  • Moved datum and redeemer hash computation functions in plutus-script-utils by @koslambrou in #628
  • Raduom/marconi initiative by @raduom in #585
  • PLT-309: Rename 'currentSlot' to 'currentPABSlot' and add 'currentChainIndexSlot'. by @ak3n in #619
  • Replace #!/bin/bash with #!/usr/bin/env bash by @eyeinsky in #618
  • Fix typo In by @whs-dot-hk in #630
  • PLT-359 ADR regarding problem with PAB's integration with indexing solutions. by @koslambrou in #550
  • Add minting context equivalence test plutus script by @Jimbo4350 in #631
  • Add missing field by @eyeinsky in #617
  • PLT-568: Switch to Babbage era by @sjoerdvisscher in #614
  • Refactored the tx constraints library to prepare for PlutusV2 by @koslambrou in #625
  • Merge main in next-node branch by @koslambrou in #634
  • Remove old references to hysterical-screams by @zeme-iohk in #635
  • ADR-0004 Common PAB API document by @gege251 in #586
  • [next-node]: Bump wallet, plutus, ledger, node by @ak3n in #616
  • Use '[TxIn]' instead of 'Set TxIn' in 'data Tx' by @ak3n in #623
  • cardano-ledger validation rules are prioritized over custom validaton rules by @koslambrou in #639
  • PLT-80: Fix "Output doesn't have the minimum required Ada" error while balancing by @sjoerdvisscher in #600
  • PLT-445 Add mustReferencePubKeyOutput in constraints library by @koslambrou in #640
  • Fix static-site.nix formatting by @whs-dot-hk in #646
  • Fix onchain MustPayToPubKeyAddress check by @sjoerdvisscher in #648
  • Fix Ledger.Constraints.TxConstraints.collectFromPlutusV1ScriptFilter implementation by @koslambrou in #644
  • Update cardano-node to 1.35.3-rc1 with deps by @ak3n in #647
  • Add mustSpendAtLeast Constraint tests by @james-iohk in #641
  • Add plutus-contract tests for required signer and... by @james-iohk in #624
  • PLT-682 ADR for the constraint interface change following support for reference inputs by @koslambrou in #654
  • Merge main branch into next-node 2022-08-11 by @koslambrou in #658
  • Upgraded to a cardano-wallet version compatible with node 1.35.3-rc1 by @koslambrou in #657
  • Merge main into next-node (2022-08-12) by @koslambrou in #659
  • PLT-670: MustReferenceOutput by @sjoerdvisscher in #661
  • PLT-682 ADR for the constraint interface change following supporting inline datums by @koslambrou in #660
  • Replace LedgerPlutusVersion with Language type by @sjoerdvisscher in #662
  • Plt 684 adr interface changes to the transaction constraint library for working with reference scripts by @koslambrou in #663
  • PLT-494: PlutusV2 TypedValidators by @sjoerdvisscher in #666
  • SCP-4354 Bump plutus-apps/next-node branch version by @jhbertra in #669
  • Transaction state indexer. by @raduom in #524
  • new doc title and revised intro by @joseph-fajen in #638
  • PLT-618: Rename hysterical-screams to rewindable-index by @sjoerdvisscher in #673
  • PLT-670 Add MustValidateIn to tx constraints by @berewt in #665
  • Fix indentation of modules by @whs-dot-hk in #656
  • chore(deps): bump nixbuild/nix-quick-install-action from 16 to 17 by @dependabot in #670
  • ADR - 0010 - Marconi Indexer by @raduom in #649
  • very minor edit to Tools Intro by @joseph-fajen in #677
  • Add event channel to certification function by @UlfNorell in #672
  • Add tests for MustMint tx constraint by @james-iohk in #668
  • PLT-448: inline scripts in constraint libraries by @sjoerdvisscher in #678
  • PLT 756: merge main into next node for commits before 2022 08 24 by @koslambrou in #680
  • Activated -Werror in nix configuration for rewindable-index package. by @koslambrou in #682
  • export getUnspentTxOutsAtAddress by @mikekeke in #667
  • Plt 745 fix tx processing in emulator with regards to slot ranges by @berewt in #679
  • Fix iohk email domain by @whs-dot-hk in #685
  • Add MustProduceAtLeast tx constraint tests by @james-iohk in #676
  • PLT-738: Include plutus language versions with scripts by @sjoerdvisscher in #681
  • PLT-685 ADR for supporting return and total collateral when building transactions by @koslambrou in #684
  • New shiny indexer by @raduom in #687
  • PLT-172: Marconi index transactions that have been issued to a particular script by @eyeinsky in #629
  • PLT-454: mustUseOutputAsCollateral by @sjoerdvisscher in #690
  • Add MustSpendPubKeyOutputs tests by @james-iohk in #688
  • PLT-765 Create Marconi package in plutus-apps by @eyeinsky in #683
  • Update tx with missing fields. by @zmrocze in #468
  • certification: Make CertificationTask Ord-ered by @shlevy in #699
  • Move marconi executable to the right directory by @berewt in #702
  • Upgrade gitignore-nix version by @zeme-iohk in #703
  • certification: Send CertificationDone event when finished running. by @shlevy in #704
  • Add tests for mustIncludeDatum tx constraint by @james-iohk in #700
  • Add tests for MustPayToPubKeyAddress tx constraint by @james-iohk in #701
  • Plutus Tools duplicate topics deleted by @joseph-fajen in #686
  • PAB <> Blockfrost integration by @TomasOsiecki in #655
  • Use cardano ledger validation by @ak3n in #642
  • Add tests for mustSpendScriptOutput and mustSpendScriptOutputWithMatchingDatumAndValue tx constraints by @james-iohk in #706
  • plutus-contract emulator: Change the tx output representation of EmulatorTx to use Cardano.Api.TxOut by @berewt in #698
  • Add a certification event for number of QuickCheck tests about to be run by @UlfNorell in #712
  • Add tests for mustPayToOtherScript tx constraint by @james-iohk in #710
  • Fix cardano-api interface for asset-related types by @devfull in #709
  • PLT-646 Removed the TotalFunds effect of WalletEffect. by @koslambrou in #718
  • Enable full 2nd phase validation. by @ak3n in #717
  • Add tests for burning with MustMint constraint by @james-iohk in #719
  • Make MustSpendScriptOutput check redeemer on-chain by @ak3n in #723
  • marconi CLI list index PLT-599 by @kayvank in #715
  • Add inline datum supports for mustPayToPubKey and mustPayToOtherScript by @berewt in #721
  • Fix some false-positives MustSpendScriptOutput tests using versioned minting policies by @james-iohk in #725
  • PLT-448: must spend script output with reference by @sjoerdvisscher in #716
  • PLT-807 Change behavior of MustPayToPubKeyAddress and MustPayToOtherScript by @koslambrou in #705
  • Integration test for marconi indexer using local testnet by @eyeinsky in #714
  • PLT-511: collateral output in chain index by @sjoerdvisscher in #730
  • Don't require the darwin jobs to succeed for now until the mac-minis are fixed in C by @koslambrou in #739
  • PLT-360 ADR documenting our decision to commit the cardano-api package by @koslambrou in #734
  • Renamed plutus-streaming to cardano-streaming by @koslambrou in #728
  • [plutus use cases]: fix quickcheck tests by @ak3n in #726
  • Add marconi-mamba package by @eyeinsky in #724
  • added new page describing tools components by @joseph-fajen in #711
  • Resolve GTH-697 by adding contractErrorWhenSpendMoreThanScriptBalanceWithOtherWalletAsOwnPubkeyLookup test by @james-iohk in #736
  • PLT-990 Removed Plutus.Contract.Wallet.finalize function and changed MustValidateIn constraint processing by @koslambrou in #741
  • PLT-727: Update the contributing guide by @zliu41 in #729
  • PLT-558 Right after Vasil HF on Cardano mainnet, merge next-node into main by @berewt in #737
  • next-node is the new merge (ends PLT-558) by @berewt in #745
  • Revert "next-node is the new merge (ends PLT-558)" by @berewt in #746
  • Merge next-node into main (ends PLT-558) by @berewt in #747
  • chore(deps): bump nixbuild/nix-quick-install-action from 17 to 18 by @dependabot in #743
  • Add proper ToJSON instance for unit test results by @UlfNorell in #744
  • Deactivate Crowdfunding QuickCheck ContractModel test case. by @koslambrou in #755
  • Add MustSatisfyAnyOf plutus-contract tests by @james-iohk in #752
  • chore(deps): bump cachix/install-nix-action from 17 to 18 by @dependabot in #751
  • Plt 659 plutus contract must spend script output should work with reference scripts by @berewt in #756
  • PLT-1036 Fix failing test suites after the main/next-node merge by @berewt in #761
  • Add mustReferenceOutput constraint tests by @james-iohk in #750
  • PLT-941: Branching Policy and Release Process by @zliu41 in #748
  • Fix Ledger.Tx.getCardanoTxData by @koslambrou in #762
  • 862/marconi mamba json rpc endpoint by @kayvank in #727
  • PLT-1034 Fixed SealedBidAuction failing quickcheck test case. by @koslambrou in #767
  • PAB <> Postgres (Beam Generalization) by @MartorSkull in #713
  • PLT-768 Renamed currentTime to currentNodeClientTimeRange and renamed currentPABSlot to currentNodeClientSlot by @koslambrou in #772
  • PLT-1035 Fix an off by one error in prism test by @berewt in #777
  • Add freer-extras to non-buildable cross platform list by @ak3n in #776
  • PLT-774: Collateral output by @sjoerdvisscher in #773
  • PLT-658: inline datum witnesses by @sjoerdvisscher in #765
  • GTH-754: fix crowdfunding test by @sjoerdvisscher in #778
  • PLT-797 Fix the test(s) for bug #695 by @berewt in #766
  • Considering ChainTipAtGenesis case in getTipSlot by @etiennejf in #783
  • Updated the cardano-node and cardano-wallet versions that are provided in the nix-shell by @koslambrou in #782
  • Waiting for endpoint result in plutus-pab when querying contract instance status by @koslambrou in #784
  • PLT-1034 Proposing an ADR to modify the MustValidateIn constraint by @koslambrou in #781
  • GTH-692: Don't add collateral when not needed by @sjoerdvisscher in #780
  • PLT-989 Improve behaviour of duplicated MustSpend by @berewt in #779
  • Adding a specifc timeout option for 'Plutus.PAB.Core.waitForInstanceState by @koslambrou in #785
  • Change contractState and instancesState to mutable variables. by @koslambrou in #786
  • Added the 'Contract.DeleteState' effect in PAB and call it when an instance is stopped by @koslambrou in #787
  • Add new 'NodeMode' constructor for disabling chain sync events by @koslambrou in #788
  • Restore running PAB contracts only when not in InMemoryBackend mode by @koslambrou in #789
  • Delete instances from InstancesState and connection maps when status is no more active by @koslambrou in #790
  • Adding datumsAt contract request query by @koslambrou in #791
  • PLT-713: must mint value with reference by @ak3n in #758
  • Reorganise plutus-contract tests by @james-iohk in #794
  • chore(deps): bump nixbuild/nix-quick-install-action from 18 to 19 by @dependabot in #798
  • PLT-777 Remove plutus ledger from Marconi' dependencies by @berewt in #792
  • PLT-1011: Add mkTxWithParams by @sjoerdvisscher in #793
  • PLT-1123: Add evalEmulatorTrace by @sjoerdvisscher in #795
  • PLT-619 Refactor and rename ChainIndexTxOut by @berewt in #799
  • PLT-1197: Support HTTPS for PAB webserver by @sjoerdvisscher in #803
  • Update Default ProtocolParams to mainnet PLT-1037 by @kayvank in #770
  • Updated the Nix cache information in the README by @koslambrou in #804
  • Get back coverage data using cardano-ledger. by @ak3n in #801
  • marconi change TargetAddress CLI format PLT-1014 by @kayvank in #813
  • PLT-1026 Fix the emulator performance regressions by @berewt in #805
  • report marconi target addresses PLT-1009 by @kayvank in #796
  • PLT-885 fix a bug in onchain MustPayToOtherScript by @berewt in #800
  • Add SECP256k1 ECDSA and Schnorr loop becnhmarking scripts by @james-iohk in #815
  • Bump haskell.nix and hackage.nix by @zeme-iohk in #757
  • PLT-764: use Address type more by @sjoerdvisscher in #818
  • PLT-909: Implement walletFundsAssetClassChange by @sjoerdvisscher in #812
  • Fix marconi test #775 by @ak3n in #814
  • marconi-mamba-reduce-cli-params PLT-1224 by @kayvank in #819
  • [next-node]: upgrade cardano-node to 1.35.4 by @ak3n in #806
  • PLT-1219 Remove offchain logic for MustProduceAtLeast and MustSpendAtLeast by @berewt in #817
  • Bootstrap changelog for cabal packages by @ak3n in #822
  • New shiny indexer by @raduom in #691
  • marconi Query interface ADR PLT-607 by @kayvank in #763
  • marconi-mamba sqlite-wal-mode by @kayvank in #823
  • Marconi-mamba Readme docs PLT-1166 by @joseph-fajen in #816
  • Fix broken link in marconi-mamba README.md by @kayvank in #827
  • Use Cardano Haskell package repository ("CHaP") by @andreabedini in #797
  • Reset PYTHONPATH in the shell by @zeme-iohk in #828
  • PLT-1040: fix currentChainIndexSlot by @sjoerdvisscher in #826
  • PLT-1222 ADR about changing the slot to time conversions in the emulator and PAB by @koslambrou in #829
  • Drop hw-aeson fork by @andreabedini in #830
  • PLT-910: babbage technical debt by @sjoerdvisscher in #824
  • Change secp256k1 loop scripts to have consistent counter value bitsizes by @james-iohk in #833
  • Follow the Cardano Engineering Handbook by @ak3n in #834
  • PLT-671 implement MustBeSignedBy for cardano TX by @berewt in #832
  • Delete plutus-playground by @zeme-iohk in #821
  • Set cabal package versions to 1.0.0.0 by @ak3n in #837

New Contributors

Full Changelog: v0.1.0...v1.0.0