@aztec/bb.js 1.2.1 → 2.0.0-nightly.20250814
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 +1 -0
- package/dest/browser/barretenberg/backend.d.ts.map +1 -1
- package/dest/browser/barretenberg/backend.js +116 -108
- package/dest/browser/barretenberg/index.d.ts +13 -0
- package/dest/browser/barretenberg/index.d.ts.map +1 -1
- package/dest/browser/barretenberg/index.js +40 -2
- package/dest/browser/barretenberg/verifier.js +2 -2
- package/dest/browser/barretenberg_api/index.d.ts +2 -2
- package/dest/browser/barretenberg_api/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_api/index.js +5 -5
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.js +5 -4
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +2 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.js +17 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +1 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
- package/dest/browser/cbind/generate.d.ts +5 -0
- package/dest/browser/cbind/generate.d.ts.map +1 -0
- package/dest/browser/cbind/generate.js +64 -0
- package/dest/browser/cbind/generated/api_types.d.ts +634 -0
- package/dest/browser/cbind/generated/api_types.d.ts.map +1 -0
- package/dest/browser/cbind/generated/api_types.js +851 -0
- package/dest/browser/cbind/generated/async.d.ts +23 -0
- package/dest/browser/cbind/generated/async.d.ts.map +1 -0
- package/dest/browser/cbind/generated/async.js +148 -0
- package/dest/browser/cbind/generated/native.d.ts +31 -0
- package/dest/browser/cbind/generated/native.d.ts.map +1 -0
- package/dest/browser/cbind/generated/native.js +234 -0
- package/dest/browser/cbind/generated/sync.d.ts +23 -0
- package/dest/browser/cbind/generated/sync.d.ts.map +1 -0
- package/dest/browser/cbind/generated/sync.js +133 -0
- package/dest/browser/cbind/schema_compiler.d.ts +70 -0
- package/dest/browser/cbind/schema_compiler.d.ts.map +1 -0
- package/dest/browser/cbind/schema_compiler.js +683 -0
- package/dest/browser/proof/index.d.ts +2 -0
- package/dest/browser/proof/index.d.ts.map +1 -1
- package/dest/browser/proof/index.js +3 -3
- package/dest/node/barretenberg/backend.d.ts +1 -0
- package/dest/node/barretenberg/backend.d.ts.map +1 -1
- package/dest/node/barretenberg/backend.js +116 -108
- package/dest/node/barretenberg/index.d.ts +13 -0
- package/dest/node/barretenberg/index.d.ts.map +1 -1
- package/dest/node/barretenberg/index.js +40 -2
- package/dest/node/barretenberg/verifier.js +2 -2
- package/dest/node/barretenberg_api/index.d.ts +2 -2
- package/dest/node/barretenberg_api/index.d.ts.map +1 -1
- package/dest/node/barretenberg_api/index.js +5 -5
- package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +5 -4
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +2 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +17 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +1 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
- package/dest/node/cbind/generate.d.ts +5 -0
- package/dest/node/cbind/generate.d.ts.map +1 -0
- package/dest/node/cbind/generate.js +64 -0
- package/dest/node/cbind/generated/api_types.d.ts +634 -0
- package/dest/node/cbind/generated/api_types.d.ts.map +1 -0
- package/dest/node/cbind/generated/api_types.js +851 -0
- package/dest/node/cbind/generated/async.d.ts +23 -0
- package/dest/node/cbind/generated/async.d.ts.map +1 -0
- package/dest/node/cbind/generated/async.js +148 -0
- package/dest/node/cbind/generated/native.d.ts +31 -0
- package/dest/node/cbind/generated/native.d.ts.map +1 -0
- package/dest/node/cbind/generated/native.js +234 -0
- package/dest/node/cbind/generated/sync.d.ts +23 -0
- package/dest/node/cbind/generated/sync.d.ts.map +1 -0
- package/dest/node/cbind/generated/sync.js +133 -0
- package/dest/node/cbind/schema_compiler.d.ts +70 -0
- package/dest/node/cbind/schema_compiler.d.ts.map +1 -0
- package/dest/node/cbind/schema_compiler.js +683 -0
- package/dest/node/main.js +3 -3
- package/dest/node/proof/index.d.ts +2 -0
- package/dest/node/proof/index.d.ts.map +1 -1
- package/dest/node/proof/index.js +3 -3
- package/dest/node-cjs/barretenberg/backend.d.ts +1 -0
- package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/backend.js +117 -109
- package/dest/node-cjs/barretenberg/index.d.ts +13 -0
- package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/index.js +40 -2
- package/dest/node-cjs/barretenberg/verifier.js +2 -2
- package/dest/node-cjs/barretenberg_api/index.d.ts +2 -2
- package/dest/node-cjs/barretenberg_api/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_api/index.js +5 -5
- package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +5 -4
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +2 -0
- 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 +17 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generate.d.ts +5 -0
- package/dest/node-cjs/cbind/generate.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generate.js +66 -0
- package/dest/node-cjs/cbind/generated/api_types.d.ts +634 -0
- package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generated/api_types.js +925 -0
- package/dest/node-cjs/cbind/generated/async.d.ts +23 -0
- package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generated/async.js +152 -0
- package/dest/node-cjs/cbind/generated/native.d.ts +31 -0
- package/dest/node-cjs/cbind/generated/native.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generated/native.js +238 -0
- package/dest/node-cjs/cbind/generated/sync.d.ts +23 -0
- package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generated/sync.js +137 -0
- package/dest/node-cjs/cbind/schema_compiler.d.ts +70 -0
- package/dest/node-cjs/cbind/schema_compiler.d.ts.map +1 -0
- package/dest/node-cjs/cbind/schema_compiler.js +691 -0
- package/dest/node-cjs/main.js +3 -3
- package/dest/node-cjs/proof/index.d.ts +2 -0
- package/dest/node-cjs/proof/index.d.ts.map +1 -1
- package/dest/node-cjs/proof/index.js +3 -1
- package/package.json +4 -3
- package/src/barretenberg/backend.ts +129 -137
- package/src/barretenberg/index.ts +52 -1
- package/src/barretenberg/verifier.ts +1 -1
- package/src/barretenberg_api/index.ts +4 -4
- package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +5 -3
- package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +23 -0
- package/src/cbind/README.md +1 -0
- package/src/cbind/generate.ts +89 -0
- package/src/cbind/schema_compiler.ts +833 -0
- package/src/main.ts +2 -2
- package/src/proof/index.ts +2 -2
|
@@ -383,11 +383,11 @@ export class BarretenbergApi {
|
|
|
383
383
|
return out as any;
|
|
384
384
|
}
|
|
385
385
|
|
|
386
|
-
async
|
|
386
|
+
async acirProveUltraZKHonk(acirVec: Uint8Array, witnessVec: Uint8Array, vkBuf: Uint8Array): Promise<Uint8Array> {
|
|
387
387
|
const inArgs = [acirVec, witnessVec, vkBuf].map(serializeBufferable);
|
|
388
388
|
const outTypes: OutputType[] = [BufferDeserializer()];
|
|
389
389
|
const result = await this.wasm.callWasmExport(
|
|
390
|
-
'
|
|
390
|
+
'acir_prove_ultra_zk_honk',
|
|
391
391
|
inArgs,
|
|
392
392
|
outTypes.map(t => t.SIZE_IN_BYTES),
|
|
393
393
|
);
|
|
@@ -455,11 +455,11 @@ export class BarretenbergApi {
|
|
|
455
455
|
return out[0];
|
|
456
456
|
}
|
|
457
457
|
|
|
458
|
-
async
|
|
458
|
+
async acirVerifyUltraZKHonk(proofBuf: Uint8Array, vkBuf: Uint8Array): Promise<boolean> {
|
|
459
459
|
const inArgs = [proofBuf, vkBuf].map(serializeBufferable);
|
|
460
460
|
const outTypes: OutputType[] = [BoolDeserializer()];
|
|
461
461
|
const result = await this.wasm.callWasmExport(
|
|
462
|
-
'
|
|
462
|
+
'acir_verify_ultra_zk_honk',
|
|
463
463
|
inArgs,
|
|
464
464
|
outTypes.map(t => t.SIZE_IN_BYTES),
|
|
465
465
|
);
|
|
@@ -49,9 +49,11 @@ export class BarretenbergWasmBase {
|
|
|
49
49
|
const m = this.getMemory();
|
|
50
50
|
const str2 = `${str} (mem: ${(m.length / (1024 * 1024)).toFixed(2)}MiB)`;
|
|
51
51
|
this.logger(str2);
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
},
|
|
53
|
+
|
|
54
|
+
throw_or_abort_impl: (addr: number) => {
|
|
55
|
+
const str = this.stringFromAddress(addr);
|
|
56
|
+
throw new Error(str);
|
|
55
57
|
},
|
|
56
58
|
|
|
57
59
|
get_data: (keyAddr: number, outBufAddr: number) => {
|
|
@@ -136,6 +136,29 @@ export class BarretenbergWasmMain extends BarretenbergWasmBase {
|
|
|
136
136
|
return this.getMemorySlice(ptr + 4, ptr + 4 + length);
|
|
137
137
|
});
|
|
138
138
|
}
|
|
139
|
+
|
|
140
|
+
cbindCall(cbind: string, inputBuffer: Uint8Array): any {
|
|
141
|
+
const outputSizePtr = this.call('bbmalloc', 4);
|
|
142
|
+
const outputMsgpackPtr = this.call('bbmalloc', 4);
|
|
143
|
+
|
|
144
|
+
const inputPtr = this.call('bbmalloc', inputBuffer.length);
|
|
145
|
+
this.writeMemory(inputPtr, inputBuffer);
|
|
146
|
+
this.call(cbind, inputPtr, inputBuffer.length, outputMsgpackPtr, outputSizePtr);
|
|
147
|
+
|
|
148
|
+
const readPtr32 = (ptr32: number) => {
|
|
149
|
+
const dataView = new DataView(this.getMemorySlice(ptr32, ptr32 + 4).buffer);
|
|
150
|
+
return dataView.getUint32(0, true);
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
const encodedResult = this.getMemorySlice(
|
|
154
|
+
readPtr32(outputMsgpackPtr),
|
|
155
|
+
readPtr32(outputMsgpackPtr) + readPtr32(outputSizePtr),
|
|
156
|
+
);
|
|
157
|
+
this.call('bbfree', inputPtr);
|
|
158
|
+
this.call('bbfree', outputSizePtr);
|
|
159
|
+
this.call('bbfree', outputMsgpackPtr);
|
|
160
|
+
return encodedResult;
|
|
161
|
+
}
|
|
139
162
|
}
|
|
140
163
|
|
|
141
164
|
/**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Derive bindings from the reported scheme of msgpack from bb. Currently redundant with bindgen, until that is supplanted.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate TypeScript bindings from msgpack schema
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { writeFileSync, mkdirSync } from 'fs';
|
|
6
|
+
import { dirname, join } from 'path';
|
|
7
|
+
import { exec } from 'child_process';
|
|
8
|
+
import { promisify } from 'util';
|
|
9
|
+
import { fileURLToPath } from 'url';
|
|
10
|
+
import {
|
|
11
|
+
createSharedTypesCompiler,
|
|
12
|
+
createSyncApiCompiler,
|
|
13
|
+
createAsyncApiCompiler,
|
|
14
|
+
createNativeApiCompiler,
|
|
15
|
+
type SchemaCompiler,
|
|
16
|
+
} from './schema_compiler.js';
|
|
17
|
+
|
|
18
|
+
const execAsync = promisify(exec);
|
|
19
|
+
|
|
20
|
+
interface GeneratorConfig {
|
|
21
|
+
name: string;
|
|
22
|
+
outputFile: string;
|
|
23
|
+
createCompiler: () => SchemaCompiler;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const GENERATORS: GeneratorConfig[] = [
|
|
27
|
+
{
|
|
28
|
+
name: 'Shared types',
|
|
29
|
+
outputFile: 'generated/api_types.ts',
|
|
30
|
+
createCompiler: createSharedTypesCompiler,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: 'Sync API',
|
|
34
|
+
outputFile: 'generated/sync.ts',
|
|
35
|
+
createCompiler: createSyncApiCompiler,
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Async API',
|
|
39
|
+
outputFile: 'generated/async.ts',
|
|
40
|
+
createCompiler: createAsyncApiCompiler,
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Native API',
|
|
44
|
+
outputFile: 'generated/native.ts',
|
|
45
|
+
createCompiler: createNativeApiCompiler,
|
|
46
|
+
},
|
|
47
|
+
];
|
|
48
|
+
|
|
49
|
+
// @ts-ignore
|
|
50
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
51
|
+
|
|
52
|
+
async function generate() {
|
|
53
|
+
const bbBuildPath = process.env.BB_BINARY_PATH || join(__dirname, '../../../cpp/build/bin/bb');
|
|
54
|
+
|
|
55
|
+
// Get schema from bb
|
|
56
|
+
console.log('Fetching msgpack schema from bb...');
|
|
57
|
+
const { stdout } = await execAsync(`${bbBuildPath} msgpack schema`);
|
|
58
|
+
const schema = JSON.parse(stdout.trim());
|
|
59
|
+
|
|
60
|
+
if (!schema.commands || !schema.responses) {
|
|
61
|
+
throw new Error('Invalid schema: missing commands or responses');
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
console.log('Generating TypeScript bindings...\n');
|
|
65
|
+
|
|
66
|
+
// Ensure output directory exists
|
|
67
|
+
const outputDir = join(__dirname, 'generated');
|
|
68
|
+
mkdirSync(outputDir, { recursive: true });
|
|
69
|
+
|
|
70
|
+
// Generate each output file
|
|
71
|
+
for (const config of GENERATORS) {
|
|
72
|
+
const compiler = config.createCompiler();
|
|
73
|
+
compiler.processApiSchema(schema.commands, schema.responses);
|
|
74
|
+
|
|
75
|
+
const outputPath = join(__dirname, config.outputFile);
|
|
76
|
+
const content = compiler.compile();
|
|
77
|
+
writeFileSync(outputPath, content);
|
|
78
|
+
|
|
79
|
+
console.log(`✓ ${config.name}: ${outputPath}`);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
console.log('\nGeneration complete!');
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Run the generator
|
|
86
|
+
generate().catch(error => {
|
|
87
|
+
console.error('Generation failed:', error);
|
|
88
|
+
process.exit(1);
|
|
89
|
+
});
|