Skip to content

Conversation

@SwenSchaeferjohann
Copy link
Contributor

No description provided.

@github-advanced-security
Copy link
Contributor

This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jun 11, 2025

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch main

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

sergeytimoshin and others added 28 commits June 11, 2025 15:44
* fix: circuit selection for forester mode

* Update prover/server/prover/proving_keys_utils.go

Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>

---------

Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
* * regenerate address_append_40_250, add to DO storage
* update address_append_40_250 vkey
* add address_append_40_250 to download_keys.sh (full mode)
* add combined_26_40* to download_keys.sh
* sort CHECKSUM entries when generating checksum

* - Remove vkeys 1, 100, and 1000 for append
- Remove vkeys 1, 100, and 1000 for update
- Add vkey 250 for address-append
- Remove unused combined 26_40
* feat: add pinocchio-sdk

feat: add cpi_signer_macro

feat: add light-program-test, light-client docs

Co-authored-by: Swen Schäferjohann <42959314+SwenSchaeferjohann@users.noreply.github.com>

* refactor: unify CpiAccounts in sdk-types

* feat: add PackedTreeInfo::get_tree_pubkey()

* refactor: small ix into sdk-types

* fix: don't run light-client doc test

* cleanup

* refactor: AddressTreeInfo

* simplify error conversion

* fix: typo

* unify program id constants

* fix enum typo

* Revert "simplify error conversion"

This reverts commit ff99942.

* fixed stuff

* refactor: rename duplicate AccountInfoTrait -> CompressedAccountInfoTrait

* revert: remove program changes from pinocchio-sdk commit

Reverts only the changes made to the programs/ directory in commit
b3f14e7 while preserving all other changes from that commit.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* cleanup

* feat: add select_state_tree_info, chore: return Result from get_random_state_tree_info

* fix: account compression tests

* refactor: add result to handle out of bounds errors

* cleanup

* refactor: migrate light sdk errors to 16k namespace

---------

Co-authored-by: Swen Schäferjohann <42959314+SwenSchaeferjohann@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
* test: add missing error to error codes test

* chore: rename RpcConfig -> LightClientConfig

* chore: format, fix: light-program-test remove env variable modification during program setup

* feat: light program test skip startup logs

