Skip to content

For Practicing on Plutus Pioneer Program training exercises

Notifications You must be signed in to change notification settings

bereketgodebo/plutus-pioneer-program

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

Plutus Pioneer Program

Lectures

Code Examples

Exercises

  • Week #1

  • Week #2

    • Fix and complete the code in the Homework1 module.
    • Fix and complete the code in the Homework2 module.
  • Week #3

    • Fix and complete the code in the Homework1 module.
    • Fix and complete the code in the Homework2 module.
  • Week #4

    • Implement function payTrace in the Homework module.
    • Handle exceptions thrown by submitTx in function payContract in the same module.
  • Week #5

    • Implement a Mary-era-style minting policy in the Homework1 module.
    • Fix the token name to the empty ByteString in the NFT contract in the Homework2 module.
  • Week #6

    • Try to replicate what is done in the lecture - minting tokens with the cardano-cli and the PAB.
  • Week #7

    • 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.
    • Modify the tests accordingly.
  • Week #9m

    • Modify the example Marlowe contract, so that Charlie must put down twice the deposit in the very beginning, which gets split between Alice and Bob if Charlie refuses to make his choice.

Some Plutus Modules

  • Ledger.Scripts, contains functions related to untyped Plutus scripts.
  • Ledger.Typed.Scripts, contains functions related to typed Plutus scripts.
  • Plutus.Contract, contains definitions and functions for writing offchain code.
  • Plutus.Contract.StateMachine, contains definitions and functions for working with state machines.
  • Plutus.Contract.Test, contains support for automatic tests.
  • Plutus.Contract.Test.ContractModel, contains support for automatic property-based tests using QuickCheck.
  • 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 like Data and BuiltinData.
  • PlutusTx.IsData.Class, contains the ToData and FromData classes and related functions.
  • Wallet.Emulator, contains types and functions for dealing with wallets.

Additional Resources

About

For Practicing on Plutus Pioneer Program training exercises

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Haskell 94.2%
  • Shell 5.8%