Skip to content
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

Merge o1js-main into develop #1365

Merged
merged 1,407 commits into from
Jan 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1407 commits
Select commit Hold shift + click to select a range
3d14a4e
move dangerous foreign field equals
mitschabaude Dec 5, 2023
dfc7e97
change to safe equals() methods in foreign field, rename assertCanonical
mitschabaude Dec 5, 2023
0403912
add safe ec addition
mitschabaude Dec 5, 2023
abe4d56
signature to bigint
mitschabaude Dec 5, 2023
3a3cce3
adapt unit test
mitschabaude Dec 5, 2023
9bcb6fd
delete ec and ecdsa gadgets namespaces
mitschabaude Dec 5, 2023
03bb11f
Merge pull request #1292 from rpanic/feature/zkprogram-add-vk-hash
mitschabaude Dec 5, 2023
fbf249a
Merge branch 'main' into release/v0.14.3
mitschabaude Dec 5, 2023
94e257a
0.15.0
mitschabaude Dec 5, 2023
c6022cd
minor bumpt because of breaking changes
mitschabaude Dec 5, 2023
31282ea
changelog
mitschabaude Dec 5, 2023
ea98308
address misc feedback
mitschabaude Dec 6, 2023
74ff146
add negative unit test
mitschabaude Dec 6, 2023
ef27caf
Merge branch 'main' into feature/assert-mul
mitschabaude Dec 6, 2023
4efb9e5
Merge pull request #1262 from o1-labs/feature/assert-mul
mitschabaude Dec 6, 2023
a2458c4
Merge branch 'main' into release/v0.14.3
mitschabaude Dec 6, 2023
9701375
change name that's too long
mitschabaude Dec 6, 2023
237fca1
fix doccomments
mitschabaude Dec 6, 2023
b5b0ee4
Improved test and cleaned up implementation
jackryanservia Dec 6, 2023
27d9320
demo actions/reducer storage contract
Trivo25 Dec 6, 2023
73dfdc5
add comment
Trivo25 Dec 6, 2023
450203e
Merge branch 'main' into feature/ecdsa-new
mitschabaude Dec 6, 2023
f51e5c0
remove gadgets.ecdsa which ended up in a different final form
mitschabaude Dec 6, 2023
bbcfb17
fix build:examples while we're here
mitschabaude Dec 6, 2023
7ec8090
remove ecdsa from vk test for now
mitschabaude Dec 6, 2023
db8f63a
Revert "remove ecdsa from vk test for now"
mitschabaude Dec 6, 2023
120ae94
Merge branch 'tmp' into feature/ecdsa
mitschabaude Dec 6, 2023
507a04b
fixup
mitschabaude Dec 6, 2023
74d1b1b
Merge pull request #1240 from o1-labs/feature/ecdsa-new
mitschabaude Dec 6, 2023
0a96141
Merge branch 'main' into feature/ecdsa
mitschabaude Dec 7, 2023
62091b8
dump vks
mitschabaude Dec 7, 2023
991008b
Cleaned up and made variable names consistent
jackryanservia Dec 7, 2023
cb11813
Merge branch 'main' into release/v0.14.3
mitschabaude Dec 7, 2023
9d34c7f
make `verify()` backwards-compatible with old vk type
mitschabaude Dec 7, 2023
884dcff
reproduce bug
mitschabaude Dec 11, 2023
b02a695
can't reproduce with zkprogram!
mitschabaude Dec 11, 2023
4b01adc
make reproduction a proper test
mitschabaude Dec 11, 2023
c694915
fix: don't clone proofs so they can be mutated
mitschabaude Dec 11, 2023
fa71307
tweak test some more
mitschabaude Dec 11, 2023
5efd814
move example to test folder and add more test cases
mitschabaude Dec 11, 2023
a43bd3c
add to integration tests
mitschabaude Dec 11, 2023
e2cf699
minor correction
mitschabaude Dec 11, 2023
44c0024
fixup
mitschabaude Dec 11, 2023
23edcf0
change fix to avoid import cycle
mitschabaude Dec 11, 2023
4b96d79
address feedback and remove unreachable test code
mitschabaude Dec 11, 2023
37d8719
reuse some helper types
mitschabaude Dec 11, 2023
13e3c97
add unit test
mitschabaude Dec 11, 2023
515b1c0
changelog
mitschabaude Dec 11, 2023
3978a97
Merge pull request #1302 from o1-labs/fix/any-proof-verifies
mitschabaude Dec 11, 2023
0ccab62
Merge branch 'main' into release/v0.14.3
mitschabaude Dec 11, 2023
6e477e2
Fix round constants not constrained
jackryanservia Dec 11, 2023
3d08dfc
Merge pull request #1294 from o1-labs/release/v0.14.3
ymekuria Dec 11, 2023
cc31b39
feat(release.yml): add condition to run jobs only if RUN_JOB environm…
MartinMinkov Dec 12, 2023
601e07a
Remove switch statements for length
jackryanservia Dec 12, 2023
8fc218b
Remove endian conversion
jackryanservia Dec 12, 2023
86ccad7
Replace copy in squeeze with splice builtin
jackryanservia Dec 12, 2023
3d3977f
Combines pad functions and change rate argument to bytes
jackryanservia Dec 12, 2023
92fee1a
Merge branch 'main' into feature/keccak-sponge
jackryanservia Dec 12, 2023
45fb784
Changes all rate, length, and capacity units to bytes
jackryanservia Dec 12, 2023
1003cc5
Make Keccak test run for random preimage/digest length
jackryanservia Dec 12, 2023
bfb99e2
Fixes random preImageLength in Keccak unit test
jackryanservia Dec 12, 2023
898e761
Cleans up asserts
jackryanservia Dec 12, 2023
b45ba97
Removes loop in squeeze bc standard length+capacity only does one seq…
jackryanservia Dec 12, 2023
ec9981d
fix: remove non-public ecdsa from changelog
mitschabaude Dec 12, 2023
e49003c
Merge pull request #1305 from o1-labs/fix/changelog-0.15
mitschabaude Dec 12, 2023
5430dc4
Merge branch 'main' into feature/ecdsa
mitschabaude Dec 12, 2023
ffce6b3
Merge pull request #1291 from o1-labs/feature/keccak-sponge
jackryanservia Dec 12, 2023
5cf87ed
Update README-dev.md
mitschabaude Dec 12, 2023
9fe14c1
Update README-dev.md
mitschabaude Dec 12, 2023
bf00ea6
Merge pull request #1007 from o1-labs/feature/ecdsa
mitschabaude Dec 12, 2023
00756fc
reduce duplication in bytes / word conversion
mitschabaude Dec 12, 2023
c113ac9
Merge pull request #1306 from o1-labs/docs/branches
mitschabaude Dec 12, 2023
9ad14b3
remove checkBytes argument
mitschabaude Dec 12, 2023
dfa64ad
remove commented code
mitschabaude Dec 12, 2023
d8a487c
remove unused constant
mitschabaude Dec 12, 2023
95ef994
type tweak
mitschabaude Dec 12, 2023
cb6756d
lift bytes handling outside sponge, into hash
mitschabaude Dec 12, 2023
8300ac1
don't support 224 for now because it needs extra work to pad to full …
mitschabaude Dec 12, 2023
e9ec0e8
bindings
mitschabaude Dec 12, 2023
25bd83b
add keccak to ecdsa circuit
mitschabaude Dec 12, 2023
a5ca0b3
change conversion to take bytes
mitschabaude Dec 12, 2023
fa5861d
use keccak in ECDSA verify / sign
mitschabaude Dec 12, 2023
ff7770b
fix: support out of circuit call
mitschabaude Dec 12, 2023
b7ecd5b
use keccak in example
mitschabaude Dec 12, 2023
a664fa3
expose keccak
mitschabaude Dec 12, 2023
a041bc9
change example to do ecdsa and keccak together and separately
mitschabaude Dec 12, 2023
9c68226
vk regression
mitschabaude Dec 12, 2023
0cdf3d9
remove useless low-level module
mitschabaude Dec 12, 2023
0f17c6a
Update README-dev.md
TtheBC01 Dec 12, 2023
169a4f8
Update README-dev.md
TtheBC01 Dec 12, 2023
92773b0
Merge pull request #1309 from TtheBC01/main
Trivo25 Dec 12, 2023
278f8db
Merge pull request #1304 from o1-labs/fix/release-github-action
MartinMinkov Dec 12, 2023
5b185aa
avoid a few constraints for xoring with 0
mitschabaude Dec 13, 2023
60783a5
vk regression
mitschabaude Dec 13, 2023
f8a7c14
Merge branch 'feature/keccak-and-ecdsa' into feat/add-sha
mitschabaude Dec 13, 2023
08448a8
missing from merge
mitschabaude Dec 13, 2023
8ff8380
typo fix
Ursulafe Dec 13, 2023
adf7d22
typo fix
Ursulafe Dec 13, 2023
bed1b49
typo fix
Ursulafe Dec 13, 2023
90c714c
Merge pull request #1311 from Ursulafe/main
mitschabaude Dec 13, 2023
763d38f
remove some unnecessary changes
mitschabaude Dec 13, 2023
6fd370d
work on uint8 and make it compile
mitschabaude Dec 13, 2023
900a344
export Hash, rename old Hash to HashHelpers
mitschabaude Dec 13, 2023
3bbd454
add rangeCheck16
mitschabaude Dec 13, 2023
0e04807
fix divMod
mitschabaude Dec 13, 2023
5da4f72
fix and polish uint8
mitschabaude Dec 13, 2023
ac58ebd
add doc comments
Trivo25 Dec 13, 2023
025cc9a
minor
Trivo25 Dec 13, 2023
7caffae
provable bytes type
mitschabaude Dec 13, 2023
fca04f8
use bytes as keccak input
mitschabaude Dec 13, 2023
da919b7
tweaks to bytes type
mitschabaude Dec 13, 2023
3d8dbbd
adapt bytes consumers
mitschabaude Dec 13, 2023
644f279
fix import cycle
mitschabaude Dec 13, 2023
eadb423
adapt keccak unit test
mitschabaude Dec 13, 2023
3ee7d19
fix length assertion
mitschabaude Dec 13, 2023
8b4344a
fix something very stupid
mitschabaude Dec 13, 2023
0a896bd
add constant tests
mitschabaude Dec 13, 2023
5d15141
Update src/lib/keccak.ts
Trivo25 Dec 13, 2023
aa1bb04
Update src/lib/keccak.ts
Trivo25 Dec 13, 2023
25bcd0c
Update src/lib/keccak.ts
Trivo25 Dec 13, 2023
bb4f5bd
Update src/lib/keccak.ts
Trivo25 Dec 13, 2023
008df18
Update src/lib/keccak.ts
Trivo25 Dec 13, 2023
fc7a861
Update src/lib/keccak.ts
Trivo25 Dec 13, 2023
0651999
Update src/lib/keccak.ts
Trivo25 Dec 13, 2023
542ce92
Update src/lib/keccak.ts
Trivo25 Dec 13, 2023
1e39026
Update src/lib/keccak.ts
Trivo25 Dec 13, 2023
82e5847
Update src/lib/keccak.ts
Trivo25 Dec 13, 2023
51226af
Update src/lib/keccak.ts
Trivo25 Dec 13, 2023
b97b1aa
Update src/lib/keccak.ts
Trivo25 Dec 13, 2023
ad69dbb
Update src/lib/keccak.ts
Trivo25 Dec 13, 2023
489db6b
Update src/lib/keccak.ts
Trivo25 Dec 13, 2023
ca1c02e
add verbose argument to nonprovable equivalence test
mitschabaude Dec 13, 2023
0fbc626
run keccak unit tests outside circuit for now
mitschabaude Dec 13, 2023
c3fa6ce
reduce witnessing time in xor by calling exists fewer times
mitschabaude Dec 13, 2023
cab7839
pad witnesses in raw gate to avoid try-catch in plonk_constraint_system
mitschabaude Dec 13, 2023
d3dec8d
remove witness slice altogether
mitschabaude Dec 13, 2023
e5810f4
make old unit tests work
mitschabaude Dec 13, 2023
377f905
Merge branch 'feat/add-sha' into fix/bitwise-performance
mitschabaude Dec 13, 2023
f96c169
fix unit test flake
mitschabaude Dec 13, 2023
45b7b74
add run-debug script
mitschabaude Dec 13, 2023
1cb8b0b
add toFields and expose Bytes
mitschabaude Dec 13, 2023
4729c8b
fix examples
mitschabaude Dec 13, 2023
0769e6a
fix cs example
mitschabaude Dec 13, 2023
231e87c
vk regression
mitschabaude Dec 13, 2023
bb2edf0
Merge branch 'feat/add-sha' into fix/bitwise-performance
mitschabaude Dec 13, 2023
6af37c4
chore(mina): update mina submodule to latest commit for up-to-date fe…
MartinMinkov Dec 13, 2023
299244b
chore(bindings): update subproject commit hash to latest version for …
MartinMinkov Dec 13, 2023
3a81547
chore(bindings): update bindings subproject to latest commit for up-t…
MartinMinkov Dec 13, 2023
5c533a1
fix(README-dev.md): specify info for installing deps
MartinMinkov Dec 13, 2023
028e38d
feat(README-dev.md): spelling mistake
MartinMinkov Dec 13, 2023
0979c10
Update README-dev.md
MartinMinkov Dec 13, 2023
3ff5b5e
Merge branch 'feat/add-mina-submodule' of github.com:o1-labs/o1js int…
MartinMinkov Dec 13, 2023
12f0b2d
add toInput
mitschabaude Dec 13, 2023
cb6190d
refactor(package.json): streamline script commands for better readabi…
MartinMinkov Dec 13, 2023
f5c97ca
Merge branch 'main' into feat/add-mina-submodule
MartinMinkov Dec 13, 2023
e6fceba
chore(bindings): update subproject commit hash to 4b453f0caf2db1d0469…
MartinMinkov Dec 13, 2023
6a6c615
Merge pull request #1307 from o1-labs/feature/keccak-and-ecdsa
mitschabaude Dec 13, 2023
aeeae04
chore(bindings): update subproject commit hash to 225dd0ad25a8bf7469b…
MartinMinkov Dec 13, 2023
db75a41
Merge branch 'main' into feat/add-mina-submodule
MartinMinkov Dec 13, 2023
14fdf68
Merge pull request #1314 from o1-labs/feature/keccak-doccomments
Trivo25 Dec 14, 2023
3408b43
Merge branch 'feature/keccak-doccomments' into feat/add-sha
mitschabaude Dec 14, 2023
7b305fb
support bytes from string without constructing type of specific length
mitschabaude Dec 14, 2023
9d444b9
adapt keccak doccomments to bytes input
mitschabaude Dec 14, 2023
3be3ac5
Hash doccomments
mitschabaude Dec 14, 2023
4ad851e
don't double-constrain uint8 results
mitschabaude Dec 14, 2023
7ac389a
improve uint8 docs
mitschabaude Dec 14, 2023
accc779
fix int test
mitschabaude Dec 14, 2023
7b6ace4
bytes to test utils
mitschabaude Dec 14, 2023
8d52779
merge old and new unit tests
mitschabaude Dec 14, 2023
d2d5105
minor, comment fix
Trivo25 Dec 14, 2023
f84a6e0
remove _, auto type inference
Trivo25 Dec 14, 2023
004112d
Merge pull request #999 from o1-labs/feat/add-sha
mitschabaude Dec 14, 2023
04bb3ca
Merge pull request #1300 from o1-labs/reducer-map-example
Trivo25 Dec 14, 2023
758ab6e
Merge branch 'main' into fix/bitwise-performance
mitschabaude Dec 14, 2023
a02888e
bindings
mitschabaude Dec 14, 2023
083c120
Merge pull request #1315 from o1-labs/fix/bitwise-performance
mitschabaude Dec 14, 2023
c5a54fd
remove private class field from Field
mitschabaude Dec 14, 2023
bce7914
remove unnecessary helper functions
mitschabaude Dec 14, 2023
4ba40a1
remove private class fields from Bool
mitschabaude Dec 14, 2023
4f75418
remove private class fields from Group
mitschabaude Dec 14, 2023
9690a5b
remove private class Fields from Scalar
mitschabaude Dec 14, 2023
96c756a
remove private class fields from SmartContract
mitschabaude Dec 14, 2023
c40e3f1
Revert "remove private class fields from SmartContract"
mitschabaude Dec 14, 2023
d291401
Update package.json
MartinMinkov Dec 14, 2023
a2dde97
style(run-jest-tests.sh): add newline at end of file to comply with P…
MartinMinkov Dec 14, 2023
f4d3323
Merge branch 'main' into feat/add-mina-submodule
MartinMinkov Dec 14, 2023
ec78979
Merge pull request #1319 from o1-labs/feature/remove-private-fields
mitschabaude Dec 14, 2023
12942ed
Merge branch 'main' into feature/gadgets-uint
Trivo25 Dec 15, 2023
cfa4883
return UInt instead of field
Trivo25 Dec 15, 2023
9702793
fix compilation, bump bindings
Trivo25 Dec 15, 2023
7b5e8fa
fix doc comment
Trivo25 Dec 15, 2023
5def657
set proofs enabled on object to make updated value readable from outside
mitschabaude Dec 15, 2023
7e38cdd
label deploy account update
mitschabaude Dec 15, 2023
673c822
remove unused imports
Trivo25 Dec 15, 2023
519278d
improve toPretty output of authorization kind
mitschabaude Dec 15, 2023
7f0bf7b
move kimchi/{wasm,js} to kimchi_bindings
mitschabaude Dec 18, 2023
8e9fd7c
gitignore temp files added during build
mitschabaude Dec 18, 2023
f91e027
Lightnet README-dev documentation.
shimkiv Dec 18, 2023
9676933
Merge pull request #1333 from o1-labs/lightnet-readme-dev
shimkiv Dec 18, 2023
72e7707
better stack trace limit
mitschabaude Dec 18, 2023
fd2b78a
bindings
mitschabaude Dec 18, 2023
279f5a2
add regression test
mitschabaude Dec 18, 2023
5c51bd2
another regression test
mitschabaude Dec 18, 2023
8b1aa73
bindings
mitschabaude Dec 18, 2023
57de664
bindings
mitschabaude Dec 18, 2023
55368de
changelog
mitschabaude Dec 18, 2023
62c69a8
Merge pull request #1330 from o1-labs/fix/set-proofs-enabled
mitschabaude Dec 18, 2023
b820dea
Merge pull request #1334 from o1-labs/fix/stack-overflow
mitschabaude Dec 18, 2023
0d82ad1
Merge branch 'main' into feature/glv
mitschabaude Dec 18, 2023
ce7c8ee
Merge branch 'main' into feature/glv
mitschabaude Dec 18, 2023
55be454
remove unused funciton
mitschabaude Dec 18, 2023
7a306ec
dump vks
mitschabaude Dec 18, 2023
32d50cf
remove redundant assertion
mitschabaude Dec 18, 2023
40c9947
fix curve negation
mitschabaude Dec 18, 2023
dac5acb
put stack trace limit back in run script (it's sometimes needed)
mitschabaude Dec 18, 2023
43cf2a0
dump vks for negation fix
mitschabaude Dec 19, 2023
3480c54
Merge pull request #1257 from o1-labs/feature/glv
mitschabaude Dec 19, 2023
108513c
resolve dependency issue
Trivo25 Dec 19, 2023
fc70678
resolve dependency issue, yet again
Trivo25 Dec 19, 2023
a8ff0aa
return UInt32 instead of Field
Trivo25 Dec 19, 2023
d4f27be
changelog
Trivo25 Dec 19, 2023
c1e6087
Merge branch 'main' into feature/gadgets-uint
Trivo25 Dec 19, 2023
e2785ab
fix correct bindings
Trivo25 Dec 19, 2023
d68441b
Merge pull request #1259 from o1-labs/feature/gadgets-uint
mitschabaude Dec 19, 2023
c208425
Merge branch 'tmp-rampup' into merge-rampup-main
mitschabaude Dec 19, 2023
4522620
Bytes.random
mitschabaude Dec 19, 2023
abb8202
keccak witness gen benchmark
mitschabaude Dec 19, 2023
847bf36
fix bitwise unit test
mitschabaude Dec 19, 2023
1c76a2e
unit-test keccak in provable version
mitschabaude Dec 19, 2023
6270ce9
bindings
mitschabaude Dec 19, 2023
697efd6
Merge branch 'develop' into merge-develop-main
mitschabaude Dec 19, 2023
6c6e466
bindings
mitschabaude Dec 19, 2023
e91e0b0
trigger CI
mitschabaude Dec 19, 2023
6ba1d9d
Merge branch 'main' into feat/add-mina-submodule
mitschabaude Dec 19, 2023
769d4b3
Merge pull request #1133 from o1-labs/feat/add-mina-submodule
MartinMinkov Dec 19, 2023
19115a1
0.15.1
actions-user Dec 19, 2023
e5f2275
Update CHANGELOG for new version v0.15.1
actions-user Dec 19, 2023
f6d991f
trigger CI
MartinMinkov Dec 19, 2023
ca2fa04
Merge pull request #1342 from o1-labs/release/v0.15.1
MartinMinkov Dec 19, 2023
8cba17a
changelog
mitschabaude Dec 20, 2023
776992a
Merge pull request #1344 from o1-labs/fix/changelog-v0.15.1
mitschabaude Dec 20, 2023
0a4b23b
Merge branch 'main' into merge-rampup-main
mitschabaude Dec 20, 2023
9ae2dfe
mina
mitschabaude Dec 20, 2023
57e0c89
Merge branch 'main' into merge-develop-main
mitschabaude Dec 20, 2023
e76b97f
submodules
mitschabaude Dec 20, 2023
d389fee
Merge pull request #1339 from o1-labs/merge-rampup-main
mitschabaude Dec 20, 2023
3fa0a45
make hello world contract deterministic
mitschabaude Dec 20, 2023
f5d277e
Merge branch 'main' into merge-develop-main
mitschabaude Dec 20, 2023
3f85bbe
Merge branch 'develop' into merge/main-develop
mitschabaude Jan 11, 2024
f062844
bindings
mitschabaude Jan 11, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/actions/live-tests-shared/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,17 @@ runs:
max-attempts: 60
polling-interval-ms: 10000
- name: Setup Node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Build o1js and execute tests
env:
TEST_TYPE: 'Live integration tests'
USE_LOCAL_NETWORK: 'true'
USE_CUSTOM_LOCAL_NETWORK: 'true'
run: |
git submodule update --init --recursive
npm ci
npm run build:node
npm run build
touch profiling.md
sh run-ci-tests.sh
cat profiling.md >> $GITHUB_STEP_SUMMARY
Expand Down
20 changes: 10 additions & 10 deletions .github/workflows/build-action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ jobs:
]
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Build o1js and execute tests
Expand All @@ -39,7 +39,7 @@ jobs:
run: |
git submodule update --init --recursive
npm ci
npm run build:node
npm run build
touch profiling.md
sh run-ci-tests.sh
cat profiling.md >> $GITHUB_STEP_SUMMARY
Expand All @@ -49,9 +49,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install Node dependencies
Expand Down Expand Up @@ -82,16 +82,16 @@ jobs:
needs: [Build-And-Test-Server, Build-And-Test-Web]
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Build o1js
run: |
git submodule update --init --recursive
npm ci
npm run build:node
npm run build
- name: Publish to NPM if version has changed
uses: JS-DevTools/npm-publish@v1
if: github.ref == 'refs/heads/main'
Expand All @@ -106,9 +106,9 @@ jobs:
needs: [Build-And-Test-Server, Build-And-Test-Web]
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Build mina-signer
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/live-tests.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Test o1js against real network
name: Test o1js against the real network
on:
push:
branches:
Expand All @@ -19,7 +19,7 @@ jobs:
if: github.ref == 'refs/heads/main' || (github.event_name == 'pull_request' && github.base_ref == 'main')
services:
mina-local-network:
image: o1labs/mina-local-network:rampup-latest-lightnet
image: o1labs/mina-local-network:o1js-main-latest-lightnet
env:
NETWORK_TYPE: 'single-node'
PROOF_LEVEL: 'none'
Expand All @@ -32,11 +32,11 @@ jobs:
- /tmp:/root/logs
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Use shared steps for live testing jobs
uses: ./.github/actions/live-tests-shared
with:
mina-branch-name: rampup
mina-branch-name: o1js-main

