@aztec/bb.js 0.70.0 → 0.72.0
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/dest/browser/barretenberg/backend.d.ts +2 -1
- package/dest/browser/barretenberg/backend.d.ts.map +1 -1
- package/dest/browser/barretenberg/index.d.ts +7 -0
- package/dest/browser/barretenberg/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_api/index.d.ts +3 -2
- package/dest/browser/barretenberg_api/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/browser/index.d.ts +1 -1
- package/dest/browser/index.d.ts.map +1 -1
- package/dest/browser/index.js +85 -24
- package/dest/browser/proof/index.d.ts +10 -0
- package/dest/browser/proof/index.d.ts.map +1 -1
- package/dest/node/barretenberg/backend.d.ts +2 -1
- package/dest/node/barretenberg/backend.d.ts.map +1 -1
- package/dest/node/barretenberg/backend.js +34 -1
- package/dest/node/barretenberg/index.d.ts +7 -0
- package/dest/node/barretenberg/index.d.ts.map +1 -1
- package/dest/node/barretenberg/index.js +23 -2
- package/dest/node/barretenberg_api/index.d.ts +3 -2
- package/dest/node/barretenberg_api/index.d.ts.map +1 -1
- package/dest/node/barretenberg_api/index.js +1 -1
- package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +16 -11
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +2 -3
- package/dest/node/index.d.ts +1 -1
- package/dest/node/index.d.ts.map +1 -1
- package/dest/node/index.js +2 -2
- package/dest/node/proof/index.d.ts +10 -0
- package/dest/node/proof/index.d.ts.map +1 -1
- package/dest/node/proof/index.js +1 -1
- package/dest/node-cjs/barretenberg/backend.d.ts +2 -1
- package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/backend.js +34 -1
- package/dest/node-cjs/barretenberg/index.d.ts +7 -0
- package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/index.js +25 -3
- package/dest/node-cjs/barretenberg_api/index.d.ts +3 -2
- package/dest/node-cjs/barretenberg_api/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_api/index.js +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +16 -11
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +2 -3
- package/dest/node-cjs/index.d.ts +1 -1
- package/dest/node-cjs/index.d.ts.map +1 -1
- package/dest/node-cjs/index.js +3 -2
- package/dest/node-cjs/proof/index.d.ts +10 -0
- package/dest/node-cjs/proof/index.d.ts.map +1 -1
- package/dest/node-cjs/proof/index.js +1 -1
- package/package.json +1 -1
- package/src/barretenberg/backend.ts +57 -0
- package/src/barretenberg/index.ts +27 -1
- package/src/barretenberg_api/index.ts +2 -1
- package/src/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts +14 -10
- package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +2 -3
- package/src/index.ts +1 -0
- package/src/proof/index.ts +11 -0
|
@@ -16,18 +16,23 @@ class HeapAllocator {
|
|
|
16
16
|
this.inScratchRemaining = 1024;
|
|
17
17
|
this.outScratchRemaining = 1024;
|
|
18
18
|
}
|
|
19
|
-
|
|
20
|
-
return buffers.map(
|
|
21
|
-
if (
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
getInputs(buffers) {
|
|
20
|
+
return buffers.map(bufOrNum => {
|
|
21
|
+
if (typeof bufOrNum === 'object') {
|
|
22
|
+
if (bufOrNum.length <= this.inScratchRemaining) {
|
|
23
|
+
const ptr = (this.inScratchRemaining -= bufOrNum.length);
|
|
24
|
+
this.wasm.writeMemory(ptr, bufOrNum);
|
|
25
|
+
return ptr;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
const ptr = this.wasm.call('bbmalloc', bufOrNum.length);
|
|
29
|
+
this.wasm.writeMemory(ptr, bufOrNum);
|
|
30
|
+
this.allocs.push(ptr);
|
|
31
|
+
return ptr;
|
|
32
|
+
}
|
|
25
33
|
}
|
|
26
34
|
else {
|
|
27
|
-
|
|
28
|
-
this.wasm.writeMemory(ptr, buf);
|
|
29
|
-
this.allocs.push(ptr);
|
|
30
|
-
return ptr;
|
|
35
|
+
return bufOrNum;
|
|
31
36
|
}
|
|
32
37
|
});
|
|
33
38
|
}
|
|
@@ -58,4 +63,4 @@ class HeapAllocator {
|
|
|
58
63
|
}
|
|
59
64
|
}
|
|
60
65
|
exports.HeapAllocator = HeapAllocator;
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhcF9hbGxvY2F0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fbWFpbi9oZWFwX2FsbG9jYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7Ozs7OztHQU9HO0FBQ0gsTUFBYSxhQUFhO0lBS3hCLFlBQW9CLElBQTBCO1FBQTFCLFNBQUksR0FBSixJQUFJLENBQXNCO1FBSnRDLFdBQU0sR0FBYSxFQUFFLENBQUM7UUFDdEIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQzFCLHdCQUFtQixHQUFHLElBQUksQ0FBQztJQUVjLENBQUM7SUFFbEQsU0FBUyxDQUFDLE9BQWdDO1FBQ3hDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM1QixJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7b0JBQy9DLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDekQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO29CQUNyQyxPQUFPLEdBQUcsQ0FBQztnQkFDYixDQUFDO3FCQUFNLENBQUM7b0JBQ04sTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO29CQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDdEIsT0FBTyxHQUFHLENBQUM7Z0JBQ2IsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLFFBQVEsQ0FBQztZQUNsQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQStCO1FBQzNDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2QiwrRkFBK0Y7WUFDL0YsMkRBQTJEO1lBQzNELE1BQU0sSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFFdEIsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQ3JDLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLElBQUksSUFBSSxDQUFDLENBQUM7WUFDNUMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3RCLE9BQU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFXO1FBQ3RCLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBckRELHNDQXFEQyJ9
|
|
@@ -37,7 +37,7 @@ export declare class BarretenbergWasmMain extends BarretenbergWasmBase {
|
|
|
37
37
|
proc_exit: () => never;
|
|
38
38
|
};
|
|
39
39
|
};
|
|
40
|
-
callWasmExport(funcName: string, inArgs: Uint8Array[], outLens: (number | undefined)[]): Uint8Array[];
|
|
40
|
+
callWasmExport(funcName: string, inArgs: (Uint8Array | number)[], outLens: (number | undefined)[]): Uint8Array[];
|
|
41
41
|
private getOutputArgs;
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/barretenberg_wasm_main/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAIjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAK1E;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,oBAAoB;IAC5D,MAAM,CAAC,WAAW,SAAM;IACxB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,YAAY,CAAK;IAElB,aAAa;IAIpB;;OAEG;IACU,IAAI,CACf,MAAM,EAAE,WAAW,CAAC,MAAM,EAC1B,OAAO,SAA0D,EACjE,MAAM,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAY,EACrC,OAAO,SAAK,EACZ,OAAO,SAAU;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/barretenberg_wasm_main/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAIjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAK1E;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,oBAAoB;IAC5D,MAAM,CAAC,WAAW,SAAM;IACxB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,YAAY,CAAK;IAElB,aAAa;IAIpB;;OAEG;IACU,IAAI,CACf,MAAM,EAAE,WAAW,CAAC,MAAM,EAC1B,OAAO,SAA0D,EACjE,MAAM,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAY,EACrC,OAAO,SAAK,EACZ,OAAO,SAAU;IAgCnB;;OAEG;IACU,OAAO;IAIpB,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM;;kCAOrB,MAAM;;;;;;;;;;;;;;;IAsBlC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE;IAUjG,OAAO,CAAC,aAAa;CAkBtB;AAED;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC"}
|
|
@@ -47,7 +47,6 @@ class BarretenbergWasmMain extends index_js_3.BarretenbergWasmBase {
|
|
|
47
47
|
this.remoteWasms = await Promise.all(this.workers.map((index_js_1.getRemoteBarretenbergWasm)));
|
|
48
48
|
await Promise.all(this.remoteWasms.map(w => w.initThread(module, this.memory)));
|
|
49
49
|
}
|
|
50
|
-
this.logger('init complete.');
|
|
51
50
|
}
|
|
52
51
|
/**
|
|
53
52
|
* Called on main thread. Signals child threads to gracefully exit.
|
|
@@ -84,7 +83,7 @@ class BarretenbergWasmMain extends index_js_3.BarretenbergWasmBase {
|
|
|
84
83
|
}
|
|
85
84
|
callWasmExport(funcName, inArgs, outLens) {
|
|
86
85
|
const alloc = new heap_allocator_js_1.HeapAllocator(this);
|
|
87
|
-
const inPtrs = alloc.
|
|
86
|
+
const inPtrs = alloc.getInputs(inArgs);
|
|
88
87
|
const outPtrs = alloc.getOutputPtrs(outLens);
|
|
89
88
|
this.call(funcName, ...inPtrs, ...outPtrs);
|
|
90
89
|
const outArgs = this.getOutputArgs(outLens, outPtrs, alloc);
|
|
@@ -109,4 +108,4 @@ class BarretenbergWasmMain extends index_js_3.BarretenbergWasmBase {
|
|
|
109
108
|
}
|
|
110
109
|
exports.BarretenbergWasmMain = BarretenbergWasmMain;
|
|
111
110
|
BarretenbergWasmMain.MAX_THREADS = 32;
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fbWFpbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsMERBQWdDO0FBRWhDLGtEQUFxRztBQUNyRyxnRkFBdUY7QUFFdkYsaUVBQTBFO0FBQzFFLDJEQUFvRDtBQUVwRCxNQUFNLEtBQUssR0FBRyxJQUFBLGVBQVcsRUFBQyxZQUFZLENBQUMsQ0FBQztBQUV4Qzs7OztHQUlHO0FBQ0gsTUFBYSxvQkFBcUIsU0FBUSwrQkFBb0I7SUFBOUQ7O1FBRVUsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQUN2QixnQkFBVyxHQUFtQyxFQUFFLENBQUM7UUFDakQsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO0lBOEczQixDQUFDO0lBNUdRLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLElBQUksQ0FDZixNQUEwQixFQUMxQixPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFBLG9CQUFTLEdBQUUsRUFBRSxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsRUFDakUsU0FBZ0MsS0FBSyxFQUNyQyxPQUFPLEdBQUcsRUFBRSxFQUNaLE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRTtRQUVqQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUVyQixNQUFNLFNBQVMsR0FBRyxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDdEQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFH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
|
package/dest/node-cjs/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { Crs, GrumpkinCrs } from './crs/index.js';
|
|
2
|
-
export { BackendOptions, Barretenberg, BarretenbergSync, BarretenbergVerifier, UltraPlonkBackend, UltraHonkBackend, AztecClientBackend, } from './barretenberg/index.js';
|
|
2
|
+
export { BackendOptions, Barretenberg, BarretenbergSync, BarretenbergLazy, BarretenbergVerifier, UltraPlonkBackend, UltraHonkBackend, AztecClientBackend, } from './barretenberg/index.js';
|
|
3
3
|
export { RawBuffer, Fr } from './types/index.js';
|
|
4
4
|
export { splitHonkProof, reconstructHonkProof, ProofData } from './proof/index.js';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dest/node-cjs/index.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.reconstructHonkProof = exports.splitHonkProof = exports.Fr = exports.RawBuffer = exports.AztecClientBackend = exports.UltraHonkBackend = exports.UltraPlonkBackend = exports.BarretenbergVerifier = exports.BarretenbergSync = exports.Barretenberg = exports.GrumpkinCrs = exports.Crs = void 0;
|
|
3
|
+
exports.reconstructHonkProof = exports.splitHonkProof = exports.Fr = exports.RawBuffer = exports.AztecClientBackend = exports.UltraHonkBackend = exports.UltraPlonkBackend = exports.BarretenbergVerifier = exports.BarretenbergLazy = exports.BarretenbergSync = exports.Barretenberg = exports.GrumpkinCrs = exports.Crs = void 0;
|
|
4
4
|
var index_js_1 = require("./crs/index.js");
|
|
5
5
|
Object.defineProperty(exports, "Crs", { enumerable: true, get: function () { return index_js_1.Crs; } });
|
|
6
6
|
Object.defineProperty(exports, "GrumpkinCrs", { enumerable: true, get: function () { return index_js_1.GrumpkinCrs; } });
|
|
7
7
|
var index_js_2 = require("./barretenberg/index.js");
|
|
8
8
|
Object.defineProperty(exports, "Barretenberg", { enumerable: true, get: function () { return index_js_2.Barretenberg; } });
|
|
9
9
|
Object.defineProperty(exports, "BarretenbergSync", { enumerable: true, get: function () { return index_js_2.BarretenbergSync; } });
|
|
10
|
+
Object.defineProperty(exports, "BarretenbergLazy", { enumerable: true, get: function () { return index_js_2.BarretenbergLazy; } });
|
|
10
11
|
Object.defineProperty(exports, "BarretenbergVerifier", { enumerable: true, get: function () { return index_js_2.BarretenbergVerifier; } });
|
|
11
12
|
Object.defineProperty(exports, "UltraPlonkBackend", { enumerable: true, get: function () { return index_js_2.UltraPlonkBackend; } });
|
|
12
13
|
Object.defineProperty(exports, "UltraHonkBackend", { enumerable: true, get: function () { return index_js_2.UltraHonkBackend; } });
|
|
@@ -17,4 +18,4 @@ Object.defineProperty(exports, "Fr", { enumerable: true, get: function () { retu
|
|
|
17
18
|
var index_js_4 = require("./proof/index.js");
|
|
18
19
|
Object.defineProperty(exports, "splitHonkProof", { enumerable: true, get: function () { return index_js_4.splitHonkProof; } });
|
|
19
20
|
Object.defineProperty(exports, "reconstructHonkProof", { enumerable: true, get: function () { return index_js_4.reconstructHonkProof; } });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQWtEO0FBQXpDLCtGQUFBLEdBQUcsT0FBQTtBQUFFLHVHQUFBLFdBQVcsT0FBQTtBQUN6QixvREFTaUM7QUFQL0Isd0dBQUEsWUFBWSxPQUFBO0FBQ1osNEdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsNEdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsZ0hBQUEsb0JBQW9CLE9BQUE7QUFDcEIsNkdBQUEsaUJBQWlCLE9BQUE7QUFDakIsNEdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsOEdBQUEsa0JBQWtCLE9BQUE7QUFFcEIsNkNBQWlEO0FBQXhDLHFHQUFBLFNBQVMsT0FBQTtBQUFFLDhGQUFBLEVBQUUsT0FBQTtBQUN0Qiw2Q0FBbUY7QUFBMUUsMEdBQUEsY0FBYyxPQUFBO0FBQUUsZ0hBQUEsb0JBQW9CLE9BQUEifQ==
|
|
@@ -8,6 +8,16 @@ export type ProofData = {
|
|
|
8
8
|
/** @description An byte array representing the proof */
|
|
9
9
|
proof: Uint8Array;
|
|
10
10
|
};
|
|
11
|
+
/**
|
|
12
|
+
* @description
|
|
13
|
+
* The representation of a proof
|
|
14
|
+
* */
|
|
15
|
+
export type ProofDataForRecursion = {
|
|
16
|
+
/** @description Public inputs of a proof */
|
|
17
|
+
publicInputs: string[];
|
|
18
|
+
/** @description An byte array representing the proof */
|
|
19
|
+
proof: string[];
|
|
20
|
+
};
|
|
11
21
|
export declare function splitHonkProof(proofWithPublicInputs: Uint8Array): {
|
|
12
22
|
publicInputs: Uint8Array;
|
|
13
23
|
proof: Uint8Array;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/proof/index.ts"],"names":[],"mappings":"AAAA;;;KAGK;AACL,MAAM,MAAM,SAAS,GAAG;IACtB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,wDAAwD;IACxD,KAAK,EAAE,UAAU,CAAC;CACnB,CAAC;AAQF,wBAAgB,cAAc,CAAC,qBAAqB,EAAE,UAAU,GAAG;IAAE,YAAY,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAqBjH;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,CAQ5F;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,CAQ3E;AAED,wBAAgB,eAAe,CAAC,eAAe,EAAE,UAAU,GAAG,MAAM,EAAE,CAUrE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAGjE"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/proof/index.ts"],"names":[],"mappings":"AAAA;;;KAGK;AACL,MAAM,MAAM,SAAS,GAAG;IACtB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,wDAAwD;IACxD,KAAK,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF;;;KAGK;AACL,MAAM,MAAM,qBAAqB,GAAG;IAClC,4CAA4C;IAC5C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,wDAAwD;IACxD,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAQF,wBAAgB,cAAc,CAAC,qBAAqB,EAAE,UAAU,GAAG;IAAE,YAAY,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAqBjH;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,CAQ5F;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,CAQ3E;AAED,wBAAgB,eAAe,CAAC,eAAe,EAAE,UAAU,GAAG,MAAM,EAAE,CAUrE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAGjE"}
|
|
@@ -90,4 +90,4 @@ function hexToUint8Array(hex) {
|
|
|
90
90
|
}
|
|
91
91
|
return u8;
|
|
92
92
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvb2YvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBc0JBLGlFQUFpRTtBQUNqRSxNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQztBQUMvQixNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUM7QUFDekIsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7QUFDNUIsTUFBTSx1QkFBdUIsR0FBRyxpQkFBaUIsR0FBRyxhQUFhLENBQUM7QUFFbEUsU0FBZ0IsY0FBYyxDQUFDLHFCQUFpQztJQUM5RCxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFdkUsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRWxELGtEQUFrRDtJQUNsRCxNQUFNLGtCQUFrQixHQUFHLHVCQUF1QixHQUFHLG9CQUFvQixDQUFDO0lBQzFFLGtEQUFrRDtJQUNsRCxNQUFNLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDdEUsTUFBTSxzQkFBc0IsR0FBRyxlQUFlLEdBQUcsYUFBYSxDQUFDO0lBQy9ELE1BQU0sUUFBUSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzFGLGdEQUFnRDtJQUNoRCxNQUFNLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLEdBQUcsVUFBVSxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUUzRCw0REFBNEQ7SUFDNUQsTUFBTSxZQUFZLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixHQUFHLHNCQUFzQixDQUFDLENBQUM7SUFFbEgsT0FBTztRQUNMLEtB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
|
package/package.json
CHANGED
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
deflattenFields,
|
|
6
6
|
flattenFieldsAsArray,
|
|
7
7
|
ProofData,
|
|
8
|
+
ProofDataForRecursion,
|
|
8
9
|
reconstructHonkProof,
|
|
9
10
|
reconstructUltraPlonkProof,
|
|
10
11
|
} from '../proof/index.js';
|
|
@@ -216,6 +217,7 @@ export class UltraHonkBackend {
|
|
|
216
217
|
const proofStart = proofWithPublicInputs.slice(0, publicInputsOffset);
|
|
217
218
|
const publicInputsSplitIndex = numPublicInputs * fieldByteSize;
|
|
218
219
|
const proofEnd = proofWithPublicInputs.slice(publicInputsOffset + publicInputsSplitIndex);
|
|
220
|
+
|
|
219
221
|
// Construct the proof without the public inputs
|
|
220
222
|
const proof = new Uint8Array([...proofStart, ...proofEnd]);
|
|
221
223
|
|
|
@@ -229,6 +231,61 @@ export class UltraHonkBackend {
|
|
|
229
231
|
return { proof, publicInputs };
|
|
230
232
|
}
|
|
231
233
|
|
|
234
|
+
async generateProofForRecursiveAggregation(
|
|
235
|
+
compressedWitness: Uint8Array,
|
|
236
|
+
options?: UltraHonkBackendOptions,
|
|
237
|
+
): Promise<ProofDataForRecursion> {
|
|
238
|
+
await this.instantiate();
|
|
239
|
+
|
|
240
|
+
const proveUltraHonk = options?.keccak
|
|
241
|
+
? this.api.acirProveUltraKeccakHonk.bind(this.api)
|
|
242
|
+
: this.api.acirProveUltraHonk.bind(this.api);
|
|
243
|
+
|
|
244
|
+
const proofWithPublicInputs = await proveUltraHonk(
|
|
245
|
+
this.acirUncompressedBytecode,
|
|
246
|
+
this.circuitOptions.recursive,
|
|
247
|
+
gunzip(compressedWitness),
|
|
248
|
+
);
|
|
249
|
+
|
|
250
|
+
// proofWithPublicInputs starts with a four-byte size
|
|
251
|
+
const numSerdeHeaderBytes = 4;
|
|
252
|
+
// some public inputs are handled specially
|
|
253
|
+
const numKZGAccumulatorFieldElements = 16;
|
|
254
|
+
// proof begins with: size, num public inputs, public input offset
|
|
255
|
+
const numProofPreambleElements = 3;
|
|
256
|
+
const publicInputsSizeIndex = 1;
|
|
257
|
+
|
|
258
|
+
// Slice serde header and convert to fields
|
|
259
|
+
const proofAsStrings = deflattenFields(proofWithPublicInputs.slice(numSerdeHeaderBytes));
|
|
260
|
+
const numPublicInputs = Number(proofAsStrings[publicInputsSizeIndex]) - numKZGAccumulatorFieldElements;
|
|
261
|
+
|
|
262
|
+
// Account for the serialized buffer size at start
|
|
263
|
+
const publicInputsOffset = publicInputsOffsetBytes + serializedBufferSize;
|
|
264
|
+
const publicInputsSplitIndex = numPublicInputs * fieldByteSize;
|
|
265
|
+
|
|
266
|
+
// Construct the proof without the public inputs
|
|
267
|
+
const numPublicInputsBytes = numPublicInputs * fieldByteSize;
|
|
268
|
+
const numHeaderPlusPreambleBytes = numSerdeHeaderBytes + numProofPreambleElements * fieldByteSize;
|
|
269
|
+
const proofNoPIs = new Uint8Array(proofWithPublicInputs.length - numPublicInputsBytes);
|
|
270
|
+
// copy the elements before the public inputs
|
|
271
|
+
proofNoPIs.set(proofWithPublicInputs.subarray(0, numHeaderPlusPreambleBytes), 0);
|
|
272
|
+
// copy the elements after the public inputs
|
|
273
|
+
proofNoPIs.set(
|
|
274
|
+
proofWithPublicInputs.subarray(numHeaderPlusPreambleBytes + numPublicInputsBytes),
|
|
275
|
+
numHeaderPlusPreambleBytes,
|
|
276
|
+
);
|
|
277
|
+
const proof: string[] = deflattenFields(proofNoPIs.slice(numSerdeHeaderBytes));
|
|
278
|
+
|
|
279
|
+
// Fetch the number of public inputs out of the proof string
|
|
280
|
+
const publicInputsConcatenated = proofWithPublicInputs.slice(
|
|
281
|
+
publicInputsOffset,
|
|
282
|
+
publicInputsOffset + publicInputsSplitIndex,
|
|
283
|
+
);
|
|
284
|
+
const publicInputs = deflattenFields(publicInputsConcatenated);
|
|
285
|
+
|
|
286
|
+
return { proof, publicInputs };
|
|
287
|
+
}
|
|
288
|
+
|
|
232
289
|
async verifyProof(proofData: ProofData, options?: UltraHonkBackendOptions): Promise<boolean> {
|
|
233
290
|
await this.instantiate();
|
|
234
291
|
|
|
@@ -69,7 +69,7 @@ export class Barretenberg extends BarretenbergApi {
|
|
|
69
69
|
async initSRSClientIVC(): Promise<void> {
|
|
70
70
|
// crsPath can be undefined
|
|
71
71
|
const crs = await Crs.new(2 ** 20 + 1, this.options.crsPath);
|
|
72
|
-
const grumpkinCrs = await GrumpkinCrs.new(2 **
|
|
72
|
+
const grumpkinCrs = await GrumpkinCrs.new(2 ** 16 + 1, this.options.crsPath);
|
|
73
73
|
|
|
74
74
|
// Load CRS into wasm global CRS state.
|
|
75
75
|
// TODO: Make RawBuffer be default behavior, and have a specific Vector type for when wanting length prefixed.
|
|
@@ -123,6 +123,32 @@ export class BarretenbergSync extends BarretenbergApiSync {
|
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
|
|
126
|
+
let barrentenbergLazySingleton: BarretenbergLazy;
|
|
127
|
+
|
|
128
|
+
export class BarretenbergLazy extends BarretenbergApi {
|
|
129
|
+
private constructor(wasm: BarretenbergWasmMain) {
|
|
130
|
+
super(wasm);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
private static async new() {
|
|
134
|
+
const wasm = new BarretenbergWasmMain();
|
|
135
|
+
const { module, threads } = await fetchModuleAndThreads(1);
|
|
136
|
+
await wasm.init(module, threads);
|
|
137
|
+
return new BarretenbergLazy(wasm);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
static async getSingleton() {
|
|
141
|
+
if (!barrentenbergLazySingleton) {
|
|
142
|
+
barrentenbergLazySingleton = await BarretenbergLazy.new();
|
|
143
|
+
}
|
|
144
|
+
return barrentenbergLazySingleton;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
getWasm() {
|
|
148
|
+
return this.wasm;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
126
152
|
// If we're in ESM environment, use top level await. CJS users need to call it manually.
|
|
127
153
|
// Need to ignore for cjs build.
|
|
128
154
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// WARNING: FILE CODE GENERATED BY BINDGEN UTILITY. DO NOT EDIT!
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
3
|
+
import { BarretenbergWasmMain } from '../barretenberg_wasm/barretenberg_wasm_main/index.js';
|
|
3
4
|
import { BarretenbergWasmWorker, BarretenbergWasm } from '../barretenberg_wasm/index.js';
|
|
4
5
|
import {
|
|
5
6
|
BufferDeserializer,
|
|
@@ -13,7 +14,7 @@ import {
|
|
|
13
14
|
import { Fr, Fq, Point, Buffer32, Buffer128, Ptr } from '../types/index.js';
|
|
14
15
|
|
|
15
16
|
export class BarretenbergApi {
|
|
16
|
-
constructor(protected wasm: BarretenbergWasmWorker) {}
|
|
17
|
+
constructor(protected wasm: BarretenbergWasmWorker | BarretenbergWasmMain) {}
|
|
17
18
|
|
|
18
19
|
async pedersenCommit(inputsBuffer: Fr[], ctxIndex: number): Promise<Point> {
|
|
19
20
|
const inArgs = [inputsBuffer, ctxIndex].map(serializeBufferable);
|
|
@@ -15,17 +15,21 @@ export class HeapAllocator {
|
|
|
15
15
|
|
|
16
16
|
constructor(private wasm: BarretenbergWasmMain) {}
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
return buffers.map(
|
|
20
|
-
if (
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
18
|
+
getInputs(buffers: (Uint8Array | number)[]) {
|
|
19
|
+
return buffers.map(bufOrNum => {
|
|
20
|
+
if (typeof bufOrNum === 'object') {
|
|
21
|
+
if (bufOrNum.length <= this.inScratchRemaining) {
|
|
22
|
+
const ptr = (this.inScratchRemaining -= bufOrNum.length);
|
|
23
|
+
this.wasm.writeMemory(ptr, bufOrNum);
|
|
24
|
+
return ptr;
|
|
25
|
+
} else {
|
|
26
|
+
const ptr = this.wasm.call('bbmalloc', bufOrNum.length);
|
|
27
|
+
this.wasm.writeMemory(ptr, bufOrNum);
|
|
28
|
+
this.allocs.push(ptr);
|
|
29
|
+
return ptr;
|
|
30
|
+
}
|
|
24
31
|
} else {
|
|
25
|
-
|
|
26
|
-
this.wasm.writeMemory(ptr, buf);
|
|
27
|
-
this.allocs.push(ptr);
|
|
28
|
-
return ptr;
|
|
32
|
+
return bufOrNum;
|
|
29
33
|
}
|
|
30
34
|
});
|
|
31
35
|
}
|
|
@@ -63,7 +63,6 @@ export class BarretenbergWasmMain extends BarretenbergWasmBase {
|
|
|
63
63
|
this.remoteWasms = await Promise.all(this.workers.map(getRemoteBarretenbergWasm<BarretenbergWasmThreadWorker>));
|
|
64
64
|
await Promise.all(this.remoteWasms.map(w => w.initThread(module, this.memory)));
|
|
65
65
|
}
|
|
66
|
-
this.logger('init complete.');
|
|
67
66
|
}
|
|
68
67
|
|
|
69
68
|
/**
|
|
@@ -102,9 +101,9 @@ export class BarretenbergWasmMain extends BarretenbergWasmBase {
|
|
|
102
101
|
/* eslint-enable camelcase */
|
|
103
102
|
}
|
|
104
103
|
|
|
105
|
-
callWasmExport(funcName: string, inArgs: Uint8Array[], outLens: (number | undefined)[]) {
|
|
104
|
+
callWasmExport(funcName: string, inArgs: (Uint8Array | number)[], outLens: (number | undefined)[]) {
|
|
106
105
|
const alloc = new HeapAllocator(this);
|
|
107
|
-
const inPtrs = alloc.
|
|
106
|
+
const inPtrs = alloc.getInputs(inArgs);
|
|
108
107
|
const outPtrs = alloc.getOutputPtrs(outLens);
|
|
109
108
|
this.call(funcName, ...inPtrs, ...outPtrs);
|
|
110
109
|
const outArgs = this.getOutputArgs(outLens, outPtrs, alloc);
|
package/src/index.ts
CHANGED
package/src/proof/index.ts
CHANGED
|
@@ -9,6 +9,17 @@ export type ProofData = {
|
|
|
9
9
|
proof: Uint8Array;
|
|
10
10
|
};
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* @description
|
|
14
|
+
* The representation of a proof
|
|
15
|
+
* */
|
|
16
|
+
export type ProofDataForRecursion = {
|
|
17
|
+
/** @description Public inputs of a proof */
|
|
18
|
+
publicInputs: string[];
|
|
19
|
+
/** @description An byte array representing the proof */
|
|
20
|
+
proof: string[];
|
|
21
|
+
};
|
|
22
|
+
|
|
12
23
|
// Buffers are prepended with their size. The size takes 4 bytes.
|
|
13
24
|
const serializedBufferSize = 4;
|
|
14
25
|
const fieldByteSize = 32;
|