@aztec/bb.js 0.0.1-commit.d3ec352c → 0.0.1-commit.f295ac2

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.
Files changed (186) hide show
  1. package/build/amd64-linux/bb +0 -0
  2. package/build/amd64-linux/nodejs_module.node +0 -0
  3. package/build/amd64-macos/bb +0 -0
  4. package/build/amd64-macos/nodejs_module.node +0 -0
  5. package/build/arm64-linux/bb +0 -0
  6. package/build/arm64-linux/nodejs_module.node +0 -0
  7. package/build/arm64-macos/bb +0 -0
  8. package/build/arm64-macos/nodejs_module.node +0 -0
  9. package/dest/browser/barretenberg/backend.d.ts +48 -17
  10. package/dest/browser/barretenberg/backend.d.ts.map +1 -1
  11. package/dest/browser/barretenberg/backend.js +95 -6
  12. package/dest/browser/barretenberg/index.d.ts +2 -2
  13. package/dest/browser/barretenberg/index.d.ts.map +1 -1
  14. package/dest/browser/barretenberg/index.js +2 -2
  15. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.js +1 -1
  16. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
  17. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
  18. package/dest/browser/bb_backends/index.d.ts +3 -1
  19. package/dest/browser/bb_backends/index.d.ts.map +1 -1
  20. package/dest/browser/cbind/generate.d.ts +5 -2
  21. package/dest/browser/cbind/generate.d.ts.map +1 -1
  22. package/dest/browser/cbind/generate.js +47 -25
  23. package/dest/browser/cbind/generated/api_types.d.ts +787 -1660
  24. package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
  25. package/dest/browser/cbind/generated/api_types.js +1535 -1535
  26. package/dest/browser/cbind/generated/async.d.ts +1 -1
  27. package/dest/browser/cbind/generated/async.d.ts.map +1 -1
  28. package/dest/browser/cbind/generated/async.js +6 -2
  29. package/dest/browser/cbind/generated/sync.d.ts +1 -1
  30. package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
  31. package/dest/browser/cbind/generated/sync.js +6 -2
  32. package/dest/browser/cbind/naming.d.ts +16 -0
  33. package/dest/browser/cbind/naming.d.ts.map +1 -0
  34. package/dest/browser/cbind/naming.js +24 -0
  35. package/dest/browser/cbind/rust_codegen.d.ts +25 -0
  36. package/dest/browser/cbind/rust_codegen.d.ts.map +1 -0
  37. package/dest/browser/cbind/rust_codegen.js +416 -0
  38. package/dest/browser/cbind/schema_visitor.d.ts +47 -0
  39. package/dest/browser/cbind/schema_visitor.d.ts.map +1 -0
  40. package/dest/browser/cbind/schema_visitor.js +158 -0
  41. package/dest/browser/cbind/typescript_codegen.d.ts +30 -0
  42. package/dest/browser/cbind/typescript_codegen.d.ts.map +1 -0
  43. package/dest/browser/cbind/typescript_codegen.js +365 -0
  44. package/dest/browser/index.d.ts +2 -2
  45. package/dest/browser/index.d.ts.map +1 -1
  46. package/dest/browser/index.js +2 -2
  47. package/dest/node/barretenberg/backend.d.ts +48 -17
  48. package/dest/node/barretenberg/backend.d.ts.map +1 -1
  49. package/dest/node/barretenberg/backend.js +95 -6
  50. package/dest/node/barretenberg/backend.test.d.ts +2 -0
  51. package/dest/node/barretenberg/backend.test.d.ts.map +1 -0
  52. package/dest/node/barretenberg/backend.test.js +103 -0
  53. package/dest/node/barretenberg/index.d.ts +2 -2
  54. package/dest/node/barretenberg/index.d.ts.map +1 -1
  55. package/dest/node/barretenberg/index.js +2 -2
  56. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  57. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +1 -1
  58. package/dest/node/bb_backends/index.d.ts +3 -1
  59. package/dest/node/bb_backends/index.d.ts.map +1 -1
  60. package/dest/node/bb_backends/node/index.d.ts +1 -1
  61. package/dest/node/bb_backends/node/index.d.ts.map +1 -1
  62. package/dest/node/bb_backends/node/index.js +5 -5
  63. package/dest/node/bb_backends/node/native_shm.d.ts +3 -2
  64. package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -1
  65. package/dest/node/bb_backends/node/native_shm.js +38 -20
  66. package/dest/node/bb_backends/node/native_shm_async.d.ts +2 -2
  67. package/dest/node/bb_backends/node/native_shm_async.d.ts.map +1 -1
  68. package/dest/node/bb_backends/node/native_shm_async.js +15 -20
  69. package/dest/node/bb_backends/node/native_socket.d.ts +1 -1
  70. package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -1
  71. package/dest/node/bb_backends/node/native_socket.js +4 -4
  72. package/dest/node/bb_backends/node/platform.d.ts +1 -1
  73. package/dest/node/bb_backends/node/platform.d.ts.map +1 -1
  74. package/dest/node/bb_backends/node/platform.js +7 -2
  75. package/dest/node/cbind/generate.d.ts +5 -2
  76. package/dest/node/cbind/generate.d.ts.map +1 -1
  77. package/dest/node/cbind/generate.js +47 -25
  78. package/dest/node/cbind/generated/api_types.d.ts +787 -1660
  79. package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
  80. package/dest/node/cbind/generated/api_types.js +1535 -1535
  81. package/dest/node/cbind/generated/async.d.ts +1 -1
  82. package/dest/node/cbind/generated/async.d.ts.map +1 -1
  83. package/dest/node/cbind/generated/async.js +6 -2
  84. package/dest/node/cbind/generated/sync.d.ts +1 -1
  85. package/dest/node/cbind/generated/sync.d.ts.map +1 -1
  86. package/dest/node/cbind/generated/sync.js +6 -2
  87. package/dest/node/cbind/naming.d.ts +16 -0
  88. package/dest/node/cbind/naming.d.ts.map +1 -0
  89. package/dest/node/cbind/naming.js +24 -0
  90. package/dest/node/cbind/rust_codegen.d.ts +25 -0
  91. package/dest/node/cbind/rust_codegen.d.ts.map +1 -0
  92. package/dest/node/cbind/rust_codegen.js +416 -0
  93. package/dest/node/cbind/schema_visitor.d.ts +47 -0
  94. package/dest/node/cbind/schema_visitor.d.ts.map +1 -0
  95. package/dest/node/cbind/schema_visitor.js +158 -0
  96. package/dest/node/cbind/typescript_codegen.d.ts +30 -0
  97. package/dest/node/cbind/typescript_codegen.d.ts.map +1 -0
  98. package/dest/node/cbind/typescript_codegen.js +365 -0
  99. package/dest/node/index.d.ts +2 -2
  100. package/dest/node/index.d.ts.map +1 -1
  101. package/dest/node/index.js +2 -2
  102. package/dest/node-cjs/barretenberg/backend.d.ts +48 -17
  103. package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
  104. package/dest/node-cjs/barretenberg/backend.js +97 -6
  105. package/dest/node-cjs/barretenberg/backend.test.d.ts +2 -0
  106. package/dest/node-cjs/barretenberg/backend.test.d.ts.map +1 -0
  107. package/dest/node-cjs/barretenberg/backend.test.js +105 -0
  108. package/dest/node-cjs/barretenberg/index.d.ts +2 -2
  109. package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
  110. package/dest/node-cjs/barretenberg/index.js +4 -2
  111. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  112. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +1 -1
  113. package/dest/node-cjs/bb_backends/index.d.ts +3 -1
  114. package/dest/node-cjs/bb_backends/index.d.ts.map +1 -1
  115. package/dest/node-cjs/bb_backends/node/index.d.ts +1 -1
  116. package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -1
  117. package/dest/node-cjs/bb_backends/node/index.js +5 -5
  118. package/dest/node-cjs/bb_backends/node/native_shm.d.ts +3 -2
  119. package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -1
  120. package/dest/node-cjs/bb_backends/node/native_shm.js +37 -19
  121. package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts +2 -2
  122. package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts.map +1 -1
  123. package/dest/node-cjs/bb_backends/node/native_shm_async.js +15 -20
  124. package/dest/node-cjs/bb_backends/node/native_socket.d.ts +1 -1
  125. package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -1
  126. package/dest/node-cjs/bb_backends/node/native_socket.js +4 -4
  127. package/dest/node-cjs/bb_backends/node/platform.d.ts +1 -1
  128. package/dest/node-cjs/bb_backends/node/platform.d.ts.map +1 -1
  129. package/dest/node-cjs/bb_backends/node/platform.js +7 -2
  130. package/dest/node-cjs/cbind/generate.d.ts +5 -2
  131. package/dest/node-cjs/cbind/generate.d.ts.map +1 -1
  132. package/dest/node-cjs/cbind/generate.js +47 -25
  133. package/dest/node-cjs/cbind/generated/api_types.d.ts +787 -1660
  134. package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
  135. package/dest/node-cjs/cbind/generated/api_types.js +1744 -1744
  136. package/dest/node-cjs/cbind/generated/async.d.ts +1 -1
  137. package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
  138. package/dest/node-cjs/cbind/generated/async.js +6 -2
  139. package/dest/node-cjs/cbind/generated/sync.d.ts +1 -1
  140. package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
  141. package/dest/node-cjs/cbind/generated/sync.js +6 -2
  142. package/dest/node-cjs/cbind/naming.d.ts +16 -0
  143. package/dest/node-cjs/cbind/naming.d.ts.map +1 -0
  144. package/dest/node-cjs/cbind/naming.js +28 -0
  145. package/dest/node-cjs/cbind/rust_codegen.d.ts +25 -0
  146. package/dest/node-cjs/cbind/rust_codegen.d.ts.map +1 -0
  147. package/dest/node-cjs/cbind/rust_codegen.js +420 -0
  148. package/dest/node-cjs/cbind/schema_visitor.d.ts +47 -0
  149. package/dest/node-cjs/cbind/schema_visitor.d.ts.map +1 -0
  150. package/dest/node-cjs/cbind/schema_visitor.js +162 -0
  151. package/dest/node-cjs/cbind/typescript_codegen.d.ts +30 -0
  152. package/dest/node-cjs/cbind/typescript_codegen.d.ts.map +1 -0
  153. package/dest/node-cjs/cbind/typescript_codegen.js +369 -0
  154. package/dest/node-cjs/index.d.ts +2 -2
  155. package/dest/node-cjs/index.d.ts.map +1 -1
  156. package/dest/node-cjs/index.js +4 -2
  157. package/package.json +1 -1
  158. package/src/barretenberg/backend.test.ts +122 -0
  159. package/src/barretenberg/backend.ts +133 -19
  160. package/src/barretenberg/index.ts +9 -1
  161. package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +1 -1
  162. package/src/bb_backends/index.ts +3 -0
  163. package/src/bb_backends/node/index.ts +9 -4
  164. package/src/bb_backends/node/native_shm.ts +36 -18
  165. package/src/bb_backends/node/native_shm_async.ts +13 -18
  166. package/src/bb_backends/node/native_socket.ts +3 -4
  167. package/src/bb_backends/node/platform.ts +6 -1
  168. package/src/cbind/generate.ts +51 -32
  169. package/src/cbind/generated/api_types.ts +1655 -2756
  170. package/src/cbind/generated/async.ts +7 -2
  171. package/src/cbind/generated/sync.ts +7 -2
  172. package/src/cbind/naming.ts +27 -0
  173. package/src/cbind/rust_codegen.ts +459 -0
  174. package/src/cbind/schema_visitor.ts +219 -0
  175. package/src/cbind/typescript_codegen.ts +419 -0
  176. package/src/index.ts +4 -0
  177. package/dest/browser/cbind/schema_compiler.d.ts +0 -68
  178. package/dest/browser/cbind/schema_compiler.d.ts.map +0 -1
  179. package/dest/browser/cbind/schema_compiler.js +0 -600
  180. package/dest/node/cbind/schema_compiler.d.ts +0 -68
  181. package/dest/node/cbind/schema_compiler.d.ts.map +0 -1
  182. package/dest/node/cbind/schema_compiler.js +0 -600
  183. package/dest/node-cjs/cbind/schema_compiler.d.ts +0 -68
  184. package/dest/node-cjs/cbind/schema_compiler.d.ts.map +0 -1
  185. package/dest/node-cjs/cbind/schema_compiler.js +0 -607
  186. package/src/cbind/schema_compiler.ts +0 -745
