All notable changes to this repository are documented here.
The format is based on Keep a Changelog.
- Upgraded every Anchor program from
anchor-lang/anchor-spl1.0.0to the latest stable1.1.2, and bumped the Anchor CLI used byanchor.ymlCI to match (anchor-version: 1.1.2).
anchor.ymlbuilt no projects when.ghaignorewas empty:find … | grep -vE "$ignore_pattern"treated the empty pattern as "match everything" and dropped the whole list, so the workflow passed without building anything. Guarded the filter (asnative.yml,pinocchio.ymlandsolana-asm.ymlalready do).vault-strategyandperpetual-futuresLiteSVM tests loaded their sibling mock program's.sowithinclude_bytes!, which is evaluated at compile time. Anchor's IDL build compiles the tests before that sibling.sois built, so the build failed. They now read the sibling.soat runtime withstd::fs::read, matching the existingcross-program-invocation/handtest.
- All native, Pinocchio, and ASM examples are now tested exclusively with Rust + LiteSVM. The web3.js v1 / solana-bankrun / ts-mocha TypeScript test suites (which duplicated existing Rust tests) were removed, along with their
package.json,pnpm-lock.yaml, andtsconfig.jsonfiles and thets/client directories. - Rust tests now load the program binary from the workspace
target/deploy/(built withcargo build-sbf --manifest-path=./program/Cargo.toml) instead of per-projecttests/fixturesdirectories. Committed foreign-program fixtures (e.g.mpl_token_metadata.so) stay where they were. - ASM examples standardized on
sbpf build's defaultdeploy/output directory; their inline LiteSVM tests load from there. tools/shank-and-codamanow generates a Rust client (@codama/renderers-rust) instead of a TypeScript one, wrapped in thecar-rental-service-clientcrate, and its tests are Rust + LiteSVM underprogram/tests/.transfer-hook/block-listgained a Rust + LiteSVM lifecycle test (program/tests/) driving the program through its Codama-generated Rust SDK; the mocha/web3.js test was removed. Itspackage.jsonnow only covers SDK generation.- CI (
native.yml,pinocchio.yml,solana-asm.yml) no longer installs Node/pnpm; it builds withcargo build-sbf(orsbpf build) and tests withcargo test.
basics/hello-solana/pinocchioRust + LiteSVM test (it previously had only a TypeScript test).
Mike MacCana led the Quicknode fork of the Solana Foundation 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.
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, 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 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).
There was no changelog before June 2026. Older history lives in git only.