From 100205622be2c97360767786fd720804224182f7 Mon Sep 17 00:00:00 2001 From: samkim-crypto Date: Thu, 1 Oct 2026 11:55:43 +0900 Subject: [PATCH 1/3] Test local SDK proofs against the Agave validator --- .github/workflows/main.yml | 4 ++++ .github/workflows/publish-js.yml | 8 +------- Makefile | 6 +++++- clients-js/package.json | 2 +- pnpm-lock.yaml | 9 ++------- 5 files changed, 13 insertions(+), 16 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b1ab873c..1b704c77 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,6 +12,7 @@ env: RUST_PACKAGES: "['interface', 'zk-sdk', 'zk-sdk-pod', 'zk-sdk-wasm-js']" WASM_PACKAGES: "['zk-sdk-wasm-js']" WASM_JS_PACKAGES: "['zk-sdk-wasm-js']" + WASM_PACK: "true" NO_STD_ALLOC_PACKAGES: "['interface', 'zk-sdk-pod']" jobs: @@ -24,6 +25,7 @@ jobs: RUST_PACKAGES: ${{ steps.compute.outputs.RUST_PACKAGES }} WASM_PACKAGES: ${{ steps.compute.outputs.WASM_PACKAGES }} WASM_JS_PACKAGES: ${{ steps.compute.outputs.WASM_JS_PACKAGES }} + WASM_PACK: ${{ steps.compute.outputs.WASM_PACK }} RUST_TOOLCHAIN_NIGHTLY: ${{ steps.compute.outputs.RUST_TOOLCHAIN_NIGHTLY }} SOLANA_CLI_VERSION: ${{ steps.compute.outputs.SOLANA_CLI_VERSION }} NO_STD_ALLOC_PACKAGES: ${{ steps.compute.outputs.NO_STD_ALLOC_PACKAGES }} @@ -40,6 +42,7 @@ jobs: echo "RUST_PACKAGES=${{ env.RUST_PACKAGES }}" >> $GITHUB_OUTPUT echo "WASM_PACKAGES=${{ env.WASM_PACKAGES }}" >> $GITHUB_OUTPUT echo "WASM_JS_PACKAGES=${{ env.WASM_JS_PACKAGES }}" >> $GITHUB_OUTPUT + echo "WASM_PACK=${{ env.WASM_PACK }}" >> "$GITHUB_OUTPUT" echo "RUST_TOOLCHAIN_NIGHTLY=$(make rust-toolchain-nightly)" >> "$GITHUB_OUTPUT" echo "SOLANA_CLI_VERSION=$(make solana-cli-version)" >> "$GITHUB_OUTPUT" echo "NO_STD_ALLOC_PACKAGES=${{ env.NO_STD_ALLOC_PACKAGES }}" >> $GITHUB_OUTPUT @@ -53,6 +56,7 @@ jobs: 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' }} rustfmt-toolchain: ${{ needs.set_env.outputs.RUST_TOOLCHAIN_NIGHTLY }} clippy-toolchain: ${{ needs.set_env.outputs.RUST_TOOLCHAIN_NIGHTLY }} solana-cli-version: ${{ needs.set_env.outputs.SOLANA_CLI_VERSION }} diff --git a/.github/workflows/publish-js.yml b/.github/workflows/publish-js.yml index ab236a7c..92a9912c 100644 --- a/.github/workflows/publish-js.yml +++ b/.github/workflows/publish-js.yml @@ -42,7 +42,6 @@ jobs: outputs: SOLANA_CLI_VERSION: ${{ steps.compute.outputs.SOLANA_CLI_VERSION }} TARGET: ${{ steps.compute.outputs.TARGET }} - WASM_PACK: ${{ steps.compute.outputs.WASM_PACK }} steps: - name: Git Checkout uses: actions/checkout@v4 @@ -59,11 +58,6 @@ jobs: echo "SOLANA_CLI_VERSION=$(make solana-cli-version)" >> "$GITHUB_OUTPUT" TARGET=$(echo "$PACKAGE_PATH" | sed 's#/#-#') echo "TARGET=$TARGET" >> "$GITHUB_OUTPUT" - if [ "$TARGET" = "zk-sdk-wasm-js" ]; then - echo "WASM_PACK=true" >> "$GITHUB_OUTPUT" - else - echo "WASM_PACK=false" >> "$GITHUB_OUTPUT" - fi main: needs: set_env @@ -79,5 +73,5 @@ jobs: level: ${{ inputs.level }} tag: ${{ inputs.tag }} create-release: ${{ inputs.create-release }} - wasm-pack: ${{ needs.set_env.outputs.WASM_PACK == 'true' }} + wasm-pack: true secrets: inherit diff --git a/Makefile b/Makefile index 58fd5c37..758afbf4 100644 --- a/Makefile +++ b/Makefile @@ -67,8 +67,10 @@ format-rust: build-sbf-%: cargo build-sbf --manifest-path $(call make-path,$*)/Cargo.toml $(ARGS) -build-wasm-js-%: +build-wasm-js-node-%: wasm-pack build --target nodejs --out-dir dist/node --out-name index $(call make-path,$*) + +build-wasm-js-%: build-wasm-js-node-% wasm-pack build --target web --out-dir dist/web --out-name index $(call make-path,$*) wasm-pack build --target bundler --out-dir dist/bundler --out-name index $(call make-path,$*) # Remove wasm-pack's generated `.gitignore` files; npm honours them when @@ -112,6 +114,8 @@ format-check-js-%: lint-js-%: cd $(call make-path,$*) && pnpm install && pnpm lint $(ARGS) +test-js-clients-js: build-wasm-js-node-zk-sdk-wasm-js + test-js-%: make restart-test-validator cd $(call make-path,$*) && pnpm install && pnpm build && pnpm test $(ARGS) diff --git a/clients-js/package.json b/clients-js/package.json index 92f8529f..b3fd5d64 100644 --- a/clients-js/package.json +++ b/clients-js/package.json @@ -53,7 +53,7 @@ "@solana-program/record": "^0.5.0", "@solana/kit": "^8.4.0", "@solana/sysvars": "^8.4.0", - "@solana/zk-sdk": "0.4.1", + "@solana/zk-sdk": "workspace:*", "@types/node": "^26.6.4", "ava": "^8.0.1", "oxfmt": "^0.71.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 27dfea35..b9c9dbe0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34,8 +34,8 @@ importers: specifier: ^8.4.0 version: 8.4.0(typescript@6.0.3) '@solana/zk-sdk': - specifier: 0.4.1 - version: 0.4.1 + specifier: workspace:* + version: link:../zk-sdk-wasm-js '@types/node': specifier: ^26.6.4 version: 26.6.4 @@ -1398,9 +1398,6 @@ packages: typescript: optional: true - '@solana/zk-sdk@0.4.1': - resolution: {integrity: sha512-AHLu8CJgPeOygLzVK0h0GBorIZk0Zj6nAG51mJEAFfLRDnPTzF4oG2dWrr5FxO9bu6ChMWhIHXEIiln/L9sTjQ==} - '@types/body-parser@1.19.6': resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} @@ -4700,8 +4697,6 @@ snapshots: transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/zk-sdk@0.4.1': {} - '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 From 9b99847ef1751b1bf8348e5e84b04928c377c2b5 Mon Sep 17 00:00:00 2001 From: samkim-crypto Date: Fri, 2 Oct 2026 22:09:31 +0900 Subject: [PATCH 2/3] Simplify wasm-pack configuration in CI --- .github/workflows/main.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1b704c77..f4f531ed 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,7 +12,6 @@ env: RUST_PACKAGES: "['interface', 'zk-sdk', 'zk-sdk-pod', 'zk-sdk-wasm-js']" WASM_PACKAGES: "['zk-sdk-wasm-js']" WASM_JS_PACKAGES: "['zk-sdk-wasm-js']" - WASM_PACK: "true" NO_STD_ALLOC_PACKAGES: "['interface', 'zk-sdk-pod']" jobs: @@ -25,7 +24,6 @@ jobs: RUST_PACKAGES: ${{ steps.compute.outputs.RUST_PACKAGES }} WASM_PACKAGES: ${{ steps.compute.outputs.WASM_PACKAGES }} WASM_JS_PACKAGES: ${{ steps.compute.outputs.WASM_JS_PACKAGES }} - WASM_PACK: ${{ steps.compute.outputs.WASM_PACK }} RUST_TOOLCHAIN_NIGHTLY: ${{ steps.compute.outputs.RUST_TOOLCHAIN_NIGHTLY }} SOLANA_CLI_VERSION: ${{ steps.compute.outputs.SOLANA_CLI_VERSION }} NO_STD_ALLOC_PACKAGES: ${{ steps.compute.outputs.NO_STD_ALLOC_PACKAGES }} @@ -42,7 +40,6 @@ jobs: echo "RUST_PACKAGES=${{ env.RUST_PACKAGES }}" >> $GITHUB_OUTPUT echo "WASM_PACKAGES=${{ env.WASM_PACKAGES }}" >> $GITHUB_OUTPUT echo "WASM_JS_PACKAGES=${{ env.WASM_JS_PACKAGES }}" >> $GITHUB_OUTPUT - echo "WASM_PACK=${{ env.WASM_PACK }}" >> "$GITHUB_OUTPUT" echo "RUST_TOOLCHAIN_NIGHTLY=$(make rust-toolchain-nightly)" >> "$GITHUB_OUTPUT" echo "SOLANA_CLI_VERSION=$(make solana-cli-version)" >> "$GITHUB_OUTPUT" echo "NO_STD_ALLOC_PACKAGES=${{ env.NO_STD_ALLOC_PACKAGES }}" >> $GITHUB_OUTPUT @@ -56,7 +53,7 @@ jobs: 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' }} + wasm-pack: true rustfmt-toolchain: ${{ needs.set_env.outputs.RUST_TOOLCHAIN_NIGHTLY }} clippy-toolchain: ${{ needs.set_env.outputs.RUST_TOOLCHAIN_NIGHTLY }} solana-cli-version: ${{ needs.set_env.outputs.SOLANA_CLI_VERSION }} From b4b4674a20f2089df2022b67c47b102ebdf1a119 Mon Sep 17 00:00:00 2001 From: samkim-crypto Date: Fri, 2 Oct 2026 22:20:33 +0900 Subject: [PATCH 3/3] Make client integration test commands explicit --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index 758afbf4..ff76de01 100644 --- a/Makefile +++ b/Makefile @@ -115,6 +115,9 @@ lint-js-%: cd $(call make-path,$*) && pnpm install && pnpm lint $(ARGS) test-js-clients-js: build-wasm-js-node-zk-sdk-wasm-js + make restart-test-validator + cd $(call make-path,clients-js) && pnpm install && pnpm build && pnpm test $(ARGS) + make stop-test-validator test-js-%: make restart-test-validator