@aztec/bb.js 3.0.0-nightly.20251026 → 3.0.0-nightly.20251030-2

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 (147) hide show
  1. package/README.md +1 -1
  2. package/dest/browser/barretenberg/backend.js +13 -13
  3. package/dest/browser/barretenberg/index.d.ts +1 -1
  4. package/dest/browser/barretenberg/index.d.ts.map +1 -1
  5. package/dest/browser/barretenberg/index.js +2 -2
  6. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +1 -1
  7. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
  8. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
  9. package/dest/browser/bb_backends/wasm.d.ts +2 -9
  10. package/dest/browser/bb_backends/wasm.d.ts.map +1 -1
  11. package/dest/browser/bb_backends/wasm.js +3 -10
  12. package/dest/browser/bbapi_exception.d.ts +7 -0
  13. package/dest/browser/bbapi_exception.d.ts.map +1 -0
  14. package/dest/browser/bbapi_exception.js +14 -0
  15. package/dest/browser/cbind/generate.js +93 -1
  16. package/dest/browser/cbind/generated/api_types.d.ts +623 -377
  17. package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
  18. package/dest/browser/cbind/generated/api_types.js +778 -452
  19. package/dest/browser/cbind/generated/async.d.ts +15 -10
  20. package/dest/browser/cbind/generated/async.d.ts.map +1 -1
  21. package/dest/browser/cbind/generated/async.js +304 -96
  22. package/dest/browser/cbind/generated/curve_constants.d.ts +45 -0
  23. package/dest/browser/cbind/generated/curve_constants.d.ts.map +1 -0
  24. package/dest/browser/cbind/generated/curve_constants.js +45 -0
  25. package/dest/browser/cbind/generated/sync.d.ts +15 -10
  26. package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
  27. package/dest/browser/cbind/generated/sync.js +299 -96
  28. package/dest/browser/cbind/schema_compiler.d.ts.map +1 -1
  29. package/dest/browser/cbind/schema_compiler.js +24 -4
  30. package/dest/browser/index.d.ts +3 -1
  31. package/dest/browser/index.d.ts.map +1 -1
  32. package/dest/browser/index.js +4 -2
  33. package/dest/browser/serialize/index.d.ts +0 -1
  34. package/dest/browser/serialize/index.d.ts.map +1 -1
  35. package/dest/browser/serialize/index.js +1 -2
  36. package/dest/browser/types/fields.d.ts +6 -26
  37. package/dest/browser/types/fields.d.ts.map +1 -1
  38. package/dest/browser/types/fields.js +15 -56
  39. package/dest/browser/types/point.d.ts +8 -6
  40. package/dest/browser/types/point.d.ts.map +1 -1
  41. package/dest/browser/types/point.js +12 -15
  42. package/dest/node/barretenberg/backend.js +13 -13
  43. package/dest/node/barretenberg/index.d.ts +1 -1
  44. package/dest/node/barretenberg/index.d.ts.map +1 -1
  45. package/dest/node/barretenberg/index.js +2 -2
  46. package/dest/node/barretenberg/poseidon.bench.test.js +3 -2
  47. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  48. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +1 -1
  49. package/dest/node/bb_backends/wasm.d.ts +2 -9
  50. package/dest/node/bb_backends/wasm.d.ts.map +1 -1
  51. package/dest/node/bb_backends/wasm.js +3 -10
  52. package/dest/node/bbapi_exception.d.ts +7 -0
  53. package/dest/node/bbapi_exception.d.ts.map +1 -0
  54. package/dest/node/bbapi_exception.js +14 -0
  55. package/dest/node/cbind/generate.js +93 -1
  56. package/dest/node/cbind/generated/api_types.d.ts +623 -377
  57. package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
  58. package/dest/node/cbind/generated/api_types.js +778 -452
  59. package/dest/node/cbind/generated/async.d.ts +15 -10
  60. package/dest/node/cbind/generated/async.d.ts.map +1 -1
  61. package/dest/node/cbind/generated/async.js +304 -96
  62. package/dest/node/cbind/generated/curve_constants.d.ts +45 -0
  63. package/dest/node/cbind/generated/curve_constants.d.ts.map +1 -0
  64. package/dest/node/cbind/generated/curve_constants.js +45 -0
  65. package/dest/node/cbind/generated/sync.d.ts +15 -10
  66. package/dest/node/cbind/generated/sync.d.ts.map +1 -1
  67. package/dest/node/cbind/generated/sync.js +299 -96
  68. package/dest/node/cbind/schema_compiler.d.ts.map +1 -1
  69. package/dest/node/cbind/schema_compiler.js +24 -4
  70. package/dest/node/index.d.ts +3 -1
  71. package/dest/node/index.d.ts.map +1 -1
  72. package/dest/node/index.js +4 -2
  73. package/dest/node/serialize/index.d.ts +0 -1
  74. package/dest/node/serialize/index.d.ts.map +1 -1
  75. package/dest/node/serialize/index.js +1 -2
  76. package/dest/node/types/fields.d.ts +6 -26
  77. package/dest/node/types/fields.d.ts.map +1 -1
  78. package/dest/node/types/fields.js +15 -56
  79. package/dest/node/types/point.d.ts +8 -6
  80. package/dest/node/types/point.d.ts.map +1 -1
  81. package/dest/node/types/point.js +12 -15
  82. package/dest/node-cjs/barretenberg/backend.js +12 -12
  83. package/dest/node-cjs/barretenberg/index.d.ts +1 -1
  84. package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
  85. package/dest/node-cjs/barretenberg/index.js +2 -2
  86. package/dest/node-cjs/barretenberg/poseidon.bench.test.js +5 -4
  87. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  88. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +1 -1
  89. package/dest/node-cjs/bb_backends/wasm.d.ts +2 -9
  90. package/dest/node-cjs/bb_backends/wasm.d.ts.map +1 -1
  91. package/dest/node-cjs/bb_backends/wasm.js +3 -10
  92. package/dest/node-cjs/bbapi_exception.d.ts +7 -0
  93. package/dest/node-cjs/bbapi_exception.d.ts.map +1 -0
  94. package/dest/node-cjs/bbapi_exception.js +18 -0
  95. package/dest/node-cjs/cbind/generate.js +93 -1
  96. package/dest/node-cjs/cbind/generated/api_types.d.ts +623 -377
  97. package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
  98. package/dest/node-cjs/cbind/generated/api_types.js +848 -492
  99. package/dest/node-cjs/cbind/generated/async.d.ts +15 -10
  100. package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
  101. package/dest/node-cjs/cbind/generated/async.js +303 -95
  102. package/dest/node-cjs/cbind/generated/curve_constants.d.ts +45 -0
  103. package/dest/node-cjs/cbind/generated/curve_constants.d.ts.map +1 -0
  104. package/dest/node-cjs/cbind/generated/curve_constants.js +48 -0
  105. package/dest/node-cjs/cbind/generated/sync.d.ts +15 -10
  106. package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
  107. package/dest/node-cjs/cbind/generated/sync.js +298 -95
  108. package/dest/node-cjs/cbind/schema_compiler.d.ts.map +1 -1
  109. package/dest/node-cjs/cbind/schema_compiler.js +24 -4
  110. package/dest/node-cjs/index.d.ts +3 -1
  111. package/dest/node-cjs/index.d.ts.map +1 -1
  112. package/dest/node-cjs/index.js +23 -8
  113. package/dest/node-cjs/serialize/index.d.ts +0 -1
  114. package/dest/node-cjs/serialize/index.d.ts.map +1 -1
  115. package/dest/node-cjs/serialize/index.js +1 -2
  116. package/dest/node-cjs/types/fields.d.ts +6 -26
  117. package/dest/node-cjs/types/fields.d.ts.map +1 -1
  118. package/dest/node-cjs/types/fields.js +15 -57
  119. package/dest/node-cjs/types/point.d.ts +8 -6
  120. package/dest/node-cjs/types/point.d.ts.map +1 -1
  121. package/dest/node-cjs/types/point.js +13 -16
  122. package/package.json +4 -3
  123. package/src/barretenberg/backend.ts +12 -12
  124. package/src/barretenberg/index.ts +1 -1
  125. package/src/barretenberg/poseidon.bench.test.ts +2 -1
  126. package/src/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts +4 -4
  127. package/src/bb_backends/wasm.ts +2 -9
  128. package/src/bbapi_exception.ts +13 -0
  129. package/src/cbind/generate.ts +99 -0
  130. package/src/cbind/schema_compiler.ts +25 -3
  131. package/src/index.ts +28 -1
  132. package/src/serialize/index.ts +0 -1
  133. package/src/types/fields.ts +14 -63
  134. package/src/types/point.ts +13 -19
  135. package/dest/browser/serialize/buffer_reader.d.ts +0 -28
  136. package/dest/browser/serialize/buffer_reader.d.ts.map +0 -1
  137. package/dest/browser/serialize/buffer_reader.js +0 -66
  138. package/dest/node/serialize/buffer_reader.d.ts +0 -28
  139. package/dest/node/serialize/buffer_reader.d.ts.map +0 -1
  140. package/dest/node/serialize/buffer_reader.js +0 -66
  141. package/dest/node-cjs/serialize/buffer_reader.d.ts +0 -28
  142. package/dest/node-cjs/serialize/buffer_reader.d.ts.map +0 -1
  143. package/dest/node-cjs/serialize/buffer_reader.js +0 -70
  144. package/src/cbind/generated/api_types.ts +0 -3757
  145. package/src/cbind/generated/async.ts +0 -504
  146. package/src/cbind/generated/sync.ts +0 -455
  147. package/src/serialize/buffer_reader.ts +0 -85
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.AsyncApi = void 0;
5
5
  const msgpackr_1 = require("msgpackr");
