Go to file
KtorZ 375499930a Add UPLC support for 'ProtoList' & 'ProtoPair' constants
Supersedes #35.

  The syntax for these elements isn't "set in stone"; in the sense that it is unspecified in [input-output-hk/plutus](https://github.com/input-output-hk/plutus). There's no visible plan from IOG to extend the Haskell parser to support this syntax, though there are samples of imagined syntax in the code. Thus, we can lead the way and simply choose a suitable syntax and let the Haskell implementation align to it later.

  This syntax is thus inspired from input-output-hk/plutus' samples, with only a small change: we use `<` and `>` for encapsulating type declaration instead of `(`, `)`. There are already enough parentheses in the UPLC syntax, adding more reduces visibility.

  Doing this, I've also added a lot more test cases for the UPLC parser. There could be more, but this is a good start.

  Here are some example programs (taken from test cases) utilizing this syntax:

  ```
  (program 0.0.0 (con list<bytestring> [#00, #01]))
  ```

  ```
  (program 0.0.0
      (con pair
        <integer, integer>
        [14, 42]
      )
  )
  ```

  ```
  (program 0.0.0
      (con pair<string, list<integer>> ["foo", [14, 42]])
  )
  ```

  _(Note that this was mainly done as an exercise to get more familiar with Rust and parts of Aiken.)_
2022-12-03 10:16:16 -05:00
.github replace OSX with macOS in the issue template 2022-11-12 13:08:13 -05:00
assets chore: add more assets 2022-09-06 20:14:27 -04:00
book Add UPLC support for 'ProtoList' & 'ProtoPair' constants 2022-12-03 10:16:16 -05:00
crates Add UPLC support for 'ProtoList' & 'ProtoPair' constants 2022-12-03 10:16:16 -05:00
examples feat: format bytearrays 2022-12-01 15:28:15 -05:00
.editorconfig Add .editorconfig, covering only *.ak file for now. 2022-11-10 15:39:42 +01:00
.gitignore chore: more mdbook ci stuff 2022-10-06 14:45:21 -04:00
CHANGELOG.md chore: update changelog 2022-11-23 00:33:51 -05:00
CONTRIBUTING.md Slightly rework README + add issues templates. 2022-10-29 10:36:03 +02:00
Cargo.lock Release 0.0.26 2022-11-23 00:31:24 -05:00
Cargo.toml fix: include return type in one function def 2022-10-04 16:32:32 -04:00
LICENSE Create LICENSE 2022-06-14 18:47:40 -04:00
README.md Slightly rework README + add issues templates. 2022-10-29 10:36:03 +02:00
bonnie.toml feat: add bonnie 2022-11-22 21:11:24 -05:00

README.md

Aiken Aiken

Cardano smart contract language and toolchain

Licence Crates.io Rust Build mdBook Build


QuickStart

Prerequisites

For now you'll need rust installed, see rustup.

Getting started

$ cargo install aiken

$ aiken --help

How to use

For more information please see the user manual.

Roadmap

Aiken defines its roadmap using Github Milestones. The roadmap isn't set in stone, but gives a high-level overview of where the project is headed for.

Contributing

Want to contribute? See CONTRIBUTING.md to know how.

Acknowledgment

We'd like to give a special thanks to @nkz for creating the logo and giving us the idea to name the project Aiken.


Note

The name comes from Howard Aiken, an American physicist and a pioneer in computing.