An open API service indexing awesome lists of open source software.

https://github.com/aiken-lang/stdlib

The Aiken Standard Library
https://github.com/aiken-lang/stdlib

aiken cardano plutus smart-contract

Last synced: 3 months ago
JSON representation

The Aiken Standard Library

Awesome Lists containing this project

README

        





Aiken Aiken Standard Library

[![Licence](https://img.shields.io/github/license/aiken-lang/stdlib?style=for-the-badge)](https://github.com/aiken-lang/stdlib/blob/main/LICENSE)
[![Continuous Integration](https://img.shields.io/github/actions/workflow/status/aiken-lang/stdlib/continuous-integration.yml?style=for-the-badge)](https://github.com/aiken-lang/stdlib/actions/workflows/continuous-integration.yml)



## Getting started

```
aiken add aiken-lang/stdlib --version v2
```

## Compatibility

aiken's version | stdlib's version(s)
--- | ---
`v1.1.3`
`v1.1.4`
`v1.1.5`
`v1.1.6`
`v1.1.7`
`v1.1.9`
`v1.1.10`
`v1.1.11` | `>= 2.1.0`
`v1.1.1`
`v1.1.2` | `>= 2.0.0` && `< 2.1.0`
`v1.0.29-alpha`
`v1.0.28-alpha` | `>= 1.9.0` && `< 2.0.0`
`v1.0.26-alpha` | `<= 1.8.0` && `< 1.9.0`

## Overview

The official standard library for the [Aiken](https://aiken-lang.org) Cardano
smart-contract language.

It extends the language builtins with useful data-types, functions, constants
and aliases that make using Aiken a bliss.

```aiken
use aiken/collection/list
use aiken/crypto.{VerificationKeyHash}
use cardano/transaction.{OutputReference, Transaction}

pub type Datum {
owner: VerificationKeyHash,
}

pub type Redeemer {
msg: ByteArray,
}

/// A simple validator which replicates a basic public/private signature lock.
///
/// - The key (hash) is set as datum when the funds are sent to the script address.
/// - The spender is expected to provide a signature, and the string 'Hello, World!' as message
/// - The signature is implicitly verified by the ledger, and included as 'extra_signatories'
///
validator hello_world {
spend(datum: Option, redeemer: Redeemer, _, self: Transaction) {
expect Some(Datum { owner }) = datum

let must_say_hello = redeemer.msg == "Hello, World!"

let must_be_signed = list.has(self.extra_signatories, owner)

and {
must_say_hello,
must_be_signed,
}
}
}
```

## Stats

![Alt](https://repobeats.axiom.co/api/embed/f0a17e7f6133630e165b9e56ec5447bef32fe831.svg "Repobeats analytics image")