Skip to content

[ci, client-js] Test local SDK proofs against the Agave validator - #581

Merged
samkim-crypto merged 3 commits into
solana-program:mainfrom
samkim-crypto:test-local-sdk-proofs
Oct 6, 2026
Merged

samkim-crypto merged 3 commits into
solana-program:mainfrom
samkim-crypto:test-local-sdk-proofs

Conversation

@samkim-crypto

@samkim-crypto samkim-crypto commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Problem

I realized this as I was reviewing #360, but currently, the client integration tests use the published @solana/zk-sdk package instead of using the local build. This means that the current CI do not verify that proofs generated by local zk-sdk changes are accepted in the tests.

Summary of Changes

I updated so that:

  • we use the local @solana/zk-sdk workspace package for client tests
  • build the zk-sdk's node WASM package before running client tests
  • enable wasm-pack in the shared CI and JS publishing workflows

The current CI workflow doesn't allow us to cleanly test locally built wasm packages for testing (the shared js test job needs rust and wasm-pack to build the local zk-sdk), so I created solana-program/actions#66 upstream, which will need to be merged before this.

Comment thread .github/workflows/main.yml Outdated
rust-packages: ${{ needs.set_env.outputs.RUST_PACKAGES }}
wasm-packages: ${{ needs.set_env.outputs.WASM_PACKAGES }}
wasm-js-packages: ${{ needs.set_env.outputs.WASM_JS_PACKAGES }}
wasm-pack: ${{ needs.set_env.outputs.WASM_PACK == 'true' }}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's just hardcode this to true and avoid the other boilerplate is in this file 😅

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I did this for consistency, but I guess just true is fine here 😅

Comment thread Makefile
lint-js-%:
cd $(call make-path,$*) && pnpm install && pnpm lint $(ARGS)

test-js-clients-js: build-wasm-js-node-zk-sdk-wasm-js

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this still running the tests?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since test-js-clients-js has no recipe, I believe Make picks up the recipe from test-js-%, which I can verify. This can still be confusing though I agree, so I made the test commands explicit here. let me know what you think.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh gotcha, that's cool! I had no idea that Make did that. Feel free to leave it as it was if you prefer then

@samkim-crypto
samkim-crypto force-pushed the test-local-sdk-proofs branch from 81af044 to b954b5c Compare October 2, 2026 13:31
@samkim-crypto
samkim-crypto marked this pull request as ready for review October 2, 2026 13:33

@joncinque joncinque left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me once the merge conflicts are resolved!

@samkim-crypto
samkim-crypto force-pushed the test-local-sdk-proofs branch from b954b5c to b4b4674 Compare October 5, 2026 23:34
@samkim-crypto
samkim-crypto merged commit 1ecb849 into solana-program:main Oct 6, 2026
28 checks passed
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