From 63666f910e6c90debd185f2ee15a8f7f437286f2 Mon Sep 17 00:00:00 2001 From: Matthew Klein <96837318+matthew-a-klein@users.noreply.github.com> Date: Fri, 28 Nov 2025 10:52:16 +0000 Subject: [PATCH 1/3] Remove binary files from repo --- .github/workflows/gnark-solana.yml | 101 ----------------- .github/workflows/noir-gnark.yml | 102 ------------------ gnark-solana/crates/verifier-bin/default.vk | Bin 1040 -> 0 bytes .../test_files/sanction_checker.proof | Bin 388 -> 0 bytes .../test_files/sanction_checker.pw | Bin 44 -> 0 bytes .../test_files/sanction_checker.vk | Bin 1040 -> 0 bytes .../verifier-bin/test_files/sum_a_b.proof | Bin 324 -> 0 bytes .../crates/verifier-bin/test_files/sum_a_b.pw | Bin 44 -> 0 bytes .../crates/verifier-bin/test_files/sum_a_b.vk | Bin 716 -> 0 bytes .../crates/verifier-bin/test_files/xor.proof | Bin 388 -> 0 bytes .../crates/verifier-bin/test_files/xor.pw | Bin 44 -> 0 bytes .../src/test_files/keccak_f1600.proof | Bin 388 -> 0 bytes .../src/test_files/keccak_f1600.pw | Bin 12 -> 0 bytes .../src/test_files/keccak_f1600.vk | Bin 976 -> 0 bytes .../verifier-lib/src/test_files/sum_a_b.proof | Bin 324 -> 0 bytes .../verifier-lib/src/test_files/sum_a_b.pw | Bin 44 -> 0 bytes .../verifier-lib/src/test_files/sum_a_b.vk | Bin 716 -> 0 bytes .../verifier-lib/src/test_files/xor.proof | Bin 388 -> 0 bytes .../crates/verifier-lib/src/test_files/xor.pw | Bin 44 -> 0 bytes .../crates/verifier-lib/src/test_files/xor.vk | Bin 1040 -> 0 bytes 20 files changed, 203 deletions(-) delete mode 100644 .github/workflows/gnark-solana.yml delete mode 100644 .github/workflows/noir-gnark.yml delete mode 100644 gnark-solana/crates/verifier-bin/default.vk delete mode 100644 gnark-solana/crates/verifier-bin/test_files/sanction_checker.proof delete mode 100644 gnark-solana/crates/verifier-bin/test_files/sanction_checker.pw delete mode 100644 gnark-solana/crates/verifier-bin/test_files/sanction_checker.vk delete mode 100644 gnark-solana/crates/verifier-bin/test_files/sum_a_b.proof delete mode 100644 gnark-solana/crates/verifier-bin/test_files/sum_a_b.pw delete mode 100644 gnark-solana/crates/verifier-bin/test_files/sum_a_b.vk delete mode 100644 gnark-solana/crates/verifier-bin/test_files/xor.proof delete mode 100644 gnark-solana/crates/verifier-bin/test_files/xor.pw delete mode 100644 gnark-solana/crates/verifier-lib/src/test_files/keccak_f1600.proof delete mode 100644 gnark-solana/crates/verifier-lib/src/test_files/keccak_f1600.pw delete mode 100644 gnark-solana/crates/verifier-lib/src/test_files/keccak_f1600.vk delete mode 100644 gnark-solana/crates/verifier-lib/src/test_files/sum_a_b.proof delete mode 100644 gnark-solana/crates/verifier-lib/src/test_files/sum_a_b.pw delete mode 100644 gnark-solana/crates/verifier-lib/src/test_files/sum_a_b.vk delete mode 100644 gnark-solana/crates/verifier-lib/src/test_files/xor.proof delete mode 100644 gnark-solana/crates/verifier-lib/src/test_files/xor.pw delete mode 100644 gnark-solana/crates/verifier-lib/src/test_files/xor.vk diff --git a/.github/workflows/gnark-solana.yml b/.github/workflows/gnark-solana.yml deleted file mode 100644 index ede3d81..0000000 --- a/.github/workflows/gnark-solana.yml +++ /dev/null @@ -1,101 +0,0 @@ -name: GNARK -> SOLANA CI - -on: - push: - branches: - - main - paths: - - "gnark-solana/Cargo.toml" - - "gnark-solana/Cargo.lock" - - "gnark-solana/crates/**" - - "gnark-solana/example/**" - - "!**/README.md" - - "!**/readme.md" - - pull_request: - branches: - - main - paths: - - "gnark-solana/Cargo.toml" - - "gnark-solana/Cargo.lock" - - "gnark-solana/crates/**" - - "gnark-solana/example/**" - - "!**/README.md" - - "!**/readme.md" - workflow_dispatch: - -jobs: - test: - name: CI — ${{ matrix.toolchain }} - runs-on: ubuntu-latest - strategy: - matrix: - toolchain: [stable] - fail-fast: false - - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Cache cargo registry - uses: actions/cache@v4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} - restore-keys: | - ${{ runner.os }}-cargo-registry- - - - name: Cache cargo target - uses: actions/cache@v4 - with: - path: target - key: ${{ runner.os }}-cargo-target-${{ matrix.toolchain }}-${{ hashFiles('**/Cargo.lock') }} - restore-keys: | - ${{ runner.os }}-cargo-target-${{ matrix.toolchain }}- - - - name: Install Node.js - uses: actions/setup-node@v4 - with: - node-version: 24 - - - - name: Install Rust toolchain & components - uses: actions-rs/toolchain@v1 - with: - toolchain: ${{ matrix.toolchain }} - profile: minimal - components: rustfmt, clippy - override: true - - - name: Install Solana toolchain - run: | - curl -sSfL https://raw.githubusercontent.com/solana-developers/solana-install/main/install.sh | bash - echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH - - - name: Build Solana program (.so) - working-directory: gnark-solana - run: | - cargo build-sbf - - - name: Check formatting (cargo fmt -- --check) - working-directory: gnark-solana - run: cargo fmt --all -- --check - - - name: Run clippy (deny warnings) - working-directory: gnark-solana - run: cargo clippy --all-targets --all-features -- -D warnings - - - name: Build (debug) - working-directory: gnark-solana - run: cargo build --all-targets --all-features - - - name: Run tests - working-directory: gnark-solana - run: cargo test --all --all-features --no-fail-fast --verbose - - - name: Build (release) - working-directory: gnark-solana - run: cargo build --release --all-features \ No newline at end of file diff --git a/.github/workflows/noir-gnark.yml b/.github/workflows/noir-gnark.yml deleted file mode 100644 index 4296b8e..0000000 --- a/.github/workflows/noir-gnark.yml +++ /dev/null @@ -1,102 +0,0 @@ -name: NOIR -> GNARK CI - -on: - push: - branches: [ "main" ] - paths: - - "go/**" - - "!**/README.md" - - "!**/readme.md" - pull_request: - branches: [ "main" ] - paths: - - "go/**" - - "!**/README.md" - - "!**/readme.md" - - -jobs: - test: - runs-on: ubuntu-latest - concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Set up Go - uses: actions/setup-go@v4 - with: - go-version: '1.24.2' - - - name: Set up Rust - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - override: true - components: clippy, rustfmt - - - name: Set up Noir - uses: noir-lang/noirup@v0.1.2 - with: - toolchain: v1.0.0-beta.13 - - - name: Build Noir contracts - run: | - # List all Noir sample project directories you want to build - PROJECTS=( - noir-samples/expressions/sum_a_b - noir-samples/expressions/square_equation - noir-samples/expressions/linear_equation - noir-samples/expressions/rock_paper_scissors - noir-samples/expressions/polynomial - noir-samples/expressions/lcchecker - noir-samples/black_box_functions/range - noir-samples/black_box_functions/keccak_f1600 - noir-samples/black_box_functions/and - noir-samples/black_box_functions/xor - noir-samples/black_box_functions/sha256_compression - noir-samples/black_box_functions/sha256_hash - noir-samples/black_box_functions/blake2s - noir-samples/black_box_functions/blake3 - noir-samples/black_box_functions/embedded_curve_add - noir-samples/black_box_functions/multiscalar_multiplication - noir-samples/black_box_functions/poseidon2 - noir-samples/black_box_functions/ecdsa_secp256r1 - noir-samples/black_box_functions/ecdsa_secp256k1_failing - noir-samples/black_box_functions/ecdsa_secp256k1 - noir-samples/black_box_functions/aes128encrypt - noir-samples/black_box_functions/recursive_aggregation - noir-samples/memory - noir-samples/circuit_call - noir-samples/real_world/provekit_basic - noir-samples/zk_passport/exclusion_check - noir-samples/zk_passport/inclusion_check - noir-samples/zk_passport/age - noir-samples/zk_passport/expiry - noir-samples/zk_passport/sanctions - ) - - for project in "${PROJECTS[@]}"; do - echo "▶️ Building Noir project: $project" - cd "$project" - nargo compile # quicker than compile to catch errors - nargo execute || (echo "Tests failed in $project" && exit 1) - cd - > /dev/null - done - - - name: Install dependencies - run: cd go && go mod tidy - - - name: Build binary - run: cd go && go build -v ./... - - - name: Build Test binaries - run: cd testgen && cargo run - - - name: Run tests - run: cd go && go test ./... -timeout 0 - - - name: Run linters - run: cd go && go vet ./... diff --git a/gnark-solana/crates/verifier-bin/default.vk b/gnark-solana/crates/verifier-bin/default.vk deleted file mode 100644 index 09a3341dfc4ed755b8ab66de9575d059b9fdd738..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1040 zcmV+r1n>JWB&{WM8sQciqWvxon56BmTvnGOgF?cT)mKJ zd1W9vv$CNchKk>j+$o=f=b~C4Rah@^+;=pI5h&OUL_p7}xdyHk-4imMiL5+Or}Li@ zC1N8v8*JkTnzJFWR#@1_QYo5bZ(B)VS4n0^ti6dHEC-`(mB<(4pGJ^1$@{55d6T#K z|CAf26p~Q|IdD&efolo&g2h6{)Rd#4lZzT2Q%As|7~a!GTt!!)Wo8ZmLjpy1=Cu{yny6b1oFj=jbhcPR~Sq zqj!e3p|xl(@oSTfGI?$-Pk``{$+N{&6b3TKWef6c$$IV*uzd`ef=cxLVK_Dyy!9%M zT0VlfwV(nX@TKkk+1+69B)waW(CLRW#H<Qi+9aC#0%XdRHLEr zO_MzU1k#o1vjW!u0009H)SX*R&q~8#)Wh4y7v!#plT3f^*V! zn-WOoIx|rch=8xZ*b@GCu-fEY%UF+>7riSRtC-402)}zeB8}2q56+P|x4+d|a@FQG zpxXOPpBB6=<@{d+6kXT3VF?IR!f+hpZ7H}`MHZSkJ`5{3)+zKW#9B4ht6N?B#8D-V z!gqh<*wC&Tt#wM>^N8vrFbN0+3sddf)5FNgx^}vUFlxsM6wT3(1TPEiK z00031000000003Ei(&1&4OUqmVU(vp94jLR$7EGbs3K{i10xvFat22 z>3U@Zq?*qq5Ql?UM&9GqjHk9l2r2;rXN7miX@gj6<#UcH7#FHxst&S*ImZW;yY0D; zT;OONg-kGzD?A*Z!!64Le1z=FRHw4U&UPGzs5k13DEYc7xRjbU<$-ejvD`)jX~=nQ z{fw>^*9KgOwe@NZt+T94AjDYQ3rpP(i K(Os%Q30$$OPw;L4 diff --git a/gnark-solana/crates/verifier-bin/test_files/sanction_checker.proof b/gnark-solana/crates/verifier-bin/test_files/sanction_checker.proof deleted file mode 100644 index 052b24cfbf61ebb683ed011ae5560a967f1ec16e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 388 zcmV-~0ek)qxnK|V6s2V?$Xw*9<*`sC(S!?raJ}*ng*v;F1pOBYzEC-l4jmKERT9+4 zFQ9%AE)A=zOGC&cYa{_Wr^KTWbgu)AxTQ{-^r-Ymd~8$U(wK1_I(ee&%GzzudBK7K zqF1Sa8v`(r>HbcfrM^E&SU|~(9dNNDx_vQ!J?M%iJWa|%ej<7KVF84bC{AyS%!mm6w6x#@B7;0?T06{f{U|TvI;551uFq8qTDdO|Cpw5YBxS>YHPn>HgQ4A=3;Nnw*Ni`8N^5y(G5DS~tau;(+RW@nxx)QW2!Ll6n-+ci{31 z@d{`BY9yQFVA*>-DlxfX*&qi7~o|i={1F!LuXnqUt(E8YW!OLhfhPCUA%psYha;|zM zp-Ubr>{sZ@L+x9n7V2Cy`QqQTM(2@bL-kgLp2jpWM1fco0AeR~4Vz7gI;VA3IGC+v zpeK90;qxii3yD*fgRA~ef8*6CI*Qv8n#rtW^o9}2|kIf*ed^7={l%{PW7 zACE{nJjmoKX@ydC(QgPU5zZI24y_bYKrdg$KHrL4tn8nsmjQw%4Tq-?Ma4D|Tq}r7 zQMHsGC1TwLh?JwfeBrWm6;mrA(xBQbTwid;(IbxzC#2Y33$cR?BwIZu8?Q zJxyP#-cvJfYW+1X=5V*v@q*LDDTdJ7;P6W7z$SSO{nz~k_#SLEk_t5Ryhfw+V*t#F zxdt?f1t9eK+cs1H0009kv@?^VyMCNAF*ORckH;#aR=<}1EV+q8@YL8xAt6@}=vDWH zNyC!9;2%amNpp2_K`zNvy9fT`a9Xw$rJ5HLwN>^cIe0w)z~sEesDDAc?Nap&(M|q-#7QV5(hqfLrChge)@x5}NUYPUgITug*(3w`8FG0e8@PT9_ zmQe~4yzlj@f+Hz#Mx5{I-sREH=Yn7!)N`#O=f+bm$yk7>IiH)68$!V=_ KsdVjagSXx|#qMAL diff --git a/gnark-solana/crates/verifier-bin/test_files/sum_a_b.proof b/gnark-solana/crates/verifier-bin/test_files/sum_a_b.proof deleted file mode 100644 index cb2f3c14b739489f8f2141af567a08c5a904eaec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 324 zcmWgs|6AVUFo%!ss?Y5&cPKoSy$Gvb=em^zT@a~nlK5->RtHqRsmnd_x zUROU9n=r@b!nu1b?;N)m?r77g%C&Hk`Sr{pWXkPKLEZ`2%{mqrP51vy z6UtAfr{$bvJ$GW(L*Ih=54{>rgoV|=yi-&g^hx^qtiPr^dW^f-*`NJ7#x42h!Lcb* TINV;b=1lzhW6_rw1}XpmNqKxU diff --git a/gnark-solana/crates/verifier-bin/test_files/sum_a_b.pw b/gnark-solana/crates/verifier-bin/test_files/sum_a_b.pw deleted file mode 100644 index ca9b2a956985cb4375d17252258059103027b36a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44 UcmZQzU|?i`02mGBqEo^h00ATbo&W#< diff --git a/gnark-solana/crates/verifier-bin/test_files/sum_a_b.vk b/gnark-solana/crates/verifier-bin/test_files/sum_a_b.vk deleted file mode 100644 index 51c25e80dbdb5f8835fc7596a8d3856a383107b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 716 zcmV;-0yF&yZ~VQP5cOd$IHUq%0aN*_Qd0m){y{0IH06z>zpViRunlJ#!iUgpCc(tO zmagSPYCa0WOkG_&EUq#xR&5*`JDJp|0~!lQ7LNiW^M#|t?T5?9p7cuWUlUNB*-`@` zik!Q7S{Yiz!LtDw+(Q}$!V)_mdpv!~Q&x`^WmE$iG=g+L!kcD=3(JtMG>pU1beWg> z%9^Ezg|p1=m_{fM3Wkb@PWDnDYM>oVJ#X{F4+eSc76Je+Zd;|r{Seq4gSV~7^!%JOu z(2n>$jjJ6@0R*xt;0YcOX#HrCMeZ`e*AjRk3Fw-j=_{$S0PiIB;AYCltCE5Rj{Dts zWsF;==L@-OG$=LG?{3bStx%n7u=l5C zJR~2W-^N1&yUv2#xVOszr!Tsaxv&#O0s_|19JVz4bWj?+}ZH%pP;p zItOMxezgnF_r19EHZ#bSnQZ$3)j7w})sw~EN@87PB6;0H0CWVslN@F7m(j&)_%7EO zJf7~9bSvWfJXm*g!z{6=q76t;&LD2Bwm!tpZ7cN=N@R#uRk*5|6fTfCws(ZHV zHFG-Mu<%)1MPP^k0006bP0FxGQp*TYH(@+hlQO$hu-^o4s3-kLC7{rlKv~5NX|6-h zTF`aTFtgU|5*Jw2@5j7044D7odB$aiHG1O+v1F(8hey0r587H(5(b>^^K92-Bx*7< y+|7}4FC=axU${&}rFp(9TrWwcVYwvNCQksQ;grOhF&CIBb>LS3000000002GOjR@h diff --git a/gnark-solana/crates/verifier-bin/test_files/xor.proof b/gnark-solana/crates/verifier-bin/test_files/xor.proof deleted file mode 100644 index affc87d3840feb45cd386c2d7b7107a865963027..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 388 zcmV-~0ek)o4Y_g5wIJ7w7iw?~GrD$X7JqiSofloVpinZT)O=qE>8CJju;gs+{(R!k zNUUG}oXeVllzd>Pk6B<-LlK?_ttE`dvWTmf@Ere+DWq%2$jPM(4&Gr@f^wUV+7jYPOcHY`{=!G6ai7+wQY_G4tiFmm3ypz-*d`f*SPn>GLQ)nUu z8KnoUNra0QvXljHTvs0gdgPD;#B~J`F2@OP*dGPaQy{+In-2y;825U3sT znsz1%m#_aXFA-_(Nc<2~%f>ey;B9z;c0M-9@O_hbk4G1}G%e7w*9^%}A4|I2z}}(< zL>rFi6~hkUZX}%bDS38A1d?6i zgSS(svZN$XGEK1)W}4c{28dVIr!Qx&Ys}?Jo|Ga}&qWe*hOr6+db|J>!pd=&Gl7Y` zSzFcVnkwQ0&+r3G` z8|JJ;^^tF7c=Bc1K9z-`#sZU^_?IK iEBWyWtlZuR&8o-bR#!+J;2e}Mjbzekc3km|2mbGWAf diff --git a/gnark-solana/crates/verifier-lib/src/test_files/keccak_f1600.pw b/gnark-solana/crates/verifier-lib/src/test_files/keccak_f1600.pw deleted file mode 100644 index ce58bc9f84b9623e708de4eb8427a57d9f9a160f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 KcmZQzKmY&$3;+QD diff --git a/gnark-solana/crates/verifier-lib/src/test_files/keccak_f1600.vk b/gnark-solana/crates/verifier-lib/src/test_files/keccak_f1600.vk deleted file mode 100644 index d7e2fcee945268535508fabbf38aecd6c6690cd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 976 zcmV;>126m?H$?!%DUYDqu(c}ig-Ycs7LwuBx<&V6qd9pkIeT(YgQErU60 zG1K&G2RcXZA*1+X?9`$1IqTvk=RHaW%pFVUD%5IYp?mVa^VdBW(f0A(KMqW5%EToH zwY11tDBHP39WW~DdzdkDY9+t;(N$dO-MJz+Gh**9s#)5d4i;FXw;$bY(ib)YR%`wF zH|8R#D+*)x#4^VYBu4j4`ThE@nM00}`#3i=?vpnE*%IyyyyVH$zlbRZ0Q$Y=1?ww7 zhVJPG9mLoN2%`Ijq$SFI9Fostpwv1ig*FUn4tMiAb_9Jut;sx>Ul{V<1yOcr^0EVB z+_jbpm3rKYEuz^N{84nvA}!wkTW65LJ)gKstbhQWifDoWN%+Vi)z46$nNe}=qpJXI zR`#grz%3XU*vGyQw7Q8AkDY8;#J(b?5&+I3DGeoYv}T~Tr6cDu}!*dyAKS zD~0Ye5-CjO>?~CUpd}D@d`GktAckpvgjo~{yC97wX*4-bwaJrpU##lJtRRuR+QHNT z6`@O%14I)f7NQ+iejmU2%1&1!nV$>fv9PbcduOY)f#wvvJU8|6fXl1d-&xQ+N7H_(E*(5&*ITcFbq;oX?j7 z5PBGeaK8-`fF5S=B<>(+tuPCd)KIF(dn8uc{61?c5s&w(;8cX9WQAh)fLewwS^V#2 z30fNzoXIRb6b<75000693a4pee=I@G9O)f23KnFVAb%d?S{CR5!str!EmspMQb&1= zPUM9NGWJFsNG-C`u@tw`A+&qAKMwPD5}FAZ1w4rc00UoGEW_c!b%);ltt=FQo5K|u zU8LP_2-Cs_MA@0w)bizZ)fLu7o541v*5IR<3H4Q|y6B2q;<&~D00031000000003Y z#q)-6F5V@31_*4_?L9K5ziuJfEJP||%7X}Xe&tvm`3oSXEoW02mv^k?2+P7JJ!~5K z&i~9z+II)>(6aa$$`b8lLP!&QTSLVaR5*9#Atpiu9ew}B?9sdd zHS%^!@2^jMYt6kf+>>HX%K_#GrpGoOPr@SU2wKx88m3cw2A;iw)!7>PnUb!1ss)wN zo*P0BVQ9jVvdn`5%rOHoBAeQ|@w1B|*-8DEv2`CK%%ngN-)hHmIf7}IYPo47MwebV yYdKIGt4Wrhh-Cqk+WDObB23OL@zB>&o(jdGTh_dqgoitKk%j~UkFqyrq-A|K$j#LN diff --git a/gnark-solana/crates/verifier-lib/src/test_files/sum_a_b.proof b/gnark-solana/crates/verifier-lib/src/test_files/sum_a_b.proof deleted file mode 100644 index cb2f3c14b739489f8f2141af567a08c5a904eaec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 324 zcmWgs|6AVUFo%!ss?Y5&cPKoSy$Gvb=em^zT@a~nlK5->RtHqRsmnd_x zUROU9n=r@b!nu1b?;N)m?r77g%C&Hk`Sr{pWXkPKLEZ`2%{mqrP51vy z6UtAfr{$bvJ$GW(L*Ih=54{>rgoV|=yi-&g^hx^qtiPr^dW^f-*`NJ7#x42h!Lcb* TINV;b=1lzhW6_rw1}XpmNqKxU diff --git a/gnark-solana/crates/verifier-lib/src/test_files/sum_a_b.pw b/gnark-solana/crates/verifier-lib/src/test_files/sum_a_b.pw deleted file mode 100644 index ca9b2a956985cb4375d17252258059103027b36a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44 UcmZQzU|?i`02mGBqEo^h00ATbo&W#< diff --git a/gnark-solana/crates/verifier-lib/src/test_files/sum_a_b.vk b/gnark-solana/crates/verifier-lib/src/test_files/sum_a_b.vk deleted file mode 100644 index 51c25e80dbdb5f8835fc7596a8d3856a383107b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 716 zcmV;-0yF&yZ~VQP5cOd$IHUq%0aN*_Qd0m){y{0IH06z>zpViRunlJ#!iUgpCc(tO zmagSPYCa0WOkG_&EUq#xR&5*`JDJp|0~!lQ7LNiW^M#|t?T5?9p7cuWUlUNB*-`@` zik!Q7S{Yiz!LtDw+(Q}$!V)_mdpv!~Q&x`^WmE$iG=g+L!kcD=3(JtMG>pU1beWg> z%9^Ezg|p1=m_{fM3Wkb@PWDnDYM>oVJ#X{F4+eSc76Je+Zd;|r{Seq4gSV~7^!%JOu z(2n>$jjJ6@0R*xt;0YcOX#HrCMeZ`e*AjRk3Fw-j=_{$S0PiIB;AYCltCE5Rj{Dts zWsF;==L@-OG$=LG?{3bStx%n7u=l5C zJR~2W-^N1&yUv2#xVOszr!Tsaxv&#O0s_|19JVz4bWj?+}ZH%pP;p zItOMxezgnF_r19EHZ#bSnQZ$3)j7w})sw~EN@87PB6;0H0CWVslN@F7m(j&)_%7EO zJf7~9bSvWfJXm*g!z{6=q76t;&LD2Bwm!tpZ7cN=N@R#uRk*5|6fTfCws(ZHV zHFG-Mu<%)1MPP^k0006bP0FxGQp*TYH(@+hlQO$hu-^o4s3-kLC7{rlKv~5NX|6-h zTF`aTFtgU|5*Jw2@5j7044D7odB$aiHG1O+v1F(8hey0r587H(5(b>^^K92-Bx*7< y+|7}4FC=axU${&}rFp(9TrWwcVYwvNCQksQ;grOhF&CIBb>LS3000000002GOjR@h diff --git a/gnark-solana/crates/verifier-lib/src/test_files/xor.proof b/gnark-solana/crates/verifier-lib/src/test_files/xor.proof deleted file mode 100644 index affc87d3840feb45cd386c2d7b7107a865963027..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 388 zcmV-~0ek)o4Y_g5wIJ7w7iw?~GrD$X7JqiSofloVpinZT)O=qE>8CJju;gs+{(R!k zNUUG}oXeVllzd>Pk6B<-LlK?_ttE`dvWTmf@Ere+DWq%2$jPM(4&Gr@f^wUV+7jYPOcHY`{=!G6ai7+wQY_G4tiFmm3ypz-*d`f*SPn>GLQ)nUu z8KnoUNra0QvXljHTvs0gdgPD;#B~J`JWB&{WM8sQciqWvxon56BmTvnGOgF?cT)mKJ zd1W9vv$CNchKk>j+$o=f=b~C4Rah@^+;=pI5h&OUL_p7}xdyHk-4imMiL5+Or}Li@ zC1N8v8*JkTnzJFWR#@1_QYo5bZ(B)VS4n0^ti6dHEC-`(mB<(4pGJ^1$@{55d6T#K z|CAf26p~Q|IdD&efolo&g2h6{)Rd#4lZzT2Q%As|7~a!GTt!!)Wo8ZmLjpy1=Cu{yny6b1oFj=jbhcPR~Sq zqj!e3p|xl(@oSTfGI?$-Pk``{$+N{&6b3TKWef6c$$IV*uzd`ef=cxLVK_Dyy!9%M zT0VlfwV(nX@TKkk+1+69B)waW(CLRW#H<Qi+9aC#0%XdRHLEr zO_MzU1k#o1vjW!u0009H)SX*R&q~8#)Wh4y7v!#plT3f^*V! zn-WOoIx|rch=8xZ*b@GCu-fEY%UF+>7riSRtC-402)}zeB8}2q56+P|x4+d|a@FQG zpxXOPpBB6=<@{d+6kXT3VF?IR!f+hpZ7H}`MHZSkJ`5{3)+zKW#9B4ht6N?B#8D-V z!gqh<*wC&Tt#wM>^N8vrFbN0+3sddf)5FNgx^}vUFlxsM6wT3(1TPEiK z00031000000003Ei(&1&4OUqmVU(vp94jLR$7EGbs3K{i10xvFat22 z>3U@Zq?*qq5Ql?UM&9GqjHk9l2r2;rXN7miX@gj6<#UcH7#FHxst&S*ImZW;yY0D; zT;OONg-kGzD?A*Z!!64Le1z=FRHw4U&UPGzs5k13DEYc7xRjbU<$-ejvD`)jX~=nQ z{fw>^*9KgOwe@NZt+T94AjDYQ3rpP(i K(Os%Q30$$OPw;L4 From 9095359b84ab22d9e8ceda57f50359f1433fbcec Mon Sep 17 00:00:00 2001 From: Matthew Klein <96837318+matthew-a-klein@users.noreply.github.com> Date: Fri, 28 Nov 2025 11:56:02 +0000 Subject: [PATCH 2/3] Add e2e CI --- .github/workflows/ci.yml | 269 ++++++++++++++++++ .gitignore | 9 +- .../crates/verifier-lib/src/verifier_test.rs | 2 +- 3 files changed, 278 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..68fa535 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,269 @@ +name: Unified CI + +on: + push: + branches: [ "main" ] + paths: + - "go/**" + - "gnark-solana/Cargo.toml" + - "gnark-solana/Cargo.lock" + - "gnark-solana/crates/**" + - "gnark-solana/example/**" + - "!**/README.md" + - "!**/readme.md" + pull_request: + branches: [ "main" ] + paths: + - "go/**" + - "gnark-solana/Cargo.toml" + - "gnark-solana/Cargo.lock" + - "gnark-solana/crates/**" + - "gnark-solana/example/**" + - "!**/README.md" + - "!**/readme.md" + +jobs: + ci: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + # ----------------------------- + # Go Setup + Build + Tests + # ----------------------------- + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: '1.24.2' + + - name: Install Go dependencies + run: cd go && go mod tidy + + - name: Build Go binary + run: cd go && go build -o sunspot -v . && mv sunspot .. + + # (You can use it later — no artifacts needed) + # Example: + - name: Run built Go binary + run: ./sunspot + + # ----------------------------- + # Rust Setup + # ----------------------------- + - name: Install Rust toolchain + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + components: clippy, rustfmt + + # ----------------------------- + # Noir Setup + Build + # ----------------------------- + - name: Set up Noir + uses: noir-lang/noirup@v0.1.2 + with: + toolchain: v1.0.0-beta.13 + + - name: Build Noir contracts + run: | + PROJECTS=( + noir-samples/expressions/sum_a_b + noir-samples/expressions/square_equation + noir-samples/expressions/linear_equation + noir-samples/expressions/rock_paper_scissors + noir-samples/expressions/polynomial + noir-samples/expressions/lcchecker + noir-samples/black_box_functions/range + noir-samples/black_box_functions/keccak_f1600 + noir-samples/black_box_functions/and + noir-samples/black_box_functions/xor + noir-samples/black_box_functions/sha256_compression + noir-samples/black_box_functions/sha256_hash + noir-samples/black_box_functions/blake2s + noir-samples/black_box_functions/blake3 + noir-samples/black_box_functions/embedded_curve_add + noir-samples/black_box_functions/multiscalar_multiplication + noir-samples/black_box_functions/poseidon2 + noir-samples/black_box_functions/ecdsa_secp256r1 + noir-samples/black_box_functions/ecdsa_secp256k1_failing + noir-samples/black_box_functions/ecdsa_secp256k1 + noir-samples/black_box_functions/aes128encrypt + noir-samples/black_box_functions/recursive_aggregation + noir-samples/memory + noir-samples/circuit_call + noir-samples/real_world/provekit_basic + noir-samples/zk_passport/exclusion_check + noir-samples/zk_passport/inclusion_check + noir-samples/zk_passport/age + noir-samples/zk_passport/expiry + noir-samples/zk_passport/sanctions + ) + + for project in "${PROJECTS[@]}"; do + echo "▶️ Building Noir project: $project" + cd "$project" + nargo compile + nargo execute || (echo "Tests failed in $project" && exit 1) + cd - > /dev/null + done + + # ----------------------------- + # Go Tests + # ----------------------------- + # - name: Build Test binaries + # run: cd testgen && cargo run + + # - name: Run Go tests + # run: cd go && go test ./... -timeout 0 + + # - name: Run Go vet + # run: cd go && go vet ./... + + # ----------------------------- + # Solana + Rust + # ----------------------------- + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: 24 + + - name: Install Solana toolchain + run: | + curl -sSfL https://raw.githubusercontent.com/solana-developers/solana-install/main/install.sh | bash + echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH + + - name: Build Test Files + + run: | + SUNSPOT_BIN="$GITHUB_WORKSPACE/sunspot" + + PROJECTS=( + noir-samples/expressions/sum_a_b + noir-samples/black_box_functions/keccak_f1600 + noir-samples/black_box_functions/xor + ) + + # Define the two output directories + OUTPUT_DIR1="$GITHUB_WORKSPACE/gnark-solana/crates/verifier-lib/src/test_files" + OUTPUT_DIR2="$GITHUB_WORKSPACE/gnark-solana/crates/verifier-bin/test_files" + + # Ensure output directories exist + mkdir -p "$OUTPUT_DIR1" "$OUTPUT_DIR2" + + for project in "${PROJECTS[@]}"; do + echo "▶️ Running Sunspot pipeline for: $project" + + target_dir="$project/target" + + # Ensure target directory exists + if [ ! -d "$target_dir" ]; then + echo "❌ No target directory found at $target_dir" + exit 1 + fi + + cd "$target_dir" || exit 1 + + # Required input files + JSON_FILE=$(ls *.json 2>/dev/null | head -n1) + GZ_FILE=$(ls *.gz 2>/dev/null | head -n1) + + if [ -z "$JSON_FILE" ] || [ -z "$GZ_FILE" ]; then + echo "❌ Missing required input files in $target_dir" + echo "Found:" + ls -al + exit 1 + fi + + echo "▶️ Using:" + echo " JSON: $JSON_FILE" + echo " GZ: $GZ_FILE" + + # Step 1: compile -> generates .ccs + echo "▶️ Step 1: sunspot compile" + "$SUNSPOT_BIN" compile "$JSON_FILE" || (echo "❌ sunspot compile failed" && exit 1) + + # Find the generated .ccs file + CCS_FILE=$(ls *.ccs 2>/dev/null | head -n1) + if [ -z "$CCS_FILE" ]; then + echo "❌ No .ccs file generated by sunspot compile" + exit 1 + fi + + # Step 2: setup -> generates .vk + echo "▶️ Step 2: sunspot setup" + "$SUNSPOT_BIN" setup "$CCS_FILE" || (echo "❌ sunspot setup failed" && exit 1) + + # Find the generated .pk file + PK_FILE=$(ls *.pk 2>/dev/null | head -n1) + if [ -z "$PK_FILE" ]; then + echo "❌ No .pk file generated by sunspot setup" + exit 1 + fi + + # Find the generated .vk file + VK_FILE=$(ls *.vk 2>/dev/null | head -n1) + if [ -z "$VK_FILE" ]; then + echo "❌ No .vk file generated by sunspot setup" + exit 1 + fi + + # Step 3: prove + echo "▶️ Step 3: sunspot prove" + "$SUNSPOT_BIN" prove "$JSON_FILE" "$GZ_FILE" "$CCS_FILE" "$PK_FILE" \ + || (echo "❌ sunspot prove failed" && exit 1) + + # Find the generated .vk file + WITNESS_FILE=$(ls *.pw 2>/dev/null | head -n1) + if [ -z "$WITNESS_FILE" ]; then + echo "❌ No .pw file generated by sunspot setup" + exit 1 + fi + + # Find the generated .vk file + PROOF_FILE=$(ls *.proof 2>/dev/null | head -n1) + if [ -z "$PROOF_FILE" ]; then + echo "❌ No .proof file generated by sunspot setup" + exit 1 + fi + + echo "✔️ Completed Sunspot workflow for $project" + + # Copy all generated files to the two output directories + cp -v "$VK_FILE" "$WITNESS_FILE" "$PROOF_FILE" "$OUTPUT_DIR1/" + cp -v "$VK_FILE" "$WITNESS_FILE" "$PROOF_FILE" "$OUTPUT_DIR2/" + + echo "✔️ Completed Sunspot workflow for $project. Files copied to output directories." + + + cd - > /dev/null + done + + cp -v "$GITHUB_WORKSPACE/gnark-solana/crates/verifier-bin/test_files/xor.vk" "$GITHUB_WORKSPACE/gnark-solana/crates/verifier-bin/default.vk" + + + - name: Build Solana program (.so) + working-directory: gnark-solana + run: cargo build-sbf + + - name: Check formatting + working-directory: gnark-solana + run: cargo fmt --all -- --check + + - name: Run clippy + working-directory: gnark-solana + run: cargo clippy --all-targets --all-features -- -D warnings + + - name: Build (debug) + working-directory: gnark-solana + run: cargo build --all-targets --all-features + + - name: Run Rust tests + working-directory: gnark-solana + run: cargo test --all --all-features --no-fail-fast --verbose + + - name: Build (release) + working-directory: gnark-solana + run: cargo build --release --all-features diff --git a/.gitignore b/.gitignore index fd4dd5c..351f398 100644 --- a/.gitignore +++ b/.gitignore @@ -28,4 +28,11 @@ binaries/ target/ test-ledger -node_modules \ No newline at end of file +node_modules + +# Sunspot output files +*.ccs +*.pk +*.vk +*.proof +*.pw \ No newline at end of file diff --git a/gnark-solana/crates/verifier-lib/src/verifier_test.rs b/gnark-solana/crates/verifier-lib/src/verifier_test.rs index 20df503..4422f3d 100644 --- a/gnark-solana/crates/verifier-lib/src/verifier_test.rs +++ b/gnark-solana/crates/verifier-lib/src/verifier_test.rs @@ -56,7 +56,7 @@ mod tests { #[test] fn test_verification_with_commitment_and_pw() { - const NR_INPUTS: usize = 1; + const NR_INPUTS: usize = 2; let vk_file = File::open("src/test_files/xor.vk").expect("unable to open vk file"); let vk = parse_vk(vk_file).expect("Unable to parse vk"); From 397bfd4803bb5a7256f05d6cd18df9714af16d49 Mon Sep 17 00:00:00 2001 From: Matthew Klein <96837318+matthew-a-klein@users.noreply.github.com> Date: Fri, 28 Nov 2025 12:11:30 +0000 Subject: [PATCH 3/3] Uncomment go tests in CI --- .github/workflows/ci.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 68fa535..cbbf862 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -113,14 +113,14 @@ jobs: # ----------------------------- # Go Tests # ----------------------------- - # - name: Build Test binaries - # run: cd testgen && cargo run + - name: Build Test binaries + run: cd testgen && cargo run - # - name: Run Go tests - # run: cd go && go test ./... -timeout 0 + - name: Run Go tests + run: cd go && go test ./... -timeout 0 - # - name: Run Go vet - # run: cd go && go vet ./... + - name: Run Go vet + run: cd go && go vet ./... # ----------------------------- # Solana + Rust