Skip to content

feat: csdk + ctoken #1908

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 5 commits into
base: jorrit/feat-opt-ctoken-mint-pinocchio
Choose a base branch
from

Conversation

SwenSchaeferjohann
Copy link
Contributor

  • wip

Copy link
Contributor

coderabbitai bot commented Aug 10, 2025

Important

Review skipped

Auto reviews are limited based on label configuration.

🏷️ Required labels (at least one) (1)
  • ai-review

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
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch swen-0011-proc-ctok

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@ananas-block ananas-block force-pushed the jorrit/feat-opt-ctoken-mint-pinocchio branch from f1599b5 to d6d0fb5 Compare August 15, 2025 10:35
ananas-block and others added 2 commits August 17, 2025 20:02
post rebase

feat: add addresses to cpi context, enable spending of created accounts in same ix

system program update small instruction

sdk token 4 cpis works

chained token test create mint in cpi context works

chaind token mint to works

stash multiple ctoken action test implemented not working for address creation fails

refactor: cpi context, enable addresses, enable assigned addresses, placeholders for readonly addresses, and accounts,breaking account layout change

feat: add cpi context to ctoken ixs

fix: chained ctoken actions test

fix: cpi context address owner

feat: update compressed mint, untested

fix tests

client test works

fixed event parsing in system program, chained test works

refactor: rename TokenContext -> HashCache

cleanup ix data, rename UpdateCompressedMintInstructionData -> CompressedMintWithContext, UpdateCompressedMintInstructionDataV2 -> UpdateCompressedMintInstructionData

feat: sha hashing for cmints, start update_metadata

minor CU improvements

feat: add zero copy enum support

stash mint action

feat: add update to mint action

stash implemeneted mint actions for existing ixs

test: mint actions with token client

works without create mint

stash

cleanup

cleanup

chained action test passes

stash

chained test cleanup

cleanup errors

started refactor create spl mint

feat: mint to decompressed

update metadata compiles

stash

stash

stash

fix: mint hashing

feat: format tx logs in light program test

fix: logging

fix: create spl

test_create_compressed_mint_with_token_metadata_sha works

fix: mint action program side bugs

fix: test test_create_compressed_mint_with_token_metadata_poseidon

fix create compressed mint test

fix: update mint authority

refactor: chained test to pda_ctoken, ctoken_pda

comment create_spl_mint dir

remove: dead code compressed token program

test: decompressed transfer and update latest slot

fix: token22 import

fix: tests

add program id check, cleanups

refactor: unify create pda

refactor associated token

update claude md

reactor: close account

refactor: create token account

refactor: mint_to_action

fix: close account

fix: mint action test

refactor and cleanup create mint action

mint action cleanup

refactor: update authorities

refactor: mint to decompressed

refactor: update metadata

refactor: update metadata authority

cleanup

refactor: always check that authority is signer

cleanup

fix: token sdk tests

cherrypicked hasher update: support sha in hasher and lighthasher macro

lint

remove unused _output_account_info

update lightdiscriminator macro

wip

add compress_pda helper

compress_pda compiling

decompress_idempotent.rs

wip

wip

decompress batch idempotent

wip

add compress_pda_new and compress_multiple_pdas_new

native program with decompress done

compress_dynamic, decompress_dynamic

wip

adding anchor

testprogram uses sdk

fix compilation

wip

experiment with procmacro

skip SLOT check at compress_pda_new

wip

add_compressible_instructions() works for compress, idl gen works

add proc macro

decompress_multiple_pdas is working as it should

fix decompress_idempotent impl

rm expanded

add remove_data

force apps to pass the whole signer_seeds directly

add compressible_config draft

add create_config_unchecked and checked

use config, add unified header struct (just last_written_slot) for now

use hascompressioninfo and compressioninfo

add config support to compressible macro

add expanded.rs

cleanup anchor-derived example

add support for multiple address_trees per address space

add support for multiple address_trees per address space

update macro to multiple address_trees

add test-sdk-derived program

wip

cleanup native macro-derive example

wip

fix compilation

config tests working

clean up test_config.rs

testing

add a separate anchor compress_pda_new version so we dont have redundant serde

wip

wip

wip

fix decompress_idempotent anchor

add test with 2nd account

decompress works with multiple different PDAs

cleanup, remove anchor helper

decompress_multiple_pdas, fix discriminator writes

rm examples

simplify

add compress_multiple_new + test

add test

add test: compressing multiple accounts_new

fix compress_pda and add test

added test case: invalid compression

cleanup

cleanup

fmt and lint for anchor-compressible-user program

config ix helpers added

tests working, added generic create_compress_account_instruction

rm warnings

added standardized decompress_multiple_accounts_idempotent client

rm idl

add cu logger util

wip

add test: decompress with accounts stored in 2 different v2 state trees, added 2nd tree impl. to program-test and cli, added util to xtask

clean

clean up librs

add opt anchor program error conv for errors, fix compression_info usage with single account struct

wip

clean

fmt comments

wip

sdk-tests working

extend and fix sdk-test tests, cleanup csdk, anchor program, update macro

clean

clean

clean data_hasher.rs

clean derive program tests, renaming, better simulate_cu err handling

renames, remove deadcode

remove unused discriminator field from config account

move variable length field to end of config account struct

simplify anchor/borsh serde imports

add DEFAULT_DATA_HASH to constants

rename CompressionInfo::new() to CompressionInfo::new_decompressed()

xtask, remove helper

wip

remove redundant owner_program param

add compile time size()

rename pda_account to solana_account

fix doctest

output.data correctly

clean initconfig, updatteconfig accounts struct

rename signer_seeds to solana_accounts__signer_seeds

move programs to sdk-test dir

move to light-compressible-client

lint

ci

wip

wip

add check load config

add sdk-tests to workspace

rename sdk-tests program names

fix ci

fix asserts in tests

fmt

update pkg json for sdk-tests

debug prints for ci in test_indexer

fmt

make macro robust, lint

anchor-discriminator-compat feature for LightDiscriminator

lint

add test_discriminator test

replace actionlint

revert actionlint

macro: allow flex imports

wip

fmt

update macro

add sha hash function support to  LightAccount and LightHasher + tests

DataHasher macro: explicit validation for sha

fix rebase

gmt

add compressible macro

rebased - fixed macro

compressAs trait for compression with custom data

add test, fix lint

compress_as, flexible

Compressible macro auto-derives HasCompressionInfo macro

clean

remove debug trait bound

wip

wip

add compress_empty_account for native + tests

refactor compression config  actions to accept rpc trait

better upgrade_authority check

better error logging

add cpda derivation check in
prepare_empty_compressed_accounts_on_init

js: dedupe in lut creation

add PackedAccounts, deriveAddressV2, initializeCompressionConfig helpers

add borsh_compat module for validityProof

add compressible ts sdk

packedaccounts, fix v2 tree getters

wip

wip

wip

switch to cpiaccountsSmall

wip

wip

wip

wip

workaround assign correct hash in client

add leafIndex bug reproducer in sdk-token-test pda_ctoken

test_indexer, rm debug

fix: test_indexer treetype assignment

(hotfix) patch compressed accounts with correct leaf_indices in test_indexer

clean

apply jorrits rc fix

add ts packedAccountsSmall, add cpi_inputs helpers for using cpi_context

wip

wip

make csdk use heap alot

wip
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.

2 participants