6
+ const bbapi_exception_js_1 = require("../../bbapi_exception.js");
6
7
  const api_types_js_1 = require("./api_types.js");
7
8
  async function msgpackCall(backend, input) { const inputBuffer = new msgpackr_1.Encoder({ useRecords: false }).pack(input); const encodedResult = await backend.call(inputBuffer); return new msgpackr_1.Decoder({ useRecords: false }).unpack(encodedResult); }
8
9
  class AsyncApi {
@@ -12,8 +13,11 @@ class AsyncApi {
12
13
  circuitProve(command) {
13
14
  const msgpackCommand = (0, api_types_js_1.fromCircuitProve)(command);
14
15
  return msgpackCall(this.backend, [["CircuitProve", msgpackCommand]]).then(([variantName, result]) => {
16
+ if (variantName === 'ErrorResponse') {
17
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
18
+ }
15
19
  if (variantName !== 'CircuitProveResponse') {
16
- throw new Error(`Expected variant name 'CircuitProveResponse' but got '${variantName}'`);
20
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'CircuitProveResponse' but got '${variantName}'`);
17
21
  }
18
22
  return (0, api_types_js_1.toCircuitProveResponse)(result);
19
23
  });
@@ -21,8 +25,11 @@ class AsyncApi {
21
25
  circuitComputeVk(command) {
22
26
  const msgpackCommand = (0, api_types_js_1.fromCircuitComputeVk)(command);
23
27
  return msgpackCall(this.backend, [["CircuitComputeVk", msgpackCommand]]).then(([variantName, result]) => {
28
+ if (variantName === 'ErrorResponse') {
29
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
30
+ }
24
31
  if (variantName !== 'CircuitComputeVkResponse') {
25
- throw new Error(`Expected variant name 'CircuitComputeVkResponse' but got '${variantName}'`);
32
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'CircuitComputeVkResponse' but got '${variantName}'`);
26
33
  }
27
34
  return (0, api_types_js_1.toCircuitComputeVkResponse)(result);
28
35
  });
@@ -30,8 +37,11 @@ class AsyncApi {
30
37
  circuitStats(command) {
31
38
  const msgpackCommand = (0, api_types_js_1.fromCircuitStats)(command);
32
39
  return msgpackCall(this.backend, [["CircuitStats", msgpackCommand]]).then(([variantName, result]) => {
40
+ if (variantName === 'ErrorResponse') {
41
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
42
+ }
33
43
  if (variantName !== 'CircuitInfoResponse') {
34
- throw new Error(`Expected variant name 'CircuitInfoResponse' but got '${variantName}'`);
44
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'CircuitInfoResponse' but got '${variantName}'`);
35
45
  }
36
46
  return (0, api_types_js_1.toCircuitInfoResponse)(result);
37
47
  });
@@ -39,80 +49,107 @@ class AsyncApi {
39
49
  circuitVerify(command) {
40
50
  const msgpackCommand = (0, api_types_js_1.fromCircuitVerify)(command);
41
51
  return msgpackCall(this.backend, [["CircuitVerify", msgpackCommand]]).then(([variantName, result]) => {
52
+ if (variantName === 'ErrorResponse') {
53
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
54
+ }
42
55
  if (variantName !== 'CircuitVerifyResponse') {
43
- throw new Error(`Expected variant name 'CircuitVerifyResponse' but got '${variantName}'`);
56
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'CircuitVerifyResponse' but got '${variantName}'`);
44
57
  }
45
58
  return (0, api_types_js_1.toCircuitVerifyResponse)(result);
46
59
  });
47
60
  }
48
- clientIvcComputeStandaloneVk(command) {
49
- const msgpackCommand = (0, api_types_js_1.fromClientIvcComputeStandaloneVk)(command);
50
- return msgpackCall(this.backend, [["ClientIvcComputeStandaloneVk", msgpackCommand]]).then(([variantName, result]) => {
51
- if (variantName !== 'ClientIvcComputeStandaloneVkResponse') {
52
- throw new Error(`Expected variant name 'ClientIvcComputeStandaloneVkResponse' but got '${variantName}'`);
61
+ chonkComputeStandaloneVk(command) {
62
+ const msgpackCommand = (0, api_types_js_1.fromChonkComputeStandaloneVk)(command);
63
+ return msgpackCall(this.backend, [["ChonkComputeStandaloneVk", msgpackCommand]]).then(([variantName, result]) => {
64
+ if (variantName === 'ErrorResponse') {
65
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
66
+ }
67
+ if (variantName !== 'ChonkComputeStandaloneVkResponse') {
68
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'ChonkComputeStandaloneVkResponse' but got '${variantName}'`);
53
69
  }
54
- return (0, api_types_js_1.toClientIvcComputeStandaloneVkResponse)(result);
70
+ return (0, api_types_js_1.toChonkComputeStandaloneVkResponse)(result);
55
71
  });
56
72
  }
57
- clientIvcComputeIvcVk(command) {
58
- const msgpackCommand = (0, api_types_js_1.fromClientIvcComputeIvcVk)(command);
59
- return msgpackCall(this.backend, [["ClientIvcComputeIvcVk", msgpackCommand]]).then(([variantName, result]) => {
60
- if (variantName !== 'ClientIvcComputeIvcVkResponse') {
61
- throw new Error(`Expected variant name 'ClientIvcComputeIvcVkResponse' but got '${variantName}'`);
73
+ chonkComputeIvcVk(command) {
74
+ const msgpackCommand = (0, api_types_js_1.fromChonkComputeIvcVk)(command);
75
+ return msgpackCall(this.backend, [["ChonkComputeIvcVk", msgpackCommand]]).then(([variantName, result]) => {
76
+ if (variantName === 'ErrorResponse') {
77
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
62
78
  }
63
- return (0, api_types_js_1.toClientIvcComputeIvcVkResponse)(result);
79
+ if (variantName !== 'ChonkComputeIvcVkResponse') {
80
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'ChonkComputeIvcVkResponse' but got '${variantName}'`);
81
+ }
82
+ return (0, api_types_js_1.toChonkComputeIvcVkResponse)(result);
64
83
  });
65
84
  }
66
- clientIvcStart(command) {
67
- const msgpackCommand = (0, api_types_js_1.fromClientIvcStart)(command);
68
- return msgpackCall(this.backend, [["ClientIvcStart", msgpackCommand]]).then(([variantName, result]) => {
69
- if (variantName !== 'ClientIvcStartResponse') {
70
- throw new Error(`Expected variant name 'ClientIvcStartResponse' but got '${variantName}'`);
85
+ chonkStart(command) {
86
+ const msgpackCommand = (0, api_types_js_1.fromChonkStart)(command);
87
+ return msgpackCall(this.backend, [["ChonkStart", msgpackCommand]]).then(([variantName, result]) => {
88
+ if (variantName === 'ErrorResponse') {
89
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
90
+ }
91
+ if (variantName !== 'ChonkStartResponse') {
92
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'ChonkStartResponse' but got '${variantName}'`);
71
93
  }
72
- return (0, api_types_js_1.toClientIvcStartResponse)(result);
94
+ return (0, api_types_js_1.toChonkStartResponse)(result);
73
95
  });
74
96
  }
75
- clientIvcLoad(command) {
76
- const msgpackCommand = (0, api_types_js_1.fromClientIvcLoad)(command);
77
- return msgpackCall(this.backend, [["ClientIvcLoad", msgpackCommand]]).then(([variantName, result]) => {
78
- if (variantName !== 'ClientIvcLoadResponse') {
79
- throw new Error(`Expected variant name 'ClientIvcLoadResponse' but got '${variantName}'`);
97
+ chonkLoad(command) {
98
+ const msgpackCommand = (0, api_types_js_1.fromChonkLoad)(command);
99
+ return msgpackCall(this.backend, [["ChonkLoad", msgpackCommand]]).then(([variantName, result]) => {
100
+ if (variantName === 'ErrorResponse') {
101
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
80
102
  }
81
- return (0, api_types_js_1.toClientIvcLoadResponse)(result);
103
+ if (variantName !== 'ChonkLoadResponse') {
104
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'ChonkLoadResponse' but got '${variantName}'`);
105
+ }
106
+ return (0, api_types_js_1.toChonkLoadResponse)(result);
82
107
  });
83
108
  }
84
- clientIvcAccumulate(command) {
85
- const msgpackCommand = (0, api_types_js_1.fromClientIvcAccumulate)(command);
86
- return msgpackCall(this.backend, [["ClientIvcAccumulate", msgpackCommand]]).then(([variantName, result]) => {
87
- if (variantName !== 'ClientIvcAccumulateResponse') {
88
- throw new Error(`Expected variant name 'ClientIvcAccumulateResponse' but got '${variantName}'`);
109
+ chonkAccumulate(command) {
110
+ const msgpackCommand = (0, api_types_js_1.fromChonkAccumulate)(command);
111
+ return msgpackCall(this.backend, [["ChonkAccumulate", msgpackCommand]]).then(([variantName, result]) => {
112
+ if (variantName === 'ErrorResponse') {
113
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
114
+ }
115
+ if (variantName !== 'ChonkAccumulateResponse') {
116
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'ChonkAccumulateResponse' but got '${variantName}'`);
89
117
  }
90
- return (0, api_types_js_1.toClientIvcAccumulateResponse)(result);
118
+ return (0, api_types_js_1.toChonkAccumulateResponse)(result);
91
119
  });
92
120
  }
93
- clientIvcProve(command) {
94
- const msgpackCommand = (0, api_types_js_1.fromClientIvcProve)(command);
95
- return msgpackCall(this.backend, [["ClientIvcProve", msgpackCommand]]).then(([variantName, result]) => {
96
- if (variantName !== 'ClientIvcProveResponse') {
97
- throw new Error(`Expected variant name 'ClientIvcProveResponse' but got '${variantName}'`);
121
+ chonkProve(command) {
122
+ const msgpackCommand = (0, api_types_js_1.fromChonkProve)(command);
123
+ return msgpackCall(this.backend, [["ChonkProve", msgpackCommand]]).then(([variantName, result]) => {
124
+ if (variantName === 'ErrorResponse') {
125
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
98
126
  }
99
- return (0, api_types_js_1.toClientIvcProveResponse)(result);
127
+ if (variantName !== 'ChonkProveResponse') {
128
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'ChonkProveResponse' but got '${variantName}'`);
129
+ }
130
+ return (0, api_types_js_1.toChonkProveResponse)(result);
100
131
  });
101
132
  }
102
- clientIvcVerify(command) {
103
- const msgpackCommand = (0, api_types_js_1.fromClientIvcVerify)(command);
104
- return msgpackCall(this.backend, [["ClientIvcVerify", msgpackCommand]]).then(([variantName, result]) => {
105
- if (variantName !== 'ClientIvcVerifyResponse') {
106
- throw new Error(`Expected variant name 'ClientIvcVerifyResponse' but got '${variantName}'`);
133
+ chonkVerify(command) {
134
+ const msgpackCommand = (0, api_types_js_1.fromChonkVerify)(command);
135
+ return msgpackCall(this.backend, [["ChonkVerify", msgpackCommand]]).then(([variantName, result]) => {
136
+ if (variantName === 'ErrorResponse') {
137
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
138
+ }
139
+ if (variantName !== 'ChonkVerifyResponse') {
140
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'ChonkVerifyResponse' but got '${variantName}'`);
107
141
  }
108
- return (0, api_types_js_1.toClientIvcVerifyResponse)(result);
142
+ return (0, api_types_js_1.toChonkVerifyResponse)(result);
109
143
  });
110
144
  }
111
145
  vkAsFields(command) {
112
146
  const msgpackCommand = (0, api_types_js_1.fromVkAsFields)(command);
113
147
  return msgpackCall(this.backend, [["VkAsFields", msgpackCommand]]).then(([variantName, result]) => {
148
+ if (variantName === 'ErrorResponse') {
149
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
150
+ }
114
151
  if (variantName !== 'VkAsFieldsResponse') {
115
- throw new Error(`Expected variant name 'VkAsFieldsResponse' but got '${variantName}'`);
152
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'VkAsFieldsResponse' but got '${variantName}'`);
116
153
  }
117
154
  return (0, api_types_js_1.toVkAsFieldsResponse)(result);
118
155
  });
@@ -120,8 +157,11 @@ class AsyncApi {
120
157
  megaVkAsFields(command) {
121
158
  const msgpackCommand = (0, api_types_js_1.fromMegaVkAsFields)(command);
122
159
  return msgpackCall(this.backend, [["MegaVkAsFields", msgpackCommand]]).then(([variantName, result]) => {
160
+ if (variantName === 'ErrorResponse') {
161
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
162
+ }
123
163
  if (variantName !== 'MegaVkAsFieldsResponse') {
124
- throw new Error(`Expected variant name 'MegaVkAsFieldsResponse' but got '${variantName}'`);
164
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'MegaVkAsFieldsResponse' but got '${variantName}'`);
125
165
  }
126
166
  return (0, api_types_js_1.toMegaVkAsFieldsResponse)(result);
127
167
  });
@@ -129,35 +169,47 @@ class AsyncApi {
129
169
  circuitWriteSolidityVerifier(command) {
130
170
  const msgpackCommand = (0, api_types_js_1.fromCircuitWriteSolidityVerifier)(command);
131
171
  return msgpackCall(this.backend, [["CircuitWriteSolidityVerifier", msgpackCommand]]).then(([variantName, result]) => {
172
+ if (variantName === 'ErrorResponse') {
173
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
174
+ }
132
175
  if (variantName !== 'CircuitWriteSolidityVerifierResponse') {
133
- throw new Error(`Expected variant name 'CircuitWriteSolidityVerifierResponse' but got '${variantName}'`);
176
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'CircuitWriteSolidityVerifierResponse' but got '${variantName}'`);
134
177
  }
135
178
  return (0, api_types_js_1.toCircuitWriteSolidityVerifierResponse)(result);
136
179
  });
137
180
  }
138
- clientIvcCheckPrecomputedVk(command) {
139
- const msgpackCommand = (0, api_types_js_1.fromClientIvcCheckPrecomputedVk)(command);
140
- return msgpackCall(this.backend, [["ClientIvcCheckPrecomputedVk", msgpackCommand]]).then(([variantName, result]) => {
141
- if (variantName !== 'ClientIvcCheckPrecomputedVkResponse') {
142
- throw new Error(`Expected variant name 'ClientIvcCheckPrecomputedVkResponse' but got '${variantName}'`);
181
+ chonkCheckPrecomputedVk(command) {
182
+ const msgpackCommand = (0, api_types_js_1.fromChonkCheckPrecomputedVk)(command);
183
+ return msgpackCall(this.backend, [["ChonkCheckPrecomputedVk", msgpackCommand]]).then(([variantName, result]) => {
184
+ if (variantName === 'ErrorResponse') {
185
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
143
186
  }
144
- return (0, api_types_js_1.toClientIvcCheckPrecomputedVkResponse)(result);
187
+ if (variantName !== 'ChonkCheckPrecomputedVkResponse') {
188
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'ChonkCheckPrecomputedVkResponse' but got '${variantName}'`);
189
+ }
190
+ return (0, api_types_js_1.toChonkCheckPrecomputedVkResponse)(result);
145
191
  });
146
192
  }
147
- clientIvcStats(command) {
148
- const msgpackCommand = (0, api_types_js_1.fromClientIvcStats)(command);
149
- return msgpackCall(this.backend, [["ClientIvcStats", msgpackCommand]]).then(([variantName, result]) => {
150
- if (variantName !== 'ClientIvcStatsResponse') {
151
- throw new Error(`Expected variant name 'ClientIvcStatsResponse' but got '${variantName}'`);
193
+ chonkStats(command) {
194
+ const msgpackCommand = (0, api_types_js_1.fromChonkStats)(command);
195
+ return msgpackCall(this.backend, [["ChonkStats", msgpackCommand]]).then(([variantName, result]) => {
196
+ if (variantName === 'ErrorResponse') {
197
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
198
+ }
199
+ if (variantName !== 'ChonkStatsResponse') {
200
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'ChonkStatsResponse' but got '${variantName}'`);
152
201
  }
153
- return (0, api_types_js_1.toClientIvcStatsResponse)(result);
202
+ return (0, api_types_js_1.toChonkStatsResponse)(result);
154
203
  });
155
204
  }
156
205
  poseidon2Hash(command) {
157
206
  const msgpackCommand = (0, api_types_js_1.fromPoseidon2Hash)(command);
158
207
  return msgpackCall(this.backend, [["Poseidon2Hash", msgpackCommand]]).then(([variantName, result]) => {
208
+ if (variantName === 'ErrorResponse') {
209
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
210
+ }
159
211
  if (variantName !== 'Poseidon2HashResponse') {
160
- throw new Error(`Expected variant name 'Poseidon2HashResponse' but got '${variantName}'`);
212
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'Poseidon2HashResponse' but got '${variantName}'`);
161
213
  }
162
214
  return (0, api_types_js_1.toPoseidon2HashResponse)(result);
163
215
  });
@@ -165,8 +217,11 @@ class AsyncApi {
165
217
  poseidon2Permutation(command) {
166
218
  const msgpackCommand = (0, api_types_js_1.fromPoseidon2Permutation)(command);
167
219
  return msgpackCall(this.backend, [["Poseidon2Permutation", msgpackCommand]]).then(([variantName, result]) => {
220
+ if (variantName === 'ErrorResponse') {
221
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
222
+ }
168
223
  if (variantName !== 'Poseidon2PermutationResponse') {
169
- throw new Error(`Expected variant name 'Poseidon2PermutationResponse' but got '${variantName}'`);
224
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'Poseidon2PermutationResponse' but got '${variantName}'`);
170
225
  }
171
226
  return (0, api_types_js_1.toPoseidon2PermutationResponse)(result);
172
227
  });
@@ -174,8 +229,11 @@ class AsyncApi {
174
229
  poseidon2HashAccumulate(command) {
175
230
  const msgpackCommand = (0, api_types_js_1.fromPoseidon2HashAccumulate)(command);
176
231
  return msgpackCall(this.backend, [["Poseidon2HashAccumulate", msgpackCommand]]).then(([variantName, result]) => {
232
+ if (variantName === 'ErrorResponse') {
233
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
234
+ }
177
235
  if (variantName !== 'Poseidon2HashAccumulateResponse') {
178
- throw new Error(`Expected variant name 'Poseidon2HashAccumulateResponse' but got '${variantName}'`);
236
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'Poseidon2HashAccumulateResponse' but got '${variantName}'`);
179
237
  }
180
238
  return (0, api_types_js_1.toPoseidon2HashAccumulateResponse)(result);
181
239
  });
@@ -183,8 +241,11 @@ class AsyncApi {
183
241
  pedersenCommit(command) {
184
242
  const msgpackCommand = (0, api_types_js_1.fromPedersenCommit)(command);
185
243
  return msgpackCall(this.backend, [["PedersenCommit", msgpackCommand]]).then(([variantName, result]) => {
244
+ if (variantName === 'ErrorResponse') {
245
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
246
+ }
186
247
  if (variantName !== 'PedersenCommitResponse') {
187
- throw new Error(`Expected variant name 'PedersenCommitResponse' but got '${variantName}'`);
248
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'PedersenCommitResponse' but got '${variantName}'`);
188
249
  }
189
250
  return (0, api_types_js_1.toPedersenCommitResponse)(result);
190
251
  });
@@ -192,8 +253,11 @@ class AsyncApi {
192
253
  pedersenHash(command) {
193
254
  const msgpackCommand = (0, api_types_js_1.fromPedersenHash)(command);
194
255
  return msgpackCall(this.backend, [["PedersenHash", msgpackCommand]]).then(([variantName, result]) => {
256
+ if (variantName === 'ErrorResponse') {
257
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
258
+ }
195
259
  if (variantName !== 'PedersenHashResponse') {
196
- throw new Error(`Expected variant name 'PedersenHashResponse' but got '${variantName}'`);
260
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'PedersenHashResponse' but got '${variantName}'`);
197
261
  }
198
262
  return (0, api_types_js_1.toPedersenHashResponse)(result);
199
263
  });
@@ -201,8 +265,11 @@ class AsyncApi {
201
265
  pedersenHashBuffer(command) {
202
266
  const msgpackCommand = (0, api_types_js_1.fromPedersenHashBuffer)(command);
203
267
  return msgpackCall(this.backend, [["PedersenHashBuffer", msgpackCommand]]).then(([variantName, result]) => {
268
+ if (variantName === 'ErrorResponse') {
269
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
270
+ }
204
271
  if (variantName !== 'PedersenHashBufferResponse') {
205
- throw new Error(`Expected variant name 'PedersenHashBufferResponse' but got '${variantName}'`);
272
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'PedersenHashBufferResponse' but got '${variantName}'`);
206
273
  }
207
274
  return (0, api_types_js_1.toPedersenHashBufferResponse)(result);
208
275
  });
@@ -210,8 +277,11 @@ class AsyncApi {
210
277
  blake2s(command) {
211
278
  const msgpackCommand = (0, api_types_js_1.fromBlake2s)(command);
212
279
  return msgpackCall(this.backend, [["Blake2s", msgpackCommand]]).then(([variantName, result]) => {
280
+ if (variantName === 'ErrorResponse') {
281
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
282
+ }
213
283
  if (variantName !== 'Blake2sResponse') {
214
- throw new Error(`Expected variant name 'Blake2sResponse' but got '${variantName}'`);
284
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'Blake2sResponse' but got '${variantName}'`);
215
285
  }
216
286
  return (0, api_types_js_1.toBlake2sResponse)(result);
217
287
  });
@@ -219,8 +289,11 @@ class AsyncApi {
219
289
  blake2sToField(command) {
220
290
  const msgpackCommand = (0, api_types_js_1.fromBlake2sToField)(command);
221
291
  return msgpackCall(this.backend, [["Blake2sToField", msgpackCommand]]).then(([variantName, result]) => {
292
+ if (variantName === 'ErrorResponse') {
293
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
294
+ }
222
295
  if (variantName !== 'Blake2sToFieldResponse') {
223
- throw new Error(`Expected variant name 'Blake2sToFieldResponse' but got '${variantName}'`);
296
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'Blake2sToFieldResponse' but got '${variantName}'`);
224
297
  }
225
298
  return (0, api_types_js_1.toBlake2sToFieldResponse)(result);
226
299
  });
@@ -228,8 +301,11 @@ class AsyncApi {
228
301
  aesEncrypt(command) {
229
302
  const msgpackCommand = (0, api_types_js_1.fromAesEncrypt)(command);
230
303
  return msgpackCall(this.backend, [["AesEncrypt", msgpackCommand]]).then(([variantName, result]) => {
304
+ if (variantName === 'ErrorResponse') {
305
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
306
+ }
231
307
  if (variantName !== 'AesEncryptResponse') {
232
- throw new Error(`Expected variant name 'AesEncryptResponse' but got '${variantName}'`);
308
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'AesEncryptResponse' but got '${variantName}'`);
233
309
  }
234
310
  return (0, api_types_js_1.toAesEncryptResponse)(result);
235
311
  });
@@ -237,8 +313,11 @@ class AsyncApi {
237
313
  aesDecrypt(command) {
238
314
  const msgpackCommand = (0, api_types_js_1.fromAesDecrypt)(command);
239
315
  return msgpackCall(this.backend, [["AesDecrypt", msgpackCommand]]).then(([variantName, result]) => {
316
+ if (variantName === 'ErrorResponse') {
317
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
318
+ }
240
319
  if (variantName !== 'AesDecryptResponse') {
241
- throw new Error(`Expected variant name 'AesDecryptResponse' but got '${variantName}'`);
320
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'AesDecryptResponse' but got '${variantName}'`);
242
321
  }
243
322
  return (0, api_types_js_1.toAesDecryptResponse)(result);
244
323
  });
@@ -246,8 +325,11 @@ class AsyncApi {
246
325
  grumpkinMul(command) {
247
326
  const msgpackCommand = (0, api_types_js_1.fromGrumpkinMul)(command);
248
327
  return msgpackCall(this.backend, [["GrumpkinMul", msgpackCommand]]).then(([variantName, result]) => {
328
+ if (variantName === 'ErrorResponse') {
329
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
330
+ }
249
331
  if (variantName !== 'GrumpkinMulResponse') {
250
- throw new Error(`Expected variant name 'GrumpkinMulResponse' but got '${variantName}'`);
332
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'GrumpkinMulResponse' but got '${variantName}'`);
251
333
  }
252
334
  return (0, api_types_js_1.toGrumpkinMulResponse)(result);
253
335
  });
@@ -255,8 +337,11 @@ class AsyncApi {
255
337
  grumpkinAdd(command) {
256
338
  const msgpackCommand = (0, api_types_js_1.fromGrumpkinAdd)(command);
257
339
  return msgpackCall(this.backend, [["GrumpkinAdd", msgpackCommand]]).then(([variantName, result]) => {
340
+ if (variantName === 'ErrorResponse') {
341
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
342
+ }
258
343
  if (variantName !== 'GrumpkinAddResponse') {
259
- throw new Error(`Expected variant name 'GrumpkinAddResponse' but got '${variantName}'`);
344
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'GrumpkinAddResponse' but got '${variantName}'`);
260
345
  }
261
346
  return (0, api_types_js_1.toGrumpkinAddResponse)(result);
262
347
  });
@@ -264,8 +349,11 @@ class AsyncApi {
264
349
  grumpkinBatchMul(command) {
265
350
  const msgpackCommand = (0, api_types_js_1.fromGrumpkinBatchMul)(command);
266
351
  return msgpackCall(this.backend, [["GrumpkinBatchMul", msgpackCommand]]).then(([variantName, result]) => {
352
+ if (variantName === 'ErrorResponse') {
353
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
354
+ }
267
355
  if (variantName !== 'GrumpkinBatchMulResponse') {
268
- throw new Error(`Expected variant name 'GrumpkinBatchMulResponse' but got '${variantName}'`);
356
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'GrumpkinBatchMulResponse' but got '${variantName}'`);
269
357
  }
270
358
  return (0, api_types_js_1.toGrumpkinBatchMulResponse)(result);
271
359
  });
@@ -273,8 +361,11 @@ class AsyncApi {
273
361
  grumpkinGetRandomFr(command) {
274
362
  const msgpackCommand = (0, api_types_js_1.fromGrumpkinGetRandomFr)(command);
275
363
  return msgpackCall(this.backend, [["GrumpkinGetRandomFr", msgpackCommand]]).then(([variantName, result]) => {
364
+ if (variantName === 'ErrorResponse') {
365
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
366
+ }
276
367
  if (variantName !== 'GrumpkinGetRandomFrResponse') {
277
- throw new Error(`Expected variant name 'GrumpkinGetRandomFrResponse' but got '${variantName}'`);
368
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'GrumpkinGetRandomFrResponse' but got '${variantName}'`);
278
369
  }
279
370
  return (0, api_types_js_1.toGrumpkinGetRandomFrResponse)(result);
280
371
  });
@@ -282,8 +373,11 @@ class AsyncApi {
282
373
  grumpkinReduce512(command) {
283
374
  const msgpackCommand = (0, api_types_js_1.fromGrumpkinReduce512)(command);
284
375
  return msgpackCall(this.backend, [["GrumpkinReduce512", msgpackCommand]]).then(([variantName, result]) => {
376
+ if (variantName === 'ErrorResponse') {
377
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
378
+ }
285
379
  if (variantName !== 'GrumpkinReduce512Response') {
286
- throw new Error(`Expected variant name 'GrumpkinReduce512Response' but got '${variantName}'`);
380
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'GrumpkinReduce512Response' but got '${variantName}'`);
287
381
  }
288
382
  return (0, api_types_js_1.toGrumpkinReduce512Response)(result);
289
383
  });
@@ -291,8 +385,11 @@ class AsyncApi {
291
385
  secp256k1Mul(command) {
292
386
  const msgpackCommand = (0, api_types_js_1.fromSecp256k1Mul)(command);
293
387
  return msgpackCall(this.backend, [["Secp256k1Mul", msgpackCommand]]).then(([variantName, result]) => {
388
+ if (variantName === 'ErrorResponse') {
389
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
390
+ }
294
391
  if (variantName !== 'Secp256k1MulResponse') {
295
- throw new Error(`Expected variant name 'Secp256k1MulResponse' but got '${variantName}'`);
392
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'Secp256k1MulResponse' but got '${variantName}'`);
296
393
  }
297
394
  return (0, api_types_js_1.toSecp256k1MulResponse)(result);
298
395
  });
@@ -300,8 +397,11 @@ class AsyncApi {
300
397
  secp256k1GetRandomFr(command) {
301
398
  const msgpackCommand = (0, api_types_js_1.fromSecp256k1GetRandomFr)(command);
302
399
  return msgpackCall(this.backend, [["Secp256k1GetRandomFr", msgpackCommand]]).then(([variantName, result]) => {
400
+ if (variantName === 'ErrorResponse') {
401
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
402
+ }
303
403
  if (variantName !== 'Secp256k1GetRandomFrResponse') {
304
- throw new Error(`Expected variant name 'Secp256k1GetRandomFrResponse' but got '${variantName}'`);
404
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'Secp256k1GetRandomFrResponse' but got '${variantName}'`);
305
405
  }
306
406
  return (0, api_types_js_1.toSecp256k1GetRandomFrResponse)(result);
307
407
  });
@@ -309,8 +409,11 @@ class AsyncApi {
309
409
  secp256k1Reduce512(command) {
310
410
  const msgpackCommand = (0, api_types_js_1.fromSecp256k1Reduce512)(command);
311
411
  return msgpackCall(this.backend, [["Secp256k1Reduce512", msgpackCommand]]).then(([variantName, result]) => {
412
+ if (variantName === 'ErrorResponse') {
413
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
414
+ }
312
415
  if (variantName !== 'Secp256k1Reduce512Response') {
313
- throw new Error(`Expected variant name 'Secp256k1Reduce512Response' but got '${variantName}'`);
416
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'Secp256k1Reduce512Response' but got '${variantName}'`);
314
417
  }
315
418
  return (0, api_types_js_1.toSecp256k1Reduce512Response)(result);
316
419
  });
@@ -318,17 +421,83 @@ class AsyncApi {
318
421
  bn254FrSqrt(command) {
319
422
  const msgpackCommand = (0, api_types_js_1.fromBn254FrSqrt)(command);
320
423
  return msgpackCall(this.backend, [["Bn254FrSqrt", msgpackCommand]]).then(([variantName, result]) => {
424
+ if (variantName === 'ErrorResponse') {
425
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
426
+ }
321
427
  if (variantName !== 'Bn254FrSqrtResponse') {
322
- throw new Error(`Expected variant name 'Bn254FrSqrtResponse' but got '${variantName}'`);
428
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'Bn254FrSqrtResponse' but got '${variantName}'`);
323
429
  }
324
430
  return (0, api_types_js_1.toBn254FrSqrtResponse)(result);
325
431
  });
326
432
  }
433
+ bn254FqSqrt(command) {
434
+ const msgpackCommand = (0, api_types_js_1.fromBn254FqSqrt)(command);
435
+ return msgpackCall(this.backend, [["Bn254FqSqrt", msgpackCommand]]).then(([variantName, result]) => {
436
+ if (variantName === 'ErrorResponse') {
437
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
438
+ }
439
+ if (variantName !== 'Bn254FqSqrtResponse') {
440
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'Bn254FqSqrtResponse' but got '${variantName}'`);
441
+ }
442
+ return (0, api_types_js_1.toBn254FqSqrtResponse)(result);
443
+ });
444
+ }
445
+ bn254G1Mul(command) {
446
+ const msgpackCommand = (0, api_types_js_1.fromBn254G1Mul)(command);
447
+ return msgpackCall(this.backend, [["Bn254G1Mul", msgpackCommand]]).then(([variantName, result]) => {
448
+ if (variantName === 'ErrorResponse') {
449
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
450
+ }
451
+ if (variantName !== 'Bn254G1MulResponse') {
452
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'Bn254G1MulResponse' but got '${variantName}'`);
453
+ }
454
+ return (0, api_types_js_1.toBn254G1MulResponse)(result);
455
+ });
456
+ }
457
+ bn254G2Mul(command) {
458
+ const msgpackCommand = (0, api_types_js_1.fromBn254G2Mul)(command);
459
+ return msgpackCall(this.backend, [["Bn254G2Mul", msgpackCommand]]).then(([variantName, result]) => {
460
+ if (variantName === 'ErrorResponse') {
461
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
462
+ }
463
+ if (variantName !== 'Bn254G2MulResponse') {
464
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'Bn254G2MulResponse' but got '${variantName}'`);
465
+ }
466
+ return (0, api_types_js_1.toBn254G2MulResponse)(result);
467
+ });
468
+ }
469
+ bn254G1IsOnCurve(command) {
470
+ const msgpackCommand = (0, api_types_js_1.fromBn254G1IsOnCurve)(command);
471
+ return msgpackCall(this.backend, [["Bn254G1IsOnCurve", msgpackCommand]]).then(([variantName, result]) => {
472
+ if (variantName === 'ErrorResponse') {
473
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
474
+ }
475
+ if (variantName !== 'Bn254G1IsOnCurveResponse') {
476
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'Bn254G1IsOnCurveResponse' but got '${variantName}'`);
477
+ }
478
+ return (0, api_types_js_1.toBn254G1IsOnCurveResponse)(result);
479
+ });
480
+ }
481
+ bn254G1FromCompressed(command) {
482
+ const msgpackCommand = (0, api_types_js_1.fromBn254G1FromCompressed)(command);
483
+ return msgpackCall(this.backend, [["Bn254G1FromCompressed", msgpackCommand]]).then(([variantName, result]) => {
484
+ if (variantName === 'ErrorResponse') {
485
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
486
+ }
487
+ if (variantName !== 'Bn254G1FromCompressedResponse') {
488
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'Bn254G1FromCompressedResponse' but got '${variantName}'`);
489
+ }
490
+ return (0, api_types_js_1.toBn254G1FromCompressedResponse)(result);
491
+ });
492
+ }
327
493
  schnorrComputePublicKey(command) {
328
494
  const msgpackCommand = (0, api_types_js_1.fromSchnorrComputePublicKey)(command);
329
495
  return msgpackCall(this.backend, [["SchnorrComputePublicKey", msgpackCommand]]).then(([variantName, result]) => {
496
+ if (variantName === 'ErrorResponse') {
497
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
498
+ }
330
499
  if (variantName !== 'SchnorrComputePublicKeyResponse') {
331
- throw new Error(`Expected variant name 'SchnorrComputePublicKeyResponse' but got '${variantName}'`);
500
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'SchnorrComputePublicKeyResponse' but got '${variantName}'`);
332
501
  }
333
502
  return (0, api_types_js_1.toSchnorrComputePublicKeyResponse)(result);
334
503
  });
@@ -336,8 +505,11 @@ class AsyncApi {
336
505
  schnorrConstructSignature(command) {
337
506
  const msgpackCommand = (0, api_types_js_1.fromSchnorrConstructSignature)(command);
338
507
  return msgpackCall(this.backend, [["SchnorrConstructSignature", msgpackCommand]]).then(([variantName, result]) => {
508
+ if (variantName === 'ErrorResponse') {
509
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
510
+ }
339
511
  if (variantName !== 'SchnorrConstructSignatureResponse') {
340
- throw new Error(`Expected variant name 'SchnorrConstructSignatureResponse' but got '${variantName}'`);
512
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'SchnorrConstructSignatureResponse' but got '${variantName}'`);
341
513
  }
342
514
  return (0, api_types_js_1.toSchnorrConstructSignatureResponse)(result);
343
515
  });
@@ -345,8 +517,11 @@ class AsyncApi {
345
517
  schnorrVerifySignature(command) {
346
518
  const msgpackCommand = (0, api_types_js_1.fromSchnorrVerifySignature)(command);
347
519
  return msgpackCall(this.backend, [["SchnorrVerifySignature", msgpackCommand]]).then(([variantName, result]) => {
520
+ if (variantName === 'ErrorResponse') {
521
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
522
+ }
348
523
  if (variantName !== 'SchnorrVerifySignatureResponse') {
349
- throw new Error(`Expected variant name 'SchnorrVerifySignatureResponse' but got '${variantName}'`);
524
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'SchnorrVerifySignatureResponse' but got '${variantName}'`);
350
525
  }
351
526
  return (0, api_types_js_1.toSchnorrVerifySignatureResponse)(result);
352
527
  });
@@ -354,8 +529,11 @@ class AsyncApi {
354
529
  ecdsaSecp256k1ComputePublicKey(command) {
355
530
  const msgpackCommand = (0, api_types_js_1.fromEcdsaSecp256k1ComputePublicKey)(command);
356
531
  return msgpackCall(this.backend, [["EcdsaSecp256k1ComputePublicKey", msgpackCommand]]).then(([variantName, result]) => {
532
+ if (variantName === 'ErrorResponse') {
533
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
534
+ }
357
535
  if (variantName !== 'EcdsaSecp256k1ComputePublicKeyResponse') {
358
- throw new Error(`Expected variant name 'EcdsaSecp256k1ComputePublicKeyResponse' but got '${variantName}'`);
536
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'EcdsaSecp256k1ComputePublicKeyResponse' but got '${variantName}'`);
359
537
  }
360
538
  return (0, api_types_js_1.toEcdsaSecp256k1ComputePublicKeyResponse)(result);
361
539
  });
@@ -363,8 +541,11 @@ class AsyncApi {
363
541
  ecdsaSecp256r1ComputePublicKey(command) {
364
542
  const msgpackCommand = (0, api_types_js_1.fromEcdsaSecp256r1ComputePublicKey)(command);
365
543
  return msgpackCall(this.backend, [["EcdsaSecp256r1ComputePublicKey", msgpackCommand]]).then(([variantName, result]) => {
544
+ if (variantName === 'ErrorResponse') {
545
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
546
+ }
366
547
  if (variantName !== 'EcdsaSecp256r1ComputePublicKeyResponse') {
367
- throw new Error(`Expected variant name 'EcdsaSecp256r1ComputePublicKeyResponse' but got '${variantName}'`);
548
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'EcdsaSecp256r1ComputePublicKeyResponse' but got '${variantName}'`);
368
549
  }
369
550
  return (0, api_types_js_1.toEcdsaSecp256r1ComputePublicKeyResponse)(result);
370
551
  });
@@ -372,8 +553,11 @@ class AsyncApi {
372
553
  ecdsaSecp256k1ConstructSignature(command) {
373
554
  const msgpackCommand = (0, api_types_js_1.fromEcdsaSecp256k1ConstructSignature)(command);
374
555
  return msgpackCall(this.backend, [["EcdsaSecp256k1ConstructSignature", msgpackCommand]]).then(([variantName, result]) => {
556
+ if (variantName === 'ErrorResponse') {
557
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
558
+ }
375
559
  if (variantName !== 'EcdsaSecp256k1ConstructSignatureResponse') {
376
- throw new Error(`Expected variant name 'EcdsaSecp256k1ConstructSignatureResponse' but got '${variantName}'`);
560
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'EcdsaSecp256k1ConstructSignatureResponse' but got '${variantName}'`);
377
561
  }
378
562
  return (0, api_types_js_1.toEcdsaSecp256k1ConstructSignatureResponse)(result);
379
563
  });
@@ -381,8 +565,11 @@ class AsyncApi {
381
565
  ecdsaSecp256r1ConstructSignature(command) {
382
566
  const msgpackCommand = (0, api_types_js_1.fromEcdsaSecp256r1ConstructSignature)(command);
383
567
  return msgpackCall(this.backend, [["EcdsaSecp256r1ConstructSignature", msgpackCommand]]).then(([variantName, result]) => {
568
+ if (variantName === 'ErrorResponse') {
569
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
570
+ }
384
571
  if (variantName !== 'EcdsaSecp256r1ConstructSignatureResponse') {
385
- throw new Error(`Expected variant name 'EcdsaSecp256r1ConstructSignatureResponse' but got '${variantName}'`);
572
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'EcdsaSecp256r1ConstructSignatureResponse' but got '${variantName}'`);
386
573
  }
387
574
  return (0, api_types_js_1.toEcdsaSecp256r1ConstructSignatureResponse)(result);
388
575
  });
@@ -390,8 +577,11 @@ class AsyncApi {
390
577
  ecdsaSecp256k1RecoverPublicKey(command) {
391
578
  const msgpackCommand = (0, api_types_js_1.fromEcdsaSecp256k1RecoverPublicKey)(command);
392
579
  return msgpackCall(this.backend, [["EcdsaSecp256k1RecoverPublicKey", msgpackCommand]]).then(([variantName, result]) => {
580
+ if (variantName === 'ErrorResponse') {
581
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
582
+ }
393
583
  if (variantName !== 'EcdsaSecp256k1RecoverPublicKeyResponse') {
394
- throw new Error(`Expected variant name 'EcdsaSecp256k1RecoverPublicKeyResponse' but got '${variantName}'`);
584
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'EcdsaSecp256k1RecoverPublicKeyResponse' but got '${variantName}'`);
395
585
  }
396
586
  return (0, api_types_js_1.toEcdsaSecp256k1RecoverPublicKeyResponse)(result);
397
587
  });
@@ -399,8 +589,11 @@ class AsyncApi {
399
589
  ecdsaSecp256r1RecoverPublicKey(command) {
400
590
  const msgpackCommand = (0, api_types_js_1.fromEcdsaSecp256r1RecoverPublicKey)(command);
401
591
  return msgpackCall(this.backend, [["EcdsaSecp256r1RecoverPublicKey", msgpackCommand]]).then(([variantName, result]) => {
592
+ if (variantName === 'ErrorResponse') {
593
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
594
+ }
402
595
  if (variantName !== 'EcdsaSecp256r1RecoverPublicKeyResponse') {
403
- throw new Error(`Expected variant name 'EcdsaSecp256r1RecoverPublicKeyResponse' but got '${variantName}'`);
596
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'EcdsaSecp256r1RecoverPublicKeyResponse' but got '${variantName}'`);
404
597
  }
405
598
  return (0, api_types_js_1.toEcdsaSecp256r1RecoverPublicKeyResponse)(result);
406
599
  });
@@ -408,8 +601,11 @@ class AsyncApi {
408
601
  ecdsaSecp256k1VerifySignature(command) {
409
602
  const msgpackCommand = (0, api_types_js_1.fromEcdsaSecp256k1VerifySignature)(command);
410
603
  return msgpackCall(this.backend, [["EcdsaSecp256k1VerifySignature", msgpackCommand]]).then(([variantName, result]) => {
604
+ if (variantName === 'ErrorResponse') {
605
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
606
+ }
411
607
  if (variantName !== 'EcdsaSecp256k1VerifySignatureResponse') {
412
- throw new Error(`Expected variant name 'EcdsaSecp256k1VerifySignatureResponse' but got '${variantName}'`);
608
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'EcdsaSecp256k1VerifySignatureResponse' but got '${variantName}'`);
413
609
  }
414
610
  return (0, api_types_js_1.toEcdsaSecp256k1VerifySignatureResponse)(result);
415
611
  });
@@ -417,8 +613,11 @@ class AsyncApi {
417
613
  ecdsaSecp256r1VerifySignature(command) {
418
614
  const msgpackCommand = (0, api_types_js_1.fromEcdsaSecp256r1VerifySignature)(command);
419
615
  return msgpackCall(this.backend, [["EcdsaSecp256r1VerifySignature", msgpackCommand]]).then(([variantName, result]) => {
616
+ if (variantName === 'ErrorResponse') {
617
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
618
+ }
420
619
  if (variantName !== 'EcdsaSecp256r1VerifySignatureResponse') {
421
- throw new Error(`Expected variant name 'EcdsaSecp256r1VerifySignatureResponse' but got '${variantName}'`);
620
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'EcdsaSecp256r1VerifySignatureResponse' but got '${variantName}'`);
422
621
  }
423
622
  return (0, api_types_js_1.toEcdsaSecp256r1VerifySignatureResponse)(result);
424
623
  });
@@ -426,8 +625,11 @@ class AsyncApi {
426
625
  srsInitSrs(command) {
427
626
  const msgpackCommand = (0, api_types_js_1.fromSrsInitSrs)(command);
428
627
  return msgpackCall(this.backend, [["SrsInitSrs", msgpackCommand]]).then(([variantName, result]) => {
628
+ if (variantName === 'ErrorResponse') {
629
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
630
+ }
429
631
  if (variantName !== 'SrsInitSrsResponse') {
430
- throw new Error(`Expected variant name 'SrsInitSrsResponse' but got '${variantName}'`);
632
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'SrsInitSrsResponse' but got '${variantName}'`);
431
633
  }
432
634
  return (0, api_types_js_1.toSrsInitSrsResponse)(result);
433
635
  });
@@ -435,8 +637,11 @@ class AsyncApi {
435
637
  srsInitGrumpkinSrs(command) {
436
638
  const msgpackCommand = (0, api_types_js_1.fromSrsInitGrumpkinSrs)(command);
437
639
  return msgpackCall(this.backend, [["SrsInitGrumpkinSrs", msgpackCommand]]).then(([variantName, result]) => {
640
+ if (variantName === 'ErrorResponse') {
641
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
642
+ }
438
643
  if (variantName !== 'SrsInitGrumpkinSrsResponse') {
439
- throw new Error(`Expected variant name 'SrsInitGrumpkinSrsResponse' but got '${variantName}'`);
644
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'SrsInitGrumpkinSrsResponse' but got '${variantName}'`);
440
645
  }
441
646
  return (0, api_types_js_1.toSrsInitGrumpkinSrsResponse)(result);
442
647
  });
@@ -444,8 +649,11 @@ class AsyncApi {
444
649
  shutdown(command) {
445
650
  const msgpackCommand = (0, api_types_js_1.fromShutdown)(command);
446
651
  return msgpackCall(this.backend, [["Shutdown", msgpackCommand]]).then(([variantName, result]) => {
652
+ if (variantName === 'ErrorResponse') {
653
+ throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
654
+ }
447
655
  if (variantName !== 'ShutdownResponse') {
448
- throw new Error(`Expected variant name 'ShutdownResponse' but got '${variantName}'`);
656
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'ShutdownResponse' but got '${variantName}'`);
449
657
  }
450
658
  return (0, api_types_js_1.toShutdownResponse)(result);
451
659
  });
@@ -455,4 +663,4 @@ class AsyncApi {
455
663
  }
456
664
  }
457
665
  exports.AsyncApi = AsyncApi;
458
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2JpbmQvZ2VuZXJhdGVkL2FzeW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxtQ0FBbUM7OztBQUduQyx1Q0FBNEM7QUFDNUMsaURBQXduSztBQUV4bkssS0FBSyxVQUFVLFdBQVcsQ0FBQyxPQUE2QixFQUFFLEtBQVksSUFBSyxNQUFNLFdBQVcsR0FBRyxJQUFJLGtCQUFPLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBRSxNQUFNLGFBQWEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBRSxPQUFPLElBQUksa0JBQU8sQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFBLENBQUM7QUFDelEsTUFBYSxRQUFRO0lBQ25CLFlBQXNCLE9BQTZCO1FBQTdCLFlBQU8sR0FBUCxPQUFPLENBQXNCO0lBQUcsQ0FBQztJQUV2RCxZQUFZLENBQUMsT0FBcUI7UUFDaEMsTUFBTSxjQUFjLEdBQUcsSUFBQSwrQkFBZ0IsRUFBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBZ0IsRUFBRSxFQUFFO1lBQ2pILElBQUksV0FBVyxLQUFLLHNCQUFzQixFQUFFLENBQUM7Z0JBQzNDLE1BQU0sSUFBSSxLQUFLLENBQUMseURBQXlELFdBQVcsR0FBRyxDQUFDLENBQUM7WUFDM0YsQ0FBQztZQUNELE9BQU8sSUFBQSxxQ0FBc0IsRUFBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxDQUFD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
666
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2JpbmQvZ2VuZXJhdGVkL2FzeW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxtQ0FBbUM7OztBQUduQyx1Q0FBNEM7QUFDNUMsaUVBQTBEO0FBQzFELGlEQUF1L0s7QUFFdi9LLEtBQUssVUFBVSxXQUFXLENBQUMsT0FBNkIsRUFBRSxLQUFZLElBQUssTUFBTSxXQUFXLEdBQUcsSUFBSSxrQkFBTyxDQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUUsTUFBTSxhQUFhLEdBQUcsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUUsT0FBTyxJQUFJLGtCQUFPLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQSxDQUFDO0FBQ3pRLE1BQWEsUUFBUTtJQUNuQixZQUFzQixPQUE2QjtRQUE3QixZQUFPLEdBQVAsT0FBTyxDQUFzQjtJQUFHLENBQUM7SUFFdkQsWUFBWSxDQUFDLE9BQXFCO1FBQ2hDLE1BQU0sY0FBYyxHQUFHLElBQUEsK0JBQWdCLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQWdCLEVBQUUsRUFBRTtZQUNqSCxJQUFJLFdBQVcsS0FBSyxlQUFlLEVBQUUsQ0FBQztnQkFDcEMsTUFBTSxJQUFJLG1DQUFjLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxpQ0FBaUMsQ0FBQyxDQUFDO1lBQ2hGLENBQUM7WUFDRCxJQUFJLFdBQVcsS0FBSyxzQkFBc0IsRUFB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