Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/rust-build-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ on:
pull_request:
branches:
- master
- feature/pallas-migration

jobs:
build-test:
Expand Down
23 changes: 20 additions & 3 deletions .github/workflows/static.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
push:
branches:
- master
- add-docs-for-m5

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
Expand Down Expand Up @@ -33,14 +34,30 @@ jobs:
uses: actions/checkout@v4
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Build docs
- name: Install mdBook
uses: peaceiris/actions-mdbook@v2
with:
mdbook-version: 'latest'
- name: Build API reference (cargo doc)
run: |
npm run rust:doc
- name: Build mdBook guide
run: |
mdbook build docs/guide
- name: Assemble site
run: |
mkdir -p _site
cp -r docs/guide/book/* _site/
cp -r docs/ _site/api/
rm -rf _site/api/guide
- name: Link check
uses: lycheeverse/lychee-action@v2
with:
args: --no-progress --config .lychee.toml ./_site
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
# Upload entire repository
path: "./docs"
path: "./_site"
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,12 @@ target
*/**/schemas
*/**/output
rust/pkg
docs
docs/*
!docs/guide/
docs/guide/book/

*/**/.env

publish
_site
.claude
34 changes: 34 additions & 0 deletions .lychee.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Lychee link checker configuration
# https://lychee.cli.rs/

# Exclude known false positives
exclude = [
# Font license files reference external sites that may timeout
"adobe\\.com",
"nhncorp\\.com",
# Auto-generated tracing dispatcher links
"dispatcher#",
# Deprecated external documentation link
"meshjs\\.dev/apis/transaction/builderExample",
# Internal cross-references to whisky_csl/whisky_js docs not generated in this build
"whisky_csl/builder/trait\\.ITxBuilderCore",
"whisky_csl/core/builder/fn\\.js_serialize_tx_body",
"whisky_js/builder/trait\\.ITxBuilderCore",
"whisky_js/core/builder/fn\\.js_serialize_tx_body",
# mdBook relative ../api/ links resolve correctly over HTTP but not in lychee local file mode
"api/whisky/index\\.html",
"api/whisky_common/index\\.html",
"api/whisky_pallas/index\\.html",
"api/whisky_csl/index\\.html",
"api/whisky_provider/index\\.html",
"api/whisky_wallet/index\\.html",
"api/whisky_macros/index\\.html",
]

# Exclude generated static files from Rust docs and mdBook theme
exclude_path = [
"_site/static.files",
"_site/api/static.files",
# mdBook 404 page has a root-relative "/" link that lychee can't resolve locally
"_site/404.html",
]
73 changes: 73 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Changelog

All notable changes to the Whisky project under the Catalyst proposal will be documented in this file.

## [v1.0.28-beta.1] - 2026-03-15 — Milestone 5: Documentation and Closeout Report

### Added

- SECURITY.md — security policy and responsible disclosure process
- MAINTAINERS.md — standalone maintainer list and responsibilities
- CHANGELOG.md — project changelog

### Changed

- Renamed CONTRIBUTING to CONTRIBUTING.md

## [v1.0.27-beta.1] - 2026-02-26 — Milestone 4: Full Pallas Migration

### Changed

- Whisky main package fully migrated to Pallas over CSL

### Added

- Pallas evaluation utility
- Address utilities (address utils, script to address)
- Time convertor utility
- Check required signatures
- Extract UTXOs utility
- Data from_cbor support
- Plutus data from JSON
- serialize_address_obj utility
- MIGRATION.md — CSL to Pallas migration guide

### Fixed

- Redeemer duplicate add
- JSON round trip
- Send + Sync for TxBuildable trait

## [v1.0.24] - 2026-01-22 — Milestone 3: Transaction Parser

### Added

- Transaction parser: parse CBOR hex into editable TxBuilderBody (whisky-pallas)
- Parse all tx components: inputs, outputs, mints, withdrawals, certs, metadata, validity range, votes, collaterals, reference inputs, required signers
- Transaction edit support and tests
- CI: add whisky-pallas to publish workflow

## [v1.0.18-beta.1] - 2026-01-05 — Milestone 2: Transaction Builder with Pallas

### Added

- Pallas as alternative serialization library alongside CSL
- Full tx builder: inputs, outputs, mints, withdrawals, certs, collaterals, voting, required signers, witness set
- Transaction balancing, fee calculation, script data hash
- Feature flag support
- Cipher decrypt with salt
- Integration tests for Pallas
- End-to-end WhiskyPallas tx build documentation in README

### Breaking

- TxBuilderParam requires `serializer: Box<dyn TxBuildable>` field

## [v1.0.17] - 2025-12-17 — Milestone 1: Preparation and Organization Setup

### Added

- ConstrEnum wrapper on enum
- Maintainer list and CODE_OF_CONDUCT.md
- Discord server invite link
- Pallas transaction type prototyping
File renamed without changes.
26 changes: 26 additions & 0 deletions MAINTAINERS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Maintainers

This document lists the maintainers of the Whisky project.

## Current Maintainers

