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

[develop] Add mina as a git submodule for o1js #1318

Merged
merged 24 commits into from
Dec 19, 2023
Merged
Changes from 1 commit
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
0a823ec
feat: add ocaml build directory to gitignore
MartinMinkov Sep 28, 2023
0fe99ff
feat: add dune-project file to build bindings from o1js root directory
MartinMinkov Sep 28, 2023
9864ffb
chore(bindings): update subproject commit
MartinMinkov Oct 5, 2023
3fcaa65
fix(package.json): update 'make' script to use local script
MartinMinkov Oct 27, 2023
b278770
fix(tsconfig.json): add './src/mina' to exclude list to prevent unnec…
MartinMinkov Oct 27, 2023
750451f
feat(jest.config.js): add 'src/mina/' to modulePathIgnorePatterns to …
MartinMinkov Oct 27, 2023
0c24203
feat(run-jest-tests.sh): add condition to exclude 'src/mina' from jes…
MartinMinkov Oct 29, 2023
db7ccba
feat(README-dev): first draft
MartinMinkov Oct 30, 2023
96d0734
docs(README-dev.md): clarify bindings
MartinMinkov Nov 13, 2023
7e9529c
refactor(run-jest-tests.sh): remove condition excluding 'src/mina' fr…
MartinMinkov Nov 14, 2023
a7aec5a
refactor: rename npm script 'make' to 'build:bindings' in package.jso…
MartinMinkov Nov 14, 2023
11d8a64
fix(.prettierignore): update path for kimchi js files to reflect new …
MartinMinkov Nov 14, 2023
b6ecded
docs(README-dev.md): update build instructions and add details about …
MartinMinkov Nov 15, 2023
ccc927b
fix(README-dev.md): specify info for installing deps
MartinMinkov Dec 13, 2023
f3c5a81
feat(README-dev.md): spelling mistake
MartinMinkov Dec 13, 2023
74e2d59
Update README-dev.md
MartinMinkov Dec 13, 2023
f410f1d
refactor(package.json): streamline script commands for better readabi…
MartinMinkov Dec 13, 2023
9b6561a
feat(mina): add new submodule 'mina' to enhance project functionality
MartinMinkov Dec 13, 2023
acb2f8d
refactor(package.json): remove merge conflict markers and redundant s…
MartinMinkov Dec 13, 2023
702042e
Merge branch 'develop' into feat/add-mina-submodule-develop
MartinMinkov Dec 13, 2023
097fb2e
chore(bindings, mina): update submodules to latest commits for up-to-…
MartinMinkov Dec 13, 2023
78452c4
Update package.json
MartinMinkov Dec 14, 2023
0977ace
style(run-jest-tests.sh): add newline at end of file to comply with P…
MartinMinkov Dec 14, 2023
244924a
Revert "Update package.json"
MartinMinkov Dec 14, 2023
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
Prev Previous commit
Next Next commit
docs(README-dev.md): clarify bindings
MartinMinkov committed Dec 13, 2023
commit 96d07348300639ed599db7fd5afd402950cd55fb
6 changes: 3 additions & 3 deletions README-dev.md
Original file line number Diff line number Diff line change
@@ -43,7 +43,7 @@ This will compile the TypeScript source files, making it ready for use. The comp

If you need to regenerate the OCaml and WebAssembly artifacts, you can do so within the o1js repo. The [bindings](https://github.com/o1-labs/o1js-bindings) and [Mina](https://github.com/MinaProtocol/mina) repos are both submodules of o1js, so you can build them from within the o1js repo.

o1js depends on OCaml code that is transplied to JavaScript using [Js_of_ocaml](https://github.com/ocsigen/js_of_ocaml), and Rust code that is transpiled to WebAssembly using [wasm-pack](https://github.com/rustwasm/wasm-pack). These artifacts allow o1js to call into [snarky](https://github.com/o1-labs/snarky) and [Kimchi](https://github.com/o1-labs/proof-systems) to write zk-SNARKs and zkApps.
o1js depends on OCaml code that is transplied to JavaScript using [Js_of_ocaml](https://github.com/ocsigen/js_of_ocaml), and Rust code that is transpiled to WebAssembly using [wasm-pack](https://github.com/rustwasm/wasm-pack). These artifacts allow o1js to call into [Pickles](https://github.com/o1-labs/snarkyhttps://github.com/MinaProtocol/mina/blob/develop/src/lib/pickles/README.md), [snarky](https://github.com/o1-labs/snarky), and [Kimchi](https://github.com/o1-labs/proof-systems) to write zk-SNARKs and zkApps.

The compiled artifacts are stored under `src/bindings/compiled`, and are version-controlled to simplify the build process for end-users.

@@ -57,11 +57,11 @@ This will build the OCaml and Rust artifacts, and copy them to the `src/bindings

### OCaml Bindings

The OCaml bindings are located under `src/bindings`, and they specify all of the low-level OCaml code that is exposed to o1js. See the [OCaml Bindings README](https://github.com/o1-labs/o1js-bindings/blob/main/README.md) for more information.
o1js depends on Pickles, snarky, and parts of the Mina transaction logic, all of which are compiled to JavaScript and stored as artifacts to be used by o1js natively. The OCaml bindings are located under `src/bindings`. See the [OCaml Bindings README](https://github.com/o1-labs/o1js-bindings/blob/main/README.md) for more information.

### WebAssembly Bindings

The WebAssembly bindings are built using Rust's `wasm-pack`. Ensure you have it installed and configured correctly.
o1js additionally depends on Kimchi, which is compiled to WebAssembly. Kimchi is located in the Mina repo, under `src/mina`. See the [Kimchi README](https://github.com/o1-labs/proof-systems/blob/master/README.md) for more information.

## Development