diff --git a/README.md b/README.md index 31a619f..9fc4ee3 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,14 @@ - Commit schemes. - State machines. +- [Lecture #8](https://youtu.be/JMRwkMgaBOg) + + - Another state machine example: token sale. + - Automatic testing using emulator traces. + - Interlude: optics. + - Property based testing with `QuickCheck`. + - Testing Plutus contracts with property based testing. + ## Code Examples - Lecture #1: [English Auction](code/week01) @@ -52,6 +60,7 @@ - Lecture #5: [Minting Policies](code/week05) - Lecture #6: [Oracles](code/week06) - Lecture #7: [State Machines](code/week07) +- Lecture #8: [Testing](code/week08) ## Exercises @@ -97,6 +106,12 @@ - Implement the game of "Rock, Paper, Scissors" using state machines. +- Week #8 + + - Add a new operation `close` to the `TokenSale`-contract that allows the seller to close the contract and + retrieve all remaining funds (including the NFT). + - Modify the tests accordingly. + ## Solutions - Week #2 @@ -126,6 +141,8 @@ ## Some Plutus Modules - [`Plutus.Contract.StateMachine`](https://github.com/input-output-hk/plutus/blob/master/plutus-contract/src/Plutus/Contract/StateMachine.hs), contains types and functions for using state machines. +- [`Plutus.Contract.Test`](https://github.com/input-output-hk/plutus/blob/master/plutus-contract/src/Plutus/Contract/Test.hs), provides various ways to write tests for Plutus contracts. +- [`Plutus.Contract.Test.ContractModel`](https://github.com/input-output-hk/plutus/blob/master/plutus-contract/src/Plutus/Contract/Test/ContractModel.hs), support for property based testing of Plutus contracts. - [`Plutus.PAB.Webserver.API`](https://github.com/input-output-hk/plutus/blob/master/plutus-pab/src/Plutus/PAB/Webserver/API.hs), contains the HTTP-interface provided by the PAB. - [`Plutus.Trace.Emulator`](https://github.com/input-output-hk/plutus/blob/master/plutus-contract/src/Plutus/Trace/Emulator.hs), contains types and functions related to traces. - [`Plutus.V1.Ledger.Ada`](https://github.com/input-output-hk/plutus/blob/master/plutus-ledger-api/src/Plutus/V1/Ledger/Ada.hs), contains support for the Ada currency.