diff --git a/programs/account-compression/CHANGELOG.md b/programs/account-compression/CHANGELOG.md new file mode 100644 index 0000000000..4d5608b5c5 --- /dev/null +++ b/programs/account-compression/CHANGELOG.md @@ -0,0 +1,10 @@ +# Changelog + +All notable changes to this package will be documented in this file. + +## 2026-03-10 + +### Features + +- V1 tree initialization now logs a deprecation warning. V1 trees will be removed in a future release. (#2329) +- Tree default values updated to match mainnet configuration. (#2124) diff --git a/programs/compressed-token/program/CHANGELOG.md b/programs/compressed-token/program/CHANGELOG.md new file mode 100644 index 0000000000..43c86b1db5 --- /dev/null +++ b/programs/compressed-token/program/CHANGELOG.md @@ -0,0 +1,23 @@ +# Changelog + +All notable changes to this package will be documented in this file. + +## 2026-03-10 + +### Breaking Changes + +- `CreateMintInputs` now requires a `rent_sponsor` field. Mint creation charges `MINT_CREATION_FEE` (50,000 lamports), transferred from the fee payer to the `rent_sponsor`. (#2309) + Before: `CreateMintInputs { ... }` -- no rent_sponsor field. + After: `CreateMintInputs { ..., rent_sponsor: Pubkey }` -- use `MintActionMetaConfig::with_rent_sponsor()` to configure the recipient. + Migration: Add a `rent_sponsor` account to all mint creation calls and set it via `MintActionMetaConfig::with_rent_sponsor()`. + +- `handle_compressible_top_up()` and `process_compressible_top_up()` now take a `FEE_PAYER_IDX` const generic. `APPROVE_PAYER_IDX` and `REVOKE_PAYER_IDX` are renamed to `OWNER_IDX`. The optional `FEE_PAYER_IDX` specifies a fee payer with fallback to the owner. (#2306) + Before: `handle_compressible_top_up::(...)` + After: `handle_compressible_top_up::(...)` + Migration: Update const generic parameters and rename `APPROVE_PAYER_IDX`/`REVOKE_PAYER_IDX` to `OWNER_IDX` in all call sites. + +### Fixes + +- Additional self-transfer validation prevents invalid self-transfers. (#2292) +- `create_token_account()` now checks rent exemption before creating the account. (#2292) +- `create_ata_idempotent()` now guards against double-creation. (#2292) diff --git a/programs/registry/CHANGELOG.md b/programs/registry/CHANGELOG.md new file mode 100644 index 0000000000..dfa206ddae --- /dev/null +++ b/programs/registry/CHANGELOG.md @@ -0,0 +1,27 @@ +# Changelog + +All notable changes to this package will be documented in this file. + +## 2026-03-10 + +### Breaking Changes + +- `create_initialize_merkle_tree_instruction()`, `create_initialize_batched_merkle_tree_instruction()`, and `create_initialize_batched_address_merkle_tree_instruction()` now require the protocol authority as signer. The `payer` parameter is renamed to `authority` and must be `protocol_config_pda.authority`. + Before: `create_initialize_merkle_tree_instruction(payer, ...)` + After: `create_initialize_merkle_tree_instruction(authority, ...)` -- `authority` must be the protocol config authority. + Migration: Replace the payer account with the protocol authority in all tree initialization calls. (#2325) + +### Features + +- V1 tree initialization now logs a deprecation warning. V1 trees will be removed in a future release. (#2329) + +### Fixes + +- `init_v1_tree_with_custom_forester()` now correctly sets the custom forester on v1 trees. (#2319) +- `migrate_trees_ix()` no longer discards in-progress work during migration. (#2320) + +## 2026-03-02 + +### Features + +- `is_registration_phase()` no longer enforces the registration time window check. Foresters can now register for an epoch at any time within the activation window, not only during the designated registration phase. (#2321) diff --git a/programs/system/CHANGELOG.md b/programs/system/CHANGELOG.md new file mode 100644 index 0000000000..b1e4314b61 --- /dev/null +++ b/programs/system/CHANGELOG.md @@ -0,0 +1,50 @@ +# Changelog + +All notable changes to this package will be documented in this file. + +## 2026-03-10 + +### Breaking Changes + +- `COMPRESSIBLE_CONFIG_SEED` renamed to `LIGHT_CONFIG_SEED`. (#2222) + Before: `COMPRESSIBLE_CONFIG_SEED` + After: `LIGHT_CONFIG_SEED` + Migration: Update all references to `COMPRESSIBLE_CONFIG_SEED`. + +- `COMPRESSIBLE_CONFIG_V1` renamed to `LIGHT_TOKEN_CONFIG`. (#2222) + Before: `COMPRESSIBLE_CONFIG_V1` + After: `LIGHT_TOKEN_CONFIG` + Migration: Update all references to `COMPRESSIBLE_CONFIG_V1`. + +- In `#[light_account]`, `token::authority` renamed to `token::owner_seeds`. Owner seeds must now be constants. (#2222) + Before: `#[light_account(token::authority = ...)]` + After: `#[light_account(token::owner_seeds = ...)]` + Migration: Rename `token::authority` to `token::owner_seeds` and ensure all values are constants. + +- `#[light_account(init)]` now requires a `pda_rent_sponsor` account info. (#2222) + Before: No `pda_rent_sponsor` required. + After: `pda_rent_sponsor` account must be present in instruction accounts when initializing compressed PDAs. + Migration: Add `pda_rent_sponsor` to all instruction accounts that use `#[light_account(init)]`. + +- `#[derive(Compressible)]` removed from `light-sdk-macros`. (#2230) + Before: `#[derive(Compressible)]` + After: Use `#[derive(LightAccount)]` (Anchor/Solana) or `#[derive(LightProgramPinocchio)]` (Pinocchio). + Migration: Replace all `#[derive(Compressible)]` usages with the appropriate new derive macro. + +### Features + +- New `light-account` crate provides Anchor/Solana-specific type aliases (`CpiAccounts`, `CompressCtx`, `DecompressCtx`, `ValidatedPdaContext`, `PackedAccounts`) and re-exports all macros from `light-sdk-macros`. (#2230) +- New `light-account-pinocchio` crate provides Pinocchio-specific type aliases and re-exports `#[derive(LightProgramPinocchio)]`. (#2230) +- `AccountLoader` added for loading compressed accounts without derive macros. (#2222) +- `DECOMPRESSED_PDA_DISCRIMINATOR` constant (`[255u8; 8]`) added to `light-compressible` to mark decompressed PDA placeholder accounts. (#2208) +- Compressed mint photon API added. (#2198) +- V1 tree initialization now logs a deprecation warning. V1 trees will be removed in a future release. (#2329) + +### Fixes + +- `MintCloseAuthority` added to `RESTRICTED_EXTENSION_TYPES` and `has_mint_extensions()` detection. A mint with this extension could previously be compressed without `CompressOnly` mode, allowing the mint authority to close the mint and strand compressed tokens. Certora audit finding M-03. (#2263) +- `store_data()` no longer caches the incorrect owner when re-entering a cached account context. (#2277) +- V2 tree rollover balance check corrected. (#2278) +- Canonical bump is now enforced during ATA verification. (#2249) +- Batched address tree initialization now asserts tree index and queue index match. (#2318) +- System program addresses corrected. (#2298)