A library for writing Plutus contracts.
The high-level workflow is this:
- Write a contract using the
Plutus.Contractmodule. The type of contract isContract w s e awith schema 's', producing a value of type 'a' or an error 'e'. - (optional) Write traces for the contract using the
Plutus.Tracemodule. Traces are sequences of actions by simulated wallets that use the contract. SeeSpec.Emulatorfor an example. - (optional) Write unit tests for the contract, using the
Plutus.Contract.Testmodule to make assertions about traces. - Turn the contract into an executable using the
plutus-pabpackage.
The plutus-use-cases package contains some hand-written examples for the use cases we currently have.