Skip to content
Merged
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
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Changelog

All notable changes to this repository are documented here.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

## [2026-04-08] — Quicknode fork modernization (Mike MacCana)

Mike MacCana led the Quicknode fork of the [Solana Foundation program examples](https://github.com/solana-developers/program-examples) from late 2025. The first commits on this repository lineage are dated **8 April 2026**; the summary below covers that work through the initial merge.

### What changed (high level)

**Toolchain and frameworks.** The tree had accumulated examples from several years of Solana development (including Anchor releases going back to the ~0.26 era in 2022 and many intermediate versions). The fork brought the Anchor examples up to **Anchor 1.0.0** stable (from 1.0.0-rc.5), refreshed Agave/Solana CLI pins, standardized on **pnpm**, and added parallel implementations in **[Quasar](https://quasar-lang.com/docs)**, **Pinocchio**, **Native Rust**, and **ASM** where applicable. Token-2022 examples were renamed to **`token-extensions`**.

**Testing.** Replaced the old pattern of local validators, Bankrun, and scattered TypeScript `anchor test` flows with **LiteSVM in-process tests** for most Anchor programs — matching current Anchor defaults (`cargo test` wired through `Anchor.toml` / `pnpm test`). Fixed broken or flaky tests across Native, Pinocchio, and Anchor; added missing harnesses (e.g. block-list Pinocchio). CI was reworked for a repo this size: path filtering, caching, matrix sharding, and reliable detection of framework roots.

**Programs and layout.** Broke large monolithic `lib.rs` files into **instruction handler modules**; adopted **`InitSpace`** and explicit PDA bumps instead of magic account sizes; corrected several logic bugs (escrow, token swap invariant, counter authority checks, compression Bubblegum program id, and more). Expanded finance and token-extension coverage; reorganized transfer-hook examples (including block-list under Pinocchio).

**Documentation.** Rewrote the root README (framework badges, clearer example blurbs, ASM links), ran a style and **truth audit** on READMEs, and linked canonical [Solana terminology](https://solana.com/docs/references/terminology) on first mention. Added this changelog, `CONTRIBUTING.md` (aligned with LiteSVM testing), README templates, per-example Anchor and Quasar READMEs, fixed Husky for GUI git clients, removed unused maintainer scripts (`sync-package-json`, `cicd.sh`, local-validator helpers for the allow/block-list UI), dropped the orphan `tokens/spl-token-minter/` tree, and removed legacy root `package.json` dependencies (web3.js, Bankrun, chai).

**Removed / deferred.** Dropped duplicate or WIP trees (duplicate block-list Pinocchio copy, Quasar metadata example blocked on `sol_realloc`, root `yarn.lock`). Some examples remain excluded from CI via `.ghaignore` until they build cleanly again (compression, escrow, pyth, and others — see that file for the live list).

## Before June 2026

There was **no changelog** before June 2026. Older history lives in git only.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -339,4 +339,4 @@ Work with Metaplex compressed NFTs.

---

**PRs welcome!** Follow the [contributing guidelines](./CONTRIBUTING.md) to keep things consistent.
**PRs welcome!** Follow the [contributing guidelines](./CONTRIBUTING.md) and see [CHANGELOG.md](./CHANGELOG.md) for release history.
34 changes: 34 additions & 0 deletions basics/account-data/quasar/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Account Data (Quasar)

Store and retrieve data in a [program](https://solana.com/docs/terminology#program)-owned [account](https://solana.com/docs/terminology#account).

See also: the [repository catalog](../../../README.md).

## Major concepts

- Account layout and serialization
- Quasar account views

## Setup

From `basics/account-data/quasar/`:

```bash
quasar build
```

Prerequisites: [Quasar](https://quasar-lang.com/docs) CLI and [Agave](https://docs.anza.xyz/) toolchain (see `Quasar.toml`).

## Testing

In-process tests via **Quasar SVM** (`quasar-svm` in `Quasar.toml`):

```bash
cargo test
```

Tests invoke instruction handlers and assert onchain state. No local validator.

## Usage

Read `src/` and `Quasar.toml`. Compare with the [Anchor](../anchor/) variant in the same example where present.
34 changes: 34 additions & 0 deletions basics/checking-accounts/quasar/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Checking Accounts (Quasar)

Validate signers, owners, and addresses on incoming [instructions](https://solana.com/docs/terminology#instruction).

See also: [Checking Accounts overview](../README.md) and the [repository catalog](../../../README.md).

## Major concepts

- Compile-time account checks
- Signer and mut constraints

## Setup

From `basics/checking-accounts/quasar/`:

```bash
quasar build
```

Prerequisites: [Quasar](https://quasar-lang.com/docs) CLI and [Agave](https://docs.anza.xyz/) toolchain (see `Quasar.toml`).

## Testing

In-process tests via **Quasar SVM** (`quasar-svm` in `Quasar.toml`):

```bash
cargo test
```

Tests invoke instruction handlers and assert onchain state. No local validator.

## Usage

Read `src/` and `Quasar.toml`. Compare with the [Anchor](../anchor/) variant in the same example where present.
34 changes: 34 additions & 0 deletions basics/close-account/quasar/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Close Account (Quasar)

Create a PDA [account](https://solana.com/docs/terminology#account), then close it and return [rent](https://solana.com/docs/terminology#rent) to the user.

See also: the [repository catalog](../../../README.md).

## Major concepts

- PDA init and close
- Rent reclamation

## Setup

From `basics/close-account/quasar/`:

```bash
quasar build
```

Prerequisites: [Quasar](https://quasar-lang.com/docs) CLI and [Agave](https://docs.anza.xyz/) toolchain (see `Quasar.toml`).

## Testing

In-process tests via **Quasar SVM** (`quasar-svm` in `Quasar.toml`):

```bash
cargo test
```

Tests invoke instruction handlers and assert onchain state. No local validator.

## Usage

Read `src/` and `Quasar.toml`. Compare with the [Anchor](../anchor/) variant in the same example where present.
34 changes: 34 additions & 0 deletions basics/counter/quasar/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Counter (Quasar)

Global counter in a [PDA](https://solana.com/docs/terminology#program-derived-address-pda) with initialize and increment handlers.

See also: [Counter overview](../README.md) and the [repository catalog](../../../README.md).

## Major concepts

- PDA state
- Handler dispatch

## Setup

From `basics/counter/quasar/`:

```bash
quasar build
```

Prerequisites: [Quasar](https://quasar-lang.com/docs) CLI and [Agave](https://docs.anza.xyz/) toolchain (see `Quasar.toml`).

## Testing

In-process tests via **Quasar SVM** (`quasar-svm` in `Quasar.toml`):

```bash
cargo test
```

Tests invoke instruction handlers and assert onchain state. No local validator.

## Usage

Read `src/` and `Quasar.toml`. Compare with the [Anchor](../anchor/) variant in the same example where present.
34 changes: 34 additions & 0 deletions basics/create-account/quasar/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Create Account (Quasar)

Create and fund rent-exempt accounts via the System Program.

See also: [Create Account overview](../README.md) and the [repository catalog](../../../README.md).

## Major concepts

- System Program CPI
- Rent-exempt lamports

## Setup

From `basics/create-account/quasar/`:

```bash
quasar build
```

Prerequisites: [Quasar](https://quasar-lang.com/docs) CLI and [Agave](https://docs.anza.xyz/) toolchain (see `Quasar.toml`).

## Testing

In-process tests via **Quasar SVM** (`quasar-svm` in `Quasar.toml`):

```bash
cargo test
```

Tests invoke instruction handlers and assert onchain state. No local validator.

## Usage

Read `src/` and `Quasar.toml`. Compare with the [Anchor](../anchor/) variant in the same example where present.
34 changes: 34 additions & 0 deletions basics/favorites/quasar/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Favorites (Quasar)

Per-user favorites in a PDA; only the owner can update their data.

See also: the [repository catalog](../../../README.md).

## Major concepts

- Per-user PDA
- Authority checks

## Setup

From `basics/favorites/quasar/`:

```bash
quasar build
```

Prerequisites: [Quasar](https://quasar-lang.com/docs) CLI and [Agave](https://docs.anza.xyz/) toolchain (see `Quasar.toml`).

## Testing

In-process tests via **Quasar SVM** (`quasar-svm` in `Quasar.toml`):

```bash
cargo test
```

Tests invoke instruction handlers and assert onchain state. No local validator.

## Usage

Read `src/` and `Quasar.toml`. Compare with the [Anchor](../anchor/) variant in the same example where present.
34 changes: 34 additions & 0 deletions basics/hello-solana/quasar/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Hello Solana (Quasar)

Minimal program that logs a greeting.

See also: [Hello Solana overview](../README.md) and the [repository catalog](../../../README.md).

## Major concepts

- Program entrypoint
- Instruction data

## Setup

From `basics/hello-solana/quasar/`:

```bash
quasar build
```

Prerequisites: [Quasar](https://quasar-lang.com/docs) CLI and [Agave](https://docs.anza.xyz/) toolchain (see `Quasar.toml`).

## Testing

In-process tests via **Quasar SVM** (`quasar-svm` in `Quasar.toml`):

```bash
cargo test
```

Tests invoke instruction handlers and assert onchain state. No local validator.

## Usage

Read `src/` and `Quasar.toml`. Compare with the [Anchor](../anchor/) variant in the same example where present.
34 changes: 34 additions & 0 deletions basics/pda-rent-payer/quasar/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# PDA Rent Payer (Quasar)

A [PDA](https://solana.com/docs/terminology#program-derived-address-pda) pays [rent](https://solana.com/docs/terminology#rent) when creating another account.

See also: [Pda Rent Payer overview](../README.md) and the [repository catalog](../../../README.md).

## Major concepts

- PDA signer
- Rent payer pattern

## Setup

From `basics/pda-rent-payer/quasar/`:

```bash
quasar build
```

Prerequisites: [Quasar](https://quasar-lang.com/docs) CLI and [Agave](https://docs.anza.xyz/) toolchain (see `Quasar.toml`).

## Testing

In-process tests via **Quasar SVM** (`quasar-svm` in `Quasar.toml`):

```bash
cargo test
```

Tests invoke instruction handlers and assert onchain state. No local validator.

## Usage

Read `src/` and `Quasar.toml`. Compare with the [Anchor](../anchor/) variant in the same example where present.
34 changes: 34 additions & 0 deletions basics/processing-instructions/quasar/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Processing Instructions (Quasar)

Pass arguments into an [instruction handler](https://solana.com/docs/terminology#instruction-handler).

See also: [Processing Instructions overview](../README.md) and the [repository catalog](../../../README.md).

## Major concepts

- Instruction data
- Handler parameters

## Setup

From `basics/processing-instructions/quasar/`:

```bash
quasar build
```

Prerequisites: [Quasar](https://quasar-lang.com/docs) CLI and [Agave](https://docs.anza.xyz/) toolchain (see `Quasar.toml`).

## Testing

In-process tests via **Quasar SVM** (`quasar-svm` in `Quasar.toml`):

```bash
cargo test
```

Tests invoke instruction handlers and assert onchain state. No local validator.

## Usage

Read `src/` and `Quasar.toml`. Compare with the [Anchor](../anchor/) variant in the same example where present.
34 changes: 34 additions & 0 deletions basics/program-derived-addresses/quasar/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Program Derived Addresses (Quasar)

Derive and use PDAs for deterministic program-owned addresses.

See also: the [repository catalog](../../../README.md).

## Major concepts

- Seed derivation
- PDA-owned state

## Setup

From `basics/program-derived-addresses/quasar/`:

```bash
quasar build
```

Prerequisites: [Quasar](https://quasar-lang.com/docs) CLI and [Agave](https://docs.anza.xyz/) toolchain (see `Quasar.toml`).

## Testing

In-process tests via **Quasar SVM** (`quasar-svm` in `Quasar.toml`):

```bash
cargo test
```

Tests invoke instruction handlers and assert onchain state. No local validator.

## Usage

Read `src/` and `Quasar.toml`. Compare with the [Anchor](../anchor/) variant in the same example where present.
Loading
Loading