berkeley-branch:
timeout-minutes: 25
Expand All @@ -57,7 +57,7 @@ jobs:
- /tmp:/root/logs
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Use shared steps for live testing jobs
uses: ./.github/actions/live-tests-shared
with:
Expand All @@ -82,7 +82,7 @@ jobs:
- /tmp:/root/logs
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Use shared steps for live testing jobs
uses: ./.github/actions/live-tests-shared
with:
Expand Down
73 changes: 73 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Purpose:
# Automatically bumps the project's patch version bi-weekly on Tuesdays.
#
# Details:
# - Triggered at 00:00 UTC every Tuesday; runs on even weeks of the year.
# - Sets up the environment by checking out the repo and setting up Node.js.
# - Bumps patch version using `npm version patch`, then creates a new branch 'release/x.x.x'.
# - Pushes changes and creates a PR to `main` using GitHub CLI.
# - Can also be triggered manually via `workflow_dispatch`.
name: Version Bump

on:
workflow_dispatch: # Allow to manually trigger the workflow
schedule:
- cron: "0 0 * * 2" # At 00:00 UTC every Tuesday

jobs:
version-bump:
runs-on: ubuntu-latest

steps:
# Since cronjob syntax doesn't support bi-weekly schedule, we need to check if it's an even week or not
- name: Check if it's an even week
run: |
WEEK_NUM=$(date +'%V')
if [ $((WEEK_NUM % 2)) -eq 0 ]; then
echo "RUN_JOB=true" >> $GITHUB_ENV
else
echo "RUN_JOB=false" >> $GITHUB_ENV
fi

