@provablehq/wasm 0.13.0 → 0.14.0-rc
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 +59 -0
- package/dist/mainnet/aleo_wasm.d.ts +1 -1
- package/dist/mainnet/aleo_wasm.wasm +0 -0
- package/dist/mainnet/index.cjs +21 -21
- package/dist/mainnet/index.cjs.map +1 -1
- package/dist/mainnet/index.js +21 -21
- package/dist/mainnet/index.js.map +1 -1
- package/dist/mainnet/worker.js +21 -21
- package/dist/mainnet/worker.js.map +1 -1
- package/dist/testnet/aleo_wasm.d.ts +1 -1
- package/dist/testnet/aleo_wasm.wasm +0 -0
- package/dist/testnet/index.cjs +21 -21
- package/dist/testnet/index.cjs.map +1 -1
- package/dist/testnet/index.js +21 -21
- package/dist/testnet/index.js.map +1 -1
- package/dist/testnet/worker.js +21 -21
- package/dist/testnet/worker.js.map +1 -1
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -41,6 +41,65 @@ yarn build
|
|
|
41
41
|
|
|
42
42
|
This will produce `.js` and `.wasm` files inside of the `dist` folder.
|
|
43
43
|
|
|
44
|
+
### wasm64 build
|
|
45
|
+
|
|
46
|
+
The separate wasm64 build compiles the same Rust sources and snarkVM version as
|
|
47
|
+
wasm32 for `wasm64-unknown-unknown`, with an 8 GiB maximum, shared memory, atomics
|
|
48
|
+
and the existing Rayon pool. The caller still selects the thread count through
|
|
49
|
+
`initThreadPool(threads)`. Its bindings are published as
|
|
50
|
+
[`@provablehq/wasm64`](../wasm64/README.md), versioned in lockstep
|
|
51
|
+
with `@provablehq/wasm`.
|
|
52
|
+
|
|
53
|
+
From the repository root:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
yarn install --immutable
|
|
57
|
+
yarn build:wasm
|
|
58
|
+
yarn build:wasm64
|
|
59
|
+
yarn build:sdk
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Both builds use the toolchain in `rust-toolchain.toml`; the wasm64 build also
|
|
63
|
+
needs its `rust-src` component for `-Zbuild-std`. `yarn build:all` includes both
|
|
64
|
+
WASM variants and the SDK. The wasm64 artifacts are written to
|
|
65
|
+
`wasm64/dist/{testnet,mainnet}/` and `sdk/dist/wasm64/{testnet,mainnet}/`.
|
|
66
|
+
Development builds can set `BUILD_DEBUG=1` for the wasm64 build.
|
|
67
|
+
|
|
68
|
+
The wasm64 build uses Binaryen 125 instead of the wasm32 Binaryen 120, and a
|
|
69
|
+
wasm-bindgen CLI built from source with the same toolchain. It explicitly enables
|
|
70
|
+
the multivalue binding ABI, including for stripped release modules. Set
|
|
71
|
+
`WASM_OPT_BIN` to use a native Binaryen 125 `wasm-opt` executable instead of the
|
|
72
|
+
pinned npm tool.
|
|
73
|
+
Until upstream dependencies support threaded wasm64, the build applies the
|
|
74
|
+
compatibility patches in `build/wasm64/patches/` to checksum-verified crate
|
|
75
|
+
archives under `target/`. These patches implement 64-bit thread/TLS/stack
|
|
76
|
+
addresses and select browser backends in the dependencies. They contain no
|
|
77
|
+
proving diagnostics or changes to proof algorithms. Cargo's shared registry
|
|
78
|
+
sources are never modified. The first build needs network access; subsequent
|
|
79
|
+
builds reuse the prepared dependencies and compiled tools.
|
|
80
|
+
|
|
81
|
+
`build/wasm64/dependencies.js` generates `wasm64/Cargo.toml` from the current
|
|
82
|
+
SDK manifest, pointing at the same library and license-check sources. The
|
|
83
|
+
separate, tracked `wasm64/Cargo.lock` matches `Cargo.lock` except for the
|
|
84
|
+
patched crates, which resolve to the build-local copies. When updating SDK
|
|
85
|
+
dependencies, prepare the manifest with `node wasm/build/wasm64.js --prepare-only`
|
|
86
|
+
from the repository root, update that lockfile intentionally, and test both
|
|
87
|
+
variants. The snarkVM patches are pinned to the snarkVM release in `Cargo.toml`
|
|
88
|
+
and must be regenerated when it changes. The build itself always uses `--locked`;
|
|
89
|
+
it does not resolve or upgrade dependencies during compilation.
|
|
90
|
+
|
|
91
|
+
Run `yarn test:sdk:wasm64` on Node.js 24 after building. It runs the SDK test
|
|
92
|
+
suite against the wasm64 build instead of wasm32. Run
|
|
93
|
+
`yarn workspace @provablehq/sdk test:cjs:pack:wasm64` to pack and install the
|
|
94
|
+
three packages into a clean fixture, then test ESM, CommonJS, wasm64 shared
|
|
95
|
+
memory and Rayon workers on both networks. The local execution check downloads
|
|
96
|
+
public SRS parameters if they are not cached. On a Node.js line without wasm64
|
|
97
|
+
shared memory (before 24), add `--expect-unsupported` to assert instead that the
|
|
98
|
+
wasm64 entry points throw the documented error while the wasm32 entry still
|
|
99
|
+
works. The `runtime compat` jobs in `.github/workflows/sdk.yml` run both forms
|
|
100
|
+
on Node.js 20, 22, 24 and 26 for every pull request. The wasm64 GitHub Actions
|
|
101
|
+
workflow also checks the packages' export maps.
|
|
102
|
+
|
|
44
103
|
## Testing
|
|
45
104
|
|
|
46
105
|
Run tests in Node.js
|
|
@@ -2289,8 +2289,8 @@ export class Metadata {
|
|
|
2289
2289
|
static split(): Metadata;
|
|
2290
2290
|
static transfer_private(): Metadata;
|
|
2291
2291
|
static transfer_private_to_public(): Metadata;
|
|
2292
|
-
static transfer_public(): Metadata;
|
|
2293
2292
|
static transfer_public_as_signer(): Metadata;
|
|
2293
|
+
static transfer_public(): Metadata;
|
|
2294
2294
|
static transfer_public_to_private(): Metadata;
|
|
2295
2295
|
static unbond_public(): Metadata;
|
|
2296
2296
|
locator: string;
|
|
Binary file
|
package/dist/mainnet/index.cjs
CHANGED
|
@@ -7468,15 +7468,15 @@ class Metadata {
|
|
|
7468
7468
|
/**
|
|
7469
7469
|
* @returns {Metadata}
|
|
7470
7470
|
*/
|
|
7471
|
-
static
|
|
7472
|
-
const ret = wasm$1.
|
|
7471
|
+
static transfer_public_as_signer() {
|
|
7472
|
+
const ret = wasm$1.metadata_transfer_public_as_signer();
|
|
7473
7473
|
return Metadata.__wrap(ret);
|
|
7474
7474
|
}
|
|
7475
7475
|
/**
|
|
7476
7476
|
* @returns {Metadata}
|
|
7477
7477
|
*/
|
|
7478
|
-
static
|
|
7479
|
-
const ret = wasm$1.
|
|
7478
|
+
static transfer_public() {
|
|
7479
|
+
const ret = wasm$1.metadata_transfer_public();
|
|
7480
7480
|
return Metadata.__wrap(ret);
|
|
7481
7481
|
}
|
|
7482
7482
|
/**
|
|
@@ -18610,7 +18610,7 @@ function __wbg_get_imports(memory) {
|
|
|
18610
18610
|
const ret = getObject(arg0).length;
|
|
18611
18611
|
return ret;
|
|
18612
18612
|
},
|
|
18613
|
-
|
|
18613
|
+
__wbg_log_db561a5a443b6901: function(arg0, arg1) {
|
|
18614
18614
|
console.log(getStringFromWasm0(arg0, arg1));
|
|
18615
18615
|
},
|
|
18616
18616
|
__wbg_new_1dbf7428bba60a42: function(arg0) {
|
|
@@ -18636,7 +18636,7 @@ function __wbg_get_imports(memory) {
|
|
|
18636
18636
|
const a = state0.a;
|
|
18637
18637
|
state0.a = 0;
|
|
18638
18638
|
try {
|
|
18639
|
-
return
|
|
18639
|
+
return __wasm_bindgen_func_elem_8379(a, state0.b, arg0, arg1);
|
|
18640
18640
|
} finally {
|
|
18641
18641
|
state0.a = a;
|
|
18642
18642
|
}
|
|
@@ -18674,7 +18674,7 @@ function __wbg_get_imports(memory) {
|
|
|
18674
18674
|
const a = state0.a;
|
|
18675
18675
|
state0.a = 0;
|
|
18676
18676
|
try {
|
|
18677
|
-
return
|
|
18677
|
+
return __wasm_bindgen_func_elem_8379(a, state0.b, arg0, arg1);
|
|
18678
18678
|
} finally {
|
|
18679
18679
|
state0.a = a;
|
|
18680
18680
|
}
|
|
@@ -18821,7 +18821,7 @@ function __wbg_get_imports(memory) {
|
|
|
18821
18821
|
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
|
|
18822
18822
|
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
|
|
18823
18823
|
},
|
|
18824
|
-
|
|
18824
|
+
__wbg_spawnWorker_3d6f6e215bdb1ac2: function(arg0, arg1, arg2, arg3) {
|
|
18825
18825
|
const ret = spawnWorker(getObject(arg0), getObject(arg1), getObject(arg2), arg3 >>> 0);
|
|
18826
18826
|
return addHeapObject(ret);
|
|
18827
18827
|
},
|
|
@@ -18908,18 +18908,18 @@ function __wbg_get_imports(memory) {
|
|
|
18908
18908
|
return addHeapObject(ret);
|
|
18909
18909
|
},
|
|
18910
18910
|
__wbindgen_generic_0000000000000001: function(arg0, arg1) {
|
|
18911
|
-
// Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx:
|
|
18912
|
-
const ret = makeMutClosure(arg0, arg1,
|
|
18911
|
+
// Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 272, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
|
|
18912
|
+
const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_3083);
|
|
18913
18913
|
return addHeapObject(ret);
|
|
18914
18914
|
},
|
|
18915
18915
|
__wbindgen_generic_0000000000000002: function(arg0, arg1) {
|
|
18916
18916
|
// Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 562, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`.
|
|
18917
|
-
const ret = makeMutClosure(arg0, arg1,
|
|
18917
|
+
const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_8069);
|
|
18918
18918
|
return addHeapObject(ret);
|
|
18919
18919
|
},
|
|
18920
18920
|
__wbindgen_generic_0000000000000003: function(arg0, arg1) {
|
|
18921
|
-
// Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [], shim_idx:
|
|
18922
|
-
const ret = makeMutClosure(arg0, arg1,
|
|
18921
|
+
// Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [], shim_idx: 362, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
|
|
18922
|
+
const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_8003);
|
|
18923
18923
|
return addHeapObject(ret);
|
|
18924
18924
|
},
|
|
18925
18925
|
__wbindgen_generic_0000000000000004: function(arg0) {
|
|
@@ -18981,22 +18981,22 @@ function __wbg_get_imports(memory) {
|
|
|
18981
18981
|
};
|
|
18982
18982
|
}
|
|
18983
18983
|
|
|
18984
|
-
function
|
|
18985
|
-
wasm$1.
|
|
18984
|
+
function __wasm_bindgen_func_elem_8003(arg0, arg1) {
|
|
18985
|
+
wasm$1.__wasm_bindgen_func_elem_8003(arg0, arg1);
|
|
18986
18986
|
}
|
|
18987
18987
|
|
|
18988
|
-
function
|
|
18989
|
-
wasm$1.
|
|
18988
|
+
function __wasm_bindgen_func_elem_3083(arg0, arg1, arg2) {
|
|
18989
|
+
wasm$1.__wasm_bindgen_func_elem_3083(arg0, arg1, addHeapObject(arg2));
|
|
18990
18990
|
}
|
|
18991
18991
|
|
|
18992
|
-
function
|
|
18993
|
-
wasm$1.
|
|
18992
|
+
function __wasm_bindgen_func_elem_8379(arg0, arg1, arg2, arg3) {
|
|
18993
|
+
wasm$1.__wasm_bindgen_func_elem_8379(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
|
|
18994
18994
|
}
|
|
18995
18995
|
|
|
18996
|
-
function
|
|
18996
|
+
function __wasm_bindgen_func_elem_8069(arg0, arg1, arg2) {
|
|
18997
18997
|
try {
|
|
18998
18998
|
const retptr = wasm$1.__wbindgen_add_to_stack_pointer(-16);
|
|
18999
|
-
wasm$1.
|
|
18999
|
+
wasm$1.__wasm_bindgen_func_elem_8069(retptr, arg0, arg1, addHeapObject(arg2));
|
|
19000
19000
|
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
19001
19001
|
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
19002
19002
|
if (r1) {
|