This package has a new API for defining "contracts": bundled applications that
interact with a wallet smart contract backend. This is in many ways the
"successor" to much of plutus-wallet-api
, and should eventually
replace much of it.
Noteworthy modules:
-
Language.Plutus.Contract
: Exports theContract
type which encodes the client (off-chain) part of Plutus contracts, including blockchain queries, user-facing endpoints, and the ability to submit transactions to the ledger -
Language.Plutus.Contract.StateMachine
: State machine client library, building on theContract
type and on the (mostly) on-chain code inLanguage.PlutusTx.StateMachine
-
Language.Plutus.Contract.Trace
: TheContractTrace
type for describing sequences of emulator actions that can be used in the Playgound and in unit tests. -
Language.Plutus.Contract.App
: Exposes a wrapper to turnContract
values into standalone executables, to be consumed by the SCB
It also defines the chain emulator, which is used for tests, and to back the simulations in the Plutus Playground.