Plutus: Pioneers Program 4th cohort - Lecture 10 - Built with plutus
As a last lecture, instead of writing regular Plutus code through Haskell, alternatives are presented.
First, we have MeshJS, which aims to bootstrap DApps, based on React, NextJS, and JavaScript/TypeScript.
Then come plu-ts, which allows tu write scripts which will be compiled down to plutus.
It looks a lot like Haskkell-based Plutus scripts:
;
true
;
;
;
;
;
Then we have OpShin, which is python-based.
:
= False
= True
assert ,
Then we have plutarch, which is a Haskell eDSL, it aims to produce a smaller and more efficient Untyped PLutus Core:
alwaysSucceeds = plam $ \_datm _redm _ctx -> pconstant ()
Finally there's Aiken which is a dedicated functional programming language for Smart Contracts.
validator {
fn hello_world(datum, redeemer, context) -> Bool {
let must_say_hello =
redeemer == "Hello, World!"
let must_be_signed =
list.has(
context.transaction.extra_signatories,
datum.owner,
)
must_say_hello? && must_be_signed?
}
}
Notes: while Plutus Pioneers Program 4th Cohort ends here, the 1st cohort, which I attended to, cover Plutus Application Backend.
Its aims to enable interactions between clients and contracts (e.g. through HTTP requests to long-running contracts, or notify clients when ledger changes).
To be deployed, it takes:
- A chain index
- A node
- A wallet
- A cardano wallet backend instance (WBE): cardano-wallet
- A desktop wallet application: Daedalus
- A browser wallet application: Nami, Yoroi, etc.