Pull-mirror of github.com/Sulkta-Coop/pallas. Canonical lives on GitHub; this is a LAN-fast read-only cache.
Find a file
Kayos 8091abd1b4 pallas-txbuilder: voting_procedures rejects empty CBOR maps
AUDIT-2026-05-06 M-4 fix from the aldabra Phase 3-6 audit.

NonEmptyKeyValuePairs::decode in pallas-codec accepts `0xa0`
(empty CBOR map) because the upstream empty-map check is commented
out. That decoded value re-encodes correctly and passes through
pallas-txbuilder, but the resulting Conway tx fails ledger validation
at submit time with a non-obvious error.

Add a debug_assert_ne! on the builder method input + clear doc note
warning callers to omit the field instead of passing an empty map.
Release builds pass through (no overhead); dev/test builds catch
accidental empty-map calls with a clear panic message.

The pre-existing aldabra build_signed_drep_vote_cast always
constructs a non-empty map so it doesn't trip this; the guard is for
future callers.
2026-05-06 08:05:55 -07:00
.chglog docs: Add retroactive change log 2022-04-29 20:34:12 -03:00
.github chore[applying]: Fix cargo fmt from previous commits 2024-09-26 07:58:08 -04:00
assets chore: Add logo assets 2022-02-06 21:36:42 -03:00
examples feat(network): implement get stake pool parameters query (#554) 2024-12-17 13:04:48 -03:00
pallas Release 0.32.1 2025-06-25 10:28:02 -03:00
pallas-addresses pallas-addresses: pub fn new on StakeAddress 2026-05-04 12:33:19 -07:00
pallas-applying Release 0.32.1 2025-06-25 10:28:02 -03:00
pallas-bech32 fix: add missing READMEs for crate publish 2024-01-04 11:58:28 -03:00
pallas-codec Release 0.32.1 2025-06-25 10:28:02 -03:00
pallas-configs Release 0.32.1 2025-06-25 10:28:02 -03:00
pallas-crypto Release 0.32.1 2025-06-25 10:28:02 -03:00
pallas-hardano Release 0.32.1 2025-06-25 10:28:02 -03:00
pallas-math Release 0.32.1 2025-06-25 10:28:02 -03:00
pallas-network Release 0.32.1 2025-06-25 10:28:02 -03:00
pallas-primitives Release 0.32.1 2025-06-25 10:28:02 -03:00
pallas-traverse Release 0.32.1 2025-06-25 10:28:02 -03:00
pallas-txbuilder pallas-txbuilder: voting_procedures rejects empty CBOR maps 2026-05-06 08:05:55 -07:00
pallas-utxorpc Release 0.32.1 2025-06-25 10:28:02 -03:00
pallas-wallet Release 0.32.1 2025-06-25 10:28:02 -03:00
test_data chore(utxorpc): update spec to v0.14 and update redeemer mapper (#559) 2024-12-14 16:16:42 -03:00
.gitignore feat(network): update n2n handshake versions & add keepalive miniprotocol (#362) 2023-12-19 07:56:10 -03:00
BRANCH-NOTES.md pallas-txbuilder: thread voting_procedures through StagingTransaction → Conway build 2026-05-06 07:11:23 -07:00
Cargo.toml chore: remove rolldb from repo (#537) 2024-11-03 11:14:39 -03:00
CHANGELOG.md Release 0.32.0 2024-12-29 19:18:18 -03:00
LICENSE Fill in place holders 2021-12-02 19:55:54 -03:00
README.md docs: update readme with latest crate structure (#539) 2024-11-03 12:26:35 -03:00
rustfmt.toml Implement multiplexer and mini-protocols PoC 2021-11-20 11:33:45 -03:00
SECURITY.md docs: define security policy (#464) 2024-05-22 10:53:39 -03:00

Pallas Logo

Rust-native building blocks for the Cardano blockchain ecosystem

GitHub Crates.io GitHub Workflow Status

Introduction

Pallas is an expanding collection of modules that re-implements common Ouroboros / Cardano logic in native Rust. This crate doesn't provide any particular application, it is meant to be used as a base layer to facilitate the development of higher-level use-cases, such as explorers, wallets, etc (who knows, maybe even a full node in a far away future).

Unboxing

The repository is organized as a Cargo workspace. Each Pallas "building block" lives in its own crate. The root pallas crate serves as an all-in-one dependency that re-exports all of the other modules in an hierarchically organized fashion, using Cargo features to tailor the setup for each use-case.

Core

Crates Description
pallas-codec Shared CBOR encoding / decoding using minicbor lib
pallas-crypto Shared Cryptographic primitives
pallas-math Shared mathematics functions

Network

Crates Description
pallas-network Network stack providing multiplexer and mini-protocol implementations

Ledger

Crates Description
pallas-primitives Ledger primitives and cbor codec for the different Cardano eras
pallas-traverse Utilities to traverse over multi-era block data
pallas-addresses Encode / decode Cardano addresses of any type

Wallet

Crates Description
pallas-wallet Wallet utilities for secure key management
pallas-txbuilder Ergonomic transaction builder

Interop

Crates Description
pallas-hardano Interoperability with implementation-specific artifacts of the Haskell Cardano node
pallas-utxorpc Interoperability with the UTxO RPC specification

Etymology

Pallas: (Greek mythology) goddess of wisdom and useful arts and prudent warfare;