@aztec/bb.js 3.0.0-nightly.20251125 → 3.0.0-nightly.20251126
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/build/amd64-linux/bb +0 -0
- package/build/amd64-macos/bb +0 -0
- package/build/amd64-macos/nodejs_module.node +0 -0
- package/build/arm64-linux/bb +0 -0
- package/build/arm64-macos/bb +0 -0
- package/build/arm64-macos/nodejs_module.node +0 -0
- 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/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node/bbapi/exception_handling.test.d.ts +2 -0
- package/dest/node/bbapi/exception_handling.test.d.ts.map +1 -0
- package/dest/node/bbapi/exception_handling.test.js +48 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node-cjs/bbapi/exception_handling.test.d.ts +2 -0
- package/dest/node-cjs/bbapi/exception_handling.test.d.ts.map +1 -0
- package/dest/node-cjs/bbapi/exception_handling.test.js +50 -0
- package/package.json +1 -1
- package/src/bbapi/exception_handling.test.ts +54 -0
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exception_handling.test.d.ts","sourceRoot":"","sources":["../../../src/bbapi/exception_handling.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { BarretenbergWasmSyncBackend } from '../bb_backends/wasm.js';
|
|
2
|
+
import { SyncApi } from '../cbind/generated/sync.js';
|
|
3
|
+
describe('BBApi Exception Handling from bb.js', () => {
|
|
4
|
+
let backend;
|
|
5
|
+
let api;
|
|
6
|
+
beforeAll(async () => {
|
|
7
|
+
backend = await BarretenbergWasmSyncBackend.new();
|
|
8
|
+
api = new SyncApi(backend);
|
|
9
|
+
}, 60000);
|
|
10
|
+
afterAll(() => {
|
|
11
|
+
backend.destroy();
|
|
12
|
+
});
|
|
13
|
+
it('should catch CRS initialization exceptions from WASM', () => {
|
|
14
|
+
// Create an SrsInitSrs command with invalid data that will cause an exception in C++
|
|
15
|
+
// We pass buffers that are too small, which will cause validation to fail
|
|
16
|
+
const invalidCommand = {
|
|
17
|
+
numPoints: 100, // Request 100 points (requires 6400 bytes)
|
|
18
|
+
pointsBuf: new Uint8Array(10), // Only 10 bytes - will cause exception
|
|
19
|
+
g2Point: new Uint8Array(10), // Only 10 bytes (needs 128) - will cause exception
|
|
20
|
+
};
|
|
21
|
+
// In WASM builds, throw_or_abort calls abort directly which throws a generic Error
|
|
22
|
+
// In native builds with exceptions, our try-catch in bbapi converts it to ErrorResponse
|
|
23
|
+
// This test verifies that errors are catchable from bb.js (even if as generic Error in WASM)
|
|
24
|
+
expect(() => {
|
|
25
|
+
api.srsInitSrs(invalidCommand);
|
|
26
|
+
}).toThrow();
|
|
27
|
+
});
|
|
28
|
+
it('should return error message from caught exception', () => {
|
|
29
|
+
const invalidCommand = {
|
|
30
|
+
numPoints: 100,
|
|
31
|
+
pointsBuf: new Uint8Array(10),
|
|
32
|
+
g2Point: new Uint8Array(10),
|
|
33
|
+
};
|
|
34
|
+
try {
|
|
35
|
+
api.srsInitSrs(invalidCommand);
|
|
36
|
+
fail('Expected exception to be thrown');
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
// Error is catchable and contains a useful message
|
|
40
|
+
expect(error).toBeInstanceOf(Error);
|
|
41
|
+
expect(error.message).toBeTruthy();
|
|
42
|
+
expect(error.message.length).toBeGreaterThan(0);
|
|
43
|
+
expect(error.message).toContain('g1_identity');
|
|
44
|
+
console.log('Successfully caught exception from bb.js with message:', error.message);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZXB0aW9uX2hhbmRsaW5nLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmJhcGkvZXhjZXB0aW9uX2hhbmRsaW5nLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3JELFFBQVEsQ0FBQyxxQ0FBcUMsRUFBRSxHQUFHLEVBQUU7SUFDbkQsSUFBSSxPQUFvQyxDQUFDO0lBQ3pDLElBQUksR0FBWSxDQUFDO0lBRWpCLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNuQixPQUFPLEdBQUcsTUFBTSwyQkFBMkIsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNsRCxHQUFHLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRVYsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUNaLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNwQixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxzREFBc0QsRUFBRSxHQUFHLEVBQUU7UUFDOUQscUZBQXFGO1FBQ3JGLDBFQUEwRTtRQUMxRSxNQUFNLGNBQWMsR0FBRztZQUNyQixTQUFTLEVBQUUsR0FBRyxFQUFFLDJDQUEyQztZQUMzRCxTQUFTLEVBQUUsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsdUNBQXVDO1lBQ3RFLE9BQU8sRUFBRSxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxtREFBbUQ7U0FDakYsQ0FBQztRQUVGLG1GQUFtRjtRQUNuRix3RkFBd0Y7UUFDeEYsNkZBQTZGO1FBQzdGLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixHQUFHLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsbURBQW1ELEVBQUUsR0FBRyxFQUFFO1FBQzNELE1BQU0sY0FBYyxHQUFHO1lBQ3JCLFNBQVMsRUFBRSxHQUFHO1lBQ2QsU0FBUyxFQUFFLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLEVBQUUsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDO1NBQzVCLENBQUM7UUFFRixJQUFJLENBQUM7WUFDSCxHQUFHLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsbURBQW1EO1lBQ25ELE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEMsTUFBTSxDQUFFLEtBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM5QyxNQUFNLENBQUUsS0FBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0QsTUFBTSxDQUFFLEtBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDMUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3REFBd0QsRUFBRyxLQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEcsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exception_handling.test.d.ts","sourceRoot":"","sources":["../../../src/bbapi/exception_handling.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const wasm_js_1 = require("../bb_backends/wasm.js");
|
|
4
|
+
const sync_js_1 = require("../cbind/generated/sync.js");
|
|
5
|
+
describe('BBApi Exception Handling from bb.js', () => {
|
|
6
|
+
let backend;
|
|
7
|
+
let api;
|
|
8
|
+
beforeAll(async () => {
|
|
9
|
+
backend = await wasm_js_1.BarretenbergWasmSyncBackend.new();
|
|
10
|
+
api = new sync_js_1.SyncApi(backend);
|
|
11
|
+
}, 60000);
|
|
12
|
+
afterAll(() => {
|
|
13
|
+
backend.destroy();
|
|
14
|
+
});
|
|
15
|
+
it('should catch CRS initialization exceptions from WASM', () => {
|
|
16
|
+
// Create an SrsInitSrs command with invalid data that will cause an exception in C++
|
|
17
|
+
// We pass buffers that are too small, which will cause validation to fail
|
|
18
|
+
const invalidCommand = {
|
|
19
|
+
numPoints: 100, // Request 100 points (requires 6400 bytes)
|
|
20
|
+
pointsBuf: new Uint8Array(10), // Only 10 bytes - will cause exception
|
|
21
|
+
g2Point: new Uint8Array(10), // Only 10 bytes (needs 128) - will cause exception
|
|
22
|
+
};
|
|
23
|
+
// In WASM builds, throw_or_abort calls abort directly which throws a generic Error
|
|
24
|
+
// In native builds with exceptions, our try-catch in bbapi converts it to ErrorResponse
|
|
25
|
+
// This test verifies that errors are catchable from bb.js (even if as generic Error in WASM)
|
|
26
|
+
expect(() => {
|
|
27
|
+
api.srsInitSrs(invalidCommand);
|
|
28
|
+
}).toThrow();
|
|
29
|
+
});
|
|
30
|
+
it('should return error message from caught exception', () => {
|
|
31
|
+
const invalidCommand = {
|
|
32
|
+
numPoints: 100,
|
|
33
|
+
pointsBuf: new Uint8Array(10),
|
|
34
|
+
g2Point: new Uint8Array(10),
|
|
35
|
+
};
|
|
36
|
+
try {
|
|
37
|
+
api.srsInitSrs(invalidCommand);
|
|
38
|
+
fail('Expected exception to be thrown');
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
// Error is catchable and contains a useful message
|
|
42
|
+
expect(error).toBeInstanceOf(Error);
|
|
43
|
+
expect(error.message).toBeTruthy();
|
|
44
|
+
expect(error.message.length).toBeGreaterThan(0);
|
|
45
|
+
expect(error.message).toContain('g1_identity');
|
|
46
|
+
console.log('Successfully caught exception from bb.js with message:', error.message);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZXB0aW9uX2hhbmRsaW5nLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmJhcGkvZXhjZXB0aW9uX2hhbmRsaW5nLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxvREFBcUU7QUFDckUsd0RBQXFEO0FBR3JELFFBQVEsQ0FBQyxxQ0FBcUMsRUFBRSxHQUFHLEVBQUU7SUFDbkQsSUFBSSxPQUFvQyxDQUFDO0lBQ3pDLElBQUksR0FBWSxDQUFDO0lBRWpCLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNuQixPQUFPLEdBQUcsTUFBTSxxQ0FBMkIsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNsRCxHQUFHLEdBQUcsSUFBSSxpQkFBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUVWLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDWixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsc0RBQXNELEVBQUUsR0FBRyxFQUFFO1FBQzlELHFGQUFxRjtRQUNyRiwwRUFBMEU7UUFDMUUsTUFBTSxjQUFjLEdBQUc7WUFDckIsU0FBUyxFQUFFLEdBQUcsRUFBRSwyQ0FBMkM7WUFDM0QsU0FBUyxFQUFFLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFLHVDQUF1QztZQUN0RSxPQUFPLEVBQUUsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsbURBQW1EO1NBQ2pGLENBQUM7UUFFRixtRkFBbUY7UUFDbkYsd0ZBQXdGO1FBQ3hGLDZGQUE2RjtRQUM3RixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsR0FBRyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLG1EQUFtRCxFQUFFLEdBQUcsRUFBRTtRQUMzRCxNQUFNLGNBQWMsR0FBRztZQUNyQixTQUFTLEVBQUUsR0FBRztZQUNkLFNBQVMsRUFBRSxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDN0IsT0FBTyxFQUFFLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQztTQUM1QixDQUFDO1FBRUYsSUFBSSxDQUFDO1lBQ0gsR0FBRyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLG1EQUFtRDtZQUNuRCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sQ0FBRSxLQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDOUMsTUFBTSxDQUFFLEtBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNELE1BQU0sQ0FBRSxLQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzFELE9BQU8sQ0FBQyxHQUFHLENBQUMsd0RBQXdELEVBQUcsS0FBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xHLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/bb.js",
|
|
3
3
|
"packageManager": "yarn@4.5.2",
|
|
4
|
-
"version": "3.0.0-nightly.
|
|
4
|
+
"version": "3.0.0-nightly.20251126",
|
|
5
5
|
"homepage": "https://github.com/AztecProtocol/aztec-packages/tree/master/barretenberg/ts",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { BarretenbergWasmSyncBackend } from '../bb_backends/wasm.js';
|
|
2
|
+
import { SyncApi } from '../cbind/generated/sync.js';
|
|
3
|
+
import { BBApiException } from '../bbapi_exception.js';
|
|
4
|
+
|
|
5
|
+
describe('BBApi Exception Handling from bb.js', () => {
|
|
6
|
+
let backend: BarretenbergWasmSyncBackend;
|
|
7
|
+
let api: SyncApi;
|
|
8
|
+
|
|
9
|
+
beforeAll(async () => {
|
|
10
|
+
backend = await BarretenbergWasmSyncBackend.new();
|
|
11
|
+
api = new SyncApi(backend);
|
|
12
|
+
}, 60000);
|
|
13
|
+
|
|
14
|
+
afterAll(() => {
|
|
15
|
+
backend.destroy();
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it('should catch CRS initialization exceptions from WASM', () => {
|
|
19
|
+
// Create an SrsInitSrs command with invalid data that will cause an exception in C++
|
|
20
|
+
// We pass buffers that are too small, which will cause validation to fail
|
|
21
|
+
const invalidCommand = {
|
|
22
|
+
numPoints: 100, // Request 100 points (requires 6400 bytes)
|
|
23
|
+
pointsBuf: new Uint8Array(10), // Only 10 bytes - will cause exception
|
|
24
|
+
g2Point: new Uint8Array(10), // Only 10 bytes (needs 128) - will cause exception
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
// In WASM builds, throw_or_abort calls abort directly which throws a generic Error
|
|
28
|
+
// In native builds with exceptions, our try-catch in bbapi converts it to ErrorResponse
|
|
29
|
+
// This test verifies that errors are catchable from bb.js (even if as generic Error in WASM)
|
|
30
|
+
expect(() => {
|
|
31
|
+
api.srsInitSrs(invalidCommand);
|
|
32
|
+
}).toThrow();
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it('should return error message from caught exception', () => {
|
|
36
|
+
const invalidCommand = {
|
|
37
|
+
numPoints: 100,
|
|
38
|
+
pointsBuf: new Uint8Array(10),
|
|
39
|
+
g2Point: new Uint8Array(10),
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
try {
|
|
43
|
+
api.srsInitSrs(invalidCommand);
|
|
44
|
+
fail('Expected exception to be thrown');
|
|
45
|
+
} catch (error) {
|
|
46
|
+
// Error is catchable and contains a useful message
|
|
47
|
+
expect(error).toBeInstanceOf(Error);
|
|
48
|
+
expect((error as Error).message).toBeTruthy();
|
|
49
|
+
expect((error as Error).message.length).toBeGreaterThan(0);
|
|
50
|
+
expect((error as Error).message).toContain('g1_identity');
|
|
51
|
+
console.log('Successfully caught exception from bb.js with message:', (error as Error).message);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
});
|