- Part 1 - Welcome and Introduction
- Part 2 - The EUTxO-Model
- Part 3 - Building the Example Code
- Part 4 - Auction Contract in the EUTxO-Model
- Part 5 - Auction Contract on the Playground
- Part 6 - Homework
- Part 1 - Triggering Change
- Part 2 - Low Level, Untyped Validation Scripts
- Part 3 - High Level, Typed Validation Scripts
- Part 4 - Summary
- Part 5 - Homework
- Part 1 - Configuring Playground Time Out
- Part 2 - Script Contexts
- Part 3 - Handling Time
- Part 4 - A Vesting Example
- Part 5 - Parameterized Contracts
- Part 6 - Deploying to the Cardano Testnet
- Part 7 - Homework
- Part 8 - Summary
- Part 1 - Introduction
- Part 2 - Monads
- Part 3 - The EmulatorTrace Monad
- Part 4 - The Contract Monad
- Part 5 - Homework & Summary
- Part 1 - Start
- Part 2 - Values
- Part 3 - A Simple Minting Policy
- Part 4 - A More Realistic Minting Policy
- Part 5 - NFT's
- Part 6 - Homework
- Lecture #1: English Auction
- Lecture #2: Simple Validation
- Lecture #3: Script Contexts & Parameterized Contracts
- Lecture #4: Monads, Traces & Contracts
- Lecture #5: Native Tokens
-
Week #1
- Clone the The Plutus-Apps repository, check out the correct commit as specified in cabal.project.
- Install NixOS cross-referencing the following resources.
- https://nixos.org/download.html
- https://docs.plutus-community.com
- A few resources to understand the what and why regarding NixOS
- Set-up IOHK binary caches How to set up the IOHK binary caches. "If you do not do this, you will end up building GHC, which takes several hours. If you find yourself building GHC, stop and fix the cache."
- Enter a
nix-shell
. - Build the English Auction contract with
cabal build
(you may need to runcabal update
first). - Go to the
plutus-playground-client
folder in theplutus-apps
repository. - Start the Playground server with
plutus-playground-server
. - Start the Playground client (in another
nix-shell
) withnpm start
. - Copy-paste the auction contract into the Playground editor, do not forget to remove the module header.
- Compile.
- Simulate various auction scenarios.
-
Week #2
-
Week #3
-
Week #4
- Implement function
payTrace
in the Homework module. - Handle exceptions thrown by
submitTx
in functionpayContract
in the same module.
- Implement function
-
Week #5
Ledger.Scripts
, contains functions related to untyped Plutus scripts.Ledger.Typed.Scripts
, contains functions related to typed Plutus scripts.Plutus.V1.Ledger.Ada
, contains definitions and functions related to ADA-values.Plutus.V1.Ledger.Interval
, contains the definition of intervals and functions for working with them.Plutus.V1.Ledger.Value
, contains definitions and functions related to values.Plutus.V1.Ledger.Time
, contains time-related types and functions.PlutusTx
, contains important types likeData
andBuiltinData
.PlutusTx.IsData.Class
, contains theToData
andFromData
classes and related functions.Wallet.Emulator
, contains types and functions for dealing with wallets.
- The Plutus repository
- The Plutus-Apps repository
- Learn You a Haskell for Great Good: original, remastered and interactive notebook
- Haskell & Cryptocurrencies course Mongolia