| Name | GitHub | Role |
|------|--------|------|
| Hinson Wong | [@HinsonSIDAN](https://github.com/HinsonSIDAN) | Maintainer |
| Tsz Wai | [@twwu123](https://github.com/twwu123) | Maintainer |
| Ken Lau | [@kenlau666](https://github.com/kenlau666) | Maintainer |
| Anson Chui | [@AnsonSIDAN](https://github.com/AnsonSIDAN) | Project Manager |

## Responsibilities

Maintainers are responsible for:

- Reviewing and merging pull requests
- Triaging issues and bug reports
- Managing releases and versioning
- Enforcing the [Code of Conduct](CODE_OF_CONDUCT.md)
- Responding to [security reports](SECURITY.md)

## Becoming a Maintainer

If you are interested in becoming a maintainer, please reach out to any of the current maintainers. Active contributors who demonstrate a strong understanding of the codebase and a commitment to the project may be invited to join the maintainer team.
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
[![Crates.io](https://img.shields.io/crates/v/whisky?style=for-the-badge)](https://crates.io/crates/whisky)
[![NPM](https://img.shields.io/npm/v/%40sidan-lab%2Fwhisky-js-nodejs?style=for-the-badge)](https://www.npmjs.com/package/@sidan-lab/whisky-js-nodejs)

**[Read the Guide](https://sidan-lab.github.io/whisky/)** | **[API Reference](https://sidan-lab.github.io/whisky/api/whisky/index.html)**

<hr/>
</div>

Expand Down Expand Up @@ -308,7 +310,7 @@ Make sure llvm is installed

## APIs

Please refer to the [hosted documentation](https://sidan-lab.github.io/whisky/whisky/index.html) for the list of endpoints.
Please refer to the [Guide](https://sidan-lab.github.io/whisky/) and [API Reference](https://sidan-lab.github.io/whisky/api/whisky/index.html) for full documentation.

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

Expand Down
40 changes: 40 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Security Policy

## Supported Versions

| Version | Supported |
|---------|--------------------|
| 1.0.x | :white_check_mark: |
| < 1.0 | :x: |

## Reporting a Vulnerability

If you discover a security vulnerability in Whisky, please report it responsibly. **Do not open a public GitHub issue.**

Instead, please contact one of the maintainers directly:

- Hinson Wong ([@HinsonSIDAN](https://github.com/HinsonSIDAN))
- Tsz Wai ([@twwu123](https://github.com/twwu123))
- Ken Lau ([@kenlau666](https://github.com/kenlau666))
- Anson Chui ([@AnsonSIDAN](https://github.com/AnsonSIDAN))

You can also reach us via our [Discord server](https://discord.gg/prJvB6b6p4).

## What to Include

When reporting a vulnerability, please include:

- A description of the vulnerability
- Steps to reproduce the issue
- The potential impact
- Any suggested fixes (if applicable)

## Response Timeline

- We will acknowledge receipt of your report within **48 hours**.
- We will provide an initial assessment within **7 days**.
- We will work with you to understand and resolve the issue, and coordinate disclosure.

## Disclosure Policy

We follow a coordinated disclosure process. Please allow us reasonable time to address the vulnerability before making any public disclosure.
13 changes: 13 additions & 0 deletions docs/guide/book.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[book]
authors = ["SIDAN Lab"]
language = "en"
src = "src"
title = "Whisky - Cardano Rust SDK Guide"

[build]
build-dir = "book"

[output.html]
git-repository-url = "https://github.com/sidan-lab/whisky"
edit-url-template = "https://github.com/sidan-lab/whisky/edit/master/docs/guide/src/{path}"
no-section-label = false
26 changes: 26 additions & 0 deletions docs/guide/src/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Summary

[Introduction](./introduction.md)

# Getting Started

- [Installation](./getting-started/installation.md)
- [Quick Start](./getting-started/quickstart.md)

# Core Guides

- [Transaction Builder](./guides/tx-builder.md)
- [Simple Transactions](./guides/tx-builder/simple.md)
- [Plutus Script Transactions](./guides/tx-builder/plutus.md)
- [Minting](./guides/tx-builder/minting.md)
- [Staking & Governance](./guides/tx-builder/staking.md)
- [Transaction Parser](./guides/tx-parser.md)
- [Dependency Injection](./guides/dependency-injection.md)
- [Serializer Backends](./guides/di/serializers.md)
- [Providers](./guides/di/providers.md)
- [Migration: CSL to Pallas](./guides/migration-csl-to-pallas.md)

# Reference

- [Examples Server](./reference/examples-server.md)
- [API Documentation](./reference/api-docs.md)
60 changes: 60 additions & 0 deletions docs/guide/src/getting-started/installation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Installation

## Rust Library

Add whisky to your project:

```sh
cargo add whisky
```

Or add it directly to your `Cargo.toml`:

```toml
[dependencies]
whisky = "1.0.28-beta.1"
```

### Feature Flags

By default, all features are enabled (`full`). You can selectively enable only what you need:

```toml
# Full (default) — includes wallet + provider
whisky = "1.0.28-beta.1"

# Just common types (minimal, no serializer backends)
whisky = { version = "1.0.28-beta.1", default-features = false }

# Wallet only (signing + key management)
whisky = { version = "1.0.28-beta.1", default-features = false, features = ["wallet"] }

# Provider only (Blockfrost/Maestro integrations)
whisky = { version = "1.0.28-beta.1", default-features = false, features = ["provider"] }
```

| Feature | Includes | Use Case |
|---------|----------|----------|
| `full` (default) | wallet + provider | Full DApp backend |
| `wallet` | Signing, key encryption | Transaction signing only |
| `provider` | Blockfrost, Maestro | Blockchain data fetching |

## JS / TS WASM Library

For JavaScript or TypeScript projects, whisky is available as a WASM package:

```sh
# For Node.js
yarn add @sidan-lab/whisky-js-nodejs

# For browser
yarn add @sidan-lab/whisky-js-browser
```

## Prerequisites

For building from source, make sure LLVM is installed on your system:

- **macOS**: `brew install llvm`
- **Ubuntu/Debian**: `apt install llvm-dev libclang-dev`
- **Windows**: Install via [LLVM releases](https://releases.llvm.org/)
Loading
Loading