@@ -0,0 +1,30 @@
1
+ /**
2
+ * TypeScript Code Generator - String template based
3
+ *
4
+ * Philosophy:
5
+ * - String templates for file structure
6
+ * - Simple type mapping
7
+ * - Idiomatic TypeScript conventions
8
+ * - No complex abstraction
9
+ */
10
+ import type { CompiledSchema } from './schema_visitor.js';
11
+ export declare class TypeScriptCodegen {
12
+ private mapType;
13
+ private mapMsgpackType;
14
+ private needsConversion;
15
+ private generateField;
16
+ private generateMsgpackField;
17
+ private generateInterface;
18
+ private generateMsgpackInterface;
19
+ private generateToFunction;
20
+ private generateFromFunction;
21
+ private generateToConverter;
22
+ private generateFromConverter;
23
+ generateTypes(schema: CompiledSchema): string;
24
+ private generateAsyncApiMethod;
25
+ private generateSyncApiMethod;
26
+ generateAsyncApi(schema: CompiledSchema): string;
27
+ generateSyncApi(schema: CompiledSchema): string;
28
+ private generateApiImports;
29
+ }
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdF9jb2RlZ2VuLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2JpbmQvdHlwZXNjcmlwdF9jb2RlZ2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFnQyxNQUFNLHFCQUFxQixDQUFDO0FBUXhGLHFCQUFhLGlCQUFpQjtJQUU1QixPQUFPLENBQUMsT0FBTztJQWlDZixPQUFPLENBQUMsY0FBYztJQWlDdEIsT0FBTyxDQUFDLGVBQWU7SUFldkIsT0FBTyxDQUFDLGFBQWE7SUFPckIsT0FBTyxDQUFDLG9CQUFvQjtJQU01QixPQUFPLENBQUMsaUJBQWlCO0lBVXpCLE9BQU8sQ0FBQyx3QkFBd0I7SUFVaEMsT0FBTyxDQUFDLGtCQUFrQjtJQThCMUIsT0FBTyxDQUFDLG9CQUFvQjtJQWlDNUIsT0FBTyxDQUFDLG1CQUFtQjtJQXdCM0IsT0FBTyxDQUFDLHFCQUFxQjtJQXdCN0IsYUFBYSxDQUFDLE1BQU0sRUFBRSxjQUFjLEdBQUcsTUFBTSxDQWlENUM7SUFHRCxPQUFPLENBQUMsc0JBQXNCO0lBbUI5QixPQUFPLENBQUMscUJBQXFCO0lBbUI3QixnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsY0FBYyxHQUFHLE1BQU0sQ0E2Qi9DO0lBR0QsZUFBZSxDQUFDLE1BQU0sRUFBRSxjQUFjLEdBQUcsTUFBTSxDQTZCOUM7SUFHRCxPQUFPLENBQUMsa0JBQWtCO0NBbUIzQiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript_codegen.d.ts","sourceRoot":"","sources":["../../../src/cbind/typescript_codegen.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAgC,MAAM,qBAAqB,CAAC;AAQxF,qBAAa,iBAAiB;IAE5B,OAAO,CAAC,OAAO;IAiCf,OAAO,CAAC,cAAc;IAiCtB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,kBAAkB;IA8B1B,OAAO,CAAC,oBAAoB;IAiC5B,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,qBAAqB;IAwB7B,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAiD5C;IAGD,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,qBAAqB;IAmB7B,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA6B/C;IAGD,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA6B9C;IAGD,OAAO,CAAC,kBAAkB;CAmB3B"}
@@ -0,0 +1,369 @@
1
+ "use strict";
2
+ /**
3
+ * TypeScript Code Generator - String template based
4
+ *
5
+ * Philosophy:
6
+ * - String templates for file structure
7
+ * - Simple type mapping
8
+ * - Idiomatic TypeScript conventions
9
+ * - No complex abstraction
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.TypeScriptCodegen = void 0;
13
+ const naming_js_1 = require("./naming.js");
14
+ function toCamelCase(name) {
15
+ const pascal = (0, naming_js_1.toPascalCase)(name);
16
+ return pascal.charAt(0).toLowerCase() + pascal.slice(1);
17
+ }
18
+ class TypeScriptCodegen {
19
+ // Type mapping: Schema type -> TypeScript type
20
+ mapType(type) {
21
+ switch (type.kind) {
22
+ case 'primitive':
23
+ switch (type.primitive) {
24
+ case 'bool': return 'boolean';
25
+ case 'u8': return 'number';
26
+ case 'u16': return 'number';
27
+ case 'u32': return 'number';
28
+ case 'u64': return 'number';
29
+ case 'f64': return 'number';
30
+ case 'string': return 'string';
31
+ case 'bytes': return 'Uint8Array';
32
+ case 'field2': return '[Uint8Array, Uint8Array]'; // Extension field (Fq2)
33
+ }
34
+ break;
35
+ case 'vector':
36
+ return `${this.mapType(type.element)}[]`;
37
+ case 'array':
38
+ return `${this.mapType(type.element)}[]`;
39
+ case 'optional':
40
+ return `${this.mapType(type.element)} | undefined`;
41
+ case 'struct':
42
+ return (0, naming_js_1.toPascalCase)(type.struct.name);
43
+ }
44
+ return 'unknown';
45
+ }
46
+ // Type mapping for msgpack interfaces (uses Msgpack* prefix for structs)
47
+ mapMsgpackType(type) {
48
+ switch (type.kind) {
49
+ case 'primitive':
50
+ switch (type.primitive) {
51
+ case 'bool': return 'boolean';
52
+ case 'u8': return 'number';
53
+ case 'u16': return 'number';
54
+ case 'u32': return 'number';
55
+ case 'u64': return 'number';
56
+ case 'f64': return 'number';
57
+ case 'string': return 'string';
58
+ case 'bytes': return 'Uint8Array';
59
+ case 'field2': return '[Uint8Array, Uint8Array]';
60
+ }
61
+ break;
62
+ case 'vector':
63
+ return `${this.mapMsgpackType(type.element)}[]`;
64
+ case 'array':
65
+ return `${this.mapMsgpackType(type.element)}[]`;
66
+ case 'optional':
67
+ return `${this.mapMsgpackType(type.element)} | undefined`;
68
+ case 'struct':
69
+ return `Msgpack${(0, naming_js_1.toPascalCase)(type.struct.name)}`;
70
+ }
71
+ return 'unknown';
72
+ }
73
+ // Check if type needs conversion (has nested structs)
74
+ needsConversion(type) {
75
+ switch (type.kind) {
76
+ case 'primitive':
77
+ return false;
78
+ case 'vector':
79
+ case 'array':
80
+ case 'optional':
81
+ return this.needsConversion(type.element);
82
+ case 'struct':
83
+ return true;
84
+ }
85
+ return false;
86
+ }
87
+ // Generate field
88
+ generateField(field) {
89
+ const tsName = toCamelCase(field.name);
90
+ const tsType = this.mapType(field.type);
91
+ return ` ${tsName}: ${tsType};`;
92
+ }
93
+ // Generate msgpack field (original names, uses Msgpack* types for structs)
94
+ generateMsgpackField(field) {
95
+ const tsType = this.mapMsgpackType(field.type);
96
+ return ` ${field.name}: ${tsType};`;
97
+ }
98
+ // Generate public interface
99
+ generateInterface(struct) {
100
+ const tsName = (0, naming_js_1.toPascalCase)(struct.name);
101
+ const fields = struct.fields.map(f => this.generateField(f)).join('\n');
102
+ return `export interface ${tsName} {
103
+ ${fields}
104
+ }`;
105
+ }
106
+ // Generate msgpack interface (internal)
107
+ generateMsgpackInterface(struct) {
108
+ const tsName = (0, naming_js_1.toPascalCase)(struct.name);
109
+ const fields = struct.fields.map(f => this.generateMsgpackField(f)).join('\n');
110
+ return `interface Msgpack${tsName} {
111
+ ${fields}
112
+ }`;
113
+ }
114
+ // Generate to* conversion function
115
+ generateToFunction(struct) {
116
+ const tsName = (0, naming_js_1.toPascalCase)(struct.name);
117
+ if (struct.fields.length === 0) {
118
+ return `function to${tsName}(o: Msgpack${tsName}): ${tsName} {
119
+ return {};
120
+ }`;
121
+ }
122
+ const checks = struct.fields
123
+ .map(f => ` if (o.${f.name} === undefined) { throw new Error("Expected ${f.name} in ${tsName} deserialization"); }`)
124
+ .join('\n');
125
+ const conversions = struct.fields
126
+ .map(f => {
127
+ const tsFieldName = toCamelCase(f.name);
128
+ const converter = this.generateToConverter(f.type, `o.${f.name}`);
129
+ return ` ${tsFieldName}: ${converter},`;
130
+ })
131
+ .join('\n');
132
+ return `function to${tsName}(o: Msgpack${tsName}): ${tsName} {
133
+ ${checks};
134
+ return {
135
+ ${conversions}
136
+ };
137
+ }`;
138
+ }
139
+ // Generate from* conversion function
140
+ generateFromFunction(struct) {
141
+ const tsName = (0, naming_js_1.toPascalCase)(struct.name);
142
+ if (struct.fields.length === 0) {
143
+ return `function from${tsName}(o: ${tsName}): Msgpack${tsName} {
144
+ return {};
145
+ }`;
146
+ }
147
+ const checks = struct.fields
148
+ .map(f => {
149
+ const tsFieldName = toCamelCase(f.name);
150
+ return ` if (o.${tsFieldName} === undefined) { throw new Error("Expected ${tsFieldName} in ${tsName} serialization"); }`;
151
+ })
152
+ .join('\n');
153
+ const conversions = struct.fields
154
+ .map(f => {
155
+ const tsFieldName = toCamelCase(f.name);
156
+ const converter = this.generateFromConverter(f.type, `o.${tsFieldName}`);
157
+ return ` ${f.name}: ${converter},`;
158
+ })
159
+ .join('\n');
160
+ return `function from${tsName}(o: ${tsName}): Msgpack${tsName} {
161
+ ${checks};
162
+ return {
163
+ ${conversions}
164
+ };
165
+ }`;
166
+ }
167
+ // Generate converter for to* function
168
+ generateToConverter(type, value) {
169
+ if (!this.needsConversion(type)) {
170
+ return value;
171
+ }
172
+ switch (type.kind) {
173
+ case 'vector':
174
+ case 'array':
175
+ if (this.needsConversion(type.element)) {
176
+ return `${value}.map((v: any) => ${this.generateToConverter(type.element, 'v')})`;
177
+ }
178
+ return value;
179
+ case 'optional':
180
+ if (this.needsConversion(type.element)) {
181
+ return `${value} !== undefined ? ${this.generateToConverter(type.element, value)} : undefined`;
182
+ }
183
+ return value;
184
+ case 'struct':
185
+ return `to${(0, naming_js_1.toPascalCase)(type.struct.name)}(${value})`;
186
+ }
187
+ return value;
188
+ }
189
+ // Generate converter for from* function
190
+ generateFromConverter(type, value) {
191
+ if (!this.needsConversion(type)) {
192
+ return value;
193
+ }
194
+ switch (type.kind) {
195
+ case 'vector':
196
+ case 'array':
197
+ if (this.needsConversion(type.element)) {
198
+ return `${value}.map((v: any) => ${this.generateFromConverter(type.element, 'v')})`;
199
+ }
200
+ return value;
201
+ case 'optional':
202
+ if (this.needsConversion(type.element)) {
203
+ return `${value} !== undefined ? ${this.generateFromConverter(type.element, value)} : undefined`;
204
+ }
205
+ return value;
206
+ case 'struct':
207
+ return `from${(0, naming_js_1.toPascalCase)(type.struct.name)}(${value})`;
208
+ }
209
+ return value;
210
+ }
211
+ // Generate types file (api_types.ts)
212
+ generateTypes(schema) {
213
+ const allStructs = [...schema.structs.values(), ...schema.responses.values()];
214
+ // Public interfaces
215
+ const publicInterfaces = allStructs
216
+ .map(s => this.generateInterface(s))
217
+ .join('\n\n');
218
+ // Msgpack interfaces
219
+ const msgpackInterfaces = allStructs
220
+ .map(s => this.generateMsgpackInterface(s))
221
+ .join('\n\n');
222
+ // Conversion functions
223
+ const toFunctions = allStructs
224
+ .map(s => 'export ' + this.generateToFunction(s))
225
+ .join('\n\n');
226
+ const fromFunctions = allStructs
227
+ .map(s => 'export ' + this.generateFromFunction(s))
228
+ .join('\n\n');
229
+ // BbApiBase interface
230
+ const apiMethods = schema.commands
231
+ .map(c => ` ${toCamelCase(c.name)}(command: ${(0, naming_js_1.toPascalCase)(c.name)}): Promise<${(0, naming_js_1.toPascalCase)(c.responseType)}>;`)
232
+ .join('\n');
233
+ return `// AUTOGENERATED FILE - DO NOT EDIT
234
+
235
+ // Type aliases for primitive types
236
+ export type Field2 = [Uint8Array, Uint8Array];
237
+
238
+ // Public interfaces (exported)
239
+ ${publicInterfaces}
240
+
241
+ // Private Msgpack interfaces (not exported)
242
+ ${msgpackInterfaces}
243
+
244
+ // Conversion functions (exported)
245
+ ${toFunctions}
246
+
247
+ ${fromFunctions}
248
+
249
+ // Base API interface
250
+ export interface BbApiBase {
251
+ ${apiMethods}
252
+ destroy(): Promise<void>;
253
+ }
254
+ `;
255
+ }
256
+ // Generate API method
257
+ generateAsyncApiMethod(command) {
258
+ const methodName = toCamelCase(command.name);
259
+ const cmdType = (0, naming_js_1.toPascalCase)(command.name);
260
+ const respType = (0, naming_js_1.toPascalCase)(command.responseType);
261
+ return ` ${methodName}(command: ${cmdType}): Promise<${respType}> {
262
+ const msgpackCommand = from${cmdType}(command);
263
+ return msgpackCall(this.backend, [["${command.name}", msgpackCommand]]).then(([variantName, result]: [string, any]) => {
264
+ if (variantName === 'ErrorResponse') {
265
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
266
+ }
267
+ if (variantName !== '${command.responseType}') {
268
+ throw new BBApiException(\`Expected variant name '${command.responseType}' but got '\${variantName}'\`);
269
+ }
270
+ return to${respType}(result);
271
+ });
272
+ }`;
273
+ }
274
+ generateSyncApiMethod(command) {
275
+ const methodName = toCamelCase(command.name);
276
+ const cmdType = (0, naming_js_1.toPascalCase)(command.name);
277
+ const respType = (0, naming_js_1.toPascalCase)(command.responseType);
278
+ return ` ${methodName}(command: ${cmdType}): ${respType} {
279
+ const msgpackCommand = from${cmdType}(command);
280
+ const [variantName, result] = msgpackCall(this.backend, [["${command.name}", msgpackCommand]]);
281
+ if (variantName === 'ErrorResponse') {
282
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
283
+ }
284
+ if (variantName !== '${command.responseType}') {
285
+ throw new BBApiException(\`Expected variant name '${command.responseType}' but got '\${variantName}'\`);
286
+ }
287
+ return to${respType}(result);
288
+ }`;
289
+ }
290
+ // Generate async API file
291
+ generateAsyncApi(schema) {
292
+ const imports = this.generateApiImports(schema);
293
+ const methods = schema.commands
294
+ .map(c => this.generateAsyncApiMethod(c))
295
+ .join('\n\n');
296
+ return `// AUTOGENERATED FILE - DO NOT EDIT
297
+
298
+ import { IMsgpackBackendAsync } from '../../bb_backends/interface.js';
299
+ import { Decoder, Encoder } from 'msgpackr';
300
+ import { BBApiException } from '../../bbapi_exception.js';
301
+ ${imports}
302
+
303
+ async function msgpackCall(backend: IMsgpackBackendAsync, input: any[]) {
304
+ const inputBuffer = new Encoder({ useRecords: false }).pack(input);
305
+ const encodedResult = await backend.call(inputBuffer);
306
+ return new Decoder({ useRecords: false }).unpack(encodedResult);
307
+ }
308
+
309
+ export class AsyncApi implements BbApiBase {
310
+ constructor(protected backend: IMsgpackBackendAsync) {}
311
+
312
+ ${methods}
313
+
314
+ destroy(): Promise<void> {
315
+ return this.backend.destroy ? this.backend.destroy() : Promise.resolve();
316
+ }
317
+ }
318
+ `;
319
+ }
320
+ // Generate sync API file
321
+ generateSyncApi(schema) {
322
+ const imports = this.generateApiImports(schema);
323
+ const methods = schema.commands
324
+ .map(c => this.generateSyncApiMethod(c))
325
+ .join('\n\n');
326
+ return `// AUTOGENERATED FILE - DO NOT EDIT
327
+
328
+ import { IMsgpackBackendSync } from '../../bb_backends/interface.js';
329
+ import { Decoder, Encoder } from 'msgpackr';
330
+ import { BBApiException } from '../../bbapi_exception.js';
331
+ ${imports}
332
+
333
+ function msgpackCall(backend: IMsgpackBackendSync, input: any[]) {
334
+ const inputBuffer = new Encoder({ useRecords: false }).pack(input);
335
+ const encodedResult = backend.call(inputBuffer);
336
+ return new Decoder({ useRecords: false }).unpack(encodedResult);
337
+ }
338
+
339
+ export class SyncApi {
340
+ constructor(protected backend: IMsgpackBackendSync) {}
341
+
342
+ ${methods}
343
+
344
+ destroy(): void {
345
+ if (this.backend.destroy) this.backend.destroy();
346
+ }
347
+ }
348
+ `;
349
+ }
350
+ // Generate import statement for API files
351
+ generateApiImports(schema) {
352
+ const types = new Set();
353
+ // Add command types and their conversion functions
354
+ for (const cmd of schema.commands) {
355
+ const cmdType = (0, naming_js_1.toPascalCase)(cmd.name);
356
+ const respType = (0, naming_js_1.toPascalCase)(cmd.responseType);
357
+ types.add(cmdType);
358
+ types.add(respType);
359
+ types.add(`from${cmdType}`);
360
+ types.add(`to${respType}`);
361
+ }
362
+ // Add BbApiBase
363
+ types.add('BbApiBase');
364
+ const sortedTypes = Array.from(types).sort();
365
+ return `import { ${sortedTypes.join(', ')} } from './api_types.js';`;
366
+ }
367
+ }
368
+ exports.TypeScriptCodegen = TypeScriptCodegen;
369
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdF9jb2RlZ2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NiaW5kL3R5cGVzY3JpcHRfY29kZWdlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7O0dBUUc7OztBQUdILDJDQUEyQztBQUUzQyxTQUFTLFdBQVcsQ0FBQyxJQUFZLEVBQVU7SUFDekMsTUFBTSxNQUFNLEdBQUcsSUFBQSx3QkFBWSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQUEsQ0FDekQ7QUFFRDtJQUNFLCtDQUErQztJQUN2QyxPQUFPLENBQUMsSUFBVSxFQUFVO1FBQ2xDLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xCLEtBQUssV0FBVztnQkFDZCxRQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDdkIsS0FBSyxNQUFNLEVBQUUsT0FBTyxTQUFTLENBQUM7b0JBQzlCLEtBQUssSUFBSSxFQUFFLE9BQU8sUUFBUSxDQUFDO29CQUMzQixLQUFLLEtBQUssRUFBRSxPQUFPLFFBQVEsQ0FBQztvQkFDNUIsS0FBSyxLQUFLLEVBQUUsT0FBTyxRQUFRLENBQUM7b0JBQzVCLEtBQUssS0FBSyxFQUFFLE9BQU8sUUFBUSxDQUFDO29CQUM1QixLQUFLLEtBQUssRUFBRSxPQUFPLFFBQVEsQ0FBQztvQkFDNUIsS0FBSyxRQUFRLEVBQUUsT0FBTyxRQUFRLENBQUM7b0JBQy9CLEtBQUssT0FBTyxFQUFFLE9BQU8sWUFBWSxDQUFDO29CQUNsQyxLQUFLLFFBQVEsRUFBRSxPQUFPLDBCQUEwQixDQUFDLENBQUUsd0JBQXdCO2dCQUM3RSxDQUFDO2dCQUNELE1BQU07WUFFUixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxHQUFHLElBQUksQ0FB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
@@ -1,9 +1,9 @@
1
1
  export { Crs, GrumpkinCrs } from './crs/index.js';
2
- export { type BackendOptions, BackendType, Barretenberg, BarretenbergSync, UltraHonkVerifierBackend, UltraHonkBackend, AztecClientBackend, } from './barretenberg/index.js';
2
+ export { type BackendOptions, BackendType, Barretenberg, BarretenbergSync, UltraHonkVerifierBackend, UltraHonkBackend, AztecClientBackend, fieldToString, fieldsToStrings, type UltraHonkBackendOptions, type VerifierTarget, } from './barretenberg/index.js';
3
3
  export { randomBytes } from './random/index.js';
4
4
  export { splitHonkProof, reconstructHonkProof, deflattenFields, type ProofData } from './proof/index.js';
5
5
  export { BBApiException } from './bbapi_exception.js';
6
6
  export type { Bn254G1Point, Bn254G2Point, GrumpkinPoint, Secp256k1Point, Secp256r1Point, Field2, } from './cbind/generated/api_types.js';
7
7
  export { BN254_FQ_MODULUS, BN254_FR_MODULUS, BN254_G1_GENERATOR, BN254_G2_GENERATOR, GRUMPKIN_FR_MODULUS, GRUMPKIN_FQ_MODULUS, GRUMPKIN_G1_GENERATOR, SECP256K1_FR_MODULUS, SECP256K1_FQ_MODULUS, SECP256K1_G1_GENERATOR, SECP256R1_FR_MODULUS, SECP256R1_FQ_MODULUS, SECP256R1_G1_GENERATOR, } from './cbind/generated/curve_constants.js';
8
8
  export { findNapiBinary } from './bb_backends/node/platform.js';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxLQUFLLGNBQWMsRUFDbkIsV0FBVyxFQUNYLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsd0JBQXdCLEVBQ3hCLGdCQUFnQixFQUNoQixrQkFBa0IsR0FDbkIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsS0FBSyxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHdEQsWUFBWSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osYUFBYSxFQUNiLGNBQWMsRUFDZCxjQUFjLEVBQ2QsTUFBTSxHQUNQLE1BQU0sZ0NBQWdDLENBQUM7QUFHeEMsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLHNCQUFzQixFQUN0QixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLHNCQUFzQixHQUN2QixNQUFNLHNDQUFzQyxDQUFDO0FBRTlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQyJ9
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxLQUFLLGNBQWMsRUFDbkIsV0FBVyxFQUNYLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsd0JBQXdCLEVBQ3hCLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGVBQWUsRUFDZixLQUFLLHVCQUF1QixFQUM1QixLQUFLLGNBQWMsR0FDcEIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsS0FBSyxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHdEQsWUFBWSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osYUFBYSxFQUNiLGNBQWMsRUFDZCxjQUFjLEVBQ2QsTUFBTSxHQUNQLE1BQU0sZ0NBQWdDLENBQUM7QUFHeEMsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLHNCQUFzQixFQUN0QixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLHNCQUFzQixHQUN2QixNQUFNLHNDQUFzQyxDQUFDO0FBRTlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQyJ9
@@ -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,KAAK,cAAc,EACnB,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzG,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EACd,cAAc,EACd,MAAM,GACP,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,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,KAAK,cAAc,EACnB,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,KAAK,uBAAuB,EAC5B,KAAK,cAAc,GACpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzG,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EACd,cAAc,EACd,MAAM,GACP,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findNapiBinary = exports.SECP256R1_G1_GENERATOR = exports.SECP256R1_FQ_MODULUS = exports.SECP256R1_FR_MODULUS = exports.SECP256K1_G1_GENERATOR = exports.SECP256K1_FQ_MODULUS = exports.SECP256K1_FR_MODULUS = exports.GRUMPKIN_G1_GENERATOR = exports.GRUMPKIN_FQ_MODULUS = exports.GRUMPKIN_FR_MODULUS = exports.BN254_G2_GENERATOR = exports.BN254_G1_GENERATOR = exports.BN254_FR_MODULUS = exports.BN254_FQ_MODULUS = exports.BBApiException = exports.deflattenFields = exports.reconstructHonkProof = exports.splitHonkProof = exports.randomBytes = exports.AztecClientBackend = exports.UltraHonkBackend = exports.UltraHonkVerifierBackend = exports.BarretenbergSync = exports.Barretenberg = exports.BackendType = exports.GrumpkinCrs = exports.Crs = void 0;
3
+ exports.findNapiBinary = exports.SECP256R1_G1_GENERATOR = exports.SECP256R1_FQ_MODULUS = exports.SECP256R1_FR_MODULUS = exports.SECP256K1_G1_GENERATOR = exports.SECP256K1_FQ_MODULUS = exports.SECP256K1_FR_MODULUS = exports.GRUMPKIN_G1_GENERATOR = exports.GRUMPKIN_FQ_MODULUS = exports.GRUMPKIN_FR_MODULUS = exports.BN254_G2_GENERATOR = exports.BN254_G1_GENERATOR = exports.BN254_FR_MODULUS = exports.BN254_FQ_MODULUS = exports.BBApiException = exports.deflattenFields = exports.reconstructHonkProof = exports.splitHonkProof = exports.randomBytes = exports.fieldsToStrings = exports.fieldToString = exports.AztecClientBackend = exports.UltraHonkBackend = exports.UltraHonkVerifierBackend = exports.BarretenbergSync = exports.Barretenberg = exports.BackendType = exports.GrumpkinCrs = exports.Crs = void 0;
4
4
  const 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; } });
@@ -11,6 +11,8 @@ Object.defineProperty(exports, "BarretenbergSync", { enumerable: true, get: func
11
11
  Object.defineProperty(exports, "UltraHonkVerifierBackend", { enumerable: true, get: function () { return index_js_2.UltraHonkVerifierBackend; } });
12
12
  Object.defineProperty(exports, "UltraHonkBackend", { enumerable: true, get: function () { return index_js_2.UltraHonkBackend; } });
13
13
  Object.defineProperty(exports, "AztecClientBackend", { enumerable: true, get: function () { return index_js_2.AztecClientBackend; } });
14
+ Object.defineProperty(exports, "fieldToString", { enumerable: true, get: function () { return index_js_2.fieldToString; } });
15
+ Object.defineProperty(exports, "fieldsToStrings", { enumerable: true, get: function () { return index_js_2.fieldsToStrings; } });
14
16
  const index_js_3 = require("./random/index.js");
15
17
  Object.defineProperty(exports, "randomBytes", { enumerable: true, get: function () { return index_js_3.randomBytes; } });
16
18
  const index_js_4 = require("./proof/index.js");
@@ -36,4 +38,4 @@ Object.defineProperty(exports, "SECP256R1_FQ_MODULUS", { enumerable: true, get:
36
38
  Object.defineProperty(exports, "SECP256R1_G1_GENERATOR", { enumerable: true, get: function () { return curve_constants_js_1.SECP256R1_G1_GENERATOR; } });
37
39
  const platform_js_1 = require("./bb_backends/node/platform.js");
38
40
  Object.defineProperty(exports, "findNapiBinary", { enumerable: true, get: function () { return platform_js_1.findNapiBinary; } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWtEO0FBQXpDLCtGQUFBLEdBQUcsT0FBQTtBQUFFLHVHQUFBLFdBQVcsT0FBQTtBQUN6QixzREFRaUM7QUFOL0IsdUdBQUEsV0FBVyxPQUFBO0FBQ1gsd0dBQUEsWUFBWSxPQUFBO0FBQ1osNEdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsb0hBQUEsd0JBQXdCLE9BQUE7QUFDeEIsNEdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsOEdBQUEsa0JBQWtCLE9BQUE7QUFHcEIsZ0RBQWdEO0FBQXZDLHVHQUFBLFdBQVcsT0FBQTtBQUNwQiwrQ0FBeUc7QUFBaEcsMEdBQUEsY0FBYyxPQUFBO0FBQUUsZ0hBQUEsb0JBQW9CLE9BQUE7QUFBRSwyR0FBQSxlQUFlLE9BQUE7QUFDOUQsNkRBQXNEO0FBQTdDLG9IQUFBLGNBQWMsT0FBQTtBQVl2QiwrQ0FBK0M7QUFDL0MsNkVBYzhDO0FBYjVDLHNIQUFBLGdCQUFnQixPQUFBO0FBQ2hCLHNIQUFBLGdCQUFnQixPQUFBO0FBQ2hCLHdIQUFBLGtCQUFrQixPQUFBO0FBQ2xCLHdIQUFBLGtCQUFrQixPQUFBO0FBQ2xCLHlIQUFBLG1CQUFtQixPQUFBO0FBQ25CLHlIQUFBLG1CQUFtQixPQUFBO0FBQ25CLDJIQUFBLHFCQUFxQixPQUFBO0FBQ3JCLDBIQUFBLG9CQUFvQixPQUFBO0FBQ3BCLDBIQUFBLG9CQUFvQixPQUFBO0FBQ3BCLDRIQUFBLHNCQUFzQixPQUFBO0FBQ3RCLDBIQUFBLG9CQUFvQixPQUFBO0FBQ3BCLDBIQUFBLG9CQUFvQixPQUFBO0FBQ3BCLDRIQUFBLHNCQUFzQixPQUFBO0FBR3hCLGdFQUFnRTtBQUF2RCw2R0FBQSxjQUFjLE9BQUEifQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWtEO0FBQXpDLCtGQUFBLEdBQUcsT0FBQTtBQUFFLHVHQUFBLFdBQVcsT0FBQTtBQUN6QixzREFZaUM7QUFWL0IsdUdBQUEsV0FBVyxPQUFBO0FBQ1gsd0dBQUEsWUFBWSxPQUFBO0FBQ1osNEdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsb0hBQUEsd0JBQXdCLE9BQUE7QUFDeEIsNEdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsOEdBQUEsa0JBQWtCLE9BQUE7QUFDbEIseUdBQUEsYUFBYSxPQUFBO0FBQ2IsMkdBQUEsZUFBZSxPQUFBO0FBS2pCLGdEQUFnRDtBQUF2Qyx1R0FBQSxXQUFXLE9BQUE7QUFDcEIsK0NBQXlHO0FBQWhHLDBHQUFBLGNBQWMsT0FBQTtBQUFFLGdIQUFBLG9CQUFvQixPQUFBO0FBQUUsMkdBQUEsZUFBZSxPQUFBO0FBQzlELDZEQUFzRDtBQUE3QyxvSEFBQSxjQUFjLE9BQUE7QUFZdkIsK0NBQStDO0FBQy9DLDZFQWM4QztBQWI1QyxzSEFBQSxnQkFBZ0IsT0FBQTtBQUNoQixzSEFBQSxnQkFBZ0IsT0FBQTtBQUNoQix3SEFBQSxrQkFBa0IsT0FBQTtBQUNsQix3SEFBQSxrQkFBa0IsT0FBQTtBQUNsQix5SEFBQSxtQkFBbUIsT0FBQTtBQUNuQix5SEFBQSxtQkFBbUIsT0FBQTtBQUNuQiwySEFBQSxxQkFBcUIsT0FBQTtBQUNyQiwwSEFBQSxvQkFBb0IsT0FBQTtBQUNwQiwwSEFBQSxvQkFBb0IsT0FBQTtBQUNwQiw0SEFBQSxzQkFBc0IsT0FBQTtBQUN0QiwwSEFBQSxvQkFBb0IsT0FBQTtBQUNwQiwwSEFBQSxvQkFBb0IsT0FBQTtBQUNwQiw0SEFBQSxzQkFBc0IsT0FBQTtBQUd4QixnRUFBZ0U7QUFBdkQsNkdBQUEsY0FBYyxPQUFBIn0=
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": "0.0.1-commit.d3ec352c",
4
+ "version": "0.0.1-commit.f295ac2",
5
5
  "homepage": "https://github.com/AztecProtocol/aztec-packages/tree/master/barretenberg/ts",
6
6
  "license": "MIT",
7
7
  "type": "module",
@@ -0,0 +1,122 @@
1
+ import { fieldToString, fieldsToStrings } from './backend.js';
2
+
3
+ describe('field helper functions', () => {
4
+ describe('fieldToString', () => {
5
+ it('converts zero field to "0"', () => {
6
+ const zeroField = new Uint8Array(32).fill(0);
7
+ expect(fieldToString(zeroField)).toBe('0');
8
+ });
9
+
10
+ it('converts field with value 1 to "1"', () => {
11
+ const oneField = new Uint8Array(32).fill(0);
12
+ oneField[31] = 1;
13
+ expect(fieldToString(oneField)).toBe('1');
14
+ });
15
+
16
+ it('converts field with value 256 to "256"', () => {
17
+ const field = new Uint8Array(32).fill(0);
18
+ field[30] = 1;
19
+ field[31] = 0;
20
+ expect(fieldToString(field)).toBe('256');
21
+ });
22
+
23
+ it('converts field with max uint8 in last byte to "255"', () => {
24
+ const field = new Uint8Array(32).fill(0);
25
+ field[31] = 255;
26
+ expect(fieldToString(field)).toBe('255');
27
+ });
28
+
29
+ it('converts larger values correctly', () => {
30
+ // 0x0100 = 256 in decimal
31
+ const field = new Uint8Array(32).fill(0);
32
+ field[30] = 0x01;
33
+ field[31] = 0x00;
34
+ expect(fieldToString(field)).toBe('256');
35
+ });
36
+
37
+ it('handles multi-byte values', () => {
38
+ // 0x010203 = 66051 in decimal
39
+ const field = new Uint8Array(32).fill(0);
40
+ field[29] = 0x01;
41
+ field[30] = 0x02;
42
+ field[31] = 0x03;
43
+ expect(fieldToString(field)).toBe('66051');
44
+ });
45
+
46
+ it('handles large field values', () => {
47
+ // A known value: all bytes set to 1
48
+ const field = new Uint8Array(32).fill(1);
49
+ const result = fieldToString(field);
50
+ // Verify it's a valid decimal string
51
+ expect(result).toMatch(/^\d+$/);
52
+ // Verify the length is reasonable for a 256-bit number
53
+ expect(result.length).toBeGreaterThan(70);
54
+ });
55
+
56
+ it('converts to hex with radix 16', () => {
57
+ const field = new Uint8Array(32).fill(0);
58
+ field[31] = 255;
59
+ expect(fieldToString(field, 16)).toBe('ff');
60
+ });
61
+
62
+ it('converts to hex for multi-byte values', () => {
63
+ // 0x010203
64
+ const field = new Uint8Array(32).fill(0);
65
+ field[29] = 0x01;
66
+ field[30] = 0x02;
67
+ field[31] = 0x03;
68
+ expect(fieldToString(field, 16)).toBe('10203');
69
+ });
70
+
71
+ it('converts to binary with radix 2', () => {
72
+ const field = new Uint8Array(32).fill(0);
73
+ field[31] = 5;
74
+ expect(fieldToString(field, 2)).toBe('101');
75
+ });
76
+ });
77
+
78
+ describe('fieldsToStrings', () => {
79
+ it('converts empty array to empty array', () => {
80
+ expect(fieldsToStrings([])).toEqual([]);
81
+ });
82
+
83
+ it('converts single field', () => {
84
+ const oneField = new Uint8Array(32).fill(0);
85
+ oneField[31] = 42;
86
+ expect(fieldsToStrings([oneField])).toEqual(['42']);
87
+ });
88
+
89
+ it('converts multiple fields', () => {
90
+ const field1 = new Uint8Array(32).fill(0);
91
+ field1[31] = 1;
92
+
93
+ const field2 = new Uint8Array(32).fill(0);
94
+ field2[31] = 2;
95
+
96
+ const field3 = new Uint8Array(32).fill(0);
97
+ field3[31] = 3;
98
+
99
+ expect(fieldsToStrings([field1, field2, field3])).toEqual(['1', '2', '3']);
100
+ });
101
+
102
+ it('preserves order of fields', () => {
103
+ const fields = [10, 20, 30, 40, 50].map(v => {
104
+ const field = new Uint8Array(32).fill(0);
105
+ field[31] = v;
106
+ return field;
107
+ });
108
+
109
+ expect(fieldsToStrings(fields)).toEqual(['10', '20', '30', '40', '50']);
110
+ });
111
+
112
+ it('converts to hex with radix 16', () => {
113
+ const fields = [15, 16, 255].map(v => {
114
+ const field = new Uint8Array(32).fill(0);
115
+ field[31] = v;
116
+ return field;
117
+ });
118
+
119
+ expect(fieldsToStrings(fields, 16)).toEqual(['f', '10', 'ff']);
120
+ });
121
+ });
122
+ });