![]() The core observation is that **in the context of Aiken** (i.e. on-chain logic) people do not generally want to use String. Instead, they want bytearrays. So, it should be easy to produce bytearrays when needed and it should be the default. Before this commit, `"foo"` would parse as a `String`. Now, it parses as a `ByteArray`, whose bytes are the UTF-8 bytes encoding of "foo". Now, to make this change really "fool-proof", we now want to: - [ ] Emit a parse error if we parse a UTF-8 bytearray literal in place where we would expect a `String`. For example, `trace`, `error` and `todo` can only be followed by a `String`. So when we see something like: ``` trace "foo" ``` we know it's a mistake and we can suggest users to use: ``` trace @"foo" ``` instead. - [ ] Emit a warning if we ever see a bytearray literals UTF-8, which is either 56 or 64 character long and is a valid hexadecimal string. For example: ``` let policy_id = "29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c6" ``` This is _most certainly_ a mistake, as this generates a ByteArray of 56 bytes, which is effectively the hex-encoding of the provided string. In this scenario, we want to warn the user and inform them they probably meant to use: ``` let policy_id = #"29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c6" ``` |
||
---|---|---|
.github | ||
crates | ||
examples | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
CHANGELOG.md | ||
CONTRIBUTING.md | ||
Cargo.lock | ||
Cargo.nix | ||
Cargo.toml | ||
LICENSE | ||
README.md | ||
bonnie.toml | ||
flake.lock | ||
flake.nix |
README.md
QuickStart
Prerequisites
For now you'll need rust installed, see rustup.
Getting started
In case you have fresh installation of rustup
you might need to do:
rustup install stable
$ cargo install --git https://github.com/aiken-lang/aiken.git
$ aiken --help
Alternatively nix builds are available via flakes.
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.
Note
The name comes from Howard Aiken, an American physicist and a pioneer in computing.