* fix: logging consistency
* chore: backport breaking api changes to v1 js SDKs (#1661)

* stateless.js add treeinfos

* wip

* add getTokenPoolInfos

* wip

* wip

* wip - storageoptions

* wip

* wip

* wip

* wip - known bug in rpc-interop.test.ts if using random trees

* debugged test-rpc in ctoken

* all ctoken tests working

* rm logs

* clean

* ctxs to infos, removed redundant getMintProgramId calls

* rm deadcode, storageoptions

* fix cli getMindProgramId use

* fix tokenpool

* fix test

stateless.js add treeinfos

wip

add getTokenPoolInfos

wip

wip

wip - storageoptions

wip

wip

wip

wip - known bug in rpc-interop.test.ts if using random trees

debugged test-rpc in ctoken

all ctoken tests working

rm logs

clean

ctxs to infos, removed redundant getMintProgramId calls

rm deadcode, storageoptions

fix cli getMindProgramId use

fix tokenpool

fix test

update CHANGELOG.md files

update changelog

update CHANGELOG.md

export get-token-pool-infos.ts

wip

clean

wip

refactor merklecontext

refactor StateTreeInfo

wip

wip

debug test-rpc getCompressedTokenAccountsByOwner

fix unit test

wip

wip

wip

debug .readUIntLE

wip

wip

wip

fix buffer conversion at test-rpc decode

wip

tests working

compressedProof -> validityProof

update changelog

wip

refactor: do not allow output trees for decompress, transfer

fmt

wip

rename getCachedStateTreeInfos

upd changelog

use with getCachedStateTreeInfos

getStateTreeInfos

wip

wip

delegate test

wip

added transfer-delegated.test.ts

added transfer-delegated test cases. all green

add tests for decompress-delegated

fix

rm logs from program

update changelog

update err msg

fix state-tree-luts

wip

getActiveStateTreeInfos -> getAllStateTreeInfos

wip

fix sigs for nullifyStateTree

wip

wip

cleanup

add getCachedActiveStateTreeInfos mock

revert to compressedProof

add tokenpools tests

update comment

update CHANGELOG.md

update changelog

0.21.0

update changelog

fix

fix event parsing post rebase

stateless js refactor

dedupe types

link to computebudgetprogram

wip

fix DX for instructions: add docstrings to call signatures

wip

dont break mergeTokenAccounts

wip

wip

add v2 trees to test-rpc

v1 mergeable

test-rpc tests working

rpc-interop tests working with v2

all stateless.js tests working with v2

compressed-token tests working

rebase to main

fixup cargo lock

wip

* wip (#1794)

* wip (#1781)

chore: backport breaking api changes to v1 js SDKs (#1661)

* stateless.js add treeinfos

* wip

* add getTokenPoolInfos

* wip

* wip

* wip - storageoptions

* wip

* wip

* wip

* wip - known bug in rpc-interop.test.ts if using random trees

* debugged test-rpc in ctoken

* all ctoken tests working

* rm logs

* clean

* ctxs to infos, removed redundant getMintProgramId calls

* rm deadcode, storageoptions

* fix cli getMindProgramId use

* fix tokenpool

* fix test

stateless.js add treeinfos

wip

add getTokenPoolInfos

wip

wip

wip - storageoptions

wip

wip

wip

wip - known bug in rpc-interop.test.ts if using random trees

debugged test-rpc in ctoken

all ctoken tests working

rm logs

clean

ctxs to infos, removed redundant getMintProgramId calls

rm deadcode, storageoptions

fix cli getMindProgramId use

fix tokenpool

fix test

update CHANGELOG.md files

update changelog

update CHANGELOG.md

export get-token-pool-infos.ts

wip

clean

wip

refactor merklecontext

refactor StateTreeInfo

wip

wip

debug test-rpc getCompressedTokenAccountsByOwner

fix unit test

wip

wip

wip

debug .readUIntLE

wip

wip

wip

fix buffer conversion at test-rpc decode

wip

tests working

compressedProof -> validityProof

update changelog

wip

refactor: do not allow output trees for decompress, transfer

fmt

wip

rename getCachedStateTreeInfos

upd changelog

use with getCachedStateTreeInfos

getStateTreeInfos

wip

wip

delegate test

wip

added transfer-delegated.test.ts

added transfer-delegated test cases. all green

add tests for decompress-delegated

fix

rm logs from program

update changelog

update err msg

fix state-tree-luts

wip

getActiveStateTreeInfos -> getAllStateTreeInfos

wip

fix sigs for nullifyStateTree

wip

wip

cleanup

add getCachedActiveStateTreeInfos mock

revert to compressedProof

add tokenpools tests

update comment

update CHANGELOG.md

update changelog

0.21.0

update changelog

fix

fix event parsing post rebase

stateless js refactor

dedupe types

link to computebudgetprogram

wip

fix DX for instructions: add docstrings to call signatures

wip

dont break mergeTokenAccounts

wip

wip

add v2 trees to test-rpc

v1 mergeable

test-rpc tests working

rpc-interop tests working with v2

all stateless.js tests working with v2

compressed-token tests working

rebase to main

fixup cargo lock

wip

chore: backport breaking api changes to v1 js SDKs (#1661)

* stateless.js add treeinfos

* wip

* add getTokenPoolInfos

* wip

* wip

* wip - storageoptions

* wip

* wip

* wip

* wip - known bug in rpc-interop.test.ts if using random trees

* debugged test-rpc in ctoken

* all ctoken tests working

* rm logs

* clean

* ctxs to infos, removed redundant getMintProgramId calls

* rm deadcode, storageoptions

* fix cli getMindProgramId use

* fix tokenpool

* fix test

stateless.js add treeinfos

wip

add getTokenPoolInfos

wip

wip

wip - storageoptions

wip

wip

wip

wip - known bug in rpc-interop.test.ts if using random trees

debugged test-rpc in ctoken

all ctoken tests working

rm logs

clean

ctxs to infos, removed redundant getMintProgramId calls

rm deadcode, storageoptions

fix cli getMindProgramId use

fix tokenpool

fix test

update CHANGELOG.md files

update changelog

update CHANGELOG.md

export get-token-pool-infos.ts

wip

clean

wip

refactor merklecontext

refactor StateTreeInfo

wip

wip

debug test-rpc getCompressedTokenAccountsByOwner

fix unit test

wip

wip

wip

debug .readUIntLE

wip

wip

wip

fix buffer conversion at test-rpc decode

wip

tests working

compressedProof -> validityProof

update changelog

wip

refactor: do not allow output trees for decompress, transfer

fmt

wip

rename getCachedStateTreeInfos

upd changelog

use with getCachedStateTreeInfos

getStateTreeInfos

wip

wip

delegate test

wip

added transfer-delegated.test.ts

added transfer-delegated test cases. all green

add tests for decompress-delegated

fix

rm logs from program

update changelog

update err msg

fix state-tree-luts

wip

getActiveStateTreeInfos -> getAllStateTreeInfos

wip

fix sigs for nullifyStateTree

wip

wip

cleanup

add getCachedActiveStateTreeInfos mock

revert to compressedProof

add tokenpools tests

update comment

update CHANGELOG.md

update changelog

0.21.0

update changelog

fix

fix event parsing post rebase

stateless js refactor

dedupe types

link to computebudgetprogram

wip

fix DX for instructions: add docstrings to call signatures

wip

dont break mergeTokenAccounts

wip

wip

add v2 trees to test-rpc

v1 mergeable

test-rpc tests working

rpc-interop tests working with v2

all stateless.js tests working with v2

compressed-token tests working

rebase to main

fixup cargo lock

wip

wip

rename statetreeinfo -> treeinfo

wip

wip

wip

cli test works

wip

wip

wip

wip

wip

wip

wip

wip

wip

wip

wip

wip

rm logs

fix lint

clean

upd comment

* chore: backport breaking api changes to v1 js SDKs (#1661) (#1790)

* stateless.js add treeinfos

* wip

* add getTokenPoolInfos

* wip

* wip

* wip - storageoptions

* wip

* wip

* wip

* wip - known bug in rpc-interop.test.ts if using random trees

* debugged test-rpc in ctoken

* all ctoken tests working

* rm logs

* clean

* ctxs to infos, removed redundant getMintProgramId calls

* rm deadcode, storageoptions

* fix cli getMindProgramId use

* fix tokenpool

* fix test

stateless.js add treeinfos

wip

add getTokenPoolInfos

wip

wip

wip - storageoptions

wip

wip

wip

wip - known bug in rpc-interop.test.ts if using random trees

debugged test-rpc in ctoken

all ctoken tests working

rm logs

clean

ctxs to infos, removed redundant getMintProgramId calls

rm deadcode, storageoptions

fix cli getMindProgramId use

fix tokenpool

fix test

update CHANGELOG.md files

update changelog

update CHANGELOG.md

export get-token-pool-infos.ts

wip

clean

wip

refactor merklecontext

refactor StateTreeInfo

wip

wip

debug test-rpc getCompressedTokenAccountsByOwner

fix unit test

wip

wip

wip

debug .readUIntLE

wip

wip

wip

fix buffer conversion at test-rpc decode

wip

tests working

compressedProof -> validityProof

update changelog

wip

refactor: do not allow output trees for decompress, transfer

fmt

wip

rename getCachedStateTreeInfos

upd changelog

use with getCachedStateTreeInfos

getStateTreeInfos

wip

wip

delegate test

wip

added transfer-delegated.test.ts

added transfer-delegated test cases. all green

add tests for decompress-delegated

fix

rm logs from program

update changelog

update err msg

fix state-tree-luts

wip

getActiveStateTreeInfos -> getAllStateTreeInfos

wip

fix sigs for nullifyStateTree

wip

wip

cleanup

add getCachedActiveStateTreeInfos mock

revert to compressedProof

add tokenpools tests

update comment

update CHANGELOG.md

update changelog

0.21.0

update changelog

fix

fix event parsing post rebase

stateless js refactor

dedupe types

link to computebudgetprogram

wip

fix DX for instructions: add docstrings to call signatures

wip

dont break mergeTokenAccounts

wip

wip

add v2 trees to test-rpc

v1 mergeable

test-rpc tests working

rpc-interop tests working with v2

all stateless.js tests working with v2

compressed-token tests working

rebase to main

fixup cargo lock

wip

chore: backport breaking api changes to v1 js SDKs (#1661)

* stateless.js add treeinfos

* wip

* add getTokenPoolInfos

* wip

* wip

* wip - storageoptions

* wip

* wip

* wip

* wip - known bug in rpc-interop.test.ts if using random trees

* debugged test-rpc in ctoken

* all ctoken tests working

* rm logs

* clean

* ctxs to infos, removed redundant getMintProgramId calls

* rm deadcode, storageoptions

* fix cli getMindProgramId use

* fix tokenpool

* fix test

stateless.js add treeinfos

wip

add getTokenPoolInfos

wip

wip

wip - storageoptions

wip

wip

wip

wip - known bug in rpc-interop.test.ts if using random trees

debugged test-rpc in ctoken

all ctoken tests working

rm logs

clean

ctxs to infos, removed redundant getMintProgramId calls

rm deadcode, storageoptions

fix cli getMindProgramId use

fix tokenpool

fix test

update CHANGELOG.md files

update changelog

update CHANGELOG.md

export get-token-pool-infos.ts

wip

clean

wip

refactor merklecontext

refactor StateTreeInfo

wip

wip

debug test-rpc getCompressedTokenAccountsByOwner

fix unit test

wip

wip

wip

debug .readUIntLE

wip

wip

wip

fix buffer conversion at test-rpc decode

wip

tests working

compressedProof -> validityProof

update changelog

wip

refactor: do not allow output trees for decompress, transfer

fmt

wip

rename getCachedStateTreeInfos

upd changelog

use with getCachedStateTreeInfos

getStateTreeInfos

wip

wip

delegate test

wip

added transfer-delegated.test.ts

added transfer-delegated test cases. all green

add tests for decompress-delegated

fix

rm logs from program

update changelog

update err msg

fix state-tree-luts

wip

getActiveStateTreeInfos -> getAllStateTreeInfos

wip

fix sigs for nullifyStateTree

wip

wip

cleanup

add getCachedActiveStateTreeInfos mock

revert to compressedProof

add tokenpools tests

update comment

update CHANGELOG.md

update changelog

0.21.0

update changelog

fix

fix event parsing post rebase

stateless js refactor

dedupe types

link to computebudgetprogram

wip

fix DX for instructions: add docstrings to call signatures

wip

dont break mergeTokenAccounts

wip

wip

add v2 trees to test-rpc

v1 mergeable

test-rpc tests working

rpc-interop tests working with v2

all stateless.js tests working with v2

compressed-token tests working

rebase to main

fixup cargo lock

wip

wip

rename statetreeinfo -> treeinfo

wip

wip

wip

cli test works

wip

wip

wip

wip

wip

wip

wip

wip

wip

wip

wip

wip

rm logs

fix lint

clean

upd comment

wip

stateless.js tests working

ctoken tests working

* lint

* address comments
* chore: add DataHasher alias of LightHasher

* chore: replace groth16 solana github dep with release 0.2.0
* chore: remove unwraps system program

* fix: add out of bounds check for concurrent Merkle tree deserialization

* Update anchor-programs/system/src/errors.rs

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* chore: remove vec length bytes from new instructions

* fix: cpi test, fix ctoken system program cpi small

* fix: system-cpi-v2-test

* fix: ts tests

* chore: fix create_invoke_cpi_instruction

* fix lint

* fix: lint

* chore: update photon

* update cargo lock

* update photon commit

* Update program-libs/compressed-account/src/indexer_event/parse.rs

Co-authored-by: Swen Schäferjohann <42959314+SwenSchaeferjohann@users.noreply.github.com>

* Update program-libs/compressed-account/src/indexer_event/parse.rs

---------

Co-authored-by: Swen Schäferjohann <42959314+SwenSchaeferjohann@users.noreply.github.com>
* fix: system program add signer mut account check

* chore: simplify check_account_info_mut

* fix tests
Bumps [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) from 19.1.4 to 19.1.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

---
updated-dependencies:
- dependency-name: "@types/react-dom"
  dependency-version: 19.1.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@types/bn.js](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/bn.js) from 5.1.6 to 5.2.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/bn.js)

---
updated-dependencies:
- dependency-name: "@types/bn.js"
  dependency-version: 5.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…39 (#1816)

Bumps [@solana/wallet-adapter-react-ui](https://github.com/anza-xyz/wallet-adapter) from 0.9.38 to 0.9.39.
- [Release notes](https://github.com/anza-xyz/wallet-adapter/releases)
- [Commits](https://github.com/anza-xyz/wallet-adapter/compare/@solana/wallet-adapter-react-ui@0.9.38...@solana/wallet-adapter-react-ui@0.9.39)

---
updated-dependencies:
- dependency-name: "@solana/wallet-adapter-react-ui"
  dependency-version: 0.9.39
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore: backport breaking api changes to v1 js SDKs (#1661)

* stateless.js add treeinfos

* wip

* add getTokenPoolInfos

* wip

* wip

* wip - storageoptions

* wip

* wip

* wip

* wip - known bug in rpc-interop.test.ts if using random trees

* debugged test-rpc in ctoken

* all ctoken tests working

* rm logs

* clean

* ctxs to infos, removed redundant getMintProgramId calls

* rm deadcode, storageoptions

* fix cli getMindProgramId use

* fix tokenpool

* fix test

stateless.js add treeinfos

wip

add getTokenPoolInfos

wip

wip

wip - storageoptions

wip

wip

wip

wip - known bug in rpc-interop.test.ts if using random trees

debugged test-rpc in ctoken

all ctoken tests working

rm logs

clean

ctxs to infos, removed redundant getMintProgramId calls

rm deadcode, storageoptions

fix cli getMindProgramId use

fix tokenpool

fix test

update CHANGELOG.md files

update changelog

update CHANGELOG.md

export get-token-pool-infos.ts

wip

clean

wip

refactor merklecontext

refactor StateTreeInfo

wip

wip

debug test-rpc getCompressedTokenAccountsByOwner

fix unit test

wip

wip

wip

debug .readUIntLE

wip

wip

wip

fix buffer conversion at test-rpc decode

wip

tests working

compressedProof -> validityProof

update changelog

wip

refactor: do not allow output trees for decompress, transfer

fmt

wip

rename getCachedStateTreeInfos

upd changelog

use with getCachedStateTreeInfos

getStateTreeInfos

wip

wip

delegate test

wip

added transfer-delegated.test.ts

added transfer-delegated test cases. all green

add tests for decompress-delegated

fix

rm logs from program

update changelog

update err msg

fix state-tree-luts

wip

getActiveStateTreeInfos -> getAllStateTreeInfos

wip

fix sigs for nullifyStateTree

wip

wip

cleanup

add getCachedActiveStateTreeInfos mock

revert to compressedProof

add tokenpools tests

update comment

update CHANGELOG.md

update changelog

0.21.0

update changelog

fix

fix event parsing post rebase

stateless js refactor

dedupe types

link to computebudgetprogram

wip

fix DX for instructions: add docstrings to call signatures

wip

dont break mergeTokenAccounts

wip

wip

add v2 trees to test-rpc

v1 mergeable

test-rpc tests working

rpc-interop tests working with v2

all stateless.js tests working with v2

compressed-token tests working

rebase to main

fixup cargo lock

wip

wip (#1794)

wip (#1781)

chore: backport breaking api changes to v1 js SDKs (#1661)

* stateless.js add treeinfos

* wip

* add getTokenPoolInfos

* wip

* wip

* wip - storageoptions

* wip

* wip

* wip

* wip - known bug in rpc-interop.test.ts if using random trees

* debugged test-rpc in ctoken

* all ctoken tests working

* rm logs

* clean

* ctxs to infos, removed redundant getMintProgramId calls

* rm deadcode, storageoptions

* fix cli getMindProgramId use

* fix tokenpool

* fix test

stateless.js add treeinfos

wip

add getTokenPoolInfos

wip

wip

wip - storageoptions

wip

wip

wip

wip - known bug in rpc-interop.test.ts if using random trees

debugged test-rpc in ctoken

all ctoken tests working

rm logs

clean

ctxs to infos, removed redundant getMintProgramId calls

rm deadcode, storageoptions

fix cli getMindProgramId use

fix tokenpool

fix test

update CHANGELOG.md files

update changelog

update CHANGELOG.md

export get-token-pool-infos.ts

wip

clean

wip

refactor merklecontext

refactor StateTreeInfo

wip

wip

debug test-rpc getCompressedTokenAccountsByOwner

fix unit test

wip

wip

wip

debug .readUIntLE

wip

wip

wip

fix buffer conversion at test-rpc decode

wip

tests working

compressedProof -> validityProof

update changelog

wip

refactor: do not allow output trees for decompress, transfer

fmt

wip

rename getCachedStateTreeInfos

upd changelog

use with getCachedStateTreeInfos

getStateTreeInfos

wip

wip

delegate test

wip

added transfer-delegated.test.ts

added transfer-delegated test cases. all green

add tests for decompress-delegated

fix

rm logs from program

update changelog

update err msg

fix state-tree-luts

wip

getActiveStateTreeInfos -> getAllStateTreeInfos

wip

fix sigs for nullifyStateTree

wip

wip

cleanup

add getCachedActiveStateTreeInfos mock

revert to compressedProof

add tokenpools tests

update comment

update CHANGELOG.md

update changelog

0.21.0

update changelog

fix

fix event parsing post rebase

stateless js refactor

dedupe types

link to computebudgetprogram

wip

fix DX for instructions: add docstrings to call signatures

wip

dont break mergeTokenAccounts

wip

wip

add v2 trees to test-rpc

v1 mergeable

test-rpc tests working

rpc-interop tests working with v2

all stateless.js tests working with v2

compressed-token tests working

rebase to main

fixup cargo lock

wip

chore: backport breaking api changes to v1 js SDKs (#1661)

* stateless.js add treeinfos

* wip

* add getTokenPoolInfos

* wip

* wip

* wip - storageoptions

* wip

* wip

* wip

* wip - known bug in rpc-interop.test.ts if using random trees

* debugged test-rpc in ctoken

* all ctoken tests working

* rm logs

* clean

* ctxs to infos, removed redundant getMintProgramId calls

* rm deadcode, storageoptions

* fix cli getMindProgramId use

* fix tokenpool

* fix test

stateless.js add treeinfos

wip

add getTokenPoolInfos

wip

wip

wip - storageoptions

wip

wip

wip

wip - known bug in rpc-interop.test.ts if using random trees

debugged test-rpc in ctoken

all ctoken tests working

rm logs

clean

ctxs to infos, removed redundant getMintProgramId calls

rm deadcode, storageoptions

fix cli getMindProgramId use

fix tokenpool

fix test

update CHANGELOG.md files

update changelog

update CHANGELOG.md

export get-token-pool-infos.ts

wip

clean

wip

refactor merklecontext

refactor StateTreeInfo

wip

wip

debug test-rpc getCompressedTokenAccountsByOwner

fix unit test

wip

wip

wip

debug .readUIntLE

wip

wip

wip

fix buffer conversion at test-rpc decode

wip

tests working

compressedProof -> validityProof

update changelog

wip

refactor: do not allow output trees for decompress, transfer

fmt

wip

rename getCachedStateTreeInfos

upd changelog

use with getCachedStateTreeInfos

getStateTreeInfos

wip

wip

delegate test

wip

added transfer-delegated.test.ts

added transfer-delegated test cases. all green

add tests for decompress-delegated

fix

rm logs from program

update changelog

update err msg

fix state-tree-luts

wip

getActiveStateTreeInfos -> getAllStateTreeInfos

wip

fix sigs for nullifyStateTree

wip

wip

cleanup

add getCachedActiveStateTreeInfos mock

revert to compressedProof

add tokenpools tests

update comment

update CHANGELOG.md

update changelog

0.21.0

update changelog

fix

fix event parsing post rebase

stateless js refactor

dedupe types

link to computebudgetprogram

wip

fix DX for instructions: add docstrings to call signatures

wip

dont break mergeTokenAccounts

wip

wip

add v2 trees to test-rpc

v1 mergeable

test-rpc tests working

rpc-interop tests working with v2

all stateless.js tests working with v2

compressed-token tests working

rebase to main

fixup cargo lock

wip

wip

rename statetreeinfo -> treeinfo

wip

wip

wip

cli test works

wip

wip

wip

wip

wip

wip

wip

wip

wip

wip

wip

wip

rm logs

fix lint

clean

upd comment

chore: backport breaking api changes to v1 js SDKs (#1661) (#1790)

* stateless.js add treeinfos

* wip

* add getTokenPoolInfos

* wip

* wip

* wip - storageoptions

* wip

* wip

* wip

* wip - known bug in rpc-interop.test.ts if using random trees

* debugged test-rpc in ctoken

* all ctoken tests working

* rm logs

* clean

* ctxs to infos, removed redundant getMintProgramId calls

* rm deadcode, storageoptions

* fix cli getMindProgramId use

* fix tokenpool

* fix test

stateless.js add treeinfos

wip

add getTokenPoolInfos

wip

wip

wip - storageoptions

wip

wip

wip

wip - known bug in rpc-interop.test.ts if using random trees

debugged test-rpc in ctoken

all ctoken tests working

rm logs

clean

ctxs to infos, removed redundant getMintProgramId calls

rm deadcode, storageoptions

fix cli getMindProgramId use

fix tokenpool

fix test

update CHANGELOG.md files

update changelog

update CHANGELOG.md

export get-token-pool-infos.ts

wip

clean

wip

refactor merklecontext

refactor StateTreeInfo

wip

wip

debug test-rpc getCompressedTokenAccountsByOwner

fix unit test

wip

wip

wip

debug .readUIntLE

wip

wip

wip

fix buffer conversion at test-rpc decode

wip

tests working

compressedProof -> validityProof

update changelog

wip

refactor: do not allow output trees for decompress, transfer

fmt

wip

rename getCachedStateTreeInfos

upd changelog

use with getCachedStateTreeInfos

getStateTreeInfos

wip

wip

delegate test

wip

added transfer-delegated.test.ts

added transfer-delegated test cases. all green

add tests for decompress-delegated

fix

rm logs from program

update changelog

update err msg

fix state-tree-luts

wip

getActiveStateTreeInfos -> getAllStateTreeInfos

wip

fix sigs for nullifyStateTree

wip

wip

cleanup

add getCachedActiveStateTreeInfos mock

revert to compressedProof

add tokenpools tests

update comment

update CHANGELOG.md

update changelog

0.21.0

update changelog

fix

fix event parsing post rebase

stateless js refactor

dedupe types

link to computebudgetprogram

wip

fix DX for instructions: add docstrings to call signatures

wip

dont break mergeTokenAccounts

wip

wip

add v2 trees to test-rpc

v1 mergeable

test-rpc tests working

rpc-interop tests working with v2

all stateless.js tests working with v2

compressed-token tests working

rebase to main

fixup cargo lock

wip

chore: backport breaking api changes to v1 js SDKs (#1661)

* stateless.js add treeinfos

* wip

* add getTokenPoolInfos

* wip

* wip

* wip - storageoptions

* wip

* wip

* wip

* wip - known bug in rpc-interop.test.ts if using random trees

* debugged test-rpc in ctoken

* all ctoken tests working

* rm logs

* clean

* ctxs to infos, removed redundant getMintProgramId calls

* rm deadcode, storageoptions

* fix cli getMindProgramId use

* fix tokenpool

* fix test

stateless.js add treeinfos

wip

add getTokenPoolInfos

wip

wip

wip - storageoptions

wip

wip

wip

wip - known bug in rpc-interop.test.ts if using random trees

debugged test-rpc in ctoken

all ctoken tests working

rm logs

clean

ctxs to infos, removed redundant getMintProgramId calls

rm deadcode, storageoptions

fix cli getMindProgramId use

fix tokenpool

fix test

update CHANGELOG.md files

update changelog

update CHANGELOG.md

export get-token-pool-infos.ts

wip

clean

wip

refactor merklecontext

refactor StateTreeInfo

wip

wip

debug test-rpc getCompressedTokenAccountsByOwner

fix unit test

wip

wip

wip

debug .readUIntLE

wip

wip

wip

fix buffer conversion at test-rpc decode

wip

tests working

compressedProof -> validityProof

update changelog

wip

refactor: do not allow output trees for decompress, transfer

fmt

wip

rename getCachedStateTreeInfos

upd changelog

use with getCachedStateTreeInfos

getStateTreeInfos

wip

wip

delegate test

wip

added transfer-delegated.test.ts

added transfer-delegated test cases. all green

add tests for decompress-delegated

fix

rm logs from program

update changelog

update err msg

fix state-tree-luts

wip

getActiveStateTreeInfos -> getAllStateTreeInfos

wip

fix sigs for nullifyStateTree

wip

wip

cleanup

add getCachedActiveStateTreeInfos mock

revert to compressedProof

add tokenpools tests

update comment

update CHANGELOG.md

update changelog

0.21.0

update changelog

fix

fix event parsing post rebase

stateless js refactor

dedupe types

link to computebudgetprogram

wip

fix DX for instructions: add docstrings to call signatures

wip

dont break mergeTokenAccounts

wip

wip

add v2 trees to test-rpc

v1 mergeable

test-rpc tests working

rpc-interop tests working with v2

all stateless.js tests working with v2

compressed-token tests working

rebase to main

fixup cargo lock

wip

wip

rename statetreeinfo -> treeinfo

wip

wip

wip

cli test works

wip

wip

wip

wip

wip

wip

wip

wip

wip

wip

wip

wip

rm logs

fix lint

clean

upd comment

wip

stateless.js tests working

ctoken tests working

lint

address comments

selective installs

fmt

v1 and v2 builds and tests working

ctoken v1,v2 working

rm logs

ci

* rm conflict in lockfile

* fix lint

* wip

* wip

* simplify build for ci

* wip

* wip

* wip

* rm nx cache again

* improve logging if prover exists with code 1

* fix cli yml

* wip

* check if conditional installs should stay

* wip

* wip

* add INSTALL.md

* fix keys

* update INSTALL.md

* fix cache

* wip

* wip

* wip

* double-checking CI caching

* reduce ci times for remaining long running workflows

* lint.yml all deps
* chore: cli update version constants, bump version to 0.23.0

* chore: bump cli version to 0.24.0 (#1762)

* feat: add --sbf-programs flag, chore: bump versions and template tag

* bump

* bump version, fix files

---------

Co-authored-by: ananas-block <jorrit@lightprotocol.com>

* chore: support v2 compressed account template

* chore: bump cli version to 0.25.0

---------

Co-authored-by: Swen Schäferjohann <42959314+SwenSchaeferjohann@users.noreply.github.com>
…fig` (#1814)

* refactor: replace `with_indexer` with `photon_url` in `LightClientConfig` and adjust related tests and RPC calls

* use `indexer_url` from config as photon_url in register_for_epoch_with_retry

* forester: use `indexer_url` from config as photon_url in `SolanaRpcPoolBuilder`
* chore: bump rust crate versions

* chore: add license and description to light-program-test
* fix: alway pick light_system_program_pinocchio.so

* chore: adapt cli
add local-rpc mode as default for cli users

fix build.sh and  install.sh

add deprecated getCachedActiveStateTreeInfo for backward compatibility

update changelog

fix using our cli fork reliably

released js pkgs

chore: adapt cli

chore: bump cli version and constant to 0.27.0

released 0.26.0

fix install.sh for ci

fix local proving-keys
* refactor: rename append-with-proofs to append

* fix circuit type handling

* batch append rename
ananas-block and others added 30 commits December 8, 2025 22:03
* feat(cli): devnet & mainnet flag

* feat(cli): add skip-reset flag
* fix: forester compress and closed account cleanup

* fix: compressible test

* feat: update compression tree logic

* fix: remove unused import of Pubkey in compressor.rs

* Remove unused warning import from tracing in compressor.rs

* format

---------

Co-authored-by: ananas-block <jorrit@lightprotocol.com>
* patch to compile

wip

add borsh_compat compressed_proof

add new_address_owner to instructiondata trait

add derive_compressed_address

remaining new_address_owner impl

add csdk-anchor-test program

lint add address_owner trait impl

add sdk libs - wip

add transfer_interface, transfer_ctoken, transfer_spl_to_ctoken, transfer_ctoken_to_spl, signed, instructions

rename consistently transfer_x

rename file transfer_decompressed to transfer_ctoken

add todos

add create_ctoken_account_signed, rename create_compressible_token_account to create_compressible_token_account_instruction

add create_associated_ctoken_account

add inline comment to copyLocalProgramBinaries.sh

remove new_address_owner

add pack and unpack for tokendata

first pass, compressible helpers for light-sdk

wip

compiles

lint

compressAccountsIdempotent csdk works, adjust test asserts to account is_none

ctoken add signer flags for decompress_full_ctoken_accounts_with_indices

wip

stash: removing ctoken from compression

all tests working

add auto-comp, clean up tests

rm dependency on patch

fmt

lint

lint

refactor

rm

wip

clean

fmt

clean

clean

clean

rm macro

clean

clean

dedupe derivation methods

clean

fmt

revert copyLocalProgramBinaries.sh diff

add csdk_anchor_test binary to ci

fix indexer

fix doctest

fix cli ci build target

fix cli build

clean

address nits

fix cli cache

fix cache

clean

fix csdk anchor test program build

add pkg.json csdk

rebuild

fix syntax

fix nx

rm panics

fix ci

fix build sdk-anchor-test

try fix

bmt keccak

spawn_prover fix

fix lint

fix clock sysvar

add test feature to account-compression

revert profiler

refactor csdk-anchor-test program lib.rs

split tests

fmt

revert cli script

reset close_for_compress_and_close to main

fmt

try revert

build account-compression with test flag

fmt

fix workflow to ensure we build account-compression with test feature

fix sdk test nav

try sdk-tests.yml with hyphen

rm idl build

csdk anchor test artifact

wip

reuse ctoken_types

move ctoken to light-compressed-token-sdk

clean

move pack to compressed-token-sdk

clean

clean

clean

clean

clean

clean

wip - add macro

lint

clean

clean

fmt clean, rename to sdk-compressible-test

cargo lock

default auto compress false

wip

patch to compile

wip

add borsh_compat compressed_proof

add new_address_owner to instructiondata trait

add derive_compressed_address

remaining new_address_owner impl

add csdk-anchor-test program

lint add address_owner trait impl

add sdk libs - wip

add transfer_interface, transfer_ctoken, transfer_spl_to_ctoken, transfer_ctoken_to_spl, signed, instructions

rename consistently transfer_x

rename file transfer_decompressed to transfer_ctoken

add todos

add create_ctoken_account_signed, rename create_compressible_token_account to create_compressible_token_account_instruction

add create_associated_ctoken_account

add inline comment to copyLocalProgramBinaries.sh

remove new_address_owner

add pack and unpack for tokendata

first pass, compressible helpers for light-sdk

wip

compiles

lint

compressAccountsIdempotent csdk works, adjust test asserts to account is_none

ctoken add signer flags for decompress_full_ctoken_accounts_with_indices

wip

stash: removing ctoken from compression

all tests working

add auto-comp, clean up tests

rm dependency on patch

fmt

lint

lint

refactor

rm

wip

clean

fmt

clean

clean

clean

rm macro

clean

clean

dedupe derivation methods

clean

fmt

revert copyLocalProgramBinaries.sh diff

add csdk_anchor_test binary to ci

fix indexer

fix doctest

fix cli ci build target

fix cli build

clean

address nits

fix cli cache

fix cache

clean

fix csdk anchor test program build

add pkg.json csdk

rebuild

fix syntax

fix nx

rm panics

fix ci

fix build sdk-anchor-test

try fix

bmt keccak

spawn_prover fix

fix lint

fix clock sysvar

add test feature to account-compression

revert profiler

refactor csdk-anchor-test program lib.rs

split tests

fmt

revert cli script

reset close_for_compress_and_close to main

fmt

try revert

build account-compression with test flag

fmt

fix workflow to ensure we build account-compression with test feature

fix sdk test nav

try sdk-tests.yml with hyphen

rm idl build

csdk anchor test artifact

wip

reuse ctoken_types

move ctoken to light-compressed-token-sdk

clean

move pack to compressed-token-sdk

clean

clean

clean

clean

clean

clean

wip - add macro

push macros

refactor compressible_instructions macro

split into compressible_instructions_decompress

modularized decompressaccountsidempotent

add decompresscontext derive macro

clean

macros done

compress runtime and clean

fmt

use small derive macros

wip

csdk anchor derived test using derive macros

lint

wip

clean

rm dead code

clean

lint

fmt

clean

fmt

dry

clean

lint

clean

rent cpi

wip

fmt and lint

clean

avoid reallocs in decompress_accounts_idempotent ixn builder

remove rent sponsor and compression authority

optional ctoken keys for decompress_accounts_idempotent

wip

auto compress pda

auto compress test

derive_rent_sponsor macro

add disable cold state mining flag

wip

add complex seed test

wip

clean

clean

ignore doctest

wip

revert to devnenv for lightprogramtest until we can remove it

clean

wip

address comments fixes

apply suggestion in decompress_runtime.rs

lint

wip

fix lint

fix macros lint

fix macro lint

add standard derive_rent_sponsor helper

remove unused ctoken-types dep from sdk

patch

rm unwrap from nested field access

address final comments

move decompress_runtime.rs

rm derive_light_cpi_signer

impl additional suggestions

fix forester deps

add c-token/compressible TS

rename to grpc-url

make grpc url opt

fix tests, mint

bump photon

all js tests working, update ci

clean up getAccountInfoInterface

add v2 bound for getAccountInfoInterface

wip

wip

add mintinstructiondata type, add serde tests. use borsh serde with overrides

replace with borsh

clean

clean

clean

remove uploaders, add schema converters

add unit tests for metadata json conv

include unit tests in js ci cov

wip

fix token delegate coption parser

clean

fmt and lint

fix v2 stateless.js ci

try fix forester test with wait_for_queue_space

revert

stateless js skip createAccount if v2

update photon commit to parse-token + rebased to sergey/get_queue_elements_v2_rpc

add load, decompress2, transferInterface, and various other helpers

ts wip

fmt lint, skipIf v2 for create-account js tests

bump photon commit

bump photon

skip in rpc-multi-trees

rm logs

renamings

fix buffer-layout and bosh upd

Ata -> ATA

* bump photon

add console logs

wip

enable opt tokenMetadata additionalMetadata instruction data. createMintInterface action matching spl-token call signature

refactor metadata methods, add helpers

adjust test suite

move back to transparent params

export unified

tests

bump photon version

fmt

cleanup

add fail safe to ata derivation in unified path and tests

update imports and test

wip

refactor ctoken dirs

update tests imports

fix lint

set to temp photon commit

fix photon version again

dont break old createMint

bump photon again

fmt

fix chunking

max topup

sync to latest program instruction changes

update compresstopubkey

use photon main

bump photon commit

ATA -> Ata

add test cov

atomic tokenpool helper

move to SplInterfacePda naming

more unit layout and e2e interface tests

add test coverage for mint-to-compressed

spin out create-ata-interface.ts

cleanup docstrings

clean

test cov: decompress2 in get-or-create-ata-interface

fix decompress2 rn to decompressInterface, add test cov

clean moving

get-account-interface

add invariants to load-ata, add test cov

tests

wip

* fmt

* fix test

* fix build

* fix sed-inplace

* fix wrap unwrap call sig

* docstring cleansing

* fix: remove duplicate InterfaceOptions exports

* wip

* wip

* cleaning

* housekeeping for new rpc methods
* feat: update mainnet batched tree values

* feat: add limits for queue insertion

* fix tests
…th check (#2135)

* test: create ata fails for invalid ata

* chore: ctoken add close authority check for completeness
refactor: remove all spl code from ctoken program

test: functional test for primitive cmint creation

test: functional create cmint for existing compressed mint

feat: add compress and close cmint

test compress and close cmint

fix lint and tests

chore: dont require mint signer as signer for decompression

refactor: anyone can compress and close a cmint

rename close cmint -> compress and close cmint

feat: add mint to

feat: ctoken burn

test: burn ctoken, feat: add burn sdk

test: mint to ctoken, feat: add mint to sdk
* refactor: optimize forester processing

* removed unused test.

* removed commented-out fields in AddressQueueData struct

* add description to  create_and_send_versioned_transaction method with address lookup table support

* update Cargo.toml: set `chrono` as a workspace dependency

* refactor: unify error handling in `config.rs` with `InvalidArguments`, remove redundant error variants

* track # of zkp batches in txs

* simplify rpc retries

* refactor: `RootMismatch` and `IndexerLag` error structs

* refactor: add constant for proof verification error code and simplify matching logic

* refactor: simplify `address_from_bytes` call by directly using `as_mut_slice` and `into`

* refactor: enhance `StreamingAddressQueue` struct with `fetch_complete_condvar` for improved signaling of background task completion

* add debug assertion and error logging for zero `zkp_batch_size` in `available_batches`

* simplify health check output formatting

* refactor: extract and reuse `spawn_shutdown_handler` for cleaner shutdown logic

* add configurable transaction confirmation attempts and polling interval

* optimize `nodes` handling by using `HashSet` for deduplication during merging

* refactor: update `ProcessingResult` return type with metrics and items processed

* add delay before retrying proof submission to handle `job_not_found` scenario

* refactor: remove unused `start` parameter from `build_proof_job` function and related calls

* refactor: introduce `MIN_SLOTS_BEFORE_ELIGIBILITY_END` const

* refactor: enhance `OrderedProofBuffer` with `head` pointer for optimized indexing

* refactor: unify error handling for tree processing and improve failure reporting

* refactor: simplify `HashchainMismatch` error message format

* refactor: simplify and prioritize concurrency configuration logic in `getMaxConcurrency`

* add indexing for result and failure by input hash in `RedisQueue` for optimized lookups

* add `SetInFlightJob` method to `RedisQueue` and refactor in-flight marker logic for improved error handling and cleanup

* add `DeduplicateJob` method to `RedisQueue` and refactor job deduplication logic for improved clarity and error handling

* limit batch index scan in `dequeueLowestBatchIndex` for improved performance and add retry handling for concurrent removals

* refactor: remove `QueueWork` struct and update related logic to simplify queue size handling

* format

* add `confirmation_max_attempts` and `confirmation_poll_interval_ms` settings to test configuration

* refactor: improve retry handling and error reporting in `SetInFlightJob` logic

* refactor: make `clear_cache` async in `Processor` and update relevant calls

* add async `add_processing_metrics` call to log pre-warmed tree metrics during epoch processing

* add error handling for JSON encoding in queued and deduplicated async responses

* make `compressible_config` conditional on `enable_compressible` flag in `Config` initialization

* validate queueName before slicing in `findJobInQueue` to prevent panic and add warning for malformed names

* add error logging for JSON encoding failures in deduplicated async responses and simplify response structure

* refactor: remove unused `_phantom` field from `QueueProcessor` struct

* refactor: remove unused `proof_gen_start` and `_total_time` variables in `Processor`

* fix: correct division logic in batch-fetching logging

* add: track recovered panics during proof processing with new metric

* add error logging for JSON encoding failures in `completed_result` response

* refactor: inline `wait_recover` and `wait_while_recover` into direct `Condvar` calls, remove unused helpers

* fix:cleanup of `proc` in error handling for `remove` operation in `epoch_manager`

* refactor: extract `extractResultFromPayload` helper and improve error logging in enqueue failure handling

* bump photon

* feat: add TransactionTimeout variant to V2Error and update error handling in send_transaction_batch

* fix: update warning message in fetch_paginated_batches to indicate stopping merge on root mismatch

* feat: add transaction sending duration to TxSenderResult and update processing logic

* fix: update memory usage histogram comment to reflect accurate bucket range

* feat: enhance proof sending logic with duration tracking and eligibility checks

* cleanup

* forester e2e: 100 iterations

* refactor:  cleanup eligibility checks and buffer processing in TxSender

* refactor: epoch registration

* format

* do not nullify seq

* LUT cli

* cleanup

* Update program-tests/system-test/tests/test.rs

Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>

* fix lookup_table_address config in tests

* Add lookup_table_address configuration to tests

* Implement placeholder parameters for create_and_send_versioned_transaction in LightProgramTest

* revert indexed-merkle-tree

* revert to base64=0.13

* format

* improve error handling in transaction processing

* format

---------

Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 7 to 8.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v7...v8)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [chai](https://github.com/chaijs/chai) from 4.5.0 to 6.2.1.
- [Release notes](https://github.com/chaijs/chai/releases)
- [Changelog](https://github.com/chaijs/chai/blob/main/History.md)
- [Commits](chaijs/chai@v4.5.0...v6.2.1)

---
updated-dependencies:
- dependency-name: chai
  dependency-version: 6.2.1
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 6.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v4...v6)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…tempts (#2152)

feat(errors): add RegistrationPhaseNotStarted error for early registration

refactor(tx_sender): modify OrderedProofBuffer to accept base_seq parameter
Bumps [mocha](https://github.com/mochajs/mocha) from 9.2.2 to 11.7.5.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/v11.7.5/CHANGELOG.md)
- [Commits](mochajs/mocha@v9.2.2...v11.7.5)

---
updated-dependencies:
- dependency-name: mocha
  dependency-version: 11.7.5
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
On fresh installs, download-gnark-keys.sh fails with "go: command not
  found" (exit code 127) because Go is installed to .local/go/bin/ but
  PATH isn't updated until devenv.sh is sourced after installation.

  Add GOROOT and PATH exports to shared.sh so locally installed binaries
  (Go, Cargo) are available to subsequent installation steps.
* add extension support to ctokens
* add new instructions wrap p-token + top up logic (freeze, thaw, approve, revoke, mint to, burn, transfer_checked, …)
* minor refactor in p-token to allow for different mint and token account sizes
bump cli alpha.4

bump

fix cli startup

bumps

fix and run unit tests on ci

default to v2 for alpha release

remove broken merge-token-accounts test from CI (has TODO: not required)

fix: mergeTokenAccounts - process single batch per tx to avoid proof invalidation

The original implementation tried to merge multiple batches in one transaction,
but each batch's validity proof was based on state BEFORE any merges. This caused
proofs to be invalid after the first batch executed.

Fixed by processing only one batch of up to 4 accounts per call. Call repeatedly
until 1 account remains if full consolidation is needed.

feat: mergeTokenAccounts supports up to 8 accounts for V2 (4 for V1)

pass allowOwnerOffCurve along call chain

wip

createLoadAtaInstructions shouldnt err on accountnotfound

add rpc readiness check

fix ixdata and default to right token program on getOrCreateAtaInterface

wip

fix getOrCreateAtaInterface

static 200k cu meter

scope v1 correctly

test

fixes

wip

sequential e2e

bump to alpha.6

fix getstatetreeinfos versioning

bump lockfile

add temp devnet backward compat helpers for mintaction

fix ci test assert for v1 build, and bump pkgs

add test case, create empty ata on load at minimum

hide compat fully

bump v

fix ci

browser spec fix
Bug Fixes

  1. Compression index bounds check - Added validation preventing array index out-of-bounds in transfer2 token inputs
  2. Decompress amount validation - Added check that ATA/compress_to_pubkey decompress amount matches input token data amount
  3. MAX_COMPRESSIONS boundary fix - Changed >= to > to allow exactly MAX_COMPRESSIONS items in transfer2
  4. Explicit ATA derivation error - Added InvalidAtaDerivation error instead of silent fallback when ATA derivation fails or mismatches
  5. Rent exemption stability - Made rent calculations read CompressionInfo directly from bytes rather than relying on sysvar
  6. CompressedMintMetadata change - Added compressed_address field (32 bytes) directly to mint struct, reduced reserved from 49 to 17 bytes; unifies compressed address source

  ---
  Error Handling

  7. New error types - Added 6 errors to CTokenError: MissingPayer, BorrowFailed, InvalidCTokenOwner, DecompressAmountMismatch, CompressionIndexOutOfBounds, InvalidAtaDerivation
  8. SPL Token error mapping - Changed from raw SPL Token error codes to Anchor ErrorCode mappings (+6000 offset)

  ---
  Refactoring

  9. Program folder restructure - Reorganized compressed-token/program/src/ into compressed_token/ (mint_action, transfer2), compressible/ (claim, withdraw), and ctoken/ (approve, burn, close, create, freeze_thaw, mint_to, transfer) subdirectories
  10. File renaming - Removed ctoken_ prefix from files (e.g., ctoken_burn.rs -> ctoken/burn.rs, create_associated_token_account.rs -> ctoken/create_ata.rs)
  11. Added top-up modules - New top_up.rs files for ctoken and mint in ctoken-interface with optimized lamports calculation from account bytes
  12. TypeScript layout alignment - Moved compressedAddress from instruction-level to mint.metadata, removed tokenPoolBump and tokenPoolIndex fields, added rentExemptionPaid and reserved fields to CompressionInfo (88 -> 96 bytes)
  13. Removed CreateSplMint action - Deleted CreateSplMint action type and related code from both Rust and TypeScript

  ---
  Documentation

  14. Documentation restructure - Moved docs from flat instructions/ to categorized ctoken/, compressed_token/, compressible/ directories; added new INSTRUCTIONS.md with discriminator reference table

  ---
  Tests

  15. New test coverage - Added ata_decompress.rs (532 lines), check_extensions.rs (744 lines), mint_validation.rs (358 lines), create_ata.rs, create.rs, failing.rs for comprehensive validation testing
---
  1. Crate Renames (Root Cargo.toml)

  1. light-ctoken-interface -> light-token-interface
  2. light-ctoken-sdk -> light-token-sdk
  3. light-ctoken-types -> light-token-types
  4. sdk-ctoken-test -> sdk-light-token-test

  ---
  2. program-libs/token-interface (26 renamings)

  Structs:
  5. CToken -> Token
  6. MintToCTokenAction -> MintToAction
  7. ZCToken<'a> -> ZToken<'a>
  8. ZCTokenMut<'a> -> ZTokenMut<'a>
  9. CompressedTokenConfig -> TokenConfig
  10. CTokenZeroCopyMeta -> TokenZeroCopyMeta
  11. ZCTokenZeroCopyMeta<'a> -> ZTokenZeroCopyMeta<'a>
  12. ZCTokenZeroCopyMetaMut<'a> -> ZTokenZeroCopyMetaMut<'a>

  Enums:
  13. CTokenError -> TokenError

  Constants:
  14. CTOKEN_PROGRAM_ID -> LIGHT_TOKEN_PROGRAM_ID

  Functions:
  15. with_mint_to_ctoken() -> with_mint_to()
  16. compress_and_close_ctoken() -> compress_and_close()
  17. compress_ctoken() -> compress()
  18. decompress_ctoken() -> decompress()
  19. calculate_ctoken_account_size() -> calculate_token_account_size()
  20. is_ctoken_account() -> is_token_account()

  Modules:
  21. mod ctoken -> mod token
  22. mod ctoken_struct -> mod token_struct
  23. mod mint_to_ctoken -> mod mint_to
  24. mod create_ctoken_account -> mod create_token_account

  ---
  3. program-libs/compressible (5 renamings)

  Functions:
  25. ctoken_v1() -> light_token_v1()
  26. new_ctoken() -> new_light_token()
  27. ctoken_v1_config_pda() -> light_token_v1_config_pda()
  28. ctoken_v1_compression_authority_pda() -> light_token_v1_compression_authority_pda()
  29. ctoken_v1_rent_sponsor_pda() -> light_token_v1_rent_sponsor_pda()

  ---
  4. sdk-libs/token-sdk (70+ renamings)

  Structs:
  30. ApproveCToken -> Approve
  31. ApproveCTokenChecked -> ApproveChecked
  32. ApproveCTokenCheckedCpi -> ApproveCheckedCpi
  33. ApproveCTokenCpi -> ApproveCpi
  34. BurnCToken -> Burn
  35. BurnCTokenChecked -> BurnChecked
  36. BurnCTokenCheckedCpi -> BurnCheckedCpi
  37. BurnCTokenCpi -> BurnCpi
  38. CTokenMintTo -> MintTo
  39. CTokenMintToChecked -> MintToChecked
  40. CTokenMintToCheckedCpi -> MintToCheckedCpi
  41. CTokenMintToCpi -> MintToCpi
  42. CloseCTokenAccount -> CloseAccount
  43. CloseCTokenAccountCpi -> CloseAccountCpi
  44. CreateAssociatedCTokenAccount -> CreateAssociatedTokenAccount
  45. CreateAssociatedCTokenAccountCpi -> CreateAssociatedAccountCpi
  46. CreateCTokenAccount -> CreateTokenAccount
  47. CreateCTokenAccountCpi -> CreateTokenAccountCpi
  48. DecompressToCtoken -> Decompress
  49. FreezeCToken -> Freeze
  50. FreezeCTokenCpi -> FreezeCpi
  51. RevokeCToken -> Revoke
  52. RevokeCTokenCpi -> RevokeCpi
  53. ThawCToken -> Thaw
  54. ThawCTokenCpi -> ThawCpi
  55. TransferCToken -> Transfer
  56. TransferCTokenChecked -> TransferChecked
  57. TransferCTokenCheckedCpi -> TransferCheckedCpi
  58. TransferCTokenCpi -> TransferCpi
  59. TransferCTokenToSpl -> TransferToSpl
  60. TransferCTokenToSplCpi -> TransferToSplCpi
  61. TransferSplToCtoken -> TransferFromSpl
  62. TransferSplToCtokenCpi -> TransferFromSplCpi
  63. CTokenDefaultAccounts -> TokenDefaultAccounts
  64. CreateCMintParams -> CreateMintParams
  65. CreateCMint -> CreateMint
  66. CreateCMintCpiWriteParams -> CreateMintCpiWriteParams
  67. CreateCMintCpi -> CreateMintCpi
  68. DecompressCMint -> DecompressMint
  69. DecompressCMintCpi -> DecompressMintCpi

  Constants:
  70. CTOKEN_CPI_AUTHORITY -> LIGHT_TOKEN_CPI_AUTHORITY
  71. CTOKEN_PROGRAM_ID -> LIGHT_TOKEN_PROGRAM_ID

  Functions:
  72. create_associated_ctoken_account() -> create_associated_token_account()
  73. create_associated_ctoken_account_idempotent() -> create_associated_token_account_idempotent()
  74. derive_ctoken_ata() -> derive_token_ata()
  75. get_associated_ctoken_address() -> get_associated_token_address()
  76. get_associated_ctoken_address_and_bump() -> get_associated_token_address_and_bump()
  77. derive_cmint_compressed_address() -> derive_mint_compressed_address()
  78. derive_cmint_from_spl_mint() -> derive_mint_from_spl_mint()
  79. find_cmint_address() -> find_mint_address()
  80. with_cmint() -> with_mint()
  81. with_compressible_cmint() -> with_compressible_mint()

  Struct Field Renames:
  82. source_ctoken_account -> source (in TransferToSpl/TransferToSplCpi)
  83. destination_ctoken_account -> destination (in TransferFromSpl/TransferFromSplCpi/Decompress)

  Parameter Renames (compressible/decompress_runtime.rs):
  84. ctoken_program -> token_program
  85. ctoken_rent_sponsor -> token_rent_sponsor
  86. ctoken_cpi_authority -> token_cpi_authority
  87. ctoken_config -> token_config
  88. ctoken_accounts -> token_accounts
  89. ctoken_signer_seeds -> token_signer_seeds
  90. ctoken_ix -> token_ix

  Local Variable Renames:
  91. source_is_ctoken -> source_is_light_token
  92. dest_is_ctoken -> dest_is_light_token
  93. wrap_spl_to_ctoken_account -> wrap_from_spl
  94. ctoken_account -> unwrap_to_destination

  Files:
  95. create_cmint.rs -> create_mint.rs
  96. decompress_cmint.rs -> decompress_mint.rs
  97. transfer_token.rs -> transfer.rs
  98. transfer_token_checked.rs -> transfer_checked.rs
  99. transfer_spl_to_token.rs -> transfer_from_spl.rs
  100. transfer_token_to_spl.rs -> transfer_to_spl.rs

  Modules:
  101. mod create_cmint -> mod create_mint
  102. mod decompress_cmint -> mod decompress_mint

  ---
  5. sdk-libs/token-types (1 renaming)

  Functions:
  103. ctoken_program() -> light_token_program()

  ---
  6. sdk-libs/token-client (5 renamings)

  Files:
  104. ctoken_transfer.rs -> transfer.rs

  Modules:
  105. mod ctoken_transfer -> mod transfer

  Functions:
  106. transfer_ctoken() -> transfer_token()
  107. create_transfer_ctoken_instruction() -> create_transfer_token_instruction()
  108. spl_to_ctoken_transfer() -> spl_to_light_token_transfer()
  109. transfer_ctoken_to_spl() -> transfer_light_token_to_spl()

  ---
  7. sdk-libs/macros (9 renamings)

  Functions:
  110. generate_ctoken_account_variant_enum() -> generate_token_account_variant_enum()
  111. generate_ctoken_seed_provider_implementation() -> generate_token_seed_provider_implementation()

  Generated Identifiers:
  112. ctoken_rent_sponsor -> token_rent_sponsor
  113. ctoken_program -> token_program
  114. ctoken_cpi_authority -> token_cpi_authority
  115. ctoken_config -> token_config
  116. ctoken_accounts -> token_accounts
  117. is_packed_ctoken -> is_packed_token
  118. CTokenSeedProvider -> TokenSeedProvider

  ---
  8. program-tests/ (directory/CI rename)

  Test target:
  119. --test ctoken -> --test light_token

  ---
  9. Removed Files/Types (MintToCtoken functionality)

  - MintToCToken (removed)
  - MintToCTokenCpi (removed)
  - MintToCTokenCpiWrite (removed)
  - MintToCTokenCpiWriteCpi (removed)
  - MintToCTokenCpiWriteParams (removed)
  - MintToCTokenParams (removed)
  - sdk-ctoken-test/src/mint_to_ctoken.rs (removed)
  - sdk-ctoken-test/tests/test_mint_to_ctoken.rs (removed)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants