UNPKG

@helios-lang/compiler

Version:

Helios is a Domain Specific Language that compiles to Plutus-Core (i.e. Cardano on-chain validator scripts). Helios is a non-Haskell alternative to Plutus. With this library you can compile Helios scripts and build Cardano transactions, all you need to bu

63 lines (40 loc) 2.56 kB
# Helios Lang Helios is a Domain Specific Language that compiles to Plutus-Core (i.e. Cardano on-chain validator scripts). Helios is a non-Haskell alternative to Plutus. Helios is purely functional, strongly typed, and has a simple curly braces syntax. It notably supports closures, functions with optional arguments and multiple return values, OOP-like methods, enums as tagged unions, and generics. The Helios library is written in Javascript, with complete Typescript type-coverage. This library lets you compile Cardano smart contracts and create Cardano transactions. Helios is all you need to build 100% client-side dApps for Cardano. ## Example: time-lock ``` spending time_lock struct Datum { lockUntil: Time owner: PubKeyHash // the owner can always unlock the assets beneficiary: PubKeyHash // beneficiary can only unlock the assets after 'lockUntil' } func main(datum: Datum, _, ctx: ScriptContext) -> Bool { tx: Tx = ctx.tx; now: Time = tx.time_range.start; tx.is_signed_by(datum.owner) || ( tx.is_signed_by(datum.beneficiary) && now > datum.lockUntil ) } ``` ## User guide The Helios language and Helios API are covered extensively by the online [book](https://www.hyperion-bt.org/helios-book). ## Online playground There is an online coding [playground](https://www.hyperion-bt.org/helios-playground?share=bd071424ebb752c3bbb2e2e45074c195). ## VSCode plugin There is a VSCode plugin called *Helios* that can be installed through the extensions marketplace. Currently it only supports syntax highlighting and syntax error diagnostics. Please help us improve this extension by contributing to the [*helios-ide-plugins* repository](https://github.com/hyperion-bt/helios-ide-plugins). ## Sponsoring For sponsoring we prefer using the Cardano blockchain itself (instead of Patreon or Github's sponsor system). Our Cardano address is the same one where the `helioslang` [adahandle](https://adahandle.com/) is located: ``` addr1qxyd3shxugqkrkdpwgjq522cu7h4lkr8qnz9uemd4w68p970n6h44fq8ujuyu807vll9atjpc8z6zl0pyv6n2neezysqv5rjvd ``` Please join our [Discord](https://discord.gg/XTwPrvB25q) and tell us what you'd like your sponsorship to be used for before sending funds. ## Acknowledgements Early contributors who deserve special acknowledgement: * [Ch1n3du](https://github.com/Ch1n3du): improved syntax, documentation * [Tanyalouise](https://github.com/tanthehack): logo * [Cnftacademy](https://cnftacademy.com/): testing * [mikky-j](https://github.com/mikky-j): documentation