I was accepted into the second cohort which had early access to a set of courses that taught the core principles of Haskell and Plutus.
This is week by week of what I learned and the assignments I completed all annotated.
-
- Welcome.
- The (E)UTxO-model.
- Building the example code.
- An auction contract in the EUTxO-model.
- A brief look at the auction code.
- Running an example auction contract on a local Playground.
- Homework.
-
- Triggering change.
- Low-level, untyped on-chain validation scripts.
- High-level, typed on-chain validation scripts.
-
- Script contexts.
- Time handling.
- Parameterized contracts.
-
- Monads.
- The
EmulatorTrace-monad. - The
Contract-monad.
-
- Values.
- Native Tokens.
- NFT's.
-
- Oracles.
- Using the PAB.
-
Week #1
- Clone the The Plutus 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 updatefirst). - Go to the
plutus-playground-clientfolder. - Start the Playground server with
plutus-playground-server. - Start the Playground client (in another
nix-shell) withnpm run start. - Copy-paste the auction contract into the Playground editor.
- Compile.
- Simulate various auction scenarios.
-
Week #2
-
Week #3
-
Week #4
- Implement function
payTracein the Homework module. - Handle exceptions thrown by
submitTxin functionpayContractin the same module.
- Implement function
-
Week #5
-
Week #6
- Get the Oracle demo running and extend it in some way.