- name: Check out the repository
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "18"

- name: Configure Git
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"

- name: Bump patch version
if: ${{ env.RUN_JOB }} == 'true'
run: |
git fetch --prune --unshallow
NEW_VERSION=$(npm version patch)
echo "New version: $NEW_VERSION"
echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV

- name: Install npm dependencies
if: ${{ env.RUN_JOB }} == 'true'
run: npm install

- name: Update CHANGELOG.md
if: ${{ env.RUN_JOB }} == 'true'
run: |
npm run update-changelog
git add CHANGELOG.md
git commit -m "Update CHANGELOG for new version $NEW_VERSION"

- name: Create new release branch
if: ${{ env.RUN_JOB }} == 'true'
run: |
NEW_BRANCH="release/${NEW_VERSION}"
git checkout -b $NEW_BRANCH
git push -u origin $NEW_BRANCH
git push --tags
gh pr create --base main --head $NEW_BRANCH --title "Release $NEW_VERSION" --body "This is an automated PR to update to version $NEW_VERSION"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN}}
136 changes: 134 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,142 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
_Removed_ for now removed features.
_Fixed_ for any bug fixes.
_Security_ in case of vulnerabilities.
-->

## [Unreleased](https://github.com/o1-labs/o1js/compare/19115a159...HEAD)

-->
## [0.15.1](https://github.com/o1-labs/o1js/compare/1ad7333e9e...19115a159)

### Breaking changes

- Rename `Gadgets.rotate()` to `Gadgets.rotate64()` to better reflect the amount of bits the gadget operates on. https://github.com/o1-labs/o1js/pull/1259
- Rename `Gadgets.{leftShift(), rightShift()}` to `Gadgets.{leftShift64(), rightShift64()}` to better reflect the amount of bits the gadget operates on. https://github.com/o1-labs/o1js/pull/1259

### Added

- Non-native elliptic curve operations exposed through `createForeignCurve()` class factory https://github.com/o1-labs/o1js/pull/1007
- **ECDSA signature verification** exposed through `createEcdsa()` class factory https://github.com/o1-labs/o1js/pull/1240 https://github.com/o1-labs/o1js/pull/1007 https://github.com/o1-labs/o1js/pull/1307
- For an example, see `./src/examples/crypto/ecdsa`
- **Keccak/SHA3 hash function** exposed on `Keccak` namespace https://github.com/o1-labs/o1js/pull/1291
- `Hash` namespace which holds all hash functions https://github.com/o1-labs/o1js/pull/999
- `Bytes`, provable type to hold a byte array, which serves as input and output for Keccak variants
- `UInt8`, provable type to hold a single byte, which is constrained to be in the 0 to 255 range
- `Gadgets.rotate32()` for rotation over 32 bit values https://github.com/o1-labs/o1js/pull/1259
- `Gadgets.leftShift32()` for left shift over 32 bit values https://github.com/o1-labs/o1js/pull/1259
- `Gadgets.divMod32()` division modulo 2^32 that returns the remainder and quotient of the operation https://github.com/o1-labs/o1js/pull/1259
- `Gadgets.rangeCheck32()` range check for 32 bit values https://github.com/o1-labs/o1js/pull/1259
- `Gadgets.addMod32()` addition modulo 2^32 https://github.com/o1-labs/o1js/pull/1259
- Expose new bitwise gadgets on `UInt32` and `UInt64` https://github.com/o1-labs/o1js/pull/1259
- bitwise XOR via `{UInt32, UInt64}.xor()`
- bitwise NOT via `{UInt32, UInt64}.not()`
- bitwise ROTATE via `{UInt32, UInt64}.rotate()`
- bitwise LEFTSHIFT via `{UInt32, UInt64}.leftShift()`
- bitwise RIGHTSHIFT via `{UInt32, UInt64}.rightShift()`
- bitwise AND via `{UInt32, UInt64}.and()`
- Example for using actions to store a map data structure https://github.com/o1-labs/o1js/pull/1300
- `Provable.constraintSystem()` and `{ZkProgram,SmartContract}.analyzeMethods()` return a `summary()` method to return a summary of the constraints used by a method https://github.com/o1-labs/o1js/pull/1007

### Fixed

- Fix stack overflows when calling provable methods with large inputs https://github.com/o1-labs/o1js/pull/1334
- Fix `Local.setProofsEnabled()` which would not get picked up by `deploy()` https://github.com/o1-labs/o1js/pull/1330
- Remove usage of private class fields in core types like `Field`, for better type compatibility between different o1js versions https://github.com/o1-labs/o1js/pull/1319

## [0.15.0](https://github.com/o1-labs/o1js/compare/1ad7333e9e...7acf19d0d)

### Breaking changes

- `ZkProgram.compile()` now returns the verification key and its hash, to be consistent with `SmartContract.compile()` https://github.com/o1-labs/o1js/pull/1292 [@rpanic](https://github.com/rpanic)

### Added

- **Foreign field arithmetic** exposed through the `createForeignField()` class factory https://github.com/o1-labs/snarkyjs/pull/985
- `Crypto` namespace which exposes elliptic curve and finite field arithmetic on bigints, as well as example curve parameters https://github.com/o1-labs/o1js/pull/1240
- `Gadgets.ForeignField.assertMul()` for efficiently constraining products of sums in non-native arithmetic https://github.com/o1-labs/o1js/pull/1262
- `Unconstrained` for safely maintaining unconstrained values in provable code https://github.com/o1-labs/o1js/pull/1262
- `Gadgets.rangeCheck8()` to assert that a value fits in 8 bits https://github.com/o1-labs/o1js/pull/1288

