Pull-mirror of github.com/Sulkta-Coop/pallas. Canonical lives on GitHub; this is a LAN-fast read-only cache.
Find a file
Cobb 57b36d3a7c pallas-txbuilder: thread auxiliary_data through StagingTransaction → Conway build
addresses the four TODO comments in pallas-txbuilder/src/transaction/model.rs
and conway.rs around auxiliary_data + auxiliary_data_hash. without this the
conway builder hardcodes auxiliary_data: None, which blocks CIP-20 / CIP-25
/ CIP-68 metadata.

implementation:
- new StagingTransaction field: pub auxiliary_data: Option<Vec<u8>>.
  stored as opaque cbor bytes (caller encodes alonzo::AuxiliaryData) since
  AuxiliaryData itself doesn't impl Eq, which the rest of StagingTransaction
  requires.
- builder methods .auxiliary_data(cbor) and .clear_auxiliary_data().
- conway::build_conway_raw now decodes the bytes back into
  AuxiliaryData::decode_fragment and plugs it into pallas_tx.auxiliary_data.
  the existing auxiliary_data_hash population block is unchanged — it
  already computes the hash from pallas_tx.auxiliary_data after assignment.
- decode failures map to TxBuilderError::CorruptedTxBytes.

tests:
- auxiliary_data_round_trips_through_build: encodes a CIP-25-shaped
  metadata, attaches, builds, decodes resulting tx, asserts both
  body.auxiliary_data_hash matches expected_hash.compute_hash() and the
  aux re-encodes byte-equivalent.
- no_auxiliary_data_means_no_hash: confirms the absence path still works
  (no aux → hash field stays None).

both pre-existing tests (staging_json_roundtrip, built_json_roundtrip,
test_script_data_hash) continue to pass — the new field defaults to None
and rides alongside.

PR upstream pending; using as a vendored patch via [patch.crates-io] on
the Sulkta side until merge.
2026-05-04 12:04:11 -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 Release 0.32.1 2025-06-25 10:28:02 -03: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: thread auxiliary_data through StagingTransaction → Conway build 2026-05-04 12:04:11 -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
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;