You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,9 +19,17 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
19
19
20
20
### Added
21
21
-`setFee` and `setFeePerSnarkCost` for `Transaction` and `PendingTransaction`https://github.com/o1-labs/o1js/pull/1968
22
+
- Doc comments for various ZkProgram methods https://github.com/o1-labs/o1js/pull/1974
23
+
-`MerkleList.popOption()` for popping the last element and also learning if there was one https://github.com/o1-labs/o1js/pull/1997
22
24
23
25
### Changed
24
26
- Sort order for actions now includes the transaction sequence number and the exact account id sequence https://github.com/o1-labs/o1js/pull/1917
27
+
- Updated typedoc version for generating docs https://github.com/o1-labs/o1js/pull/1973
28
+
29
+
### Fixed
30
+
31
+
- Fix behavior of `initializeBindings()` when called concurrently, to improve error messages in common failure scenarios https://github.com/o1-labs/o1js/pull/1996
32
+
- Fix `ZkProgram` public input/output types https://github.com/o1-labs/o1js/pull/1998
Copy file name to clipboardExpand all lines: README-dev.md
+16Lines changed: 16 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -241,3 +241,19 @@ To facilitate this process, use the provided script named `run-debug`. To use th
241
241
This script initializes a Node.js process with the `--inspect-brk` flag that starts the Node.js inspector and breaks before the user script starts (i.e., it pauses execution until a debugger is attached). The `--enable-source-maps` flag ensures that source maps are used to allow easy debugging of o1js code directly.
242
242
243
243
After the Node.js process is running, open the Chrome browser and navigate to `chrome://inspect` to attach the Chrome Debugger to the Node.js process. You can set breakpoints, inspect variables, and profile the performance of your zkApp or o1js. For more information on using the Chrome Debugger, see the [DevTools documentation](https://developer.chrome.com/docs/devtools/).
244
+
245
+
### Debugging within the SDK
246
+
To debug a call into the SDK, you can link your local copy of the SDK with `npm link`. After that, you'll be able to add log statements, set breakpoints, and make code changes. Within the SDK, run:
247
+
```sh
248
+
npm run link
249
+
```
250
+
Then in your zkApp codebase, run:
251
+
```sh
252
+
npm link o1js
253
+
```
254
+
255
+
#### Logging from OCaml
256
+
If you need to debug a call into the OCaml code, the process is a little more complicated. The OCaml is compiled into JavaScript with js_of_ocaml during `npm run build:update-bindings`, so you'll need to add your logs into the OCaml code and rebuild the bindings to see them. Logging from OCaml in a way that will reflect as JS `console.log`s in the compiled code can be done like this:
Copy file name to clipboardExpand all lines: README-nix.md
+16-19Lines changed: 16 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -81,8 +81,7 @@ cd o1js
81
81
82
82
From a new shell, go to `{REPO_PATH}/o1js` and from there execute `./pin.sh` to
83
83
update the submodules and add the flakes entries. Then, you can open a Nix shell
84
-
with all the dependencies required executing `nix develop o1js#default`, or
85
-
alternatively `nix develop o1js#mina-shell` (which works better from MacOS).
84
+
with all the dependencies required executing `nix develop o1js#default`.
86
85
87
86
```console
88
87
./pin.sh
@@ -92,21 +91,7 @@ nix develop o1js#default
92
91
The first time you run this command, you can expect it to take hours (or even a full day) to complete. Then, you will observe that the current devshell becomes a Nix shell with the right
93
92
configuration for `o1js` and `mina`.
94
93
95
-
In order to make sure that the bindings will be regenerated in the case that you
96
-
are modifying them, make sure to comment out the conditionals in
97
-
`src/mina/src/lib/crypto/kimchi_bindings/js/node_js/build.sh` and `src/mina/src/lib/crypto/kimchi_bindings/js/web/build.sh` locally. That's because otherwise the
98
-
PLONK_WASM_WEB check prevents `proof-systems` from compiling with each build.
rustup run nightly-2023-09-01 wasm-pack build --target web --out-dir ../js/web ../../wasm -- -Z build-std=panic_abort,std
104
-
else
105
-
cp "$PLONK_WASM_WEB"/* -R .
106
-
fi
107
-
```
108
-
109
-
Then, you can build o1js and update the bindings.
94
+
From within the shell, you can build o1js and update the bindings.
110
95
111
96
```console
112
97
npm run build
@@ -152,7 +137,7 @@ The second flag increases the default number of jobs being 1, so that rebuilding
152
137
153
138
The last two lines tell Nix to use the Mina Foundation's cache whenever possible, which should as well speed things up when building code that has been build in Mina's CI before.
154
139
155
-
## Common errors
140
+
## Common Issues
156
141
157
142
Errors while using Nix have been reported. This section collects a set of common
158
143
errors and proposes fixes for them.
@@ -305,4 +290,16 @@ Then, the error message would still contain old directories.
305
290
306
291
#### Fix
307
292
308
-
Create a new environment for Nix and start from scratch. In particular, run the garbage collector which will remove old dependencies.
293
+
Rerun `pin.sh` and `src/mina/nix/pin.sh`.
294
+
295
+
### Changes to nix flakes aren't taking effect
296
+
On MacOS, nix may ignore changes to files when nix commands are run and reuse the flake cached in its registry. Running commands like `nix develop o1js` and `nix run o1js#update-bindings` will reuse the cached version of the flake. As a result:
297
+
- The devshell could be missing newly added dependencies.
298
+
- Builds executed directly with `nix run` could be generated from old source files.
299
+
#### Fix
300
+
There are two ways to ensure Nix recognizes flake changes:
301
+
- Rerun `pin.sh` to force an update to the registry, then run your command.
302
+
- Reference the flake by its directory path rather than its registry name. This forces Nix to use the current contents of the directory:
0 commit comments