### Changed

- Change precondition APIs to use "require" instead of "assert" as the verb, to distinguish them from provable assertions. [@LuffySama-Dev](https://github.com/LuffySama-Dev)
- `this.x.getAndAssertEquals()` is now `this.x.getAndRequireEquals()` https://github.com/o1-labs/o1js/pull/1263
- `this.x.assertEquals(x)` is now `this.x.requireEquals(x)` https://github.com/o1-labs/o1js/pull/1263
- `this.account.x.getAndAssertEquals(x)` is now `this.account.x.requireEquals(x)` https://github.com/o1-labs/o1js/pull/1265
- `this.account.x.assertBetween()` is now `this.account.x.requireBetween()` https://github.com/o1-labs/o1js/pull/1265
- `this.network.x.getAndAssertEquals()` is now `this.network.x.getAndRequireEquals()` https://github.com/o1-labs/o1js/pull/1265
- `Provable.constraintSystem()` and `{ZkProgram,SmartContract}.analyzeMethods()` return a `print()` method for pretty-printing the constraint system https://github.com/o1-labs/o1js/pull/1240

### Fixed

- Fix missing recursive verification of proofs in smart contracts https://github.com/o1-labs/o1js/pull/1302

## [0.14.2](https://github.com/o1-labs/o1js/compare/26363465d...1ad7333e9e)

### Breaking changes

- Change return signature of `ZkProgram.analyzeMethods()` to be a keyed object https://github.com/o1-labs/o1js/pull/1223

### Added

- Provable non-native field arithmetic:
- `Gadgets.ForeignField.{add, sub, sumchain}()` for addition and subtraction https://github.com/o1-labs/o1js/pull/1220
- `Gadgets.ForeignField.{mul, inv, div}()` for multiplication and division https://github.com/o1-labs/o1js/pull/1223
- Comprehensive internal testing of constraint system layouts generated by new gadgets https://github.com/o1-labs/o1js/pull/1241 https://github.com/o1-labs/o1js/pull/1220

### Changed

- `Lightnet` namespace API updates with added `listAcquiredKeyPairs()` method https://github.com/o1-labs/o1js/pull/1256
- Expose raw provable methods of a `ZkProgram` on `zkProgram.rawMethods` https://github.com/o1-labs/o1js/pull/1241
- Reduce number of constraints needed by `rotate()`, `leftShift()` and, `rightShift()` gadgets https://github.com/o1-labs/o1js/pull/1201

### Fixed

- Add a parameter to `checkZkappTransaction` for block length to check for transaction inclusion. This fixes a case where `Transaction.wait()` only checked the latest block, which led to an error once the transaction was included in a block that was not the latest. https://github.com/o1-labs/o1js/pull/1239

## [0.14.1](https://github.com/o1-labs/o1js/compare/e8e7510e1...26363465d)

### Added

- `Gadgets.not()`, new provable method to support bitwise not. https://github.com/o1-labs/o1js/pull/1198
- `Gadgets.leftShift() / Gadgets.rightShift()`, new provable methods to support bitwise shifting. https://github.com/o1-labs/o1js/pull/1194
- `Gadgets.and()`, new provable method to support bitwise and. https://github.com/o1-labs/o1js/pull/1193
- `Gadgets.multiRangeCheck()` and `Gadgets.compactMultiRangeCheck()`, two building blocks for non-native arithmetic with bigints of size up to 264 bits. https://github.com/o1-labs/o1js/pull/1216

### Fixed

- Removed array reversal of fetched actions, since they are returned in the correct order. https://github.com/o1-labs/o1js/pull/1258

## [0.14.0](https://github.com/o1-labs/o1js/compare/045faa7...e8e7510e1)

### Breaking changes

- Constraint optimizations in Field methods and core crypto changes break all verification keys https://github.com/o1-labs/o1js/pull/1171 https://github.com/o1-labs/o1js/pull/1178

### Changed

- `ZkProgram` has moved out of the `Experimental` namespace and is now available as a top-level import directly. `Experimental.ZkProgram` has been deprecated.
- `ZkProgram` gets a new input argument `name: string` which is required in the non-experimental API. The name is used to identify a ZkProgram when caching prover keys. https://github.com/o1-labs/o1js/pull/1200

### Added

- `Lightnet` namespace to interact with the account manager provided by the [lightnet Mina network](https://hub.docker.com/r/o1labs/mina-local-network) https://github.com/o1-labs/o1js/pull/1167
- Internal support for several custom gates (range check, bitwise operations, foreign field operations) and lookup tables https://github.com/o1-labs/o1js/pull/1176
- `Gadgets.rangeCheck64()`, new provable method to do efficient 64-bit range checks using lookup tables https://github.com/o1-labs/o1js/pull/1181
- `Gadgets.rotate()`, new provable method to support bitwise rotation for native field elements. https://github.com/o1-labs/o1js/pull/1182
- `Gadgets.xor()`, new provable method to support bitwise xor for native field elements. https://github.com/o1-labs/o1js/pull/1177
- `Proof.dummy()` to create dummy proofs https://github.com/o1-labs/o1js/pull/1188
- You can use this to write ZkPrograms that handle the base case and the inductive case in the same method.

### Changed

## [Unreleased](https://github.com/o1-labs/o1js/compare/045faa7...HEAD)
- Use cached prover keys in `compile()` when running in Node.js https://github.com/o1-labs/o1js/pull/1187
- Caching is configurable by passing a custom `Cache` (new export) to `compile()`
- By default, prover keys are stored in an OS-dependent cache directory; `~/.cache/pickles` on Mac and Linux
- Use cached setup points (SRS and Lagrange bases) when running in Node.js https://github.com/o1-labs/o1js/pull/1197
- Also, speed up SRS generation by using multiple threads
- Together with caching of prover keys, this speeds up compilation time by roughly
- **86%** when everything is cached
- **34%** when nothing is cached

## [0.13.1](https://github.com/o1-labs/o1js/compare/c2f392fe5...045faa7)

Expand All @@ -31,6 +162,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm

- Improve prover performance by ~25% https://github.com/o1-labs/o1js/pull/1092
- Change internal representation of field elements to be JS bigint instead of Uint8Array
- Consolidate internal framework for testing equivalence of two implementations

## [0.13.0](https://github.com/o1-labs/o1js/compare/fbd4b2717...c2f392fe5)

Expand Down
1 change: 1 addition & 0 deletions CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/src/lib/gadgets @o1-labs/crypto-eng-reviewers @mitschabaude
Loading