-
Notifications
You must be signed in to change notification settings - Fork 214
PLT-448: must spend script output with reference #716
PLT-448: must spend script output with reference #716
Conversation
9978c0a
to
4a232c9
Compare
eff7b0f
to
6c8c70c
Compare
…github.com/input-output-hk/plutus-apps into PLT-448-mustSpendScriptOutputWithReference
@james-iohk Can you validate the testing part? Additional tests needed? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me (just a few cosmetic comments but no blocker)
Some additional to consider (similar scenarios as listed in PLT-659):
|
As I've started looking at PLT-669, we can maybe continue without them and I'll add them in the next PR? |
traceIfFalse "L8" -- "Script output not spent" | ||
-- Unfortunately we can't check the redeemer, because TxInfo only |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't need this comment anymore
* SCP-3855: update node dep (#449) * Update Cardano node et al. dependencies for the Vasil HF * The Cardano node version will only work on a network with the Vasil release. * Solve some compile issues * wip: recovering instances for types from plutus-ledger-api * wip * plutus-ledger compiles * plutus-ledger-constraints compiles * Fixed warnings in Ledger.Tx.CardanoAPI for fields introduced by the Babbage era. Also adapted hashing functions for PlutusV1 scripts to work on PlutusV2 * Fixed warnings in Ledger.Tx.CardanoAPITemp and added implementation to undefined value * plutus-contract compiles * Added alonzoGenesisDefaults implementation (copied from cardano-node because it was deleted over there) to Ledger.Validation * plutus-chain-index-core compiles * Fixed compilation errors in playground-common and plutus-contract * Fix compile errors in plutus-example * Fix compile errors in plutus-pab * Fix compile errors in plutus-playground-server * WIP on plutus-use-cases * Split Tx.Orphans into multiple Orphans * Fix compilation errors on plutus-use-cases * fix compilation issues * Update nix * fix formatting * Remove wrongly commited files * Update purescript modules * Commented test on plutus-ledger temporarely until cardano-node is updated * Update cardano-wallet with fixes for haddock * Fix plutus-playground-client purescript imports * Fix warnings in plutus-example * Fix plutus-uniswap cabal * Try to turn-off haddock for cardano-wallet * [plutus-contract]: fix golden tests and commented test until cardano-node is updated * Add cardano-cli/.../genesis.alonzo.spec.json to fix plutus-example * Fix comment link to PR * Comment out the test properly * Update scripts/protocol-parameters with fresh plutusV1 cost parameters Co-authored-by: Konstantinos Lambrou-Latreille <[email protected]> * [chain-index]: export all servant client functions (#492) * Fix playground client * Fix streaming * Fix purescript * Create separate directories for v1 and v2 plutus scripts (#486) * Reorganize the plutus-example library to distinguish clearly between V1 and V2 scripts. * plutus-example reorganization create v2 example script * Modify the ScriptContextChecker module to be more generic * Propagate the changes to the plutus-example apps and tests * Update required-redeemer.plutus to also check for an inline datum of 42 and to check for an inline datum of 42 in the reference inputs * Add PlutusV2 minting and staking scripts (#528) * [chain-index]: add inline datums support and update cardano-node (#488) * PLT-484 Upgraded cardano-node version to the official 1.35.0 release. (#551) * Also upgraded cardano-wallet, plutus et al. versions that work with v1.35.0 of the node. * Updated golden tests in plutus-use-cases and plutus-contract * Updated version of components to 1.0.0 with cardano-node (#560) * Updated the cardano-node bundled with plutus-apps to v1.35.0 * Updated version of all components in their respective cabal files to 1.0.0 * Update cardano-node dependency to 1.35.1 * Updated cardano-wallet, plutus and cardano-ledger to match the node version. * Add script equivalence context test for the V2 context. (#588) * Remove withIsCardanoEra workaround. (#607) * BlockInMode now carries a IsCardanoEra constraint * Increase the delay of awaiting in plutus-pab-executables tests (#565) Set slot's length to 1s for awaiting tx/out status tests to make them stable * [PLT-81] plutus-chain-index: support inline scripts when querying TxOut of a TxOutRef (#613) * Make plutus-ledger-api version explicit in Ledger.Tx * Make pattern match explicit * Reorder ScriptChainIndexTxOut fields To highlight they are the same as PublicKeyChainIndexTxOut. * Add datum to both branches of ChainIndexTxOut - Unfortunately we need to rename the fields because they have now different types. - In the PublicKeyChainIndexTxOut case, the output datum is optional and we can use plutus-ledger-api OutputDatum type. - In the ScriptChainIndexTxOut case, the output datum is required, nothing changes here but the name. * Add ReferenceScript to ChainIndexTxOut * Remove old comment * Rename _ciTxOutDatumPublicKey and _ciTxOutDatumScript into _ciTxOutPublicKeyDatum and _ciTxOutScriptDatum * Introduce fromReferenceScript * Add comments to ChainIndexTxOut * Add minting context equivalent test plutus script (#631) * Add missing record field `localTxMonitoringClient` (#617) * PLT-568: Switch to Babbage era (#614) * Make Babbage the default era for the emulator * Clean up * Accept changes in test output * Workaround for parseBabbageEraInCardanoModeTx * Fix minAda calculation * [next-node]: Bump wallet, plutus, ledger, node (#616) * Bump cardano-node to 1.35.2 and rest of dependencies based on cardano-wallet * Use '[TxIn]' instead of 'Set TxIn' in 'data Tx' (#623) * [plutus-ledger]: Use '[TxIn]' instead of 'Set TxIn' in 'data Tx'. * Add a property test to check Ord instances of TxIn. * Sort the inputs in fromOnChainTx * Sort the inputs in `Emulator.Wallet` * Fix the review notes and the problem with getInput in StateMachine tests * PLT-445 Add `mustReferencePubKeyOutput` in constraints library (#640) * PLT-445 Add mustReferencePubKeyOutput in constraints library * Added the mustReferencePubKeyOutput constraint in plutus-ledger-constraints * Added a test case for the mustReferencePubKeyOutput * Refactored Ledger.Tx.CardanoAPI to work with PlutusV2 alongside PlutusV1 scripts in the tx inputs. * Use existing unitRedeemer * Move TxIn and TxInType to Ledger.Tx * Add plutus version to ConsumeScriptAddress constructor * Add costModelParams for PlutusScriptV2 * Fix error codes. * Renamed mkTxInfo to mkPV1TxInfo, added test for plutus-tx-constraints without implementation and commented for now the off-chain validation in Ledger.Index * Implement reference inputs in makeTransactionBody' * Fixed failing test cases for Ledger.Constraints.mustReferencePubKeyOutput * Add MustUseOutputAsCollateral * Fix V2 tests. But issues with V1 tests. * Disable tests * WIP * Remove unused code * PR feedback * Remove unused code. * Clean up * Added additional info in TODO * Add Arbitrary instances * Convert plutus-ledger-constraint tests to PV2 * Fixed test in plutus-ledger-constraints * Fixed PS generator error in playground * Fix build * Fix PS * Fix PS * More support of plutus version in constraints libs * Default to PlutusV1 for now Co-authored-by: Sjoerd Visscher <[email protected]> Co-authored-by: Sjoerd Visscher <[email protected]> * Update cardano-node to 1.35.3-rc1 with deps (#647) * Upgraded to a cardano-wallet compatible with node 1.35.3-rc1 (#657) * Reorganized dependencies based on cardano-wallet's cabal.project * Added the new 'protocolParamUTxOCostPerByte' in 'Ledger.Params' which replaces 'protocolParamUTxOCostPerWord' * Fixed the `Plutus.Contract.Wallet.mkMintingRedeemers` which triggered an error if the redeemers in the tx contained spending redeemers. * Simplify MustReferencePubKeyOutput to MustReferenceOutput (#661) * Replace LedgerPlutusVersion with Language type (#662) * PLT-494: PlutusV2 TypedValidators (#666) * Move common code to Plutus.Script.Utils.Typed * Enable V2 TypedValidators * Enable and fix reference output tests * Update cardano-node 1.35.3-rc1 -> 1.35.3 (#669) * PLT-448: inline scripts in constraint libraries (#678) * Add inline script support to plutus-tx-constraints. * Add mustOutputInlineValidator and mustOutputInlineMintingPolicy * Add documentation * Check there's no inline script in V1 * Fix wrong minAdaTxOut use * Update renderGuess.txt * Naming * PLT-738: Include plutus language versions with scripts (#681) * Store Plutus language versions in chain-index * Introduce Versioned scripts Remove openapi3 as a dependency of plutus-script-utils * Add hashing for versioned scripts * PLT-454: mustUseOutputAsCollateral (#690) * Finish mustUseOutputAsCollateral implementation * Add testcase * Add documentation * Add missing fields to Ledger.Tx.Internal.Tx (#468) Add missing fields to Ledger.Tx.Internal.Tx. * Add certificates and withdrawals to Tx. * Move script witnesses to txScripts. * Modify TxIn type, rename to TxInput. * Put redeemers together with minting scripts. * Translate withdrawals in toCardanoTxBody. * Export redeemers for signing with wallet. * Add tests for mustIncludeDatum tx constraint (#700) * Add tests for mustIncludeDatum tx constraint (3 failing tests need fix) * run checks * Add tests for MustPayToPubKeyAddress tx constraint (#701) * Add tests for mustSpendScriptOutput and mustSpendScriptOutputWithMatchingDatumAndValue tx constraints (#706) * Add tests for mustSpendScriptOutput and mustSpendScriptOutputWithMatchingDatumAndValue tx constraints * Fixed the 'Ledger.Constraints.OffChain.typedValidatorLookups' lookup function so that it adds the validator inside the 'TypedValidator' in the 'slOtherScripts' lookup value. Co-authored-by: Konstantinos Lambrou-Latreille <[email protected]> * plutus-contract emulator: Change the tx output representation of EmulatorTx to use Cardano.Api.TxOut (#698) * First draft done for plutus-ledger * plutus-ledger-constraints use Cardano.Tx * use C.Tx in plutus-tx-constraints * plutus-chain-index uses C.TxOut * Forgot to add file * Fixing my mess with CardanoAPI * encoding via plutus.TxOut (can't work, no NetworkId) * Fix code for the use cases * Fix a bug in balanceTx * Fix 0 ada outputs error * Dirty fix for the uniswap check * Use Cardano.Tx txId * fix uniswap test * Fix double satisfaction * Fix Marconi * Add TxOut typeclasses * Remove unused imports * Fix failing tests * Clean import * Fix pab * Fix golden values * Fix golden test * Fix more plutus packages * Rmove useless param from ChainIndex.Lib * Fik playground * Remove commented code * Include several fixes following Konstantinos' review * Add a Pretty TxOut and clean uniswap * Remove useless stuff in playground * error in generators display the original cause * Fix imports * prettier pretty * Fix golden tests * Fix uniswap * Fix golden tests * Restore deleted constraints * Integrate more Sjoerd's comments * Add tests for mustPayToOtherScript tx constraint (#710) * Add tests for mustPayToOtherScript tx constraint and 2 more for mustPayToPubKeyAddress * Fix failing test and reference two PLT tickets * Refactored MustMint tests to use minting policies and added tests for token burning (#719) * MustSpendScriptOutput and MustSpendScriptOutputWithMatchingDatumAndValue check the redeemer's presence (#723) * Add inline datum supports for mustPayToPubKey and mustPayToOtherScript (#721) * Incremental change for datum * Work but no inlining * First working inline datum with V2 * Add tests for inline datum * add smart constructors for inline datum * fix PAB * fixing tx-constraints * clean up tests * Address some of Konstantinos' comments * Separate test group for plutus v2 * Refactor tests in MustPayToPubKeyAddress to ease version handling * Code clean up * Code clean up * Fix unused imports * Add a way to switch to cardano constraints in MustPayToOtherAddress tests * more clean up * PR feedbacks * Remove dead code * Add refactoring for MustPayToOtherScript tests * typo * clean test suites * Clean up imports * Fix some false-positives MustSpendScriptOutput tests using versioned minting policies (#725) * Fix some false-positives MustSpendScriptOutput tests and refactor to use minting policies * Use Versioned MintingPolicy and add tests for V2 scripts for MustSpendScriptOutput * Further refactoring * Improve onchain check for MustSpendScriptOutput and MustSpendScriptOutputWithMatchingDatumAndValue constraints * tidy up onchain check * PLT-448: must spend script output with reference (#716) * Add ownAddress (singular) * Support reference scripts in TxIn * Add mustSpendScriptOutputWithReference * Test using reference scripts * Fix merge issues * Direct conversion from ChainIndexTxOut to the new TxOut * Push Versioned inside Either * Accept test outputs * Fix reference script support in ledger-constraints * Fix comments * Add ownAddress (singular) * Support reference scripts in TxIn * Add mustSpendScriptOutputWithReference * Test using reference scripts * Fix merge issues * Direct conversion from ChainIndexTxOut to the new TxOut * Push Versioned inside Either * Accept test outputs * Fix reference script support in ledger-constraints * Fix comments * PR feedback * More PR feedback * Fix merge issues * PLT-807 Change behavior of MustPayToPubKeyAddress and MustPayToOtherScript w.r.t datum in transaction body (#705) * Changed `MustPayToPubKeyAddress` and `MustPayToOtherScript` so that the user needs to explicitly specify if he wants: * the datum to only be included as a hash in the transaction output * the datum to be included as a hash in the transaction output as well as in the transaction body * the datum to be inlined in the transaction output * Changed the name of the constraint `MustIncludeDatum` to `MustIncludeDatumInTx` and `MustHashDatum` to `MustIncludeDatumInTxWithHash`. These constraint don't modify the transaction anymore, but simply check that the datum is part of the transaction body. * Added a note on the 'Plutus.Contract.Oracle' module explaining why it doesn't work in it's current form. * Commented out failing test cases in `plutus-use-cases` that use the 'Plutus.Contract.Oracle' module. * PLT-511: collateral output in chain index (#730) * Add collateral output support to chain index * Generate invalid transactions in tests too * PR feedback * PLT-990 Removed Plutus.Contract.Wallet.finalize as we instead set the validity range of a transaction directly in `plutus-ledger-constraints` (since we now have access to the `SlotConfig`) (#741) * Update the contributing guide (#729) Co-authored-by: Evgenii Akentev <[email protected]> Co-authored-by: Konstantinos Lambrou-Latreille <[email protected]> Co-authored-by: Jordan Millar <[email protected]> Co-authored-by: Andrea Bedini <[email protected]> Co-authored-by: Markus Läll <[email protected]> Co-authored-by: Sjoerd Visscher <[email protected]> Co-authored-by: Sjoerd Visscher <[email protected]> Co-authored-by: Jamie Bertram <[email protected]> Co-authored-by: Karol Ochman-Milarski <[email protected]> Co-authored-by: James <[email protected]> Co-authored-by: Ziyang Liu <[email protected]>
* Update the contributing guide (#729) * next-node is the new merge (ends PLT-558) (#745) * SCP-3855: update node dep (#449) * Update Cardano node et al. dependencies for the Vasil HF * The Cardano node version will only work on a network with the Vasil release. * Solve some compile issues * wip: recovering instances for types from plutus-ledger-api * wip * plutus-ledger compiles * plutus-ledger-constraints compiles * Fixed warnings in Ledger.Tx.CardanoAPI for fields introduced by the Babbage era. Also adapted hashing functions for PlutusV1 scripts to work on PlutusV2 * Fixed warnings in Ledger.Tx.CardanoAPITemp and added implementation to undefined value * plutus-contract compiles * Added alonzoGenesisDefaults implementation (copied from cardano-node because it was deleted over there) to Ledger.Validation * plutus-chain-index-core compiles * Fixed compilation errors in playground-common and plutus-contract * Fix compile errors in plutus-example * Fix compile errors in plutus-pab * Fix compile errors in plutus-playground-server * WIP on plutus-use-cases * Split Tx.Orphans into multiple Orphans * Fix compilation errors on plutus-use-cases * fix compilation issues * Update nix * fix formatting * Remove wrongly commited files * Update purescript modules * Commented test on plutus-ledger temporarely until cardano-node is updated * Update cardano-wallet with fixes for haddock * Fix plutus-playground-client purescript imports * Fix warnings in plutus-example * Fix plutus-uniswap cabal * Try to turn-off haddock for cardano-wallet * [plutus-contract]: fix golden tests and commented test until cardano-node is updated * Add cardano-cli/.../genesis.alonzo.spec.json to fix plutus-example * Fix comment link to PR * Comment out the test properly * Update scripts/protocol-parameters with fresh plutusV1 cost parameters Co-authored-by: Konstantinos Lambrou-Latreille <[email protected]> * [chain-index]: export all servant client functions (#492) * Fix playground client * Fix streaming * Fix purescript * Create separate directories for v1 and v2 plutus scripts (#486) * Reorganize the plutus-example library to distinguish clearly between V1 and V2 scripts. * plutus-example reorganization create v2 example script * Modify the ScriptContextChecker module to be more generic * Propagate the changes to the plutus-example apps and tests * Update required-redeemer.plutus to also check for an inline datum of 42 and to check for an inline datum of 42 in the reference inputs * Add PlutusV2 minting and staking scripts (#528) * [chain-index]: add inline datums support and update cardano-node (#488) * PLT-484 Upgraded cardano-node version to the official 1.35.0 release. (#551) * Also upgraded cardano-wallet, plutus et al. versions that work with v1.35.0 of the node. * Updated golden tests in plutus-use-cases and plutus-contract * Updated version of components to 1.0.0 with cardano-node (#560) * Updated the cardano-node bundled with plutus-apps to v1.35.0 * Updated version of all components in their respective cabal files to 1.0.0 * Update cardano-node dependency to 1.35.1 * Updated cardano-wallet, plutus and cardano-ledger to match the node version. * Add script equivalence context test for the V2 context. (#588) * Remove withIsCardanoEra workaround. (#607) * BlockInMode now carries a IsCardanoEra constraint * Increase the delay of awaiting in plutus-pab-executables tests (#565) Set slot's length to 1s for awaiting tx/out status tests to make them stable * [PLT-81] plutus-chain-index: support inline scripts when querying TxOut of a TxOutRef (#613) * Make plutus-ledger-api version explicit in Ledger.Tx * Make pattern match explicit * Reorder ScriptChainIndexTxOut fields To highlight they are the same as PublicKeyChainIndexTxOut. * Add datum to both branches of ChainIndexTxOut - Unfortunately we need to rename the fields because they have now different types. - In the PublicKeyChainIndexTxOut case, the output datum is optional and we can use plutus-ledger-api OutputDatum type. - In the ScriptChainIndexTxOut case, the output datum is required, nothing changes here but the name. * Add ReferenceScript to ChainIndexTxOut * Remove old comment * Rename _ciTxOutDatumPublicKey and _ciTxOutDatumScript into _ciTxOutPublicKeyDatum and _ciTxOutScriptDatum * Introduce fromReferenceScript * Add comments to ChainIndexTxOut * Add minting context equivalent test plutus script (#631) * Add missing record field `localTxMonitoringClient` (#617) * PLT-568: Switch to Babbage era (#614) * Make Babbage the default era for the emulator * Clean up * Accept changes in test output * Workaround for parseBabbageEraInCardanoModeTx * Fix minAda calculation * [next-node]: Bump wallet, plutus, ledger, node (#616) * Bump cardano-node to 1.35.2 and rest of dependencies based on cardano-wallet * Use '[TxIn]' instead of 'Set TxIn' in 'data Tx' (#623) * [plutus-ledger]: Use '[TxIn]' instead of 'Set TxIn' in 'data Tx'. * Add a property test to check Ord instances of TxIn. * Sort the inputs in fromOnChainTx * Sort the inputs in `Emulator.Wallet` * Fix the review notes and the problem with getInput in StateMachine tests * PLT-445 Add `mustReferencePubKeyOutput` in constraints library (#640) * PLT-445 Add mustReferencePubKeyOutput in constraints library * Added the mustReferencePubKeyOutput constraint in plutus-ledger-constraints * Added a test case for the mustReferencePubKeyOutput * Refactored Ledger.Tx.CardanoAPI to work with PlutusV2 alongside PlutusV1 scripts in the tx inputs. * Use existing unitRedeemer * Move TxIn and TxInType to Ledger.Tx * Add plutus version to ConsumeScriptAddress constructor * Add costModelParams for PlutusScriptV2 * Fix error codes. * Renamed mkTxInfo to mkPV1TxInfo, added test for plutus-tx-constraints without implementation and commented for now the off-chain validation in Ledger.Index * Implement reference inputs in makeTransactionBody' * Fixed failing test cases for Ledger.Constraints.mustReferencePubKeyOutput * Add MustUseOutputAsCollateral * Fix V2 tests. But issues with V1 tests. * Disable tests * WIP * Remove unused code * PR feedback * Remove unused code. * Clean up * Added additional info in TODO * Add Arbitrary instances * Convert plutus-ledger-constraint tests to PV2 * Fixed test in plutus-ledger-constraints * Fixed PS generator error in playground * Fix build * Fix PS * Fix PS * More support of plutus version in constraints libs * Default to PlutusV1 for now Co-authored-by: Sjoerd Visscher <[email protected]> Co-authored-by: Sjoerd Visscher <[email protected]> * Update cardano-node to 1.35.3-rc1 with deps (#647) * Upgraded to a cardano-wallet compatible with node 1.35.3-rc1 (#657) * Reorganized dependencies based on cardano-wallet's cabal.project * Added the new 'protocolParamUTxOCostPerByte' in 'Ledger.Params' which replaces 'protocolParamUTxOCostPerWord' * Fixed the `Plutus.Contract.Wallet.mkMintingRedeemers` which triggered an error if the redeemers in the tx contained spending redeemers. * Simplify MustReferencePubKeyOutput to MustReferenceOutput (#661) * Replace LedgerPlutusVersion with Language type (#662) * PLT-494: PlutusV2 TypedValidators (#666) * Move common code to Plutus.Script.Utils.Typed * Enable V2 TypedValidators * Enable and fix reference output tests * Update cardano-node 1.35.3-rc1 -> 1.35.3 (#669) * PLT-448: inline scripts in constraint libraries (#678) * Add inline script support to plutus-tx-constraints. * Add mustOutputInlineValidator and mustOutputInlineMintingPolicy * Add documentation * Check there's no inline script in V1 * Fix wrong minAdaTxOut use * Update renderGuess.txt * Naming * PLT-738: Include plutus language versions with scripts (#681) * Store Plutus language versions in chain-index * Introduce Versioned scripts Remove openapi3 as a dependency of plutus-script-utils * Add hashing for versioned scripts * PLT-454: mustUseOutputAsCollateral (#690) * Finish mustUseOutputAsCollateral implementation * Add testcase * Add documentation * Add missing fields to Ledger.Tx.Internal.Tx (#468) Add missing fields to Ledger.Tx.Internal.Tx. * Add certificates and withdrawals to Tx. * Move script witnesses to txScripts. * Modify TxIn type, rename to TxInput. * Put redeemers together with minting scripts. * Translate withdrawals in toCardanoTxBody. * Export redeemers for signing with wallet. * Add tests for mustIncludeDatum tx constraint (#700) * Add tests for mustIncludeDatum tx constraint (3 failing tests need fix) * run checks * Add tests for MustPayToPubKeyAddress tx constraint (#701) * Add tests for mustSpendScriptOutput and mustSpendScriptOutputWithMatchingDatumAndValue tx constraints (#706) * Add tests for mustSpendScriptOutput and mustSpendScriptOutputWithMatchingDatumAndValue tx constraints * Fixed the 'Ledger.Constraints.OffChain.typedValidatorLookups' lookup function so that it adds the validator inside the 'TypedValidator' in the 'slOtherScripts' lookup value. Co-authored-by: Konstantinos Lambrou-Latreille <[email protected]> * plutus-contract emulator: Change the tx output representation of EmulatorTx to use Cardano.Api.TxOut (#698) * First draft done for plutus-ledger * plutus-ledger-constraints use Cardano.Tx * use C.Tx in plutus-tx-constraints * plutus-chain-index uses C.TxOut * Forgot to add file * Fixing my mess with CardanoAPI * encoding via plutus.TxOut (can't work, no NetworkId) * Fix code for the use cases * Fix a bug in balanceTx * Fix 0 ada outputs error * Dirty fix for the uniswap check * Use Cardano.Tx txId * fix uniswap test * Fix double satisfaction * Fix Marconi * Add TxOut typeclasses * Remove unused imports * Fix failing tests * Clean import * Fix pab * Fix golden values * Fix golden test * Fix more plutus packages * Rmove useless param from ChainIndex.Lib * Fik playground * Remove commented code * Include several fixes following Konstantinos' review * Add a Pretty TxOut and clean uniswap * Remove useless stuff in playground * error in generators display the original cause * Fix imports * prettier pretty * Fix golden tests * Fix uniswap * Fix golden tests * Restore deleted constraints * Integrate more Sjoerd's comments * Add tests for mustPayToOtherScript tx constraint (#710) * Add tests for mustPayToOtherScript tx constraint and 2 more for mustPayToPubKeyAddress * Fix failing test and reference two PLT tickets * Refactored MustMint tests to use minting policies and added tests for token burning (#719) * MustSpendScriptOutput and MustSpendScriptOutputWithMatchingDatumAndValue check the redeemer's presence (#723) * Add inline datum supports for mustPayToPubKey and mustPayToOtherScript (#721) * Incremental change for datum * Work but no inlining * First working inline datum with V2 * Add tests for inline datum * add smart constructors for inline datum * fix PAB * fixing tx-constraints * clean up tests * Address some of Konstantinos' comments * Separate test group for plutus v2 * Refactor tests in MustPayToPubKeyAddress to ease version handling * Code clean up * Code clean up * Fix unused imports * Add a way to switch to cardano constraints in MustPayToOtherAddress tests * more clean up * PR feedbacks * Remove dead code * Add refactoring for MustPayToOtherScript tests * typo * clean test suites * Clean up imports * Fix some false-positives MustSpendScriptOutput tests using versioned minting policies (#725) * Fix some false-positives MustSpendScriptOutput tests and refactor to use minting policies * Use Versioned MintingPolicy and add tests for V2 scripts for MustSpendScriptOutput * Further refactoring * Improve onchain check for MustSpendScriptOutput and MustSpendScriptOutputWithMatchingDatumAndValue constraints * tidy up onchain check * PLT-448: must spend script output with reference (#716) * Add ownAddress (singular) * Support reference scripts in TxIn * Add mustSpendScriptOutputWithReference * Test using reference scripts * Fix merge issues * Direct conversion from ChainIndexTxOut to the new TxOut * Push Versioned inside Either * Accept test outputs * Fix reference script support in ledger-constraints * Fix comments * Add ownAddress (singular) * Support reference scripts in TxIn * Add mustSpendScriptOutputWithReference * Test using reference scripts * Fix merge issues * Direct conversion from ChainIndexTxOut to the new TxOut * Push Versioned inside Either * Accept test outputs * Fix reference script support in ledger-constraints * Fix comments * PR feedback * More PR feedback * Fix merge issues * PLT-807 Change behavior of MustPayToPubKeyAddress and MustPayToOtherScript w.r.t datum in transaction body (#705) * Changed `MustPayToPubKeyAddress` and `MustPayToOtherScript` so that the user needs to explicitly specify if he wants: * the datum to only be included as a hash in the transaction output * the datum to be included as a hash in the transaction output as well as in the transaction body * the datum to be inlined in the transaction output * Changed the name of the constraint `MustIncludeDatum` to `MustIncludeDatumInTx` and `MustHashDatum` to `MustIncludeDatumInTxWithHash`. These constraint don't modify the transaction anymore, but simply check that the datum is part of the transaction body. * Added a note on the 'Plutus.Contract.Oracle' module explaining why it doesn't work in it's current form. * Commented out failing test cases in `plutus-use-cases` that use the 'Plutus.Contract.Oracle' module. * PLT-511: collateral output in chain index (#730) * Add collateral output support to chain index * Generate invalid transactions in tests too * PR feedback * PLT-990 Removed Plutus.Contract.Wallet.finalize as we instead set the validity range of a transaction directly in `plutus-ledger-constraints` (since we now have access to the `SlotConfig`) (#741) * Update the contributing guide (#729) Co-authored-by: Evgenii Akentev <[email protected]> Co-authored-by: Konstantinos Lambrou-Latreille <[email protected]> Co-authored-by: Jordan Millar <[email protected]> Co-authored-by: Andrea Bedini <[email protected]> Co-authored-by: Markus Läll <[email protected]> Co-authored-by: Sjoerd Visscher <[email protected]> Co-authored-by: Sjoerd Visscher <[email protected]> Co-authored-by: Jamie Bertram <[email protected]> Co-authored-by: Karol Ochman-Milarski <[email protected]> Co-authored-by: James <[email protected]> Co-authored-by: Ziyang Liu <[email protected]> * Revert "next-node is the new merge (ends PLT-558) (#745)" (#746) This reverts commit dc3f549. * chore(deps): bump nixbuild/nix-quick-install-action from 17 to 18 (#743) Bumps [nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action) from 17 to 18. - [Release notes](https://github.com/nixbuild/nix-quick-install-action/releases) - [Changelog](https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE) - [Commits](nixbuild/nix-quick-install-action@v17...v18) --- updated-dependencies: - dependency-name: nixbuild/nix-quick-install-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add proper ToJSON instance for unit test results (#744) * Add collateral output fields * Add collateral balancing tests Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Ziyang Liu <[email protected]> Co-authored-by: Nicolas B <[email protected]> Co-authored-by: Evgenii Akentev <[email protected]> Co-authored-by: Konstantinos Lambrou-Latreille <[email protected]> Co-authored-by: Jordan Millar <[email protected]> Co-authored-by: Andrea Bedini <[email protected]> Co-authored-by: Markus Läll <[email protected]> Co-authored-by: Jamie Bertram <[email protected]> Co-authored-by: Karol Ochman-Milarski <[email protected]> Co-authored-by: James <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ulf Norell <[email protected]>
* Update the contributing guide (#729) * next-node is the new merge (ends PLT-558) (#745) * SCP-3855: update node dep (#449) * Update Cardano node et al. dependencies for the Vasil HF * The Cardano node version will only work on a network with the Vasil release. * Solve some compile issues * wip: recovering instances for types from plutus-ledger-api * wip * plutus-ledger compiles * plutus-ledger-constraints compiles * Fixed warnings in Ledger.Tx.CardanoAPI for fields introduced by the Babbage era. Also adapted hashing functions for PlutusV1 scripts to work on PlutusV2 * Fixed warnings in Ledger.Tx.CardanoAPITemp and added implementation to undefined value * plutus-contract compiles * Added alonzoGenesisDefaults implementation (copied from cardano-node because it was deleted over there) to Ledger.Validation * plutus-chain-index-core compiles * Fixed compilation errors in playground-common and plutus-contract * Fix compile errors in plutus-example * Fix compile errors in plutus-pab * Fix compile errors in plutus-playground-server * WIP on plutus-use-cases * Split Tx.Orphans into multiple Orphans * Fix compilation errors on plutus-use-cases * fix compilation issues * Update nix * fix formatting * Remove wrongly commited files * Update purescript modules * Commented test on plutus-ledger temporarely until cardano-node is updated * Update cardano-wallet with fixes for haddock * Fix plutus-playground-client purescript imports * Fix warnings in plutus-example * Fix plutus-uniswap cabal * Try to turn-off haddock for cardano-wallet * [plutus-contract]: fix golden tests and commented test until cardano-node is updated * Add cardano-cli/.../genesis.alonzo.spec.json to fix plutus-example * Fix comment link to PR * Comment out the test properly * Update scripts/protocol-parameters with fresh plutusV1 cost parameters Co-authored-by: Konstantinos Lambrou-Latreille <[email protected]> * [chain-index]: export all servant client functions (#492) * Fix playground client * Fix streaming * Fix purescript * Create separate directories for v1 and v2 plutus scripts (#486) * Reorganize the plutus-example library to distinguish clearly between V1 and V2 scripts. * plutus-example reorganization create v2 example script * Modify the ScriptContextChecker module to be more generic * Propagate the changes to the plutus-example apps and tests * Update required-redeemer.plutus to also check for an inline datum of 42 and to check for an inline datum of 42 in the reference inputs * Add PlutusV2 minting and staking scripts (#528) * [chain-index]: add inline datums support and update cardano-node (#488) * PLT-484 Upgraded cardano-node version to the official 1.35.0 release. (#551) * Also upgraded cardano-wallet, plutus et al. versions that work with v1.35.0 of the node. * Updated golden tests in plutus-use-cases and plutus-contract * Updated version of components to 1.0.0 with cardano-node (#560) * Updated the cardano-node bundled with plutus-apps to v1.35.0 * Updated version of all components in their respective cabal files to 1.0.0 * Update cardano-node dependency to 1.35.1 * Updated cardano-wallet, plutus and cardano-ledger to match the node version. * Add script equivalence context test for the V2 context. (#588) * Remove withIsCardanoEra workaround. (#607) * BlockInMode now carries a IsCardanoEra constraint * Increase the delay of awaiting in plutus-pab-executables tests (#565) Set slot's length to 1s for awaiting tx/out status tests to make them stable * [PLT-81] plutus-chain-index: support inline scripts when querying TxOut of a TxOutRef (#613) * Make plutus-ledger-api version explicit in Ledger.Tx * Make pattern match explicit * Reorder ScriptChainIndexTxOut fields To highlight they are the same as PublicKeyChainIndexTxOut. * Add datum to both branches of ChainIndexTxOut - Unfortunately we need to rename the fields because they have now different types. - In the PublicKeyChainIndexTxOut case, the output datum is optional and we can use plutus-ledger-api OutputDatum type. - In the ScriptChainIndexTxOut case, the output datum is required, nothing changes here but the name. * Add ReferenceScript to ChainIndexTxOut * Remove old comment * Rename _ciTxOutDatumPublicKey and _ciTxOutDatumScript into _ciTxOutPublicKeyDatum and _ciTxOutScriptDatum * Introduce fromReferenceScript * Add comments to ChainIndexTxOut * Add minting context equivalent test plutus script (#631) * Add missing record field `localTxMonitoringClient` (#617) * PLT-568: Switch to Babbage era (#614) * Make Babbage the default era for the emulator * Clean up * Accept changes in test output * Workaround for parseBabbageEraInCardanoModeTx * Fix minAda calculation * [next-node]: Bump wallet, plutus, ledger, node (#616) * Bump cardano-node to 1.35.2 and rest of dependencies based on cardano-wallet * Use '[TxIn]' instead of 'Set TxIn' in 'data Tx' (#623) * [plutus-ledger]: Use '[TxIn]' instead of 'Set TxIn' in 'data Tx'. * Add a property test to check Ord instances of TxIn. * Sort the inputs in fromOnChainTx * Sort the inputs in `Emulator.Wallet` * Fix the review notes and the problem with getInput in StateMachine tests * PLT-445 Add `mustReferencePubKeyOutput` in constraints library (#640) * PLT-445 Add mustReferencePubKeyOutput in constraints library * Added the mustReferencePubKeyOutput constraint in plutus-ledger-constraints * Added a test case for the mustReferencePubKeyOutput * Refactored Ledger.Tx.CardanoAPI to work with PlutusV2 alongside PlutusV1 scripts in the tx inputs. * Use existing unitRedeemer * Move TxIn and TxInType to Ledger.Tx * Add plutus version to ConsumeScriptAddress constructor * Add costModelParams for PlutusScriptV2 * Fix error codes. * Renamed mkTxInfo to mkPV1TxInfo, added test for plutus-tx-constraints without implementation and commented for now the off-chain validation in Ledger.Index * Implement reference inputs in makeTransactionBody' * Fixed failing test cases for Ledger.Constraints.mustReferencePubKeyOutput * Add MustUseOutputAsCollateral * Fix V2 tests. But issues with V1 tests. * Disable tests * WIP * Remove unused code * PR feedback * Remove unused code. * Clean up * Added additional info in TODO * Add Arbitrary instances * Convert plutus-ledger-constraint tests to PV2 * Fixed test in plutus-ledger-constraints * Fixed PS generator error in playground * Fix build * Fix PS * Fix PS * More support of plutus version in constraints libs * Default to PlutusV1 for now Co-authored-by: Sjoerd Visscher <[email protected]> Co-authored-by: Sjoerd Visscher <[email protected]> * Update cardano-node to 1.35.3-rc1 with deps (#647) * Upgraded to a cardano-wallet compatible with node 1.35.3-rc1 (#657) * Reorganized dependencies based on cardano-wallet's cabal.project * Added the new 'protocolParamUTxOCostPerByte' in 'Ledger.Params' which replaces 'protocolParamUTxOCostPerWord' * Fixed the `Plutus.Contract.Wallet.mkMintingRedeemers` which triggered an error if the redeemers in the tx contained spending redeemers. * Simplify MustReferencePubKeyOutput to MustReferenceOutput (#661) * Replace LedgerPlutusVersion with Language type (#662) * PLT-494: PlutusV2 TypedValidators (#666) * Move common code to Plutus.Script.Utils.Typed * Enable V2 TypedValidators * Enable and fix reference output tests * Update cardano-node 1.35.3-rc1 -> 1.35.3 (#669) * PLT-448: inline scripts in constraint libraries (#678) * Add inline script support to plutus-tx-constraints. * Add mustOutputInlineValidator and mustOutputInlineMintingPolicy * Add documentation * Check there's no inline script in V1 * Fix wrong minAdaTxOut use * Update renderGuess.txt * Naming * PLT-738: Include plutus language versions with scripts (#681) * Store Plutus language versions in chain-index * Introduce Versioned scripts Remove openapi3 as a dependency of plutus-script-utils * Add hashing for versioned scripts * PLT-454: mustUseOutputAsCollateral (#690) * Finish mustUseOutputAsCollateral implementation * Add testcase * Add documentation * Add missing fields to Ledger.Tx.Internal.Tx (#468) Add missing fields to Ledger.Tx.Internal.Tx. * Add certificates and withdrawals to Tx. * Move script witnesses to txScripts. * Modify TxIn type, rename to TxInput. * Put redeemers together with minting scripts. * Translate withdrawals in toCardanoTxBody. * Export redeemers for signing with wallet. * Add tests for mustIncludeDatum tx constraint (#700) * Add tests for mustIncludeDatum tx constraint (3 failing tests need fix) * run checks * Add tests for MustPayToPubKeyAddress tx constraint (#701) * Add tests for mustSpendScriptOutput and mustSpendScriptOutputWithMatchingDatumAndValue tx constraints (#706) * Add tests for mustSpendScriptOutput and mustSpendScriptOutputWithMatchingDatumAndValue tx constraints * Fixed the 'Ledger.Constraints.OffChain.typedValidatorLookups' lookup function so that it adds the validator inside the 'TypedValidator' in the 'slOtherScripts' lookup value. Co-authored-by: Konstantinos Lambrou-Latreille <[email protected]> * plutus-contract emulator: Change the tx output representation of EmulatorTx to use Cardano.Api.TxOut (#698) * First draft done for plutus-ledger * plutus-ledger-constraints use Cardano.Tx * use C.Tx in plutus-tx-constraints * plutus-chain-index uses C.TxOut * Forgot to add file * Fixing my mess with CardanoAPI * encoding via plutus.TxOut (can't work, no NetworkId) * Fix code for the use cases * Fix a bug in balanceTx * Fix 0 ada outputs error * Dirty fix for the uniswap check * Use Cardano.Tx txId * fix uniswap test * Fix double satisfaction * Fix Marconi * Add TxOut typeclasses * Remove unused imports * Fix failing tests * Clean import * Fix pab * Fix golden values * Fix golden test * Fix more plutus packages * Rmove useless param from ChainIndex.Lib * Fik playground * Remove commented code * Include several fixes following Konstantinos' review * Add a Pretty TxOut and clean uniswap * Remove useless stuff in playground * error in generators display the original cause * Fix imports * prettier pretty * Fix golden tests * Fix uniswap * Fix golden tests * Restore deleted constraints * Integrate more Sjoerd's comments * Add tests for mustPayToOtherScript tx constraint (#710) * Add tests for mustPayToOtherScript tx constraint and 2 more for mustPayToPubKeyAddress * Fix failing test and reference two PLT tickets * Refactored MustMint tests to use minting policies and added tests for token burning (#719) * MustSpendScriptOutput and MustSpendScriptOutputWithMatchingDatumAndValue check the redeemer's presence (#723) * Add inline datum supports for mustPayToPubKey and mustPayToOtherScript (#721) * Incremental change for datum * Work but no inlining * First working inline datum with V2 * Add tests for inline datum * add smart constructors for inline datum * fix PAB * fixing tx-constraints * clean up tests * Address some of Konstantinos' comments * Separate test group for plutus v2 * Refactor tests in MustPayToPubKeyAddress to ease version handling * Code clean up * Code clean up * Fix unused imports * Add a way to switch to cardano constraints in MustPayToOtherAddress tests * more clean up * PR feedbacks * Remove dead code * Add refactoring for MustPayToOtherScript tests * typo * clean test suites * Clean up imports * Fix some false-positives MustSpendScriptOutput tests using versioned minting policies (#725) * Fix some false-positives MustSpendScriptOutput tests and refactor to use minting policies * Use Versioned MintingPolicy and add tests for V2 scripts for MustSpendScriptOutput * Further refactoring * Improve onchain check for MustSpendScriptOutput and MustSpendScriptOutputWithMatchingDatumAndValue constraints * tidy up onchain check * PLT-448: must spend script output with reference (#716) * Add ownAddress (singular) * Support reference scripts in TxIn * Add mustSpendScriptOutputWithReference * Test using reference scripts * Fix merge issues * Direct conversion from ChainIndexTxOut to the new TxOut * Push Versioned inside Either * Accept test outputs * Fix reference script support in ledger-constraints * Fix comments * Add ownAddress (singular) * Support reference scripts in TxIn * Add mustSpendScriptOutputWithReference * Test using reference scripts * Fix merge issues * Direct conversion from ChainIndexTxOut to the new TxOut * Push Versioned inside Either * Accept test outputs * Fix reference script support in ledger-constraints * Fix comments * PR feedback * More PR feedback * Fix merge issues * PLT-807 Change behavior of MustPayToPubKeyAddress and MustPayToOtherScript w.r.t datum in transaction body (#705) * Changed `MustPayToPubKeyAddress` and `MustPayToOtherScript` so that the user needs to explicitly specify if he wants: * the datum to only be included as a hash in the transaction output * the datum to be included as a hash in the transaction output as well as in the transaction body * the datum to be inlined in the transaction output * Changed the name of the constraint `MustIncludeDatum` to `MustIncludeDatumInTx` and `MustHashDatum` to `MustIncludeDatumInTxWithHash`. These constraint don't modify the transaction anymore, but simply check that the datum is part of the transaction body. * Added a note on the 'Plutus.Contract.Oracle' module explaining why it doesn't work in it's current form. * Commented out failing test cases in `plutus-use-cases` that use the 'Plutus.Contract.Oracle' module. * PLT-511: collateral output in chain index (#730) * Add collateral output support to chain index * Generate invalid transactions in tests too * PR feedback * PLT-990 Removed Plutus.Contract.Wallet.finalize as we instead set the validity range of a transaction directly in `plutus-ledger-constraints` (since we now have access to the `SlotConfig`) (#741) * Update the contributing guide (#729) Co-authored-by: Evgenii Akentev <[email protected]> Co-authored-by: Konstantinos Lambrou-Latreille <[email protected]> Co-authored-by: Jordan Millar <[email protected]> Co-authored-by: Andrea Bedini <[email protected]> Co-authored-by: Markus Läll <[email protected]> Co-authored-by: Sjoerd Visscher <[email protected]> Co-authored-by: Sjoerd Visscher <[email protected]> Co-authored-by: Jamie Bertram <[email protected]> Co-authored-by: Karol Ochman-Milarski <[email protected]> Co-authored-by: James <[email protected]> Co-authored-by: Ziyang Liu <[email protected]> * Revert "next-node is the new merge (ends PLT-558) (#745)" (#746) This reverts commit dc3f549. * chore(deps): bump nixbuild/nix-quick-install-action from 17 to 18 (#743) Bumps [nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action) from 17 to 18. - [Release notes](https://github.com/nixbuild/nix-quick-install-action/releases) - [Changelog](https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE) - [Commits](nixbuild/nix-quick-install-action@v17...v18) --- updated-dependencies: - dependency-name: nixbuild/nix-quick-install-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add proper ToJSON instance for unit test results (#744) * Add collateral output fields * Add collateral balancing tests Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Ziyang Liu <[email protected]> Co-authored-by: Nicolas B <[email protected]> Co-authored-by: Evgenii Akentev <[email protected]> Co-authored-by: Konstantinos Lambrou-Latreille <[email protected]> Co-authored-by: Jordan Millar <[email protected]> Co-authored-by: Andrea Bedini <[email protected]> Co-authored-by: Markus Läll <[email protected]> Co-authored-by: Jamie Bertram <[email protected]> Co-authored-by: Karol Ochman-Milarski <[email protected]> Co-authored-by: James <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ulf Norell <[email protected]>
* SCP-3855: update node dep (#449) * Update Cardano node et al. dependencies for the Vasil HF * The Cardano node version will only work on a network with the Vasil release. * Solve some compile issues * wip: recovering instances for types from plutus-ledger-api * wip * plutus-ledger compiles * plutus-ledger-constraints compiles * Fixed warnings in Ledger.Tx.CardanoAPI for fields introduced by the Babbage era. Also adapted hashing functions for PlutusV1 scripts to work on PlutusV2 * Fixed warnings in Ledger.Tx.CardanoAPITemp and added implementation to undefined value * plutus-contract compiles * Added alonzoGenesisDefaults implementation (copied from cardano-node because it was deleted over there) to Ledger.Validation * plutus-chain-index-core compiles * Fixed compilation errors in playground-common and plutus-contract * Fix compile errors in plutus-example * Fix compile errors in plutus-pab * Fix compile errors in plutus-playground-server * WIP on plutus-use-cases * Split Tx.Orphans into multiple Orphans * Fix compilation errors on plutus-use-cases * fix compilation issues * Update nix * fix formatting * Remove wrongly commited files * Update purescript modules * Commented test on plutus-ledger temporarely until cardano-node is updated * Update cardano-wallet with fixes for haddock * Fix plutus-playground-client purescript imports * Fix warnings in plutus-example * Fix plutus-uniswap cabal * Try to turn-off haddock for cardano-wallet * [plutus-contract]: fix golden tests and commented test until cardano-node is updated * Add cardano-cli/.../genesis.alonzo.spec.json to fix plutus-example * Fix comment link to PR * Comment out the test properly * Update scripts/protocol-parameters with fresh plutusV1 cost parameters Co-authored-by: Konstantinos Lambrou-Latreille <[email protected]> * [chain-index]: export all servant client functions (#492) * Fix playground client * Fix streaming * Fix purescript * Create separate directories for v1 and v2 plutus scripts (#486) * Reorganize the plutus-example library to distinguish clearly between V1 and V2 scripts. * plutus-example reorganization create v2 example script * Modify the ScriptContextChecker module to be more generic * Propagate the changes to the plutus-example apps and tests * Update required-redeemer.plutus to also check for an inline datum of 42 and to check for an inline datum of 42 in the reference inputs * Add PlutusV2 minting and staking scripts (#528) * [chain-index]: add inline datums support and update cardano-node (#488) * PLT-484 Upgraded cardano-node version to the official 1.35.0 release. (#551) * Also upgraded cardano-wallet, plutus et al. versions that work with v1.35.0 of the node. * Updated golden tests in plutus-use-cases and plutus-contract * Updated version of components to 1.0.0 with cardano-node (#560) * Updated the cardano-node bundled with plutus-apps to v1.35.0 * Updated version of all components in their respective cabal files to 1.0.0 * Update cardano-node dependency to 1.35.1 * Updated cardano-wallet, plutus and cardano-ledger to match the node version. * Add script equivalence context test for the V2 context. (#588) * Remove withIsCardanoEra workaround. (#607) * BlockInMode now carries a IsCardanoEra constraint * Increase the delay of awaiting in plutus-pab-executables tests (#565) Set slot's length to 1s for awaiting tx/out status tests to make them stable * [PLT-81] plutus-chain-index: support inline scripts when querying TxOut of a TxOutRef (#613) * Make plutus-ledger-api version explicit in Ledger.Tx * Make pattern match explicit * Reorder ScriptChainIndexTxOut fields To highlight they are the same as PublicKeyChainIndexTxOut. * Add datum to both branches of ChainIndexTxOut - Unfortunately we need to rename the fields because they have now different types. - In the PublicKeyChainIndexTxOut case, the output datum is optional and we can use plutus-ledger-api OutputDatum type. - In the ScriptChainIndexTxOut case, the output datum is required, nothing changes here but the name. * Add ReferenceScript to ChainIndexTxOut * Remove old comment * Rename _ciTxOutDatumPublicKey and _ciTxOutDatumScript into _ciTxOutPublicKeyDatum and _ciTxOutScriptDatum * Introduce fromReferenceScript * Add comments to ChainIndexTxOut * Add minting context equivalent test plutus script (#631) * Add missing record field `localTxMonitoringClient` (#617) * PLT-568: Switch to Babbage era (#614) * Make Babbage the default era for the emulator * Clean up * Accept changes in test output * Workaround for parseBabbageEraInCardanoModeTx * Fix minAda calculation * [next-node]: Bump wallet, plutus, ledger, node (#616) * Bump cardano-node to 1.35.2 and rest of dependencies based on cardano-wallet * Use '[TxIn]' instead of 'Set TxIn' in 'data Tx' (#623) * [plutus-ledger]: Use '[TxIn]' instead of 'Set TxIn' in 'data Tx'. * Add a property test to check Ord instances of TxIn. * Sort the inputs in fromOnChainTx * Sort the inputs in `Emulator.Wallet` * Fix the review notes and the problem with getInput in StateMachine tests * PLT-445 Add `mustReferencePubKeyOutput` in constraints library (#640) * PLT-445 Add mustReferencePubKeyOutput in constraints library * Added the mustReferencePubKeyOutput constraint in plutus-ledger-constraints * Added a test case for the mustReferencePubKeyOutput * Refactored Ledger.Tx.CardanoAPI to work with PlutusV2 alongside PlutusV1 scripts in the tx inputs. * Use existing unitRedeemer * Move TxIn and TxInType to Ledger.Tx * Add plutus version to ConsumeScriptAddress constructor * Add costModelParams for PlutusScriptV2 * Fix error codes. * Renamed mkTxInfo to mkPV1TxInfo, added test for plutus-tx-constraints without implementation and commented for now the off-chain validation in Ledger.Index * Implement reference inputs in makeTransactionBody' * Fixed failing test cases for Ledger.Constraints.mustReferencePubKeyOutput * Add MustUseOutputAsCollateral * Fix V2 tests. But issues with V1 tests. * Disable tests * WIP * Remove unused code * PR feedback * Remove unused code. * Clean up * Added additional info in TODO * Add Arbitrary instances * Convert plutus-ledger-constraint tests to PV2 * Fixed test in plutus-ledger-constraints * Fixed PS generator error in playground * Fix build * Fix PS * Fix PS * More support of plutus version in constraints libs * Default to PlutusV1 for now Co-authored-by: Sjoerd Visscher <[email protected]> Co-authored-by: Sjoerd Visscher <[email protected]> * Update cardano-node to 1.35.3-rc1 with deps (#647) * Upgraded to a cardano-wallet compatible with node 1.35.3-rc1 (#657) * Reorganized dependencies based on cardano-wallet's cabal.project * Added the new 'protocolParamUTxOCostPerByte' in 'Ledger.Params' which replaces 'protocolParamUTxOCostPerWord' * Fixed the `Plutus.Contract.Wallet.mkMintingRedeemers` which triggered an error if the redeemers in the tx contained spending redeemers. * Simplify MustReferencePubKeyOutput to MustReferenceOutput (#661) * Replace LedgerPlutusVersion with Language type (#662) * PLT-494: PlutusV2 TypedValidators (#666) * Move common code to Plutus.Script.Utils.Typed * Enable V2 TypedValidators * Enable and fix reference output tests * Update cardano-node 1.35.3-rc1 -> 1.35.3 (#669) * PLT-448: inline scripts in constraint libraries (#678) * Add inline script support to plutus-tx-constraints. * Add mustOutputInlineValidator and mustOutputInlineMintingPolicy * Add documentation * Check there's no inline script in V1 * Fix wrong minAdaTxOut use * Update renderGuess.txt * Naming * PLT-738: Include plutus language versions with scripts (#681) * Store Plutus language versions in chain-index * Introduce Versioned scripts Remove openapi3 as a dependency of plutus-script-utils * Add hashing for versioned scripts * PLT-454: mustUseOutputAsCollateral (#690) * Finish mustUseOutputAsCollateral implementation * Add testcase * Add documentation * Add missing fields to Ledger.Tx.Internal.Tx (#468) Add missing fields to Ledger.Tx.Internal.Tx. * Add certificates and withdrawals to Tx. * Move script witnesses to txScripts. * Modify TxIn type, rename to TxInput. * Put redeemers together with minting scripts. * Translate withdrawals in toCardanoTxBody. * Export redeemers for signing with wallet. * Add tests for mustIncludeDatum tx constraint (#700) * Add tests for mustIncludeDatum tx constraint (3 failing tests need fix) * run checks * Add tests for MustPayToPubKeyAddress tx constraint (#701) * Add tests for mustSpendScriptOutput and mustSpendScriptOutputWithMatchingDatumAndValue tx constraints (#706) * Add tests for mustSpendScriptOutput and mustSpendScriptOutputWithMatchingDatumAndValue tx constraints * Fixed the 'Ledger.Constraints.OffChain.typedValidatorLookups' lookup function so that it adds the validator inside the 'TypedValidator' in the 'slOtherScripts' lookup value. Co-authored-by: Konstantinos Lambrou-Latreille <[email protected]> * plutus-contract emulator: Change the tx output representation of EmulatorTx to use Cardano.Api.TxOut (#698) * First draft done for plutus-ledger * plutus-ledger-constraints use Cardano.Tx * use C.Tx in plutus-tx-constraints * plutus-chain-index uses C.TxOut * Forgot to add file * Fixing my mess with CardanoAPI * encoding via plutus.TxOut (can't work, no NetworkId) * Fix code for the use cases * Fix a bug in balanceTx * Fix 0 ada outputs error * Dirty fix for the uniswap check * Use Cardano.Tx txId * fix uniswap test * Fix double satisfaction * Fix Marconi * Add TxOut typeclasses * Remove unused imports * Fix failing tests * Clean import * Fix pab * Fix golden values * Fix golden test * Fix more plutus packages * Rmove useless param from ChainIndex.Lib * Fik playground * Remove commented code * Include several fixes following Konstantinos' review * Add a Pretty TxOut and clean uniswap * Remove useless stuff in playground * error in generators display the original cause * Fix imports * prettier pretty * Fix golden tests * Fix uniswap * Fix golden tests * Restore deleted constraints * Integrate more Sjoerd's comments * Add tests for mustPayToOtherScript tx constraint (#710) * Add tests for mustPayToOtherScript tx constraint and 2 more for mustPayToPubKeyAddress * Fix failing test and reference two PLT tickets * Refactored MustMint tests to use minting policies and added tests for token burning (#719) * MustSpendScriptOutput and MustSpendScriptOutputWithMatchingDatumAndValue check the redeemer's presence (#723) * Add inline datum supports for mustPayToPubKey and mustPayToOtherScript (#721) * Incremental change for datum * Work but no inlining * First working inline datum with V2 * Add tests for inline datum * add smart constructors for inline datum * fix PAB * fixing tx-constraints * clean up tests * Address some of Konstantinos' comments * Separate test group for plutus v2 * Refactor tests in MustPayToPubKeyAddress to ease version handling * Code clean up * Code clean up * Fix unused imports * Add a way to switch to cardano constraints in MustPayToOtherAddress tests * more clean up * PR feedbacks * Remove dead code * Add refactoring for MustPayToOtherScript tests * typo * clean test suites * Clean up imports * Fix some false-positives MustSpendScriptOutput tests using versioned minting policies (#725) * Fix some false-positives MustSpendScriptOutput tests and refactor to use minting policies * Use Versioned MintingPolicy and add tests for V2 scripts for MustSpendScriptOutput * Further refactoring * Improve onchain check for MustSpendScriptOutput and MustSpendScriptOutputWithMatchingDatumAndValue constraints * tidy up onchain check * PLT-448: must spend script output with reference (#716) * Add ownAddress (singular) * Support reference scripts in TxIn * Add mustSpendScriptOutputWithReference * Test using reference scripts * Fix merge issues * Direct conversion from ChainIndexTxOut to the new TxOut * Push Versioned inside Either * Accept test outputs * Fix reference script support in ledger-constraints * Fix comments * Add ownAddress (singular) * Support reference scripts in TxIn * Add mustSpendScriptOutputWithReference * Test using reference scripts * Fix merge issues * Direct conversion from ChainIndexTxOut to the new TxOut * Push Versioned inside Either * Accept test outputs * Fix reference script support in ledger-constraints * Fix comments * PR feedback * More PR feedback * Fix merge issues * PLT-807 Change behavior of MustPayToPubKeyAddress and MustPayToOtherScript w.r.t datum in transaction body (#705) * Changed `MustPayToPubKeyAddress` and `MustPayToOtherScript` so that the user needs to explicitly specify if he wants: * the datum to only be included as a hash in the transaction output * the datum to be included as a hash in the transaction output as well as in the transaction body * the datum to be inlined in the transaction output * Changed the name of the constraint `MustIncludeDatum` to `MustIncludeDatumInTx` and `MustHashDatum` to `MustIncludeDatumInTxWithHash`. These constraint don't modify the transaction anymore, but simply check that the datum is part of the transaction body. * Added a note on the 'Plutus.Contract.Oracle' module explaining why it doesn't work in it's current form. * Commented out failing test cases in `plutus-use-cases` that use the 'Plutus.Contract.Oracle' module. * PLT-511: collateral output in chain index (#730) * Add collateral output support to chain index * Generate invalid transactions in tests too * PR feedback * PLT-990 Removed Plutus.Contract.Wallet.finalize as we instead set the validity range of a transaction directly in `plutus-ledger-constraints` (since we now have access to the `SlotConfig`) (#741) * Update the contributing guide (#729) Co-authored-by: Evgenii Akentev <[email protected]> Co-authored-by: Konstantinos Lambrou-Latreille <[email protected]> Co-authored-by: Jordan Millar <[email protected]> Co-authored-by: Andrea Bedini <[email protected]> Co-authored-by: Markus Läll <[email protected]> Co-authored-by: Sjoerd Visscher <[email protected]> Co-authored-by: Sjoerd Visscher <[email protected]> Co-authored-by: Jamie Bertram <[email protected]> Co-authored-by: Karol Ochman-Milarski <[email protected]> Co-authored-by: James <[email protected]> Co-authored-by: Ziyang Liu <[email protected]>
Pre-submit checklist: