@aztec/bb.js 0.0.1-alpha.7 → 0.0.1-fake-ceab37513c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -32
- package/package.json +56 -45
- package/src/barretenberg/__snapshots__/pedersen.test.ts.snap +156 -0
- package/src/barretenberg/__snapshots__/poseidon.test.ts.snap +40 -0
- package/src/barretenberg/backend.ts +378 -0
- package/src/barretenberg/blake2s.test.ts +70 -0
- package/src/{barretenberg_api → barretenberg}/common.test.ts +7 -5
- package/src/barretenberg/index.ts +204 -0
- package/src/barretenberg/pedersen.test.ts +62 -0
- package/src/barretenberg/poseidon.test.ts +39 -0
- package/src/barretenberg_api/index.ts +982 -415
- package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +138 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts +11 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.ts +13 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +21 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts +19 -0
- package/src/{barretenberg_binder/heap_allocator_sync.ts → barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts} +20 -17
- package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +167 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts +11 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts +13 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +21 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts +19 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/index.ts +47 -0
- package/src/barretenberg_wasm/fetch_code/browser/barretenberg-threads.ts +3 -0
- package/src/barretenberg_wasm/fetch_code/browser/barretenberg.ts +3 -0
- package/src/barretenberg_wasm/fetch_code/browser/index.ts +34 -0
- package/src/barretenberg_wasm/fetch_code/index.ts +1 -0
- package/src/barretenberg_wasm/fetch_code/node/index.ts +34 -0
- package/src/barretenberg_wasm/fetch_code/wasm-module.d.ts +4 -0
- package/src/barretenberg_wasm/helpers/browser/index.ts +47 -0
- package/src/barretenberg_wasm/helpers/index.ts +1 -0
- package/src/barretenberg_wasm/{node → helpers/node}/index.ts +24 -15
- package/src/barretenberg_wasm/index.test.ts +45 -0
- package/src/barretenberg_wasm/index.ts +22 -1
- package/src/benchmark/index.ts +26 -0
- package/src/benchmark/timer.ts +45 -0
- package/src/bigint-array/index.ts +39 -17
- package/src/bindgen/index.ts +2 -2
- package/src/bindgen/mappings.ts +3 -2
- package/src/bindgen/typescript.ts +50 -25
- package/src/cbind/README.md +1 -0
- package/src/cbind/generate.ts +89 -0
- package/src/cbind/schema_compiler.ts +833 -0
- package/src/crs/browser/cached_net_crs.ts +41 -1
- package/src/crs/browser/index.ts +1 -1
- package/src/crs/index.ts +1 -1
- package/src/crs/net_crs.ts +114 -19
- package/src/crs/node/index.ts +96 -26
- package/src/index.html +1 -1
- package/src/index.ts +13 -5
- package/src/log/browser/index.ts +35 -0
- package/src/log/index.ts +1 -0
- package/src/log/node/index.ts +52 -0
- package/src/log/types.ts +6 -0
- package/src/main.ts +391 -168
- package/src/proof/index.ts +94 -0
- package/src/random/browser/index.ts +1 -1
- package/src/retry/index.ts +50 -0
- package/src/serialize/buffer_reader.ts +4 -1
- package/src/types/fields.ts +46 -18
- package/src/types/point.ts +4 -1
- package/dest/async_map/index.d.ts +0 -10
- package/dest/async_map/index.d.ts.map +0 -1
- package/dest/async_map/index.js +0 -16
- package/dest/barretenberg-threads.wasm +0 -0
- package/dest/barretenberg.wasm +0 -0
- package/dest/barretenberg_api/blake2s.test.d.ts +0 -2
- package/dest/barretenberg_api/blake2s.test.d.ts.map +0 -1
- package/dest/barretenberg_api/blake2s.test.js +0 -30
- package/dest/barretenberg_api/common.test.d.ts +0 -2
- package/dest/barretenberg_api/common.test.d.ts.map +0 -1
- package/dest/barretenberg_api/common.test.js +0 -18
- package/dest/barretenberg_api/index.d.ts +0 -103
- package/dest/barretenberg_api/index.d.ts.map +0 -1
- package/dest/barretenberg_api/index.js +0 -379
- package/dest/barretenberg_api/pedersen.test.d.ts +0 -2
- package/dest/barretenberg_api/pedersen.test.d.ts.map +0 -1
- package/dest/barretenberg_api/pedersen.test.js +0 -69
- package/dest/barretenberg_api/schnorr.test.d.ts +0 -2
- package/dest/barretenberg_api/schnorr.test.d.ts.map +0 -1
- package/dest/barretenberg_api/schnorr.test.js +0 -113
- package/dest/barretenberg_binder/heap_allocator.d.ts +0 -22
- package/dest/barretenberg_binder/heap_allocator.d.ts.map +0 -1
- package/dest/barretenberg_binder/heap_allocator.js +0 -59
- package/dest/barretenberg_binder/heap_allocator_sync.d.ts +0 -22
- package/dest/barretenberg_binder/heap_allocator_sync.d.ts.map +0 -1
- package/dest/barretenberg_binder/heap_allocator_sync.js +0 -58
- package/dest/barretenberg_binder/index.d.ts +0 -32
- package/dest/barretenberg_binder/index.d.ts.map +0 -1
- package/dest/barretenberg_binder/index.js +0 -73
- package/dest/barretenberg_wasm/barretenberg_wasm.d.ts +0 -50
- package/dest/barretenberg_wasm/barretenberg_wasm.d.ts.map +0 -1
- package/dest/barretenberg_wasm/barretenberg_wasm.js +0 -212
- package/dest/barretenberg_wasm/barretenberg_wasm.test.d.ts +0 -2
- package/dest/barretenberg_wasm/barretenberg_wasm.test.d.ts.map +0 -1
- package/dest/barretenberg_wasm/barretenberg_wasm.test.js +0 -43
- package/dest/barretenberg_wasm/browser/index.d.ts +0 -8
- package/dest/barretenberg_wasm/browser/index.d.ts.map +0 -1
- package/dest/barretenberg_wasm/browser/index.js +0 -26
- package/dest/barretenberg_wasm/browser/worker.d.ts +0 -2
- package/dest/barretenberg_wasm/browser/worker.d.ts.map +0 -1
- package/dest/barretenberg_wasm/browser/worker.js +0 -11
- package/dest/barretenberg_wasm/index.d.ts +0 -2
- package/dest/barretenberg_wasm/index.d.ts.map +0 -1
- package/dest/barretenberg_wasm/index.js +0 -2
- package/dest/barretenberg_wasm/node/index.d.ts +0 -17
- package/dest/barretenberg_wasm/node/index.d.ts.map +0 -1
- package/dest/barretenberg_wasm/node/index.js +0 -40
- package/dest/barretenberg_wasm/node/node_endpoint.d.ts +0 -8
- package/dest/barretenberg_wasm/node/node_endpoint.d.ts.map +0 -1
- package/dest/barretenberg_wasm/node/node_endpoint.js +0 -28
- package/dest/barretenberg_wasm/node/worker.d.ts +0 -2
- package/dest/barretenberg_wasm/node/worker.d.ts.map +0 -1
- package/dest/barretenberg_wasm/node/worker.js +0 -9
- package/dest/barretenberg_wasm.js +0 -2
- package/dest/barretenberg_wasm.js.LICENSE.txt +0 -5
- package/dest/bigint-array/index.d.ts +0 -3
- package/dest/bigint-array/index.d.ts.map +0 -1
- package/dest/bigint-array/index.js +0 -21
- package/dest/bindgen/function_declaration.d.ts +0 -11
- package/dest/bindgen/function_declaration.d.ts.map +0 -1
- package/dest/bindgen/function_declaration.js +0 -2
- package/dest/bindgen/index.d.ts +0 -2
- package/dest/bindgen/index.d.ts.map +0 -1
- package/dest/bindgen/index.js +0 -15
- package/dest/bindgen/mappings.d.ts +0 -4
- package/dest/bindgen/mappings.d.ts.map +0 -1
- package/dest/bindgen/mappings.js +0 -63
- package/dest/bindgen/rust.d.ts +0 -2
- package/dest/bindgen/rust.d.ts.map +0 -1
- package/dest/bindgen/rust.js +0 -43
- package/dest/bindgen/to_camel_case.d.ts +0 -2
- package/dest/bindgen/to_camel_case.d.ts.map +0 -1
- package/dest/bindgen/to_camel_case.js +0 -11
- package/dest/bindgen/typescript.d.ts +0 -2
- package/dest/bindgen/typescript.d.ts.map +0 -1
- package/dest/bindgen/typescript.js +0 -80
- package/dest/crs/browser/cached_net_crs.d.ts +0 -25
- package/dest/crs/browser/cached_net_crs.d.ts.map +0 -1
- package/dest/crs/browser/cached_net_crs.js +0 -54
- package/dest/crs/browser/index.d.ts +0 -2
- package/dest/crs/browser/index.d.ts.map +0 -1
- package/dest/crs/browser/index.js +0 -2
- package/dest/crs/index.d.ts +0 -2
- package/dest/crs/index.d.ts.map +0 -1
- package/dest/crs/index.js +0 -2
- package/dest/crs/net_crs.d.ts +0 -36
- package/dest/crs/net_crs.d.ts.map +0 -1
- package/dest/crs/net_crs.js +0 -59
- package/dest/crs/node/ignition_files_crs.d.ts +0 -37
- package/dest/crs/node/ignition_files_crs.d.ts.map +0 -1
- package/dest/crs/node/ignition_files_crs.js +0 -51
- package/dest/crs/node/index.d.ts +0 -21
- package/dest/crs/node/index.d.ts.map +0 -1
- package/dest/crs/node/index.js +0 -54
- package/dest/examples/simple.rawtest.d.ts +0 -2
- package/dest/examples/simple.rawtest.d.ts.map +0 -1
- package/dest/examples/simple.rawtest.js +0 -29
- package/dest/examples/simple.test.d.ts +0 -2
- package/dest/examples/simple.test.d.ts.map +0 -1
- package/dest/examples/simple.test.js +0 -22
- package/dest/factory/index.d.ts +0 -21
- package/dest/factory/index.d.ts.map +0 -1
- package/dest/factory/index.js +0 -34
- package/dest/index.d.ts +0 -6
- package/dest/index.d.ts.map +0 -1
- package/dest/index.html +0 -1
- package/dest/index.js +0 -6
- package/dest/main.d.ts +0 -10
- package/dest/main.d.ts.map +0 -1
- package/dest/main.js +0 -275
- package/dest/random/browser/index.d.ts +0 -2
- package/dest/random/browser/index.d.ts.map +0 -1
- package/dest/random/browser/index.js +0 -31
- package/dest/random/index.d.ts +0 -2
- package/dest/random/index.d.ts.map +0 -1
- package/dest/random/index.js +0 -2
- package/dest/random/node/index.d.ts +0 -2
- package/dest/random/node/index.d.ts.map +0 -1
- package/dest/random/node/index.js +0 -5
- package/dest/serialize/buffer_reader.d.ts +0 -28
- package/dest/serialize/buffer_reader.d.ts.map +0 -1
- package/dest/serialize/buffer_reader.js +0 -66
- package/dest/serialize/index.d.ts +0 -4
- package/dest/serialize/index.d.ts.map +0 -1
- package/dest/serialize/index.js +0 -4
- package/dest/serialize/output_type.d.ts +0 -11
- package/dest/serialize/output_type.d.ts.map +0 -1
- package/dest/serialize/output_type.js +0 -44
- package/dest/serialize/serialize.d.ts +0 -53
- package/dest/serialize/serialize.d.ts.map +0 -1
- package/dest/serialize/serialize.js +0 -139
- package/dest/simple_test.js +0 -2
- package/dest/simple_test.js.LICENSE.txt +0 -14
- package/dest/types/fields.d.ts +0 -33
- package/dest/types/fields.d.ts.map +0 -1
- package/dest/types/fields.js +0 -86
- package/dest/types/fixed_size_buffer.d.ts +0 -26
- package/dest/types/fixed_size_buffer.d.ts.map +0 -1
- package/dest/types/fixed_size_buffer.js +0 -54
- package/dest/types/index.d.ts +0 -6
- package/dest/types/index.d.ts.map +0 -1
- package/dest/types/index.js +0 -6
- package/dest/types/point.d.ts +0 -17
- package/dest/types/point.d.ts.map +0 -1
- package/dest/types/point.js +0 -32
- package/dest/types/ptr.d.ts +0 -13
- package/dest/types/ptr.d.ts.map +0 -1
- package/dest/types/ptr.js +0 -20
- package/dest/types/raw_buffer.d.ts +0 -3
- package/dest/types/raw_buffer.d.ts.map +0 -1
- package/dest/types/raw_buffer.js +0 -5
- package/src/barretenberg_api/blake2s.test.ts +0 -39
- package/src/barretenberg_api/pedersen.test.ts +0 -84
- package/src/barretenberg_api/schnorr.test.ts +0 -169
- package/src/barretenberg_binder/heap_allocator.ts +0 -62
- package/src/barretenberg_binder/index.ts +0 -76
- package/src/barretenberg_wasm/barretenberg_wasm.test.ts +0 -52
- package/src/barretenberg_wasm/barretenberg_wasm.ts +0 -246
- package/src/barretenberg_wasm/browser/index.ts +0 -32
- package/src/barretenberg_wasm/browser/worker.ts +0 -13
- package/src/barretenberg_wasm/node/worker.ts +0 -10
- package/src/crs/node/ignition_files_crs.ts +0 -60
- package/src/examples/simple.rawtest.ts +0 -37
- package/src/examples/simple.test.ts +0 -27
- package/src/factory/index.ts +0 -36
- /package/src/barretenberg_wasm/{node → helpers/node}/node_endpoint.ts +0 -0
package/README.md
CHANGED
|
@@ -8,22 +8,25 @@ project structures.
|
|
|
8
8
|
Max circuit size is 2^19 gates (524,288). This is due to the underlying WASM 4GB memory limit. This should improve
|
|
9
9
|
with future proving systems, and/or introduction of wasm64.
|
|
10
10
|
|
|
11
|
-
If running from
|
|
11
|
+
If running from node, or within browser where you can set shared memory COOP/COEP headers, multithreading is enabled.
|
|
12
12
|
Note there are two independent WASM builds, one with threading enabled and one without. This is because the shared
|
|
13
13
|
memory flag is set within the WASM itself. If you're running in a context where you can't have shared memory, we want
|
|
14
14
|
to fallback to single threaded performance.
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
Table represents time in ms to build circuit and proof for each test on n threads.
|
|
17
|
+
Ignores proving key construction.
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
19
|
+
```
|
|
20
|
+
+--------------------------+------------+---------------+-----------+-----------+-----------+-----------+-----------+
|
|
21
|
+
| Test | Gate Count | Subgroup Size | 1 | 4 | 16 | 32 | 64 |
|
|
22
|
+
+--------------------------+------------+---------------+-----------+-----------+-----------+-----------+-----------+
|
|
23
|
+
| sha256 | 38799 | 65536 | 18764 | 5116 | 1854 | 1524 | 1635 |
|
|
24
|
+
| ecdsa_secp256k1 | 41049 | 65536 | 19129 | 5595 | 2255 | 2097 | 2166 |
|
|
25
|
+
| ecdsa_secp256r1 | 67331 | 131072 | 38815 | 11257 | 4744 | 3633 | 3702 |
|
|
26
|
+
| schnorr | 33740 | 65536 | 18649 | 5244 | 2019 | 1498 | 1702 |
|
|
27
|
+
| double_verify_proof | 505513 | 524288 | 149652 | 45702 | 20811 | 16979 | 15679 |
|
|
28
|
+
+--------------------------+------------+---------------+-----------+-----------+-----------+-----------+-----------+
|
|
29
|
+
```
|
|
27
30
|
|
|
28
31
|
## Using as a standalone binary
|
|
29
32
|
|
|
@@ -32,10 +35,10 @@ Witness generation phase is not multithreaded, and an interesting 512k circuit c
|
|
|
32
35
|
To install the package globally for running as a terminal application:
|
|
33
36
|
|
|
34
37
|
```
|
|
35
|
-
npm install -g @aztec/bb.js
|
|
38
|
+
npm install -g @aztec/bb.js
|
|
36
39
|
```
|
|
37
40
|
|
|
38
|
-
|
|
41
|
+
Assuming `$(npm prefix -g)/bin` is in your `PATH`, you can now run the command `bb.js`.
|
|
39
42
|
|
|
40
43
|
### Usage
|
|
41
44
|
|
|
@@ -57,7 +60,7 @@ Commands:
|
|
|
57
60
|
contract [options] Output solidity verification key contract.
|
|
58
61
|
write_vk [options] Output verification key.
|
|
59
62
|
proof_as_fields [options] Return the proof as fields elements
|
|
60
|
-
vk_as_fields [options] Return the
|
|
63
|
+
vk_as_fields [options] Return the verification key represented as field elements. Also return the verification key hash.
|
|
61
64
|
help [command] display help for command
|
|
62
65
|
```
|
|
63
66
|
|
|
@@ -68,53 +71,87 @@ Commands:
|
|
|
68
71
|
To install as a package to be used as a library:
|
|
69
72
|
|
|
70
73
|
```
|
|
71
|
-
npm install @aztec/bb.js
|
|
74
|
+
npm install @aztec/bb.js
|
|
72
75
|
```
|
|
73
76
|
|
|
74
77
|
or with yarn
|
|
75
78
|
|
|
76
79
|
```
|
|
77
|
-
yarn add @aztec/bb.js
|
|
80
|
+
yarn add @aztec/bb.js
|
|
78
81
|
```
|
|
79
82
|
|
|
80
83
|
### Usage
|
|
81
84
|
|
|
82
|
-
To create
|
|
85
|
+
To create the API and do a blake2s hash:
|
|
83
86
|
|
|
84
87
|
```typescript
|
|
85
|
-
|
|
86
|
-
|
|
88
|
+
import { Crs, Barretenberg, RawBuffer } from './index.js';
|
|
89
|
+
|
|
90
|
+
const api = await Barretenberg.new(/* num_threads */ { threads: 1 });
|
|
87
91
|
const input = Buffer.from('hello world!');
|
|
88
92
|
const result = await api.blake2s(input);
|
|
89
93
|
await api.destroy();
|
|
90
94
|
```
|
|
91
95
|
|
|
92
|
-
All methods are asynchronous. If no threads are specified, will default to number of cores with a maximum of
|
|
96
|
+
All methods are asynchronous. If no threads are specified, will default to number of cores with a maximum of 32.
|
|
93
97
|
If `1` is specified, fallback to non multi-threaded wasm that doesn't need shared memory.
|
|
94
98
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
99
|
+
See `src/main.ts` for larger example of how to use.
|
|
100
|
+
|
|
101
|
+
### Browser Context
|
|
102
|
+
|
|
103
|
+
It's recommended to use a dynamic import. This allows the developer to pick the time at which the package (several MB
|
|
104
|
+
in size) is loaded and keeps page load times responsive.
|
|
98
105
|
|
|
99
106
|
```typescript
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
107
|
+
const { Barretenberg, RawBuffer, Crs } = await import('@aztec/bb.js');
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Multithreading in browser
|
|
111
|
+
|
|
112
|
+
Multithreading in bb.js requires [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) to be enabled. It is only enabled in browsers if COOP and COEP headers are set by the server. Read more [here](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer#security_requirements).
|
|
113
|
+
|
|
114
|
+
You can configure your server to set these headers for pages that perform proof generation. See [this example project](https://github.com/saleel/gitclaim/blob/main/app/next.config.mjs#L48-L67) that implements multi-threaded browser proving, which contains the below Next.js config:
|
|
115
|
+
|
|
116
|
+
```typescript
|
|
117
|
+
{
|
|
118
|
+
...
|
|
119
|
+
async headers() {
|
|
120
|
+
return [
|
|
121
|
+
{
|
|
122
|
+
source: '/:path*',
|
|
123
|
+
headers: [
|
|
124
|
+
{ key: 'Cross-Origin-Embedder-Policy', value: 'require-corp' },
|
|
125
|
+
{ key: 'Cross-Origin-Opener-Policy', value: 'same-origin' },
|
|
126
|
+
],
|
|
127
|
+
},
|
|
128
|
+
];
|
|
129
|
+
},
|
|
130
|
+
}
|
|
105
131
|
```
|
|
106
132
|
|
|
107
|
-
|
|
133
|
+
Note that adding COOP and COEP headers will disable loading of external scripts, which might be required by your application.
|
|
134
|
+
|
|
135
|
+
You can enable these headers for specific pages that perform proof generation, but this may be challenging, especially in single-page applications. One workaround is to move the proof generation to a separate page, load it in an invisible iframe within your main application, and then use `postMessage` to communicate between the pages for generating proofs.
|
|
108
136
|
|
|
109
137
|
## Development
|
|
110
138
|
|
|
111
139
|
Create a symlink to the root script `bb.js-dev` in your path. You can now run the current state of the code from
|
|
112
140
|
anywhere in your filesystem with no `yarn build` required.
|
|
113
141
|
|
|
114
|
-
If you change the C++ code run `yarn build:wasm
|
|
142
|
+
If you change the C++ code run `yarn build:wasm` to rebuild the webassembly.
|
|
115
143
|
|
|
116
144
|
To run the tests run `yarn test`.
|
|
117
145
|
|
|
118
|
-
To run a continuous "stress test" run `yarn simple_test` to do 10 full pk/proof/vk iterations.
|
|
146
|
+
To run a continuous "stress test" run `yarn simple_test` to do 10 full pk/proof/vk iterations. This is useful for
|
|
147
|
+
inspecting memory growth as we continuously use the library.
|
|
148
|
+
|
|
149
|
+
## Debugging
|
|
150
|
+
|
|
151
|
+
Got an unhelpful stack trace in wasm? Run:
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
NO_STRIP=1 ./script/build_wasm.sh
|
|
155
|
+
```
|
|
119
156
|
|
|
120
|
-
|
|
157
|
+
This will drop unstripped wasms into the dest folder. Run your test again to get a trace.
|
package/package.json
CHANGED
|
@@ -1,83 +1,94 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/bb.js",
|
|
3
|
-
"
|
|
3
|
+
"packageManager": "yarn@4.5.2",
|
|
4
|
+
"version": "0.0.1-fake-ceab37513c",
|
|
5
|
+
"homepage": "https://github.com/AztecProtocol/aztec-packages/tree/master/barretenberg/ts",
|
|
4
6
|
"license": "MIT",
|
|
5
7
|
"type": "module",
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
"
|
|
9
|
-
|
|
8
|
+
"types": "./dest/node/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"require": "./dest/node-cjs/index.js",
|
|
12
|
+
"browser": "./dest/browser/index.js",
|
|
13
|
+
"default": "./dest/node/index.js"
|
|
14
|
+
}
|
|
10
15
|
},
|
|
11
|
-
"bin": "
|
|
16
|
+
"bin": "dest/node/main.js",
|
|
12
17
|
"files": [
|
|
13
18
|
"src/",
|
|
14
19
|
"dest/",
|
|
20
|
+
"cjs-entry/",
|
|
15
21
|
"README.md"
|
|
16
22
|
],
|
|
17
23
|
"scripts": {
|
|
18
|
-
"clean": "rm -rf ./dest .tsbuildinfo",
|
|
19
|
-
"build": "yarn clean && yarn build:wasm && yarn build:
|
|
20
|
-
"build:
|
|
21
|
-
"build:
|
|
22
|
-
"build:
|
|
24
|
+
"clean": "rm -rf ./dest .tsbuildinfo .tsbuildinfo.cjs ./src/cbind/generated",
|
|
25
|
+
"build": "yarn clean && yarn generate && yarn build:wasm && yarn build:esm && yarn build:cjs && yarn build:browser",
|
|
26
|
+
"build:wasm": "./scripts/build_wasm.sh",
|
|
27
|
+
"build:esm": "tsc -b tsconfig.esm.json && chmod +x ./dest/node/main.js",
|
|
28
|
+
"build:cjs": "tsc -b tsconfig.cjs.json && ./scripts/cjs_postprocess.sh",
|
|
29
|
+
"build:browser": "tsc -b tsconfig.browser.json && ./scripts/browser_postprocess.sh",
|
|
23
30
|
"build:bindings": "cd .. && ./scripts/bindgen.sh",
|
|
24
|
-
"
|
|
31
|
+
"generate": "NODE_OPTIONS='--loader ts-node/esm' NODE_NO_WARNINGS=1 ts-node src/cbind/generate.ts",
|
|
25
32
|
"formatting": "prettier --check ./src && eslint --max-warnings 0 ./src",
|
|
26
33
|
"formatting:fix": "prettier -w ./src",
|
|
27
|
-
"test": "
|
|
28
|
-
"test:
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"simple_test": "NODE_OPTIONS='--loader ts-node/esm' NODE_NO_WARNINGS=1 node ./src/examples/simple.rawtest.ts",
|
|
32
|
-
"prepack": "yarn build",
|
|
33
|
-
"deploy": "npm publish --tag alpha --access public"
|
|
34
|
+
"test": "NODE_OPTIONS='--loader ts-node/esm' NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --no-cache --passWithNoTests",
|
|
35
|
+
"test:debug": "NODE_NO_WARNINGS=1 node --inspect-brk=0.0.0.0 --experimental-vm-modules ./node_modules/.bin/jest --no-cache --passWithNoTests --runInBand",
|
|
36
|
+
"simple_test": "NODE_NO_WARNINGS=1 node ./src/examples/simple.rawtest.ts",
|
|
37
|
+
"deploy": "npm publish --access public"
|
|
34
38
|
},
|
|
35
39
|
"jest": {
|
|
36
40
|
"preset": "ts-jest/presets/default-esm",
|
|
37
41
|
"transform": {
|
|
38
|
-
"
|
|
39
|
-
"
|
|
42
|
+
"^.+\\.tsx?$": [
|
|
43
|
+
"@swc/jest",
|
|
40
44
|
{
|
|
41
|
-
"
|
|
45
|
+
"jsc": {
|
|
46
|
+
"parser": {
|
|
47
|
+
"syntax": "typescript",
|
|
48
|
+
"decorators": true
|
|
49
|
+
},
|
|
50
|
+
"transform": {
|
|
51
|
+
"decoratorVersion": "2022-03"
|
|
52
|
+
}
|
|
53
|
+
}
|
|
42
54
|
}
|
|
43
55
|
]
|
|
44
56
|
},
|
|
45
57
|
"moduleNameMapper": {
|
|
46
58
|
"^(\\.{1,2}/.*)\\.js$": "$1"
|
|
47
59
|
},
|
|
60
|
+
"extensionsToTreatAsEsm": [
|
|
61
|
+
".ts"
|
|
62
|
+
],
|
|
48
63
|
"testRegex": "./src/.*\\.test\\.ts$",
|
|
49
64
|
"rootDir": "./src"
|
|
50
65
|
},
|
|
51
66
|
"dependencies": {
|
|
52
67
|
"comlink": "^4.4.1",
|
|
53
|
-
"commander": "^
|
|
54
|
-
"
|
|
55
|
-
"
|
|
68
|
+
"commander": "^12.1.0",
|
|
69
|
+
"idb-keyval": "^6.2.1",
|
|
70
|
+
"msgpackr": "^1.11.2",
|
|
71
|
+
"pako": "^2.1.0",
|
|
72
|
+
"pino": "^9.5.0",
|
|
56
73
|
"tslib": "^2.4.0"
|
|
57
74
|
},
|
|
58
75
|
"devDependencies": {
|
|
59
|
-
"@jest/globals": "^
|
|
60
|
-
"@
|
|
76
|
+
"@jest/globals": "^30.0.0",
|
|
77
|
+
"@swc/core": "^1.10.1",
|
|
78
|
+
"@swc/jest": "^0.2.37",
|
|
61
79
|
"@types/detect-node": "^2.0.0",
|
|
62
|
-
"@types/jest": "^
|
|
63
|
-
"@types/node": "^
|
|
80
|
+
"@types/jest": "^30.0.0",
|
|
81
|
+
"@types/node": "^22.15.17",
|
|
82
|
+
"@types/pako": "^2.0.3",
|
|
64
83
|
"@types/source-map-support": "^0.5.6",
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"eslint-config-prettier": "^8.8.0",
|
|
71
|
-
"html-webpack-plugin": "^5.5.1",
|
|
72
|
-
"idb-keyval": "^6.2.1",
|
|
73
|
-
"jest": "^29.5.0",
|
|
74
|
-
"prettier": "^2.8.4",
|
|
75
|
-
"resolve-typescript-plugin": "^2.0.1",
|
|
76
|
-
"ts-jest": "^29.1.0",
|
|
84
|
+
"eslint": "^9.26.0",
|
|
85
|
+
"eslint-config-prettier": "^10.1.5",
|
|
86
|
+
"jest": "^30.0.0",
|
|
87
|
+
"prettier": "^3.5.3",
|
|
88
|
+
"ts-jest": "^29.4.0",
|
|
77
89
|
"ts-loader": "^9.4.2",
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"webpack-dev-server": "^4.15.0"
|
|
90
|
+
"ts-node": "^10.9.1",
|
|
91
|
+
"typescript": "^5.3.3",
|
|
92
|
+
"typescript-eslint": "^8.32.1"
|
|
82
93
|
}
|
|
83
94
|
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`pedersen sync pedersenCommit 1`] = `
|
|
4
|
+
Point {
|
|
5
|
+
"x": Fr {
|
|
6
|
+
"value": Uint8Array [
|
|
7
|
+
40,
|
|
8
|
+
159,
|
|
9
|
+
125,
|
|
10
|
+
144,
|
|
11
|
+
234,
|
|
12
|
+
153,
|
|
13
|
+
219,
|
|
14
|
+
166,
|
|
15
|
+
76,
|
|
16
|
+
75,
|
|
17
|
+
47,
|
|
18
|
+
51,
|
|
19
|
+
253,
|
|
20
|
+
27,
|
|
21
|
+
9,
|
|
22
|
+
101,
|
|
23
|
+
2,
|
|
24
|
+
145,
|
|
25
|
+
223,
|
|
26
|
+
38,
|
|
27
|
+
43,
|
|
28
|
+
114,
|
|
29
|
+
5,
|
|
30
|
+
21,
|
|
31
|
+
90,
|
|
32
|
+
97,
|
|
33
|
+
2,
|
|
34
|
+
6,
|
|
35
|
+
219,
|
|
36
|
+
97,
|
|
37
|
+
109,
|
|
38
|
+
152,
|
|
39
|
+
],
|
|
40
|
+
},
|
|
41
|
+
"y": Fr {
|
|
42
|
+
"value": Uint8Array [
|
|
43
|
+
5,
|
|
44
|
+
175,
|
|
45
|
+
199,
|
|
46
|
+
200,
|
|
47
|
+
35,
|
|
48
|
+
67,
|
|
49
|
+
88,
|
|
50
|
+
76,
|
|
51
|
+
19,
|
|
52
|
+
203,
|
|
53
|
+
45,
|
|
54
|
+
50,
|
|
55
|
+
137,
|
|
56
|
+
153,
|
|
57
|
+
67,
|
|
58
|
+
200,
|
|
59
|
+
57,
|
|
60
|
+
87,
|
|
61
|
+
22,
|
|
62
|
+
209,
|
|
63
|
+
141,
|
|
64
|
+
173,
|
|
65
|
+
205,
|
|
66
|
+
189,
|
|
67
|
+
23,
|
|
68
|
+
215,
|
|
69
|
+
206,
|
|
70
|
+
3,
|
|
71
|
+
174,
|
|
72
|
+
112,
|
|
73
|
+
128,
|
|
74
|
+
11,
|
|
75
|
+
],
|
|
76
|
+
},
|
|
77
|
+
}
|
|
78
|
+
`;
|
|
79
|
+
|
|
80
|
+
exports[`pedersen sync pedersenHash 1`] = `
|
|
81
|
+
Fr {
|
|
82
|
+
"value": Uint8Array [
|
|
83
|
+
4,
|
|
84
|
+
194,
|
|
85
|
+
53,
|
|
86
|
+
42,
|
|
87
|
+
6,
|
|
88
|
+
13,
|
|
89
|
+
74,
|
|
90
|
+
193,
|
|
91
|
+
205,
|
|
92
|
+
251,
|
|
93
|
+
96,
|
|
94
|
+
62,
|
|
95
|
+
188,
|
|
96
|
+
67,
|
|
97
|
+
39,
|
|
98
|
+
181,
|
|
99
|
+
118,
|
|
100
|
+
69,
|
|
101
|
+
151,
|
|
102
|
+
35,
|
|
103
|
+
22,
|
|
104
|
+
20,
|
|
105
|
+
246,
|
|
106
|
+
29,
|
|
107
|
+
36,
|
|
108
|
+
91,
|
|
109
|
+
243,
|
|
110
|
+
87,
|
|
111
|
+
114,
|
|
112
|
+
192,
|
|
113
|
+
134,
|
|
114
|
+
150,
|
|
115
|
+
],
|
|
116
|
+
}
|
|
117
|
+
`;
|
|
118
|
+
|
|
119
|
+
exports[`pedersen sync pedersenHashBuffer 1`] = `
|
|
120
|
+
Fr {
|
|
121
|
+
"value": Uint8Array [
|
|
122
|
+
43,
|
|
123
|
+
213,
|
|
124
|
+
196,
|
|
125
|
+
82,
|
|
126
|
+
160,
|
|
127
|
+
201,
|
|
128
|
+
113,
|
|
129
|
+
98,
|
|
130
|
+
41,
|
|
131
|
+
79,
|
|
132
|
+
201,
|
|
133
|
+
223,
|
|
134
|
+
208,
|
|
135
|
+
241,
|
|
136
|
+
224,
|
|
137
|
+
157,
|
|
138
|
+
14,
|
|
139
|
+
9,
|
|
140
|
+
201,
|
|
141
|
+
95,
|
|
142
|
+
165,
|
|
143
|
+
237,
|
|
144
|
+
63,
|
|
145
|
+
241,
|
|
146
|
+
73,
|
|
147
|
+
251,
|
|
148
|
+
222,
|
|
149
|
+
243,
|
|
150
|
+
102,
|
|
151
|
+
203,
|
|
152
|
+
81,
|
|
153
|
+
249,
|
|
154
|
+
],
|
|
155
|
+
}
|
|
156
|
+
`;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`poseidon sync poseidonHash 1`] = `
|
|
4
|
+
Fr {
|
|
5
|
+
"value": Uint8Array [
|
|
6
|
+
43,
|
|
7
|
+
202,
|
|
8
|
+
235,
|
|
9
|
+
109,
|
|
10
|
+
88,
|
|
11
|
+
187,
|
|
12
|
+
56,
|
|
13
|
+
186,
|
|
14
|
+
247,
|
|
15
|
+
83,
|
|
16
|
+
213,
|
|
17
|
+
140,
|
|
18
|
+
60,
|
|
19
|
+
150,
|
|
20
|
+
97,
|
|
21
|
+
143,
|
|
22
|
+
234,
|
|
23
|
+
130,
|
|
24
|
+
22,
|
|
25
|
+
51,
|
|
26
|
+
69,
|
|
27
|
+
41,
|
|
28
|
+
94,
|
|
29
|
+
180,
|
|
30
|
+
14,
|
|
31
|
+
136,
|
|
32
|
+
52,
|
|
33
|
+
78,
|
|
34
|
+
235,
|
|
35
|
+
12,
|
|
36
|
+
226,
|
|
37
|
+
161,
|
|
38
|
+
],
|
|
39
|
+
}
|
|
40
|
+
`;
|